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

int __regparm3 execute_program(vector *vec,input *input)

{
  byte bVar1;
  size_t sVar2;
  int iVar3;
  FILE *pFVar4;
  regex *regex;
  undefined4 *puVar5;
  addr **ppaVar6;
  undefined *puVar7;
  _Bool _Var8;
  char cVar9;
  uint uVar10;
  char *pcVar11;
  output *poVar12;
  append_queue *paVar13;
  size_t sVar14;
  addr_types aVar15;
  size_t sVar16;
  addr *paVar17;
  int iVar18;
  int iVar19;
  ushort **ppuVar20;
  void *pvVar21;
  byte *pbVar22;
  FILE *pFVar23;
  addr *in_ECX;
  addr *extraout_ECX;
  addr *extraout_ECX_00;
  addr *extraout_ECX_01;
  addr *extraout_ECX_02;
  addr *extraout_ECX_03;
  addr *extraout_ECX_04;
  addr *extraout_ECX_05;
  addr *extraout_ECX_06;
  addr *extraout_ECX_07;
  addr *extraout_ECX_08;
  addr *extraout_ECX_09;
  line *extraout_ECX_10;
  addr *extraout_ECX_11;
  addr *extraout_ECX_12;
  addr *extraout_ECX_13;
  char *pcVar24;
  addr *extraout_ECX_14;
  addr *extraout_ECX_15;
  addr *extraout_ECX_16;
  undefined4 extraout_ECX_17;
  addr *extraout_ECX_18;
  addr *extraout_ECX_19;
  addr *extraout_ECX_20;
  addr *extraout_ECX_21;
  addr *extraout_ECX_22;
  addr *extraout_ECX_23;
  addr *extraout_ECX_24;
  addr *extraout_ECX_25;
  addr *extraout_ECX_26;
  addr *extraout_ECX_27;
  addr *extraout_ECX_28;
  addr *extraout_ECX_29;
  addr *extraout_ECX_30;
  line *extraout_ECX_31;
  addr *extraout_ECX_32;
  addr *extraout_ECX_33;
  addr *extraout_ECX_34;
  addr *extraout_ECX_35;
  addr *extraout_ECX_36;
  undefined4 extraout_ECX_37;
  undefined4 extraout_ECX_38;
  undefined4 extraout_ECX_39;
  addr *extraout_ECX_40;
  addr *extraout_ECX_41;
  addr *extraout_ECX_42;
  addr *extraout_ECX_43;
  undefined4 uVar25;
  line *plVar26;
  char *buf_00;
  line *extraout_EDX;
  line *extraout_EDX_00;
  line *extraout_EDX_01;
  size_t sVar27;
  line *extraout_EDX_02;
  line *extraout_EDX_03;
  line *extraout_EDX_04;
  line *plVar28;
  byte *pbVar29;
  line *extraout_EDX_05;
  line *extraout_EDX_06;
  line *sc;
  line *plVar30;
  byte *pbVar31;
  line *regsize;
  uint uVar32;
  int in_GS_OFFSET;
  bool bVar33;
  size_t in_stack_ffffef7c;
  _Bool *b;
  line *in_stack_ffffef8c;
  line *local_106c;
  uint local_1068;
  size_t local_1060;
  char *local_105c;
  uint local_1058;
  size_t buflen;
  char *text;
  mbstate_t mbstate;
  char buf [4096];
  
  puVar7 = PTR_stdout_00030fdc;
  sc = (line *)vec->v;
  sVar2 = vec->v_length;
  iVar3 = *(int *)(in_GS_OFFSET + 0x14);
  ppaVar6 = (addr **)&sc->text;
  b = &debug;
  local_1060 = in_stack_ffffef7c;
  cVar9 = debug;
joined_r0x00017cbb:
  if ((line *)(ppaVar6 + sVar2 * 6) <= sc) {
    if (cVar9 != '\0') {
      puts("END-OF-CYCLE:");
    }
LAB_00017e10:
    if (no_default_output == false) {
LAB_00017e26:
      output_line(line.active,line.length,(uint)line.chomped,&output_file);
    }
LAB_00017f53:
    pcVar11 = (char *)0xffffffff;
LAB_00017f58:
    if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
      __stack_chk_fail_local();
    }
    return (int)pcVar11;
  }
  if (cVar9 != '\0') {
    local_1060 = 9;
    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);
    debug_print_command(vec,(sed_cmd *)sc);
    in_ECX = extraout_ECX;
  }
LAB_00017cfb:
  paVar17 = (addr *)sc->text;
  if (paVar17 == (addr *)0x0) {
LAB_00017e6b:
    uVar10 = 1;
  }
  else {
    in_ECX = (addr *)sc->active;
    if (sc->length == RANGE_ACTIVE) {
      if (in_ECX->addr_type != ADDR_IS_NUM) goto LAB_00017e56;
      uVar10 = input->line_number;
      uVar32 = in_ECX->addr_number;
      if (uVar32 <= uVar10) {
        sc->length = RANGE_CLOSED;
      }
      uVar10 = (uint)(uVar10 <= uVar32);
    }
    else if (in_ECX == (addr *)0x0) {
      _Var8 = match_an_address_p(paVar17,input);
      uVar10 = (uint)_Var8;
      in_ECX = extraout_ECX_05;
    }
    else if (paVar17->addr_type == ADDR_IS_NUM) {
      if ((sc->length == RANGE_CLOSED) || (input->line_number < paVar17->addr_number)) {
LAB_00017ef0:
        uVar10 = 0;
      }
      else {
        aVar15 = in_ECX->addr_type;
        sc->length = RANGE_ACTIVE;
        bVar33 = aVar15 == ADDR_IS_NUM;
        if (bVar33) goto LAB_00017ec1;
LAB_00017d50:
        if (aVar15 < ADDR_IS_NUM || bVar33) {
          uVar10 = 1;
          if (aVar15 != ADDR_IS_REGEX) {
LAB_00017e56:
            _Var8 = match_an_address_p(in_ECX,input);
            in_ECX = extraout_ECX_02;
            if (_Var8) {
              sc->length = RANGE_CLOSED;
            }
            goto LAB_00017e6b;
          }
        }
        else if (aVar15 == ADDR_IS_STEP) {
          in_ECX->addr_number = in_ECX->addr_step + input->line_number;
          uVar10 = 1;
        }
        else {
          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;
          uVar10 = 1;
          in_ECX->addr_number =
               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;
        }
      }
    }
    else {
      _Var8 = match_an_address_p(paVar17,input);
      in_ECX = extraout_ECX_03;
      if (!_Var8) goto LAB_00017ef0;
      in_ECX = (addr *)sc->active;
      sc->length = RANGE_ACTIVE;
      aVar15 = in_ECX->addr_type;
      bVar33 = aVar15 == ADDR_IS_NUM;
      if (!bVar33) goto LAB_00017d50;
LAB_00017ec1:
      uVar10 = in_ECX->addr_number;
      uVar32 = input->line_number;
      if ((uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10)) goto LAB_00017e6b;
      _Var8 = match_an_address_p((addr *)sc->text,input);
      uVar10 = (uint)_Var8;
      in_ECX = extraout_ECX_04;
    }
  }
  pFVar4 = output_file.fp;
  sVar16 = line.length;
  pbVar31 = (byte *)line.active;
  if ((int)(char)sc->alloc == uVar10) goto _L604;
  plVar26 = (line *)(int)*(char *)((int)&sc->alloc + 1);
  switch((uint)((int)&plVar26[-2].mbstate.__count + 1U) & 0xff) {
  case 0:
  case 0x17:
  case 0x5a:
    goto _L604;
  default:
                    /* WARNING: Subroutine does not return */
    panic("INTERNAL ERROR: Bad cmd %c",plVar26);
  case 0x1a:
    if (output_file.missing_newline != false) {
      local_1060 = 1;
      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);
      output_file.missing_newline = false;
    }
    pcVar11 = "%lu%c";
    pcVar24 = (char *)input->line_number;
    goto LAB_00018a05;
  case 0x21:
    local_1060 = line.length;
    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);
    if (pvVar21 == (void *)0x0) goto LAB_00017f53;
    line.active = (char *)((int)pvVar21 + 1);
    line.alloc = line.alloc - ((int)line.active - (int)pbVar31);
    sc = (line *)vec->v;
    line.length = sVar16 - ((int)line.active - (int)pbVar31);
    in_ECX = extraout_ECX_27;
    if (*(_Bool *)&((line *)b)->text == false) goto joined_r0x00018523;
    debug_print_line(&line);
    cVar9 = *(char *)&((line *)b)->text;
    in_ECX = extraout_ECX_28;
    goto joined_r0x00017cbb;
  case 0x23:
    if (output_file.missing_newline != false) {
      local_1060 = 1;
      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);
      output_file.missing_newline = false;
    }
    pcVar11 = "%s%c";
    pcVar24 = input->in_file_name;
LAB_00018a05:
    __fprintf_chk(output_file.fp,1,pcVar11,pcVar24,(int)buffer_delimiter);
    in_ECX = extraout_ECX_29;
    if (unbuffered == false) goto _L604;
    ck_fflush(output_file.fp);
    cVar9 = *(char *)&((line *)b)->text;
    in_ECX = extraout_ECX_30;
    goto LAB_00017de7;
  case 0x24:
    line_append((line *)input,(line *)b,(int)in_stack_ffffef8c);
    in_ECX = extraout_ECX_00;
    if (*(_Bool *)&((line *)b)->text == false) goto LAB_000182c0;
    goto LAB_00017dd0;
  case 0x25:
    line_append((line *)input,(line *)b,(int)in_stack_ffffef8c);
    cVar9 = *(char *)&((line *)b)->text;
    in_ECX = extraout_ECX_22;
    break;
  case 0x2b:
    str_append(&line,&buffer_delimiter,1);
    if (((buffer.length != 0) || (_Var8 = test_eof(input), !_Var8)) &&
       (_Var8 = read_pattern_space(input,vec,1), in_ECX = extraout_ECX_25, _Var8))
    goto LAB_000188c9;
    if (*(_Bool *)&((line *)b)->text != false) {
      puts("END-OF-CYCLE:");
    }
    line.length = line.length - 1;
    if ((posixicity != POSIXLY_EXTENDED) || (no_default_output != false)) goto LAB_00017f53;
    goto LAB_00017e26;
  case 0x2d:
    local_1060 = line.length;
    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);
    if (pvVar21 == (void *)0x0) {
      uVar10 = (uint)line.chomped;
    }
    else {
      sVar16 = (int)pvVar21 - (int)pbVar31;
      uVar10 = 1;
    }
    poVar12 = &output_file;
    goto LAB_0001881e;
  case 0x2e:
    goto _L358;
  case 0x2f:
    pFVar4 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf->fp;
    if ((pFVar4 != (FILE *)0x0) && ((pFVar4->_flags & 0x10) == 0)) {
      text = (char *)0x0;
      local_1060 = (size_t)buffer_delimiter;
      sVar16 = ck_getdelim(&text,&buflen,buffer_delimiter,pFVar4);
      if (sVar16 == 0xffffffff) {
        free(text);
        in_ECX = extraout_ECX_43;
      }
      else {
        paVar13 = next_append_slot();
        paVar13->free = true;
        paVar13->text = text;
        paVar13->textlen = sVar16;
        in_ECX = extraout_ECX_06;
      }
    }
    goto _L604;
  case 0x31:
    cVar9 = *(char *)&((line *)b)->text;
    if (replaced == false) goto LAB_00018263;
    replaced = false;
    goto LAB_00017de7;
  case 0x34:
    poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf;
    in_stack_ffffef8c = (line *)poVar12;
    if (((line *)poVar12)->length == RANGE_INACTIVE) goto _L604;
    local_1060 = line.length;
    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);
    in_stack_ffffef8c = (line *)poVar12;
    if (pvVar21 == (void *)0x0) {
      uVar10 = (uint)line.chomped;
    }
    else {
      sVar16 = (int)pvVar21 - (int)pbVar31;
      uVar10 = 1;
    }
LAB_0001881e:
    output_line((char *)pbVar31,sVar16,uVar10,poVar12);
    cVar9 = *(char *)&((line *)b)->text;
    in_ECX = extraout_ECX_23;
    goto LAB_00017de7;
  case 0x3e:
    paVar13 = next_append_slot();
    paVar13->text = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;
    paVar13->textlen = (sc->mbstate).__count;
    cVar9 = *(char *)&((line *)b)->text;
    in_ECX = extraout_ECX_24;
    goto LAB_00017de7;
  case 0x3f:
  case 0x58:
    goto _L336;
  case 0x40:
    if (sc->length != RANGE_ACTIVE) {
      output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,
                  (sc->mbstate).__count - 1,1,&output_file);
    }
  case 0x41:
_L352:
    if (*(_Bool *)&((line *)b)->text == false) goto LAB_00017f53;
    puts("END-OF-CYCLE:");
    pcVar11 = (char *)0xffffffff;
    goto LAB_00017f58;
  case 0x42:
    plVar28 = (line *)(sc->mbstate).__count;
    in_stack_ffffef8c = plVar28;
    line_reset((line *)0x0,plVar26);
    if (plVar28 == (line *)0x0) {
      str_append(&line,"",1);
      pFVar23 = popen(line.active,"r");
      uVar25 = extraout_ECX_17;
    }
    else {
      *(char *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1 +
               (int)in_stack_ffffef8c) = '\0';
      pFVar23 = popen((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,"r");
      uVar25 = extraout_ECX_37;
      if (output_file.missing_newline != false) {
        local_1060 = 1;
        ck_fwrite(PTR_buffer_delimiter_00030fd8,1,1,output_file.fp);
        output_file.missing_newline = false;
        uVar25 = extraout_ECX_38;
      }
    }
    if (pFVar23 == (FILE *)0x0) goto LAB_0001925a;
    while ((pFVar23->_flags & 0x10) == 0) {
      local_1060 = 0x1000;
      sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);
      if (0 < (int)sVar14) {
        if (in_stack_ffffef8c == (line *)0x0) {
          str_append(&s_accum,buf,sVar14);
        }
        else {
          ck_fwrite(buf,1,sVar14,output_file.fp);
          local_1060 = sVar14;
        }
      }
    }
    pclose(pFVar23);
    if (in_stack_ffffef8c == (line *)0x0) {
      if ((s_accum.length != 0) && (s_accum.active[s_accum.length - 1] == buffer_delimiter)) {
        s_accum.length = s_accum.length - 1;
      }
      line_exchange((line *)input,(line *)b,0);
      in_ECX = extraout_ECX_19;
    }
    else {
      in_ECX = extraout_ECX_18;
      if (unbuffered != false) {
        ck_fflush(output_file.fp);
        in_ECX = extraout_ECX_36;
      }
    }
    goto _L604;
  case 0x44:
    line_copy(&hold,&line,(int)in_ECX);
    cVar9 = *(char *)&((line *)b)->text;
    in_ECX = extraout_ECX_26;
    break;
  case 0x45:
    line_copy(&line,&hold,(int)in_ECX);
    cVar9 = *(char *)&((line *)b)->text;
    in_ECX = extraout_ECX_20;
    break;
  case 0x46:
    output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,
                (sc->mbstate).__count - 1,1,&output_file);
    cVar9 = *(char *)&((line *)b)->text;
    in_ECX = extraout_ECX_15;
    goto LAB_00017de7;
  case 0x49:
    local_106c = (line *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;
    if (local_106c == (line *)0xffffffff) {
      local_106c = (line *)lcmd_out_line_len;
    }
    if (output_file.missing_newline != false) {
      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);
      output_file.missing_newline = false;
    }
    if (sVar16 != 0) {
      pbVar22 = (byte *)((char *)pbVar31 + sVar16);
      pcVar11 = buf + 1;
      plVar26 = (line *)0x0;
      do {
        bVar1 = *pbVar31;
        in_stack_ffffef8c = (line *)(uint)bVar1;
        if (((bVar1 & 0x80) == 0) &&
           (ppuVar20 = __ctype_b_loc(),
           (*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0)) {
          plVar28 = (line *)0x1;
          buf[0] = bVar1;
          if (*pbVar31 == 0x5c) {
            buf[1] = '\\';
            plVar28 = (line *)0x2;
          }
        }
        else {
          buf[0] = '\\';
          switch(*pbVar31) {
          case 7:
            buf[1] = 'a';
            plVar28 = (line *)0x2;
            break;
          case 8:
            buf[1] = 'b';
            plVar28 = (line *)0x2;
            break;
          case 9:
            buf[1] = 't';
            plVar28 = (line *)0x2;
            break;
          case 10:
            buf[1] = 'n';
            plVar28 = (line *)0x2;
            break;
          case 0xb:
            buf[1] = 'v';
            plVar28 = (line *)0x2;
            break;
          case 0xc:
            buf[1] = 'f';
            plVar28 = (line *)0x2;
            break;
          case 0xd:
            buf[1] = 'r';
            plVar28 = (line *)0x2;
            break;
          default:
            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);
            sVar14 = strlen(pcVar11);
            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));
          }
        }
        plVar26 = (line *)((int)&plVar28->text + (int)&plVar26->text);
        if ((local_106c <= plVar26) && (0 < (int)local_106c)) {
          ck_fwrite(&DAT_00026f7e,1,1,pFVar4);
          ck_fwrite(&buffer_delimiter,1,1,pFVar4);
          plVar26 = plVar28;
          in_stack_ffffef8c = plVar28;
        }
        pbVar31 = pbVar31 + 1;
        ck_fwrite(buf,1,(size_t)plVar28,pFVar4);
      } while (pbVar31 != pbVar22);
    }
    local_1060 = 1;
    ck_fwrite(&DAT_00026f80,1,1,pFVar4);
    ck_fwrite(&buffer_delimiter,1,1,pFVar4);
    in_ECX = extraout_ECX_34;
    if (unbuffered != false) {
      ck_fflush(pFVar4);
      in_ECX = extraout_ECX_35;
    }
_L604:
    cVar9 = *(char *)&((line *)b)->text;
LAB_00017de7:
    sc = (line *)&(sc->mbstate).__value;
    goto joined_r0x00017cbb;
  case 0x4b:
    if (no_default_output == false) {
      output_line(line.active,line.length,(uint)line.chomped,&output_file);
    }
    if (((buffer.length == 0) && (_Var8 = test_eof(input), _Var8)) ||
       (_Var8 = read_pattern_space(input,vec,0), !_Var8)) goto _L352;
    if (*(_Bool *)&((line *)b)->text != false) goto LAB_00017dd0;
    sc = (line *)&(sc->mbstate).__value;
    in_ECX = extraout_ECX_16;
    goto joined_r0x00018523;
  case 0x4d:
    poVar12 = &output_file;
    goto LAB_00018030;
  case 0x4e:
    if (no_default_output == false) {
      output_line(line.active,line.length,(uint)line.chomped,&output_file);
    }
    dump_append_queue();
_L358:
    pcVar11 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;
    if (pcVar11 == (char *)0xffffffff) {
      pcVar11 = (char *)0x0;
    }
    goto LAB_00017f58;
  case 0x4f:
    in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;
    if (in_ECX == (addr *)0x0) goto _L604;
    paVar13 = next_append_slot();
    paVar13->fname = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;
    cVar9 = *(char *)&((line *)b)->text;
    in_ECX = extraout_ECX_08;
    goto LAB_00017de7;
  case 0x50:
    regex = (regex *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;
    line_reset(&line,plVar26);
    bVar1 = *(byte *)&(regex->pattern).fastmap;
    in_stack_ffffef8c = (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),bVar1);
    sVar14 = (bVar1 >> 4) + 1;
    local_106c = (line *)0x3dc;
    iVar19 = match_regex((regex *)0x3dc,buf_00,(size_t)(regex->pattern).buffer,(size_t)line.active,
                         (re_registers *)line.length,0);
    in_ECX = extraout_ECX_09;
    if (iVar19 == 0) goto LAB_000188c9;
    plVar26 = (line *)*DAT_00031370;
    plVar28 = extraout_EDX;
    if (((*(_Bool *)&((line *)b)->text != false) && (plVar28 = regs_7164, regs_7164 != (line *)0x0))
       && (plVar26 != (line *)0xffffffff)) {
      puts("MATCHED REGEX REGISTERS");
      plVar26 = (line *)*DAT_00031370;
      plVar28 = extraout_EDX_05;
      if ((regs_7164 != (line *)0x0) && (plVar28 = extraout_EDX_05, plVar26 != (line *)0xffffffff))
      {
        plVar28 = (line *)0x0;
        do {
          __printf_chk(1,"  regex[%d] = %d-%d \'",plVar28,plVar26,
                       (&DAT_00031374->addr_type)[(int)plVar28],sVar14);
          aVar15 = DAT_00031370[(int)plVar28];
          if (aVar15 != (&DAT_00031374->addr_type)[(int)plVar28]) {
            sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15;
            local_1060 = 1;
            fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7);
          }
          plVar30 = (line *)((int)&plVar28->text + 1);
          puts("\'");
          if (regs_7164 <= plVar30) {
            plVar26 = (line *)*DAT_00031370;
            plVar28 = extraout_EDX_06;
            goto LAB_00018110;
          }
          plVar26 = (line *)DAT_00031370[(int)((int)&plVar28->text + 1)];
          plVar28 = plVar30;
        } while (plVar26 != (line *)0xffffffff);
        plVar26 = (line *)*DAT_00031370;
        plVar28 = extraout_EDX_06;
      }
    }
LAB_00018110:
    aVar15 = DAT_00031374->addr_type;
    if (((regex->pattern).allocated != 0) || (1 < (regex->pattern).used)) {
LAB_00018127:
      plVar30 = (line *)0x0;
      regsize = (line *)0x0;
      local_1058 = 0;
      sVar16 = local_1060;
      do {
        local_1060 = aVar15 - (int)plVar26;
        in_stack_ffffef8c = plVar26;
        if (regsize < plVar26) {
          sVar27 = (int)plVar26 - (int)regsize;
          pcVar11 = line.active + (int)regsize;
          regsize = plVar26;
          str_append(&s_accum,pcVar11,sVar27);
          plVar26 = extraout_ECX_10;
          plVar28 = extraout_EDX_01;
          in_stack_ffffef8c = regsize;
        }
        plVar28 = (line *)CONCAT31((int3)((uint)plVar28 >> 8),
                                   local_1058 == 0 || plVar30 < in_stack_ffffef8c);
        if ((local_1058 == 0 || plVar30 < in_stack_ffffef8c) || (local_1060 != 0)) {
          local_1058 = local_1058 + 1;
          if (local_1058 < (regex->pattern).used) {
            if (local_1060 == 0) goto LAB_0001817a;
            goto LAB_00018190;
          }
          puVar5 = (undefined4 *)(regex->pattern).allocated;
          replaced = true;
          local_1068 = 0;
          for (; puVar5 != (undefined4 *)0x0; puVar5 = (undefined4 *)puVar5[4]) {
            uVar10 = puVar5[3];
            plVar28 = (line *)puVar5[1];
            plVar26 = (line *)puVar5[2];
            if ((uVar10 & 0xc) == 0) {
              uVar10 = local_1068 | uVar10;
            }
            uVar32 = uVar10;
            if (plVar28 != (line *)0x0) {
              uVar32 = uVar10 & 0xfffffff3;
              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);
              plVar28 = extraout_EDX_03;
            }
            local_1068 = 0;
            if ((-1 < (int)plVar26) && (plVar26 < regs_7164)) {
              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];
              plVar26 = (line *)DAT_00031370[(int)plVar26];
              if (plVar28 == plVar26) {
                local_1068 = uVar32 & 0xc;
                if ((puVar5[3] & 0xc) == 0) {
                  local_1068 = 0;
                }
              }
              else {
                str_append_modified((line *)(line.active + (int)&plVar26->text),
                                    (char *)((int)plVar28 - (int)plVar26),uVar32,
                                    (replacement_types)input);
                plVar28 = extraout_EDX_02;
              }
            }
          }
          regsize = (line *)((int)in_stack_ffffef8c + local_1060);
          plVar30 = (line *)DAT_00031374->addr_type;
          if (((uint)(regex->pattern).fastmap & 1) == 0) goto LAB_00018ba8;
        }
        else {
LAB_0001817a:
          local_1060 = sVar16;
          if (line.length <= regsize) goto LAB_00018bcb;
          local_1060 = 1;
LAB_00018190:
          regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060);
          str_append(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060);
          plVar30 = (line *)DAT_00031374->addr_type;
        }
        plVar26 = local_106c;
        plVar28 = (line *)line.length;
        local_1060 = sVar16;
        if (line.length < regsize) goto LAB_00018bcb;
        in_stack_ffffef8c =
             (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),
                              *(undefined1 *)&(regex->pattern).fastmap);
        iVar19 = match_regex(regex,(char *)line.length,(size_t)(regex->pattern).buffer,
                             (size_t)line.active,(re_registers *)line.length,(int)regsize);
        plVar28 = extraout_EDX_00;
        if (iVar19 == 0) goto LAB_00018ba8;
        plVar26 = (line *)*DAT_00031370;
        aVar15 = DAT_00031374->addr_type;
      } while( true );
    }
    plVar28 = plVar26;
    in_ECX = DAT_00031374;
    if ((plVar26 == (line *)0x0) &&
       (bVar1 = *(byte *)&(regex->pattern).fastmap, plVar28 = (line *)(uint)bVar1, (bVar1 & 1) == 0)
       ) {
      line.length = line.length - aVar15;
      line.active = line.active + aVar15;
      line.alloc = line.alloc - DAT_00031374->addr_type;
      replaced = true;
    }
    else {
      if (aVar15 != line.length) goto LAB_00018127;
      replaced = true;
      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;
      line.length = (size_t)plVar26;
    }
    goto LAB_00018bf8;
  case 0x51:
    cVar9 = *(char *)&((line *)b)->text;
    if (replaced == false) goto LAB_00017de7;
    replaced = false;
LAB_00018263:
    in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg * 3);
    sc = (line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg);
    goto joined_r0x00017cbb;
  case 0x54:
    poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf;
    if (poVar12->fp == (FILE *)0x0) goto _L604;
LAB_00018030:
    output_line(line.active,line.length,(uint)line.chomped,poVar12);
    cVar9 = *(char *)&((line *)b)->text;
    in_ECX = extraout_ECX_07;
    goto LAB_00017de7;
  case 0x55:
    line_exchange(&hold,plVar26,(int)in_ECX);
    in_ECX = extraout_ECX_11;
    if (*(_Bool *)&((line *)b)->text == false) goto LAB_000182c0;
    debug_print_line(&line);
    goto LAB_0001861e;
  case 0x56:
    if (mb_cur_max < 2) {
      pbVar22 = (byte *)(line.active + line.length);
      if (line.active < pbVar22) {
        do {
          pbVar29 = pbVar31 + 1;
          bVar1 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text[*pbVar31];
          in_ECX = (addr *)(uint)bVar1;
          *pbVar31 = bVar1;
          pbVar31 = pbVar29;
        } while (pbVar22 != pbVar29);
      }
    }
    else {
      in_stack_ffffef8c = (line *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;
      mbstate.__count = 0;
      mbstate.__value.__wch = 0;
      if (line.length != 0) {
        local_1068 = 0;
        do {
          if (mb_cur_max == 1) {
LAB_0001836f:
            sVar16 = 1;
          }
          else {
            local_1060 = line.length - local_1068;
            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);
            in_ECX = extraout_ECX_12;
            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;
          }
          paVar17 = (addr *)in_stack_ffffef8c->text;
          if (paVar17 != (addr *)0x0) {
            local_105c = line.active;
            pcVar11 = line.active + local_1068;
            iVar19 = 0;
            do {
              local_1060 = sVar16;
              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);
              if (iVar18 == 0) {
                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);
                pcVar24 = (char *)*puVar5;
                if (*pcVar24 == '\0') {
                  local_1060 = 1;
LAB_00018c70:
                  if (local_1060 < sVar16) {
                    iVar19 = line.length + 1;
                    goto LAB_0001841c;
                  }
                }
                else {
                  local_1060 = strlen(pcVar24);
                  if (local_1060 <= sVar16) goto LAB_00018c70;
                  iVar19 = line.length + 1;
                  sVar27 = (iVar19 - sVar16) + local_1060;
                  if (line.alloc < sVar27) {
                    resize_line(&line,sVar27);
                    local_105c = line.active;
                    iVar19 = line.length + 1;
                  }
LAB_0001841c:
                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,
                          iVar19 - (sVar16 + local_1068));
                  line.length = line.length + (local_1060 - sVar16);
                  pcVar24 = (char *)*puVar5;
                  pcVar11 = line.active + local_1068;
                  local_1068 = local_1068 + (local_1060 - sVar16);
                }
                memcpy(pcVar11,pcVar24,local_1060);
                in_ECX = extraout_ECX_14;
                break;
              }
              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);
              in_ECX = extraout_ECX_13;
              iVar19 = iVar19 + 8;
            } while (paVar17 != (addr *)0x0);
          }
          local_1068 = local_1068 + sVar16;
        } while (local_1068 < line.length);
      }
    }
    goto LAB_000188c9;
  case 0x57:
    line.length = 0;
    goto LAB_000188c9;
  }
  if (cVar9 == '\0') goto LAB_000182c0;
LAB_0001861e:
  debug_print_line(&hold);
  cVar9 = *(char *)&((line *)b)->text;
  in_ECX = extraout_ECX_21;
  goto LAB_00017de7;
LAB_00018ba8:
  plVar26 = (line *)line.length;
  local_1060 = sVar16;
  if (regsize < line.length) {
    str_append(&s_accum,line.active + (int)&regsize->text,line.length - (int)regsize);
    plVar26 = extraout_ECX_31;
    plVar28 = extraout_EDX_04;
    local_1060 = sVar16;
  }
LAB_00018bcb:
  s_accum.chomped = line.chomped;
  line_exchange(&s_accum,plVar28,(int)plVar26);
  in_ECX = extraout_ECX_32;
  if ((regex->pattern).used <= local_1058) {
    plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;
    in_ECX = extraout_ECX_32;
    plVar26 = in_stack_ffffef8c;
LAB_00018bf8:
    in_stack_ffffef8c = plVar26;
    if (((uint)plVar28 & 2) != 0) {
      output_line(line.active,line.length,(uint)line.chomped,&output_file);
      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;
      in_ECX = extraout_ECX_41;
      in_stack_ffffef8c = plVar26;
    }
    if (((uint)plVar28 & 8) != 0) {
      line_reset((line *)0x0,plVar28);
      str_append(&line,"",1);
      plVar26 = (line *)0x281e1;
      pFVar23 = popen(line.active,"r");
      uVar25 = extraout_ECX_39;
      if (pFVar23 == (FILE *)0x0) {
LAB_0001925a:
        pcVar11 = (char *)dcgettext(0,"error in subprocess",5,uVar25);
                    /* WARNING: Subroutine does not return */
        panic(pcVar11);
      }
      bVar1 = (byte)pFVar23->_flags;
      while ((bVar1 & 0x10) == 0) {
        local_1060 = 0x1000;
        plVar26 = (line *)0x1;
        sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);
        if (0 < (int)sVar14) {
          str_append(&s_accum,buf,sVar14);
        }
        in_stack_ffffef8c = sc;
        bVar1 = (byte)pFVar23->_flags;
      }
      pclose(pFVar23);
      line_exchange((line *)pFVar23,plVar26,local_1060);
      in_ECX = extraout_ECX_40;
      if ((line.length != 0) &&
         (in_ECX = (addr *)(line.length - 1), line.active[line.length - 1] == buffer_delimiter)) {
        line.length = (size_t)in_ECX;
      }
      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;
    }
    if (((uint)plVar28 >> 1 & 2) != 0) {
      output_line(line.active,line.length,(uint)line.chomped,&output_file);
      in_ECX = extraout_ECX_42;
    }
    poVar12 = (output *)(regex->pattern).syntax;
    if (poVar12 != (output *)0x0) {
      output_line(line.active,line.length,(uint)line.chomped,poVar12);
      in_ECX = extraout_ECX_33;
    }
  }
LAB_000188c9:
  if (*(_Bool *)&((line *)b)->text != false) {
LAB_00017dd0:
    debug_print_line(&line);
    in_ECX = extraout_ECX_01;
    goto _L604;
  }
LAB_000182c0:
  sc = (line *)&(sc->mbstate).__value;
joined_r0x00018523:
  if ((line *)(ppaVar6 + sVar2 * 6) <= sc) goto LAB_00017e10;
  goto LAB_00017cfb;
_L336:
  sc = (line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg);
  cVar9 = *(char *)&((line *)b)->text;
  goto joined_r0x00017cbb;
}



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

int __regparm3 FUN_00017c70(int *param_1,int param_2)

{
  undefined4 *puVar1;
  int *piVar2;
  undefined *puVar3;
  char cVar4;
  uint uVar5;
  int iVar6;
  undefined *puVar7;
  int *piVar8;
  uint uVar9;
  int iVar10;
  ushort **ppuVar11;
  char *pcVar12;
  byte *pbVar13;
  FILE *pFVar14;
  size_t sVar15;
  undefined4 uVar16;
  uint *puVar17;
  undefined4 extraout_ECX;
  undefined4 extraout_ECX_00;
  undefined4 extraout_ECX_01;
  undefined4 extraout_ECX_02;
  byte bVar18;
  byte *pbVar19;
  int *piVar20;
  uint uVar21;
  uint uVar22;
  byte *pbVar23;
  char *pcVar24;
  int in_GS_OFFSET;
  bool bVar25;
  char *pcVar26;
  char *pcStack_106c;
  uint uStack_1068;
  uint uStack_1060;
  byte *pbStack_105c;
  uint uStack_1058;
  undefined1 auStack_1030 [4];
  void *pvStack_102c;
  undefined4 uStack_1028;
  undefined4 uStack_1024;
  byte bStack_1020;
  char acStack_101f [4095];
  int local_20;
  undefined4 uStack_14;
  
  puVar3 = PTR_stdout_00030fdc;
  uStack_14 = 0x17c79;
  piVar20 = (int *)*param_1;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  piVar2 = piVar20 + param_1[2] * 6;
  pcVar26 = &DAT_00031414;
  cVar4 = DAT_00031414;
joined_r0x00017cbb:
  if (piVar2 <= piVar20) {
    if (cVar4 != '\0') {
      puts("END-OF-CYCLE:");
    }
LAB_00017e10:
    if (DAT_00031418 == '\0') {
code_r0x00017e26:
      FUN_000178c0(&DAT_000313f8);
    }
LAB_00017f53:
    iVar6 = -1;
code_r0x00017f58:
    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
      FUN_00025de0();
    }
    return iVar6;
  }
  if (cVar4 != '\0') {
    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);
    FUN_00015bb0(param_1,piVar20);
  }
LAB_00017cfb:
  piVar8 = (int *)*piVar20;
  if (piVar8 == (int *)0x0) {
LAB_00017e6b:
    uVar5 = 1;
  }
  else {
    puVar17 = (uint *)piVar20[1];
    if (piVar20[2] == 1) {
      if (*puVar17 != 2) goto LAB_00017e56;
      uVar5 = *(uint *)(param_2 + 8);
      uVar9 = puVar17[1];
      if (uVar9 <= uVar5) {
        piVar20[2] = 2;
      }
      uVar5 = (uint)(uVar5 <= uVar9);
    }
    else if (puVar17 == (uint *)0x0) {
      uVar5 = FUN_00017130();
      uVar5 = uVar5 & 0xff;
    }
    else if (*piVar8 == 2) {
      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {
LAB_00017ef0:
        uVar5 = 0;
      }
      else {
        uVar9 = *puVar17;
        piVar20[2] = 1;
        bVar25 = uVar9 == 2;
        if (bVar25) goto LAB_00017ec1;
LAB_00017d50:
        if (uVar9 < 2 || bVar25) {
          uVar5 = 1;
          if (uVar9 != 1) {
LAB_00017e56:
            cVar4 = FUN_00017130();
            if (cVar4 != '\0') {
              piVar20[2] = 2;
            }
            goto LAB_00017e6b;
          }
        }
        else if (uVar9 == 4) {
          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);
          uVar5 = 1;
        }
        else {
          if (uVar9 != 5) goto LAB_00017e56;
          uVar5 = 1;
          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];
        }
      }
    }
    else {
      cVar4 = FUN_00017130();
      if (cVar4 == '\0') goto LAB_00017ef0;
      puVar17 = (uint *)piVar20[1];
      piVar20[2] = 1;
      uVar9 = *puVar17;
      bVar25 = uVar9 == 2;
      if (!bVar25) goto LAB_00017d50;
LAB_00017ec1:
      uVar5 = puVar17[1];
      uVar9 = *(uint *)(param_2 + 8);
      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;
      uVar5 = FUN_00017130();
      uVar5 = uVar5 & 0xff;
    }
  }
  uVar16 = DAT_00031400;
  uVar9 = DAT_000313e4;
  pbVar23 = DAT_000313e0;
  if ((int)(char)piVar20[3] == uVar5) goto LAB_00017de0;
  switch((int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff) {
  case 0:
  case 0x17:
  case 0x5a:
    goto LAB_00017de0;
  default:
                    /* WARNING: Subroutine does not return */
    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));
  case 0x1a:
    if (DAT_000313fc != '\0') {
      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);
      DAT_000313fc = '\0';
    }
    puVar7 = &UNK_00026fb0;
    uVar16 = *(undefined4 *)(param_2 + 8);
    goto code_r0x00018a05;
  case 0x21:
    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);
    if (iVar6 == 0) goto LAB_00017f53;
    DAT_000313e0 = (byte *)(iVar6 + 1);
    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);
    piVar20 = (int *)*param_1;
    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);
    if (*pcVar26 == '\0') goto joined_r0x00018523;
    FUN_00016620();
    cVar4 = *pcVar26;
    goto joined_r0x00017cbb;
  case 0x23:
    if (DAT_000313fc != '\0') {
      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);
      DAT_000313fc = '\0';
    }
    puVar7 = &UNK_00026fb6;
    uVar16 = *(undefined4 *)(param_2 + 0x18);
code_r0x00018a05:
    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);
    if (DAT_00031419 == '\0') goto LAB_00017de0;
    FUN_0001a7e0(DAT_00031400);
    cVar4 = *pcVar26;
    goto code_r0x00017de7;
  case 0x24:
    FUN_000172d0();
    if (*pcVar26 == '\0') goto code_r0x000182c0;
    goto code_r0x00017dd0;
  case 0x25:
    FUN_000172d0();
    cVar4 = *pcVar26;
    break;
  case 0x2b:
    FUN_00016f30();
    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&
       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;
    if (*pcVar26 != '\0') {
      puts("END-OF-CYCLE:");
    }
    DAT_000313e4 = DAT_000313e4 - 1;
    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;
    goto code_r0x00017e26;
  case 0x2d:
    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);
    puVar7 = &DAT_000313f8;
    goto code_r0x0001881e;
  case 0x2e:
    goto code_r0x00017f94;
  case 0x2f:
    pbVar23 = *(byte **)(piVar20[4] + 8);
    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {
      pvStack_102c = (void *)0x0;
      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);
      if (iVar6 == -1) {
        free(pvStack_102c);
      }
      else {
        iVar10 = FUN_00016790();
        *(undefined1 *)(iVar10 + 0x10) = 1;
        *(void **)(iVar10 + 4) = pvStack_102c;
        *(int *)(iVar10 + 8) = iVar6;
      }
    }
    goto LAB_00017de0;
  case 0x31:
    cVar4 = *pcVar26;
    if (DAT_00031408 == '\0') goto code_r0x00018263;
    DAT_00031408 = '\0';
    goto code_r0x00017de7;
  case 0x34:
    puVar7 = (undefined *)piVar20[4];
    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;
    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);
code_r0x0001881e:
    FUN_000178c0(puVar7);
    cVar4 = *pcVar26;
    goto code_r0x00017de7;
  case 0x3e:
    iVar6 = FUN_00016790();
    *(int *)(iVar6 + 4) = piVar20[4];
    *(int *)(iVar6 + 8) = piVar20[5];
    cVar4 = *pcVar26;
    goto code_r0x00017de7;
  case 0x3f:
  case 0x58:
    goto code_r0x00018860;
  case 0x40:
    if (piVar20[2] != 1) {
      FUN_000178c0(&DAT_000313f8);
    }
  case 0x41:
code_r0x00017f46:
    if (*pcVar26 == '\0') goto LAB_00017f53;
    puts("END-OF-CYCLE:");
    iVar6 = -1;
    goto code_r0x00017f58;
  case 0x42:
    iVar6 = piVar20[5];
    iVar10 = iVar6;
    FUN_00017840();
    if (iVar6 == 0) {
      FUN_00016f30();
      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");
      uVar16 = extraout_ECX;
    }
    else {
      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;
      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");
      uVar16 = extraout_ECX_00;
      if (DAT_000313fc != '\0') {
        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);
        DAT_000313fc = '\0';
        uVar16 = extraout_ECX_01;
      }
    }
    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;
    while ((pFVar14->_flags & 0x10) == 0) {
      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);
      if (0 < (int)sVar15) {
        if (iVar10 == 0) {
          FUN_00016f30();
        }
        else {
          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);
        }
      }
    }
    func_0x00012380(pFVar14);
    if (iVar10 == 0) {
      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {
        DAT_000313c8 = DAT_000313c8 + -1;
      }
      FUN_000176c0();
    }
    else if (DAT_00031419 != '\0') {
      FUN_0001a7e0(DAT_00031400);
    }
    goto LAB_00017de0;
  case 0x44:
    FUN_00017320();
    cVar4 = *pcVar26;
    break;
  case 0x45:
    FUN_00017320();
    cVar4 = *pcVar26;
    break;
  case 0x46:
    FUN_000178c0(&DAT_000313f8);
    cVar4 = *pcVar26;
    goto code_r0x00017de7;
  case 0x49:
    pcStack_106c = (char *)piVar20[4];
    if (pcStack_106c == (char *)0xffffffff) {
      pcStack_106c = DAT_0003123c;
    }
    if (DAT_000313fc != '\0') {
      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);
      DAT_000313fc = '\0';
    }
    if (uVar9 != 0) {
      pbVar13 = pbVar23 + uVar9;
      pcVar24 = (char *)0x0;
      do {
        bVar18 = *pbVar23;
        uVar5 = (uint)bVar18;
        if (((bVar18 & 0x80) == 0) &&
           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {
          pcVar12 = (char *)0x1;
          bStack_1020 = bVar18;
          if (*pbVar23 == 0x5c) {
            acStack_101f[0] = '\\';
            pcVar12 = (char *)0x2;
          }
        }
        else {
          bStack_1020 = 0x5c;
          switch(*pbVar23) {
          case 7:
            acStack_101f[0] = 'a';
            pcVar12 = (char *)0x2;
            break;
          case 8:
            acStack_101f[0] = 'b';
            pcVar12 = (char *)0x2;
            break;
          case 9:
            acStack_101f[0] = 't';
            pcVar12 = (char *)0x2;
            break;
          case 10:
            acStack_101f[0] = 'n';
            pcVar12 = (char *)0x2;
            break;
          case 0xb:
            acStack_101f[0] = 'v';
            pcVar12 = (char *)0x2;
            break;
          case 0xc:
            acStack_101f[0] = 'f';
            pcVar12 = (char *)0x2;
            break;
          case 0xd:
            acStack_101f[0] = 'r';
            pcVar12 = (char *)0x2;
            break;
          default:
            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);
            sVar15 = strlen(acStack_101f);
            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);
          }
        }
        pcVar24 = pcVar24 + (int)pcVar12;
        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {
          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);
          FUN_0001a640(&DAT_00031240,1,1,uVar16);
          pcVar24 = pcVar12;
        }
        pbVar23 = pbVar23 + 1;
        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);
      } while (pbVar23 != pbVar13);
    }
    FUN_0001a640(&UNK_00026f80,1,1,uVar16);
    FUN_0001a640(&DAT_00031240,1,1,uVar16);
    if (DAT_00031419 != '\0') {
      FUN_0001a7e0(uVar16);
    }
LAB_00017de0:
    cVar4 = *pcVar26;
code_r0x00017de7:
    piVar20 = piVar20 + 6;
    goto joined_r0x00017cbb;
  case 0x4b:
    if (DAT_00031418 == '\0') {
      FUN_000178c0(&DAT_000313f8);
    }
    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||
       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;
    if (*pcVar26 != '\0') goto code_r0x00017dd0;
    piVar20 = piVar20 + 6;
    goto joined_r0x00018523;
  case 0x4d:
    puVar7 = &DAT_000313f8;
    goto code_r0x00018030;
  case 0x4e:
    if (DAT_00031418 == '\0') {
      FUN_000178c0(&DAT_000313f8);
    }
    FUN_00017990();
code_r0x00017f94:
    iVar6 = piVar20[4];
    if (iVar6 == -1) {
      iVar6 = 0;
    }
    goto code_r0x00017f58;
  case 0x4f:
    if (piVar20[4] == 0) goto LAB_00017de0;
    piVar8 = (int *)FUN_00016790();
    *piVar8 = piVar20[4];
    cVar4 = *pcVar26;
    goto code_r0x00017de7;
  case 0x50:
    puVar1 = (undefined4 *)piVar20[4];
    FUN_00017840();
    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,
                         (*(byte *)(puVar1 + 4) >> 4) + 1);
    if (iVar6 == 0) goto code_r0x000188c9;
    uVar5 = *puRam00031370;
    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {
      puts("MATCHED REGEX REGISTERS");
      uVar5 = *puRam00031370;
      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {
        uVar9 = 0;
        do {
          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);
          uVar5 = puRam00031370[uVar9];
          if (uVar5 != puRam00031374[uVar9]) {
            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);
          }
          puts("\'");
          if (uRam0003136c <= uVar9 + 1) {
            uVar5 = *puRam00031370;
            goto code_r0x00018110;
          }
          uVar5 = puRam00031370[uVar9 + 1];
          uVar9 = uVar9 + 1;
        } while (uVar5 != 0xffffffff);
        uVar5 = *puRam00031370;
      }
    }
code_r0x00018110:
    uVar9 = *puRam00031374;
    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {
code_r0x00018127:
      uVar21 = 0;
      uVar22 = 0;
      uStack_1058 = 0;
      do {
        uStack_1060 = uVar9 - uVar5;
        if (uVar22 < uVar5) {
          uVar22 = uVar5;
          FUN_00016f30();
          uVar5 = uVar22;
        }
        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {
          uStack_1058 = uStack_1058 + 1;
          if (uStack_1058 < (uint)puVar1[2]) {
            if (uStack_1060 == 0) goto code_r0x0001817a;
            goto code_r0x00018190;
          }
          iVar6 = puVar1[1];
          DAT_00031408 = '\x01';
          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {
            uVar9 = *(uint *)(iVar6 + 8);
            if (*(int *)(iVar6 + 4) != 0) {
              FUN_000173c0();
            }
            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&
               (puRam00031374[uVar9] != puRam00031370[uVar9])) {
              FUN_000173c0();
            }
          }
          uVar22 = uVar5 + uStack_1060;
          uVar21 = *puRam00031374;
          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;
        }
        else {
code_r0x0001817a:
          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;
          uStack_1060 = 1;
code_r0x00018190:
          uVar22 = uVar5 + uStack_1060;
          FUN_00016f30();
          uVar21 = *puRam00031374;
        }
        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;
        uVar5 = (uint)*(byte *)(puVar1 + 4);
        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,
                             (*(byte *)(puVar1 + 4) >> 4) + 1);
        if (iVar6 == 0) goto code_r0x00018ba8;
        uVar5 = *puRam00031370;
        uVar9 = *puRam00031374;
      } while( true );
    }
    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {
      DAT_000313e4 = DAT_000313e4 - uVar9;
      DAT_000313e0 = DAT_000313e0 + uVar9;
      DAT_000313e8 = DAT_000313e8 - *puRam00031374;
      DAT_00031408 = '\x01';
    }
    else {
      if (uVar9 != DAT_000313e4) goto code_r0x00018127;
      DAT_00031408 = '\x01';
      bVar18 = *(byte *)(puVar1 + 4);
      DAT_000313e4 = uVar5;
    }
    goto code_r0x00018bf8;
  case 0x51:
    cVar4 = *pcVar26;
    if (DAT_00031408 == '\0') goto code_r0x00017de7;
    DAT_00031408 = '\0';
code_r0x00018263:
    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);
    goto joined_r0x00017cbb;
  case 0x54:
    puVar7 = (undefined *)piVar20[4];
    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;
code_r0x00018030:
    FUN_000178c0(puVar7);
    cVar4 = *pcVar26;
    goto code_r0x00017de7;
  case 0x55:
    FUN_00017220();
    if (*pcVar26 == '\0') goto code_r0x000182c0;
    FUN_00016620();
    goto code_r0x0001861e;
  case 0x56:
    if (DAT_000316c4 < 2) {
      pbVar13 = DAT_000313e0 + DAT_000313e4;
      if (DAT_000313e0 < pbVar13) {
        do {
          pbVar19 = pbVar23 + 1;
          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);
          pbVar23 = pbVar19;
        } while (pbVar13 != pbVar19);
      }
    }
    else {
      piVar8 = (int *)piVar20[4];
      uStack_1028 = 0;
      uStack_1024 = 0;
      if (DAT_000313e4 != 0) {
        uStack_1068 = 0;
        do {
          if ((DAT_000316c4 == 1) ||
             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,
                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {
            uVar5 = 1;
          }
          pcVar24 = (char *)*piVar8;
          if (pcVar24 != (char *)0x0) {
            iVar6 = 0;
            pbStack_105c = DAT_000313e0;
            pbVar23 = DAT_000313e0 + uStack_1068;
            do {
              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);
              if (iVar10 == 0) {
                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);
                pcVar24 = (char *)*puVar1;
                if (*pcVar24 == '\0') {
                  uStack_1060 = 1;
code_r0x00018c70:
                  if (uStack_1060 < uVar5) {
                    iVar6 = DAT_000313e4 + 1;
                    goto code_r0x0001841c;
                  }
                }
                else {
                  uStack_1060 = strlen(pcVar24);
                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;
                  iVar6 = DAT_000313e4 + 1;
                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {
                    FUN_000166d0();
                    pbStack_105c = DAT_000313e0;
                    iVar6 = DAT_000313e4 + 1;
                  }
code_r0x0001841c:
                  memmove(pbStack_105c + uStack_1068 + uStack_1060,
                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));
                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);
                  pcVar24 = (char *)*puVar1;
                  pbVar23 = DAT_000313e0 + uStack_1068;
                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);
                }
                memcpy(pbVar23,pcVar24,uStack_1060);
                break;
              }
              iVar6 = iVar6 + 8;
              pcVar24 = *(char **)((int)piVar8 + iVar6);
            } while (pcVar24 != (char *)0x0);
          }
          uStack_1068 = uStack_1068 + uVar5;
        } while (uStack_1068 < DAT_000313e4);
      }
    }
    goto code_r0x000188c9;
  case 0x57:
    DAT_000313e4 = 0;
    goto code_r0x000188c9;
  }
  if (cVar4 == '\0') goto code_r0x000182c0;
code_r0x0001861e:
  FUN_00016620();
  cVar4 = *pcVar26;
  goto code_r0x00017de7;
code_r0x00018ba8:
  if (uVar22 < DAT_000313e4) {
    FUN_00016f30(param_2,pcVar26,uVar5);
  }
code_r0x00018bcb:
  DAT_000313d0._0_1_ = (undefined1)DAT_000313ec;
  FUN_00017220();
  if ((uint)puVar1[2] <= uStack_1058) {
    bVar18 = *(byte *)(puVar1 + 4);
code_r0x00018bf8:
    if ((bVar18 & 2) != 0) {
      FUN_000178c0(&DAT_000313f8);
      bVar18 = *(byte *)(puVar1 + 4);
    }
    if ((bVar18 & 8) != 0) {
      FUN_00017840();
      FUN_00016f30();
      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");
      uVar16 = extraout_ECX_02;
      if (pFVar14 == (FILE *)0x0) {
code_r0x0001925a:
        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);
                    /* WARNING: Subroutine does not return */
        FUN_0001a340(uVar16);
      }
      bVar18 = (byte)pFVar14->_flags;
      while ((bVar18 & 0x10) == 0) {
        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);
        if (0 < (int)sVar15) {
          FUN_00016f30();
        }
        bVar18 = (byte)pFVar14->_flags;
      }
      func_0x00012380(pFVar14);
      FUN_000176c0();
      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {
        DAT_000313e4 = DAT_000313e4 - 1;
      }
      bVar18 = *(byte *)(puVar1 + 4);
    }
    if ((bVar18 >> 1 & 2) != 0) {
      FUN_000178c0(&DAT_000313f8);
    }
    if (puVar1[3] != 0) {
      FUN_000178c0(puVar1[3]);
    }
  }
code_r0x000188c9:
  if (*pcVar26 != '\0') {
code_r0x00017dd0:
    FUN_00016620();
    goto LAB_00017de0;
  }
code_r0x000182c0:
  piVar20 = piVar20 + 6;
joined_r0x00018523:
  if (piVar2 <= piVar20) goto LAB_00017e10;
  goto LAB_00017cfb;
code_r0x00018860:
  piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);
  cVar4 = *pcVar26;
  goto joined_r0x00017cbb;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00012c30
ADD EBX,0x19387
SUB ESP,0x106c
MOV EBP,dword ptr [EAX]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP],EDX
LEA EAX,[EAX + EAX*0x2]
MOV ESI,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0x105c],ESI
XOR ESI,ESI
LEA ESI,[EBP + EAX*0x8]
LEA EAX,[EBX + 0x414]
MOV dword ptr [ESP + 0xc],ESI
MOV dword ptr [ESP + 0x4],EAX
MOVZX EAX,byte ptr [EAX]
CMP EBP,ESI
JNC 0x00017df4
MOV ESI,dword ptr [EBX + 0xffffffdc]
MOV dword ptr [ESP + 0x30],ESI
LEA ESI,[ESI]
NOP
TEST AL,AL
JZ 0x00017cfb
MOV EAX,dword ptr [EBX + 0xffffffdc]
PUSH dword ptr [EAX]
LEA EAX,[EBX + 0xffff5f52]
PUSH 0x9
PUSH 0x1
PUSH EAX
CALL 0x000124f0
POP ECX
POP ESI
PUSH EBP
PUSH dword ptr [ESP + 0x24]
CALL 0x00015bb0
ADD ESP,0x10
MOV EAX,dword ptr [EBP]
TEST EAX,EAX
JZ 0x00017e6b
MOV EDX,dword ptr [EBP + 0x8]
MOV ECX,dword ptr [EBP + 0x4]
CMP EDX,0x1
JZ 0x00017e78
TEST ECX,ECX
JZ 0x00017fa8
CMP dword ptr [EAX],0x2
JNZ 0x00017ea0
CMP EDX,0x2
JZ 0x00017ef0
MOV ESI,dword ptr [ESP]
MOV EAX,dword ptr [EAX + 0x4]
CMP dword ptr [ESI + 0x8],EAX
JC 0x00017ef0
MOV EDX,dword ptr [ECX]
MOV dword ptr [EBP + 0x8],0x1
CMP EDX,0x2
JZ 0x00017ec1
JBE 0x00017e48
CMP EDX,0x4
JZ 0x00017f00
CMP EDX,0x5
JNZ 0x00017e56
MOV EAX,dword ptr [ESP]
MOV EDI,dword ptr [ECX + 0x8]
XOR EDX,EDX
MOV EAX,dword ptr [EAX + 0x8]
LEA ESI,[EAX + EDI*0x1]
DIV EDI
MOV EAX,0x1
SUB ESI,EDX
MOV dword ptr [ECX + 0x4],ESI
LEA ESI,[ESI]
MOVSX EDX,byte ptr [EBP + 0xc]
CMP EDX,EAX
JZ 0x00017de0
MOVSX EDX,byte ptr [EBP + 0xd]
LEA EAX,[EDX + -0x23]
CMP AL,0x5a
JA 0x00019025
MOVZX EAX,AL
MOV EDI,dword ptr [EBX + EAX*0x4 + 0xffff615c]
ADD EDI,EBX
JMP EDI
MOV EAX,dword ptr [ESP + 0x4]
MOVZX EAX,byte ptr [EAX]
ADD EBP,0x18
CMP dword ptr [ESP + 0xc],EBP
JA 0x00017cd0
LEA ESI,[EBX + 0x418]
TEST AL,AL
JZ 0x00017e10
SUB ESP,0xc
LEA EAX,[EBX + 0xffff5f5c]
PUSH EAX
CALL 0x00012320
ADD ESP,0x10
CMP byte ptr [ESI],0x0
JNZ 0x00017f53
MOVZX ECX,byte ptr [EBX + 0x3ec]
MOV EDX,dword ptr [EBX + 0x3e4]
SUB ESP,0xc
MOV EAX,dword ptr [EBX + 0x3e0]
LEA EBX,[EBX + 0x3f8]
PUSH EBX
CALL 0x000178c0
ADD ESP,0x10
JMP 0x00017f53
MOV EAX,0x1
CMP EDX,0x1
JZ 0x00017d88
MOV EDX,dword ptr [ESP]
MOV EAX,ECX
CALL 0x00017130
TEST AL,AL
JZ 0x00017e6b
MOV dword ptr [EBP + 0x8],0x2
MOV EAX,0x1
JMP 0x00017d88
CMP dword ptr [ECX],0x2
JNZ 0x00017e56
MOV EAX,dword ptr [ESP]
MOV EDX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [ECX + 0x4]
CMP EDX,EAX
JC 0x00017e91
MOV dword ptr [EBP + 0x8],0x2
CMP EDX,EAX
SETBE AL
MOVZX EAX,AL
JMP 0x00017d88
MOV EDX,dword ptr [ESP]
CALL 0x00017130
TEST AL,AL
JZ 0x00017ef0
MOV ECX,dword ptr [EBP + 0x4]
MOV dword ptr [EBP + 0x8],0x1
MOV EDX,dword ptr [ECX]
CMP EDX,0x2
JNZ 0x00017d50
MOV EAX,dword ptr [ESP]
MOV EDI,dword ptr [ECX + 0x4]
CMP dword ptr [EAX + 0x8],EDI
JC 0x00017e6b
MOV dword ptr [EBP + 0x8],0x2
JZ 0x00017e6b
MOV EDX,dword ptr [ESP]
MOV EAX,dword ptr [EBP]
CALL 0x00017130
MOVZX EAX,AL
JMP 0x00017d88
XOR EAX,EAX
JMP 0x00017d88
MOV EDI,dword ptr [ESP]
MOV EAX,dword ptr [ECX + 0x8]
ADD EAX,dword ptr [EDI + 0x8]
MOV dword ptr [ECX + 0x4],EAX
MOV EAX,0x1
JMP 0x00017d88
MOV EAX,0xffffffff
MOV ESI,dword ptr [ESP + 0x105c]
XOR ESI,dword ptr GS:[0x14]
JNZ 0x00019255
ADD ESP,0x106c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDX,dword ptr [ESP]
CALL 0x00017130
MOVZX EAX,AL
JMP 0x00017d88
SUB ESP,0x8
LEA EAX,[EBX + 0xffff5fbb]
PUSH EDX
PUSH EAX
CALL 0x0001a340
CALL 0x00025de0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\nint __regparm3 FUN_00017c70(int *param_1,int param_2)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  undefined *puVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  int *piVar8;\n  uint uVar9;\n  int iVar10;\n  ushort **ppuVar11;\n  char *pcVar12;\n  byte *pbVar13;\n  FILE *pFVar14;\n  size_t sVar15;\n  undefined4 uVar16;\n  uint *puVar17;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar18;\n  byte *pbVar19;\n  int *piVar20;\n  uint uVar21;\n  uint uVar22;\n  byte *pbVar23;\n  char *pcVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  char *pcVar26;\n  char *pcStack_106c;\n  uint uStack_1068;\n  uint uStack_1060;\n  byte *pbStack_105c;\n  uint uStack_1058;\n  undefined1 auStack_1030 [4];\n  void *pvStack_102c;\n  undefined4 uStack_1028;\n  undefined4 uStack_1024;\n  byte bStack_1020;\n  char acStack_101f [4095];\n  int local_20;\n  undefined4 uStack_14;\n  \n  puVar3 = PTR_stdout_00030fdc;\n  uStack_14 = 0x17c79;\n  piVar20 = (int *)*param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  piVar2 = piVar20 + param_1[2] * 6;\n  pcVar26 = &DAT_00031414;\n  cVar4 = DAT_00031414;\njoined_r0x00017cbb:\n  if (piVar2 <= piVar20) {\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00025de0();\n    }\n    return iVar6;\n  }\n  if (cVar4 != '\0') {\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    FUN_00015bb0(param_1,piVar20);\n  }\nLAB_00017cfb:\n  piVar8 = (int *)*piVar20;\n  if (piVar8 == (int *)0x0) {\nLAB_00017e6b:\n    uVar5 = 1;\n  }\n  else {\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }\n  uVar16 = DAT_00031400;\n  uVar9 = DAT_000313e4;\n  pbVar23 = DAT_000313e0;\n  if ((int)(char)piVar20[3] == uVar5) goto LAB_00017de0;\n  switch((int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff) {\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto LAB_00017de0;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));\n  case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;\n  case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;\n  case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;\n  case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;\n  case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;\n  case 0x2e:\n    goto code_r0x00017f94;\n  case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;\n  case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;\n  case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3f:\n  case 0x58:\n    goto code_r0x00018860;\n  case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n  case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;\n  case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;\n  case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;\n  case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;\n  case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;\n  case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;\n  case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;\n  case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;\n  case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;\n  }\n  if (cVar4 == '\0') goto code_r0x000182c0;\ncode_r0x0001861e:\n  FUN_00016620();\n  cVar4 = *pcVar26;\n  goto code_r0x00017de7;\ncode_r0x00018ba8:\n  if (uVar22 < DAT_000313e4) {\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }\ncode_r0x00018bcb:\n  DAT_000313d0._0_1_ = (undefined1)DAT_000313ec;\n  FUN_00017220();\n  if ((uint)puVar1[2] <= uStack_1058) {\n    bVar18 = *(byte *)(puVar1 + 4);\ncode_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }\n  }\ncode_r0x000188c9:\n  if (*pcVar26 != '\0') {\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }\ncode_r0x000182c0:\n  piVar20 = piVar20 + 6;\njoined_r0x00018523:\n  if (piVar2 <= piVar20) goto LAB_00017e10;\n  goto LAB_00017cfb;\ncode_r0x00018860:\n  piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n  cVar4 = *pcVar26;\n  goto joined_r0x00017cbb;\n}\n\n" comment comment (function_definition "int __regparm3 FUN_00017c70(int *param_1,int param_2)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  undefined *puVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  int *piVar8;\n  uint uVar9;\n  int iVar10;\n  ushort **ppuVar11;\n  char *pcVar12;\n  byte *pbVar13;\n  FILE *pFVar14;\n  size_t sVar15;\n  undefined4 uVar16;\n  uint *puVar17;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar18;\n  byte *pbVar19;\n  int *piVar20;\n  uint uVar21;\n  uint uVar22;\n  byte *pbVar23;\n  char *pcVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  char *pcVar26;\n  char *pcStack_106c;\n  uint uStack_1068;\n  uint uStack_1060;\n  byte *pbStack_105c;\n  uint uStack_1058;\n  undefined1 auStack_1030 [4];\n  void *pvStack_102c;\n  undefined4 uStack_1028;\n  undefined4 uStack_1024;\n  byte bStack_1020;\n  char acStack_101f [4095];\n  int local_20;\n  undefined4 uStack_14;\n  \n  puVar3 = PTR_stdout_00030fdc;\n  uStack_14 = 0x17c79;\n  piVar20 = (int *)*param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  piVar2 = piVar20 + param_1[2] * 6;\n  pcVar26 = &DAT_00031414;\n  cVar4 = DAT_00031414;\njoined_r0x00017cbb:\n  if (piVar2 <= piVar20) {\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00025de0();\n    }\n    return iVar6;\n  }\n  if (cVar4 != '\0') {\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    FUN_00015bb0(param_1,piVar20);\n  }\nLAB_00017cfb:\n  piVar8 = (int *)*piVar20;\n  if (piVar8 == (int *)0x0) {\nLAB_00017e6b:\n    uVar5 = 1;\n  }\n  else {\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }\n  uVar16 = DAT_00031400;\n  uVar9 = DAT_000313e4;\n  pbVar23 = DAT_000313e0;\n  if ((int)(char)piVar20[3] == uVar5) goto LAB_00017de0;\n  switch((int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff) {\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto LAB_00017de0;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));\n  case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;\n  case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;\n  case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;\n  case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;\n  case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;\n  case 0x2e:\n    goto code_r0x00017f94;\n  case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;\n  case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;\n  case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3f:\n  case 0x58:\n    goto code_r0x00018860;\n  case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n  case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;\n  case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;\n  case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;\n  case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;\n  case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;\n  case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;\n  case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;\n  case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;\n  case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;\n  }\n  if (cVar4 == '\0') goto code_r0x000182c0;\ncode_r0x0001861e:\n  FUN_00016620();\n  cVar4 = *pcVar26;\n  goto code_r0x00017de7;\ncode_r0x00018ba8:\n  if (uVar22 < DAT_000313e4) {\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }\ncode_r0x00018bcb:\n  DAT_000313d0._0_1_ = (undefined1)DAT_000313ec;\n  FUN_00017220();\n  if ((uint)puVar1[2] <= uStack_1058) {\n    bVar18 = *(byte *)(puVar1 + 4);\ncode_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }\n  }\ncode_r0x000188c9:\n  if (*pcVar26 != '\0') {\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }\ncode_r0x000182c0:\n  piVar20 = piVar20 + 6;\njoined_r0x00018523:\n  if (piVar2 <= piVar20) goto LAB_00017e10;\n  goto LAB_00017cfb;\ncode_r0x00018860:\n  piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n  cVar4 = *pcVar26;\n  goto joined_r0x00017cbb;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00017c70(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int *piVar2;\n  undefined *puVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  int *piVar8;\n  uint uVar9;\n  int iVar10;\n  ushort **ppuVar11;\n  char *pcVar12;\n  byte *pbVar13;\n  FILE *pFVar14;\n  size_t sVar15;\n  undefined4 uVar16;\n  uint *puVar17;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar18;\n  byte *pbVar19;\n  int *piVar20;\n  uint uVar21;\n  uint uVar22;\n  byte *pbVar23;\n  char *pcVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  char *pcVar26;\n  char *pcStack_106c;\n  uint uStack_1068;\n  uint uStack_1060;\n  byte *pbStack_105c;\n  uint uStack_1058;\n  undefined1 auStack_1030 [4];\n  void *pvStack_102c;\n  undefined4 uStack_1028;\n  undefined4 uStack_1024;\n  byte bStack_1020;\n  char acStack_101f [4095];\n  int local_20;\n  undefined4 uStack_14;\n  \n  puVar3 = PTR_stdout_00030fdc;\n  uStack_14 = 0x17c79;\n  piVar20 = (int *)*param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  piVar2 = piVar20 + param_1[2] * 6;\n  pcVar26 = &DAT_00031414;\n  cVar4 = DAT_00031414;\njoined_r0x00017cbb:\n  if (piVar2 <= piVar20) {\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00025de0();\n    }\n    return iVar6;\n  }\n  if (cVar4 != '\0') {\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    FUN_00015bb0(param_1,piVar20);\n  }\nLAB_00017cfb:\n  piVar8 = (int *)*piVar20;\n  if (piVar8 == (int *)0x0) {\nLAB_00017e6b:\n    uVar5 = 1;\n  }\n  else {\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }\n  uVar16 = DAT_00031400;\n  uVar9 = DAT_000313e4;\n  pbVar23 = DAT_000313e0;\n  if ((int)(char)piVar20[3] == uVar5) goto LAB_00017de0;\n  switch((int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff) {\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto LAB_00017de0;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));\n  case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;\n  case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;\n  case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;\n  case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;\n  case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;\n  case 0x2e:\n    goto code_r0x00017f94;\n  case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;\n  case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;\n  case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3f:\n  case 0x58:\n    goto code_r0x00018860;\n  case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n  case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;\n  case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;\n  case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;\n  case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;\n  case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;\n  case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;\n  case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;\n  case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;\n  case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;\n  }\n  if (cVar4 == '\0') goto code_r0x000182c0;\ncode_r0x0001861e:\n  FUN_00016620();\n  cVar4 = *pcVar26;\n  goto code_r0x00017de7;\ncode_r0x00018ba8:\n  if (uVar22 < DAT_000313e4) {\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }\ncode_r0x00018bcb:\n  DAT_000313d0._0_1_ = (undefined1)DAT_000313ec;\n  FUN_00017220();\n  if ((uint)puVar1[2] <= uStack_1058) {\n    bVar18 = *(byte *)(puVar1 + 4);\ncode_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }\n  }\ncode_r0x000188c9:\n  if (*pcVar26 != '\0') {\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }\ncode_r0x000182c0:\n  piVar20 = piVar20 + 6;\njoined_r0x00018523:\n  if (piVar2 <= piVar20) goto LAB_00017e10;\n  goto LAB_00017cfb;\ncode_r0x00018860:\n  piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n  cVar4 = *pcVar26;\n  goto joined_r0x00017cbb;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "ushort **ppuVar11;" type_identifier (pointer_declarator "**ppuVar11" * (pointer_declarator "*ppuVar11" * identifier)) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "FILE *pFVar14;" type_identifier (pointer_declarator "*pFVar14" * identifier) ;) (declaration "size_t sVar15;" primitive_type identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_01;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_02;" type_identifier identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "char *pcVar26;" primitive_type (pointer_declarator "*pcVar26" * identifier) ;) (declaration "char *pcStack_106c;" primitive_type (pointer_declarator "*pcStack_106c" * identifier) ;) (declaration "uint uStack_1068;" type_identifier identifier ;) (declaration "uint uStack_1060;" type_identifier identifier ;) (declaration "byte *pbStack_105c;" type_identifier (pointer_declarator "*pbStack_105c" * identifier) ;) (declaration "uint uStack_1058;" type_identifier identifier ;) (declaration "undefined1 auStack_1030 [4];" type_identifier (array_declarator "auStack_1030 [4]" identifier [ number_literal ]) ;) (declaration "void *pvStack_102c;" primitive_type (pointer_declarator "*pvStack_102c" * identifier) ;) (declaration "undefined4 uStack_1028;" type_identifier identifier ;) (declaration "undefined4 uStack_1024;" type_identifier identifier ;) (declaration "byte bStack_1020;" type_identifier identifier ;) (declaration "char acStack_101f [4095];" primitive_type (array_declarator "acStack_101f [4095]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "puVar3 = PTR_stdout_00030fdc;" (assignment_expression "puVar3 = PTR_stdout_00030fdc" identifier = identifier) ;) (expression_statement "uStack_14 = 0x17c79;" (assignment_expression "uStack_14 = 0x17c79" identifier = number_literal) ;) (expression_statement "piVar20 = (int *)*param_1;" (assignment_expression "piVar20 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (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 "piVar2 = piVar20 + param_1[2] * 6;" (assignment_expression "piVar2 = piVar20 + param_1[2] * 6" identifier = (binary_expression "piVar20 + param_1[2] * 6" identifier + (binary_expression "param_1[2] * 6" (subscript_expression "param_1[2]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "pcVar26 = &DAT_00031414;" (assignment_expression "pcVar26 = &DAT_00031414" identifier = (pointer_expression "&DAT_00031414" & identifier)) ;) (expression_statement "cVar4 = DAT_00031414;" (assignment_expression "cVar4 = DAT_00031414" identifier = identifier) ;) (labeled_statement "joined_r0x00017cbb:\n  if (piVar2 <= piVar20) {\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00025de0();\n    }\n    return iVar6;\n  }" statement_identifier : (if_statement "if (piVar2 <= piVar20) {\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00025de0();\n    }\n    return iVar6;\n  }" if (parenthesized_expression "(piVar2 <= piVar20)" ( (binary_expression "piVar2 <= piVar20" identifier <= identifier) )) (compound_statement "{\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00025de0();\n    }\n    return iVar6;\n  }" { (if_statement "if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      puts("END-OF-CYCLE:");\n    }" { (expression_statement "puts("END-OF-CYCLE:");" (call_expression "puts("END-OF-CYCLE:")" identifier (argument_list "("END-OF-CYCLE:")" ( (string_literal ""END-OF-CYCLE:"" " string_content ") ))) ;) })) (labeled_statement "LAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }" statement_identifier : (if_statement "if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }" if (parenthesized_expression "(DAT_00031418 == '\0')" ( (binary_expression "DAT_00031418 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }" { (labeled_statement "code_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);" statement_identifier : (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" identifier (argument_list "(&DAT_000313f8)" ( (pointer_expression "&DAT_000313f8" & identifier) ))) ;)) }))) (labeled_statement "LAB_00017f53:\n    iVar6 = -1;" statement_identifier : (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;)) (labeled_statement "code_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00025de0();\n    }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00025de0();\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_00025de0();\n    }" { comment (expression_statement "FUN_00025de0();" (call_expression "FUN_00025de0()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar6;" return identifier ;) }))) (if_statement "if (cVar4 != '\0') {\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    FUN_00015bb0(param_1,piVar20);\n  }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    FUN_00015bb0(param_1,piVar20);\n  }" { (expression_statement "fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);" (call_expression "fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc)" identifier (argument_list "("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc)" ( (string_literal ""COMMAND: "" " string_content ") , number_literal , number_literal , (pointer_expression "*(FILE **)PTR_stdout_00030fdc" * (cast_expression "(FILE **)PTR_stdout_00030fdc" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_00015bb0(param_1,piVar20);" (call_expression "FUN_00015bb0(param_1,piVar20)" identifier (argument_list "(param_1,piVar20)" ( identifier , identifier ))) ;) })) (labeled_statement "LAB_00017cfb:\n  piVar8 = (int *)*piVar20;" statement_identifier : (expression_statement "piVar8 = (int *)*piVar20;" (assignment_expression "piVar8 = (int *)*piVar20" identifier = (cast_expression "(int *)*piVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar20" * identifier))) ;)) (if_statement "if (piVar8 == (int *)0x0) {\nLAB_00017e6b:\n    uVar5 = 1;\n  }\n  else {\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00017e6b:\n    uVar5 = 1;\n  }" { (labeled_statement "LAB_00017e6b:\n    uVar5 = 1;" statement_identifier : (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;)) }) (else_clause "else {\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }" else (compound_statement "{\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }" { (expression_statement "puVar17 = (uint *)piVar20[1];" (assignment_expression "puVar17 = (uint *)piVar20[1]" identifier = (cast_expression "(uint *)piVar20[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar20[1]" identifier [ number_literal ]))) ;) (if_statement "if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" if (parenthesized_expression "(piVar20[2] == 1)" ( (binary_expression "piVar20[2] == 1" (subscript_expression "piVar20[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }" { (if_statement "if (*puVar17 != 2) goto LAB_00017e56;" if (parenthesized_expression "(*puVar17 != 2)" ( (binary_expression "*puVar17 != 2" (pointer_expression "*puVar17" * identifier) != number_literal) )) (goto_statement "goto LAB_00017e56;" goto statement_identifier ;)) (expression_statement "uVar5 = *(uint *)(param_2 + 8);" (assignment_expression "uVar5 = *(uint *)(param_2 + 8)" identifier = (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = puVar17[1];" (assignment_expression "uVar9 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }" if (parenthesized_expression "(uVar9 <= uVar5)" ( (binary_expression "uVar9 <= uVar5" identifier <= identifier) )) (compound_statement "{\n        piVar20[2] = 2;\n      }" { (expression_statement "piVar20[2] = 2;" (assignment_expression "piVar20[2] = 2" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "uVar5 = (uint)(uVar5 <= uVar9);" (assignment_expression "uVar5 = (uint)(uVar5 <= uVar9)" identifier = (call_expression "(uint)(uVar5 <= uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 <= uVar9)" ( (binary_expression "uVar5 <= uVar9" identifier <= identifier) )))) ;) }) (else_clause "else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" else (if_statement "if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" if (parenthesized_expression "(puVar17 == (uint *)0x0)" ( (binary_expression "puVar17 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" { (expression_statement "uVar5 = FUN_00017130();" (assignment_expression "uVar5 = FUN_00017130()" identifier = (call_expression "FUN_00017130()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = uVar5 & 0xff;" (assignment_expression "uVar5 = uVar5 & 0xff" identifier = (binary_expression "uVar5 & 0xff" identifier & number_literal)) ;) }) (else_clause "else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" else (if_statement "if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" if (parenthesized_expression "(*piVar8 == 2)" ( (binary_expression "*piVar8 == 2" (pointer_expression "*piVar8" * identifier) == number_literal) )) (compound_statement "{\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }" { (if_statement "if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }" if (parenthesized_expression "((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1]))" ( (binary_expression "(piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])" (parenthesized_expression "(piVar20[2] == 2)" ( (binary_expression "piVar20[2] == 2" (subscript_expression "piVar20[2]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "(*(uint *)(param_2 + 8) < (uint)piVar8[1])" ( (binary_expression "*(uint *)(param_2 + 8) < (uint)piVar8[1]" (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) < (cast_expression "(uint)piVar8[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar8[1]" identifier [ number_literal ]))) ))) )) (compound_statement "{\nLAB_00017ef0:\n        uVar5 = 0;\n      }" { (labeled_statement "LAB_00017ef0:\n        uVar5 = 0;" statement_identifier : (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }" else (compound_statement "{\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }" { (expression_statement "uVar9 = *puVar17;" (assignment_expression "uVar9 = *puVar17" identifier = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "piVar20[2] = 1;" (assignment_expression "piVar20[2] = 1" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "bVar25 = uVar9 == 2;" (assignment_expression "bVar25 = uVar9 == 2" identifier = (binary_expression "uVar9 == 2" identifier == number_literal)) ;) (if_statement "if (bVar25) goto LAB_00017ec1;" if (parenthesized_expression "(bVar25)" ( identifier )) (goto_statement "goto LAB_00017ec1;" goto statement_identifier ;)) (labeled_statement "LAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" statement_identifier : (if_statement "if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" if (parenthesized_expression "(uVar9 < 2 || bVar25)" ( (binary_expression "uVar9 < 2 || bVar25" (binary_expression "uVar9 < 2" identifier < number_literal) || identifier) )) (compound_statement "{\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }" if (parenthesized_expression "(uVar9 != 1)" ( (binary_expression "uVar9 != 1" identifier != number_literal) )) (compound_statement "{\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }" { (labeled_statement "LAB_00017e56:\n            cVar4 = FUN_00017130();" statement_identifier : (expression_statement "cVar4 = FUN_00017130();" (assignment_expression "cVar4 = FUN_00017130()" identifier = (call_expression "FUN_00017130()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              piVar20[2] = 2;\n            }" { (expression_statement "piVar20[2] = 2;" (assignment_expression "piVar20[2] = 2" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = number_literal) ;) })) (goto_statement "goto LAB_00017e6b;" goto statement_identifier ;) })) }) (else_clause "else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" else (if_statement "if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" if (parenthesized_expression "(uVar9 == 4)" ( (binary_expression "uVar9 == 4" identifier == number_literal) )) (compound_statement "{\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }" { (expression_statement "puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);" (assignment_expression "puVar17[1] = puVar17[2] + *(int *)(param_2 + 8)" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = (binary_expression "puVar17[2] + *(int *)(param_2 + 8)" (subscript_expression "puVar17[2]" identifier [ number_literal ]) + (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" else (compound_statement "{\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" { (if_statement "if (uVar9 != 5) goto LAB_00017e56;" if (parenthesized_expression "(uVar9 != 5)" ( (binary_expression "uVar9 != 5" identifier != number_literal) )) (goto_statement "goto LAB_00017e56;" goto statement_identifier ;)) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (expression_statement "puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];" (assignment_expression "puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2]" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = (binary_expression "(*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2]" (parenthesized_expression "(*(uint *)(param_2 + 8) + puVar17[2])" ( (binary_expression "*(uint *)(param_2 + 8) + puVar17[2]" (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) + (subscript_expression "puVar17[2]" identifier [ number_literal ])) )) - (binary_expression "*(uint *)(param_2 + 8) % puVar17[2]" (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) % (subscript_expression "puVar17[2]" identifier [ number_literal ])))) ;) })))))) }))) }) (else_clause "else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" else (compound_statement "{\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" { (expression_statement "cVar4 = FUN_00017130();" (assignment_expression "cVar4 = FUN_00017130()" identifier = (call_expression "FUN_00017130()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == '\0') goto LAB_00017ef0;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00017ef0;" goto statement_identifier ;)) (expression_statement "puVar17 = (uint *)piVar20[1];" (assignment_expression "puVar17 = (uint *)piVar20[1]" identifier = (cast_expression "(uint *)piVar20[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar20[1]" identifier [ number_literal ]))) ;) (expression_statement "piVar20[2] = 1;" (assignment_expression "piVar20[2] = 1" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = *puVar17;" (assignment_expression "uVar9 = *puVar17" identifier = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "bVar25 = uVar9 == 2;" (assignment_expression "bVar25 = uVar9 == 2" identifier = (binary_expression "uVar9 == 2" identifier == number_literal)) ;) (if_statement "if (!bVar25) goto LAB_00017d50;" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (goto_statement "goto LAB_00017d50;" goto statement_identifier ;)) (labeled_statement "LAB_00017ec1:\n      uVar5 = puVar17[1];" statement_identifier : (expression_statement "uVar5 = puVar17[1];" (assignment_expression "uVar5 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;)) (expression_statement "uVar9 = *(uint *)(param_2 + 8);" (assignment_expression "uVar9 = *(uint *)(param_2 + 8)" identifier = (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;" if (parenthesized_expression "((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5))" ( (binary_expression "(uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)" (parenthesized_expression "(uVar9 < uVar5)" ( (binary_expression "uVar9 < uVar5" identifier < identifier) )) || (parenthesized_expression "(piVar20[2] = 2, uVar9 == uVar5)" ( (comma_expression "piVar20[2] = 2, uVar9 == uVar5" (assignment_expression "piVar20[2] = 2" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = number_literal) , (binary_expression "uVar9 == uVar5" identifier == identifier)) ))) )) (goto_statement "goto LAB_00017e6b;" goto statement_identifier ;)) (expression_statement "uVar5 = FUN_00017130();" (assignment_expression "uVar5 = FUN_00017130()" identifier = (call_expression "FUN_00017130()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = uVar5 & 0xff;" (assignment_expression "uVar5 = uVar5 & 0xff" identifier = (binary_expression "uVar5 & 0xff" identifier & number_literal)) ;) }))))))) }))) (expression_statement "uVar16 = DAT_00031400;" (assignment_expression "uVar16 = DAT_00031400" identifier = identifier) ;) (expression_statement "uVar9 = DAT_000313e4;" (assignment_expression "uVar9 = DAT_000313e4" identifier = identifier) ;) (expression_statement "pbVar23 = DAT_000313e0;" (assignment_expression "pbVar23 = DAT_000313e0" identifier = identifier) ;) (if_statement "if ((int)(char)piVar20[3] == uVar5) goto LAB_00017de0;" if (parenthesized_expression "((int)(char)piVar20[3] == uVar5)" ( (binary_expression "(int)(char)piVar20[3] == uVar5" (cast_expression "(int)(char)piVar20[3]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)piVar20[3]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar20[3]" identifier [ number_literal ]))) == identifier) )) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (switch_statement "switch((int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff) {\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto LAB_00017de0;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));\n  case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;\n  case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;\n  case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;\n  case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;\n  case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;\n  case 0x2e:\n    goto code_r0x00017f94;\n  case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;\n  case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;\n  case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3f:\n  case 0x58:\n    goto code_r0x00018860;\n  case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n  case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;\n  case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;\n  case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;\n  case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;\n  case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;\n  case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;\n  case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;\n  case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;\n  case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;\n  }" switch (parenthesized_expression "((int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff)" ( (binary_expression "(int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff" (binary_expression "(int)*(char *)((int)piVar20 + 0xd) - 0x23U" (cast_expression "(int)*(char *)((int)piVar20 + 0xd)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)((int)piVar20 + 0xd)" * (cast_expression "(char *)((int)piVar20 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 0xd)" ( (binary_expression "(int)piVar20 + 0xd" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) - number_literal) & number_literal) )) (compound_statement "{\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto LAB_00017de0;\n  default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));\n  case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;\n  case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;\n  case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;\n  case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;\n  case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;\n  case 0x2e:\n    goto code_r0x00017f94;\n  case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;\n  case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;\n  case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3f:\n  case 0x58:\n    goto code_r0x00018860;\n  case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n  case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;\n  case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;\n  case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;\n  case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;\n  case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;\n  case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;\n  case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;\n  case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;\n  case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;\n  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x5a:\n    goto LAB_00017de0;" case number_literal : (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));" default : comment (expression_statement "FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));" (call_expression "FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd))" identifier (argument_list "("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd))" ( (string_literal ""INTERNAL ERROR: Bad cmd %c"" " string_content ") , (cast_expression "(int)*(char *)((int)piVar20 + 0xd)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)((int)piVar20 + 0xd)" * (cast_expression "(char *)((int)piVar20 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 0xd)" ( (binary_expression "(int)piVar20 + 0xd" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;)) (case_statement "case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;" case number_literal : (if_statement "if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" if (parenthesized_expression "(DAT_000313fc != '\0')" ( (binary_expression "DAT_000313fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" { (expression_statement "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);" (call_expression "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400)" identifier (argument_list "(&DAT_00031240,1,1,DAT_00031400)" ( (pointer_expression "&DAT_00031240" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "DAT_000313fc = '\0';" (assignment_expression "DAT_000313fc = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "puVar7 = &UNK_00026fb0;" (assignment_expression "puVar7 = &UNK_00026fb0" identifier = (pointer_expression "&UNK_00026fb0" & identifier)) ;) (expression_statement "uVar16 = *(undefined4 *)(param_2 + 8);" (assignment_expression "uVar16 = *(undefined4 *)(param_2 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (goto_statement "goto code_r0x00018a05;" goto statement_identifier ;)) (case_statement "case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;" case number_literal : (expression_statement "iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);" (assignment_expression "iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" identifier = (call_expression "FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" identifier (argument_list "(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" ( identifier , (cast_expression "(int)(char)DAT_00031240" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)DAT_00031240" ( (type_descriptor "char" primitive_type) ) identifier)) , identifier )))) ;) (if_statement "if (iVar6 == 0) goto LAB_00017f53;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00017f53;" goto statement_identifier ;)) (expression_statement "DAT_000313e0 = (byte *)(iVar6 + 1);" (assignment_expression "DAT_000313e0 = (byte *)(iVar6 + 1)" identifier = (cast_expression "(byte *)(iVar6 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);" (assignment_expression "DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23)" identifier = (binary_expression "DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23)" identifier - (parenthesized_expression "((int)DAT_000313e0 - (int)pbVar23)" ( (binary_expression "(int)DAT_000313e0 - (int)pbVar23" (cast_expression "(int)DAT_000313e0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar20 = (int *)*param_1;" (assignment_expression "piVar20 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);" (assignment_expression "DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23)" identifier = (binary_expression "uVar9 - ((int)DAT_000313e0 - (int)pbVar23)" identifier - (parenthesized_expression "((int)DAT_000313e0 - (int)pbVar23)" ( (binary_expression "(int)DAT_000313e0 - (int)pbVar23" (cast_expression "(int)DAT_000313e0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (*pcVar26 == '\0') goto joined_r0x00018523;" if (parenthesized_expression "(*pcVar26 == '\0')" ( (binary_expression "*pcVar26 == '\0'" (pointer_expression "*pcVar26" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto joined_r0x00018523;" goto statement_identifier ;)) (expression_statement "FUN_00016620();" (call_expression "FUN_00016620()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto joined_r0x00017cbb;" goto statement_identifier ;)) (case_statement "case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" case number_literal : (if_statement "if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" if (parenthesized_expression "(DAT_000313fc != '\0')" ( (binary_expression "DAT_000313fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" { (expression_statement "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);" (call_expression "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400)" identifier (argument_list "(&DAT_00031240,1,1,DAT_00031400)" ( (pointer_expression "&DAT_00031240" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "DAT_000313fc = '\0';" (assignment_expression "DAT_000313fc = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "puVar7 = &UNK_00026fb6;" (assignment_expression "puVar7 = &UNK_00026fb6" identifier = (pointer_expression "&UNK_00026fb6" & identifier)) ;) (expression_statement "uVar16 = *(undefined4 *)(param_2 + 0x18);" (assignment_expression "uVar16 = *(undefined4 *)(param_2 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x18)" * (cast_expression "(undefined4 *)(param_2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);" statement_identifier : (expression_statement "__fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);" (call_expression "__fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240)" identifier (argument_list "(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240)" ( identifier , number_literal , identifier , identifier , (cast_expression "(int)(char)DAT_00031240" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)DAT_00031240" ( (type_descriptor "char" primitive_type) ) identifier)) ))) ;)) (if_statement "if (DAT_00031419 == '\0') goto LAB_00017de0;" if (parenthesized_expression "(DAT_00031419 == '\0')" ( (binary_expression "DAT_00031419 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (expression_statement "FUN_0001a7e0(DAT_00031400);" (call_expression "FUN_0001a7e0(DAT_00031400)" identifier (argument_list "(DAT_00031400)" ( identifier ))) ;) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;)) (case_statement "case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;" case number_literal : (expression_statement "FUN_000172d0();" (call_expression "FUN_000172d0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*pcVar26 == '\0') goto code_r0x000182c0;" if (parenthesized_expression "(*pcVar26 == '\0')" ( (binary_expression "*pcVar26 == '\0'" (pointer_expression "*pcVar26" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000182c0;" goto statement_identifier ;)) (goto_statement "goto code_r0x00017dd0;" goto statement_identifier ;)) (case_statement "case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;" case number_literal : (expression_statement "FUN_000172d0();" (call_expression "FUN_000172d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;" case number_literal : (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" identifier (argument_list "()" ( ))) ;) (if_statement "if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;" if (parenthesized_expression "(((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0'))" ( (binary_expression "((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')" (parenthesized_expression "((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0'))" ( (binary_expression "(DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')" (parenthesized_expression "(DAT_00031390 != 0)" ( (binary_expression "DAT_00031390 != 0" identifier != number_literal) )) || (parenthesized_expression "(cVar4 = FUN_00017090(), cVar4 == '\0')" ( (comma_expression "cVar4 = FUN_00017090(), cVar4 == '\0'" (assignment_expression "cVar4 = FUN_00017090()" identifier = (call_expression "FUN_00017090()" identifier (argument_list "()" ( )))) , (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "(cVar4 = FUN_00017b40(), cVar4 != '\0')" ( (comma_expression "cVar4 = FUN_00017b40(), cVar4 != '\0'" (assignment_expression "cVar4 = FUN_00017b40()" identifier = (call_expression "FUN_00017b40()" identifier (argument_list "()" ( )))) , (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto code_r0x000188c9;" goto statement_identifier ;)) (if_statement "if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }" if (parenthesized_expression "(*pcVar26 != '\0')" ( (binary_expression "*pcVar26 != '\0'" (pointer_expression "*pcVar26" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      puts("END-OF-CYCLE:");\n    }" { (expression_statement "puts("END-OF-CYCLE:");" (call_expression "puts("END-OF-CYCLE:")" identifier (argument_list "("END-OF-CYCLE:")" ( (string_literal ""END-OF-CYCLE:"" " string_content ") ))) ;) })) (expression_statement "DAT_000313e4 = DAT_000313e4 - 1;" (assignment_expression "DAT_000313e4 = DAT_000313e4 - 1" identifier = (binary_expression "DAT_000313e4 - 1" identifier - number_literal)) ;) (if_statement "if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;" if (parenthesized_expression "((DAT_000316e0 != 0) || (DAT_00031418 != '\0'))" ( (binary_expression "(DAT_000316e0 != 0) || (DAT_00031418 != '\0')" (parenthesized_expression "(DAT_000316e0 != 0)" ( (binary_expression "DAT_000316e0 != 0" identifier != number_literal) )) || (parenthesized_expression "(DAT_00031418 != '\0')" ( (binary_expression "DAT_00031418 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00017f53;" goto statement_identifier ;)) (goto_statement "goto code_r0x00017e26;" goto statement_identifier ;)) (case_statement "case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;" case number_literal : (expression_statement "FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);" (call_expression "FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" identifier (argument_list "(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" ( identifier , (cast_expression "(int)(char)DAT_00031240" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)DAT_00031240" ( (type_descriptor "char" primitive_type) ) identifier)) , identifier ))) ;) (expression_statement "puVar7 = &DAT_000313f8;" (assignment_expression "puVar7 = &DAT_000313f8" identifier = (pointer_expression "&DAT_000313f8" & identifier)) ;) (goto_statement "goto code_r0x0001881e;" goto statement_identifier ;)) (case_statement "case 0x2e:\n    goto code_r0x00017f94;" case number_literal : (goto_statement "goto code_r0x00017f94;" goto statement_identifier ;)) (case_statement "case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;" case number_literal : (expression_statement "pbVar23 = *(byte **)(piVar20[4] + 8);" (assignment_expression "pbVar23 = *(byte **)(piVar20[4] + 8)" identifier = (pointer_expression "*(byte **)(piVar20[4] + 8)" * (cast_expression "(byte **)(piVar20[4] + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar20[4] + 8)" ( (binary_expression "piVar20[4] + 8" (subscript_expression "piVar20[4]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }" if (parenthesized_expression "((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0))" ( (binary_expression "(pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)" (parenthesized_expression "(pbVar23 != (byte *)0x0)" ( (binary_expression "pbVar23 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((*pbVar23 & 0x10) == 0)" ( (binary_expression "(*pbVar23 & 0x10) == 0" (parenthesized_expression "(*pbVar23 & 0x10)" ( (binary_expression "*pbVar23 & 0x10" (pointer_expression "*pbVar23" * identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }" { (expression_statement "pvStack_102c = (void *)0x0;" (assignment_expression "pvStack_102c = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);" (assignment_expression "iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23)" identifier = (call_expression "FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23)" identifier (argument_list "(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23)" ( (pointer_expression "&pvStack_102c" & identifier) , identifier , (cast_expression "(int)(char)DAT_00031240" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)DAT_00031240" ( (type_descriptor "char" primitive_type) ) identifier)) , identifier )))) ;) (if_statement "if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n        free(pvStack_102c);\n      }" { (expression_statement "free(pvStack_102c);" (call_expression "free(pvStack_102c)" identifier (argument_list "(pvStack_102c)" ( identifier ))) ;) }) (else_clause "else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }" else (compound_statement "{\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }" { (expression_statement "iVar10 = FUN_00016790();" (assignment_expression "iVar10 = FUN_00016790()" identifier = (call_expression "FUN_00016790()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined1 *)(iVar10 + 0x10) = 1;" (assignment_expression "*(undefined1 *)(iVar10 + 0x10) = 1" (pointer_expression "*(undefined1 *)(iVar10 + 0x10)" * (cast_expression "(undefined1 *)(iVar10 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(void **)(iVar10 + 4) = pvStack_102c;" (assignment_expression "*(void **)(iVar10 + 4) = pvStack_102c" (pointer_expression "*(void **)(iVar10 + 4)" * (cast_expression "(void **)(iVar10 + 4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar10 + 8) = iVar6;" (assignment_expression "*(int *)(iVar10 + 8) = iVar6" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) = identifier) ;) }))) })) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (case_statement "case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;" case number_literal : (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (if_statement "if (DAT_00031408 == '\0') goto code_r0x00018263;" if (parenthesized_expression "(DAT_00031408 == '\0')" ( (binary_expression "DAT_00031408 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00018263;" goto statement_identifier ;)) (expression_statement "DAT_00031408 = '\0';" (assignment_expression "DAT_00031408 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;)) (case_statement "case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" case number_literal : (expression_statement "puVar7 = (undefined *)piVar20[4];" (assignment_expression "puVar7 = (undefined *)piVar20[4]" identifier = (cast_expression "(undefined *)piVar20[4]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar20[4]" identifier [ number_literal ]))) ;) (if_statement "if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;" if (parenthesized_expression "(*(int *)(puVar7 + 8) == 0)" ( (binary_expression "*(int *)(puVar7 + 8) == 0" (pointer_expression "*(int *)(puVar7 + 8)" * (cast_expression "(int *)(puVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (expression_statement "FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);" (call_expression "FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" identifier (argument_list "(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" ( identifier , (cast_expression "(int)(char)DAT_00031240" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)DAT_00031240" ( (type_descriptor "char" primitive_type) ) identifier)) , identifier ))) ;) (labeled_statement "code_r0x0001881e:\n    FUN_000178c0(puVar7);" statement_identifier : (expression_statement "FUN_000178c0(puVar7);" (call_expression "FUN_000178c0(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;)) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;)) (case_statement "case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" case number_literal : (expression_statement "iVar6 = FUN_00016790();" (assignment_expression "iVar6 = FUN_00016790()" identifier = (call_expression "FUN_00016790()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(iVar6 + 4) = piVar20[4];" (assignment_expression "*(int *)(iVar6 + 4) = piVar20[4]" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = (subscript_expression "piVar20[4]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar6 + 8) = piVar20[5];" (assignment_expression "*(int *)(iVar6 + 8) = piVar20[5]" (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) = (subscript_expression "piVar20[5]" identifier [ number_literal ])) ;) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;)) (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x58:\n    goto code_r0x00018860;" case number_literal : (goto_statement "goto code_r0x00018860;" goto statement_identifier ;)) (case_statement "case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }" case number_literal : (if_statement "if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }" if (parenthesized_expression "(piVar20[2] != 1)" ( (binary_expression "piVar20[2] != 1" (subscript_expression "piVar20[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_000178c0(&DAT_000313f8);\n    }" { (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" identifier (argument_list "(&DAT_000313f8)" ( (pointer_expression "&DAT_000313f8" & identifier) ))) ;) }))) (case_statement "case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;" case number_literal : (labeled_statement "code_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;" statement_identifier : (if_statement "if (*pcVar26 == '\0') goto LAB_00017f53;" if (parenthesized_expression "(*pcVar26 == '\0')" ( (binary_expression "*pcVar26 == '\0'" (pointer_expression "*pcVar26" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00017f53;" goto statement_identifier ;))) (expression_statement "puts("END-OF-CYCLE:");" (call_expression "puts("END-OF-CYCLE:")" identifier (argument_list "("END-OF-CYCLE:")" ( (string_literal ""END-OF-CYCLE:"" " string_content ") ))) ;) (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (goto_statement "goto code_r0x00017f58;" goto statement_identifier ;)) (case_statement "case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;" case number_literal : (expression_statement "iVar6 = piVar20[5];" (assignment_expression "iVar6 = piVar20[5]" identifier = (subscript_expression "piVar20[5]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = iVar6;" (assignment_expression "iVar10 = iVar6" identifier = identifier) ;) (expression_statement "FUN_00017840();" (call_expression "FUN_00017840()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }" { (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" identifier (argument_list "()" ( ))) ;) (expression_statement "pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");" (assignment_expression "pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r")" identifier = (cast_expression "(FILE *)func_0x00012160(DAT_000313e0,"r")" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "func_0x00012160(DAT_000313e0,"r")" identifier (argument_list "(DAT_000313e0,"r")" ( identifier , (string_literal ""r"" " string_content ") ))))) ;) (expression_statement "uVar16 = extraout_ECX;" (assignment_expression "uVar16 = extraout_ECX" identifier = identifier) ;) }) (else_clause "else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }" else (compound_statement "{\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }" { (expression_statement "*(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;" (assignment_expression "*(undefined1 *)(piVar20[4] + -1 + iVar10) = 0" (pointer_expression "*(undefined1 *)(piVar20[4] + -1 + iVar10)" * (cast_expression "(undefined1 *)(piVar20[4] + -1 + iVar10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20[4] + -1 + iVar10)" ( (binary_expression "piVar20[4] + -1 + iVar10" (binary_expression "piVar20[4] + -1" (subscript_expression "piVar20[4]" identifier [ number_literal ]) + number_literal) + identifier) )))) = number_literal) ;) (expression_statement "pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");" (assignment_expression "pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r")" identifier = (cast_expression "(FILE *)func_0x00012160(piVar20[4],"r")" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "func_0x00012160(piVar20[4],"r")" identifier (argument_list "(piVar20[4],"r")" ( (subscript_expression "piVar20[4]" identifier [ number_literal ]) , (string_literal ""r"" " string_content ") ))))) ;) (expression_statement "uVar16 = extraout_ECX_00;" (assignment_expression "uVar16 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }" if (parenthesized_expression "(DAT_000313fc != '\0')" ( (binary_expression "DAT_000313fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }" { (expression_statement "FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);" (call_expression "FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400)" identifier (argument_list "(PTR_DAT_00030fd8,1,1,DAT_00031400)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "DAT_000313fc = '\0';" (assignment_expression "DAT_000313fc = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar16 = extraout_ECX_01;" (assignment_expression "uVar16 = extraout_ECX_01" identifier = identifier) ;) })) }))) (if_statement "if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;" if (parenthesized_expression "(pFVar14 == (FILE *)0x0)" ( (binary_expression "pFVar14 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto code_r0x0001925a;" goto statement_identifier ;)) (while_statement "while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }" while (parenthesized_expression "((pFVar14->_flags & 0x10) == 0)" ( (binary_expression "(pFVar14->_flags & 0x10) == 0" (parenthesized_expression "(pFVar14->_flags & 0x10)" ( (binary_expression "pFVar14->_flags & 0x10" (field_expression "pFVar14->_flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }" { (expression_statement "sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);" (assignment_expression "sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14)" identifier = (call_expression "fread_unlocked(&bStack_1020,1,0x1000,pFVar14)" identifier (argument_list "(&bStack_1020,1,0x1000,pFVar14)" ( (pointer_expression "&bStack_1020" & identifier) , number_literal , number_literal , identifier )))) ;) (if_statement "if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }" if (parenthesized_expression "(0 < (int)sVar15)" ( (binary_expression "0 < (int)sVar15" number_literal < (cast_expression "(int)sVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }" { (if_statement "if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_00016f30();\n        }" { (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }" else (compound_statement "{\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }" { (expression_statement "FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);" (call_expression "FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400)" identifier (argument_list "(&bStack_1020,1,sVar15,DAT_00031400)" ( (pointer_expression "&bStack_1020" & identifier) , number_literal , identifier , identifier ))) ;) }))) })) })) (expression_statement "func_0x00012380(pFVar14);" (call_expression "func_0x00012380(pFVar14)" identifier (argument_list "(pFVar14)" ( identifier ))) ;) (if_statement "if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }" { (if_statement "if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }" if (parenthesized_expression "((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240))" ( (binary_expression "(DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)" (parenthesized_expression "(DAT_000313c8 != 0)" ( (binary_expression "DAT_000313c8 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)" ( (binary_expression "*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240" (pointer_expression "*(byte *)(DAT_000313c4 + -1 + DAT_000313c8)" * (cast_expression "(byte *)(DAT_000313c4 + -1 + DAT_000313c8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000313c4 + -1 + DAT_000313c8)" ( (binary_expression "DAT_000313c4 + -1 + DAT_000313c8" (binary_expression "DAT_000313c4 + -1" identifier + number_literal) + identifier) )))) == identifier) ))) )) (compound_statement "{\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }" { (expression_statement "DAT_000313c8 = DAT_000313c8 + -1;" (assignment_expression "DAT_000313c8 = DAT_000313c8 + -1" identifier = (binary_expression "DAT_000313c8 + -1" identifier + number_literal)) ;) })) (expression_statement "FUN_000176c0();" (call_expression "FUN_000176c0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }" else (if_statement "if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }" if (parenthesized_expression "(DAT_00031419 != '\0')" ( (binary_expression "DAT_00031419 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001a7e0(DAT_00031400);\n    }" { (expression_statement "FUN_0001a7e0(DAT_00031400);" (call_expression "FUN_0001a7e0(DAT_00031400)" identifier (argument_list "(DAT_00031400)" ( identifier ))) ;) })))) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (case_statement "case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;" case number_literal : (expression_statement "FUN_00017320();" (call_expression "FUN_00017320()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;" case number_literal : (expression_statement "FUN_00017320();" (call_expression "FUN_00017320()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" case number_literal : (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" identifier (argument_list "(&DAT_000313f8)" ( (pointer_expression "&DAT_000313f8" & identifier) ))) ;) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;)) (case_statement "case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;" case number_literal : (expression_statement "pcStack_106c = (char *)piVar20[4];" (assignment_expression "pcStack_106c = (char *)piVar20[4]" identifier = (cast_expression "(char *)piVar20[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar20[4]" identifier [ number_literal ]))) ;) (if_statement "if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }" if (parenthesized_expression "(pcStack_106c == (char *)0xffffffff)" ( (binary_expression "pcStack_106c == (char *)0xffffffff" identifier == (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcStack_106c = DAT_0003123c;\n    }" { (expression_statement "pcStack_106c = DAT_0003123c;" (assignment_expression "pcStack_106c = DAT_0003123c" identifier = identifier) ;) })) (if_statement "if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" if (parenthesized_expression "(DAT_000313fc != '\0')" ( (binary_expression "DAT_000313fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" { (expression_statement "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);" (call_expression "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400)" identifier (argument_list "(&DAT_00031240,1,1,DAT_00031400)" ( (pointer_expression "&DAT_00031240" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "DAT_000313fc = '\0';" (assignment_expression "DAT_000313fc = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (if_statement "if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }" { (expression_statement "pbVar13 = pbVar23 + uVar9;" (assignment_expression "pbVar13 = pbVar23 + uVar9" identifier = (binary_expression "pbVar23 + uVar9" identifier + identifier)) ;) (expression_statement "pcVar24 = (char *)0x0;" (assignment_expression "pcVar24 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);" do (compound_statement "{\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      }" { (expression_statement "bVar18 = *pbVar23;" (assignment_expression "bVar18 = *pbVar23" identifier = (pointer_expression "*pbVar23" * identifier)) ;) (expression_statement "uVar5 = (uint)bVar18;" (assignment_expression "uVar5 = (uint)bVar18" identifier = (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }" if (parenthesized_expression "(((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0))" ( (binary_expression "((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)" (parenthesized_expression "((bVar18 & 0x80) == 0)" ( (binary_expression "(bVar18 & 0x80) == 0" (parenthesized_expression "(bVar18 & 0x80)" ( (binary_expression "bVar18 & 0x80" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)" ( (comma_expression "ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0" (assignment_expression "ppuVar11 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) , (binary_expression "(*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0" (parenthesized_expression "(*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40)" ( (binary_expression "*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40" (pointer_expression "*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar11 + uVar5 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar11 + uVar5 * 2 + 1)" ( (binary_expression "(int)*ppuVar11 + uVar5 * 2 + 1" (binary_expression "(int)*ppuVar11 + uVar5 * 2" (cast_expression "(int)*ppuVar11" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar11" * identifier)) + (binary_expression "uVar5 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }" { (expression_statement "pcVar12 = (char *)0x1;" (assignment_expression "pcVar12 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bStack_1020 = bVar18;" (assignment_expression "bStack_1020 = bVar18" identifier = identifier) ;) (if_statement "if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }" if (parenthesized_expression "(*pbVar23 == 0x5c)" ( (binary_expression "*pbVar23 == 0x5c" (pointer_expression "*pbVar23" * identifier) == number_literal) )) (compound_statement "{\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }" { (expression_statement "acStack_101f[0] = '\\';" (assignment_expression "acStack_101f[0] = '\\'" (subscript_expression "acStack_101f[0]" identifier [ number_literal ]) = (char_literal "'\\'" ' escape_sequence ')) ;) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }" else (compound_statement "{\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }" { (expression_statement "bStack_1020 = 0x5c;" (assignment_expression "bStack_1020 = 0x5c" identifier = number_literal) ;) (switch_statement "switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }" switch (parenthesized_expression "(*pbVar23)" ( (pointer_expression "*pbVar23" * identifier) )) (compound_statement "{\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }" { (case_statement "case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;" case number_literal : (expression_statement "acStack_101f[0] = 'a';" (assignment_expression "acStack_101f[0] = 'a'" (subscript_expression "acStack_101f[0]" identifier [ number_literal ]) = (char_literal "'a'" ' character ')) ;) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;" case number_literal : (expression_statement "acStack_101f[0] = 'b';" (assignment_expression "acStack_101f[0] = 'b'" (subscript_expression "acStack_101f[0]" identifier [ number_literal ]) = (char_literal "'b'" ' character ')) ;) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;" case number_literal : (expression_statement "acStack_101f[0] = 't';" (assignment_expression "acStack_101f[0] = 't'" (subscript_expression "acStack_101f[0]" identifier [ number_literal ]) = (char_literal "'t'" ' character ')) ;) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;" case number_literal : (expression_statement "acStack_101f[0] = 'n';" (assignment_expression "acStack_101f[0] = 'n'" (subscript_expression "acStack_101f[0]" identifier [ number_literal ]) = (char_literal "'n'" ' character ')) ;) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;" case number_literal : (expression_statement "acStack_101f[0] = 'v';" (assignment_expression "acStack_101f[0] = 'v'" (subscript_expression "acStack_101f[0]" identifier [ number_literal ]) = (char_literal "'v'" ' character ')) ;) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;" case number_literal : (expression_statement "acStack_101f[0] = 'f';" (assignment_expression "acStack_101f[0] = 'f'" (subscript_expression "acStack_101f[0]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;" case number_literal : (expression_statement "acStack_101f[0] = 'r';" (assignment_expression "acStack_101f[0] = 'r'" (subscript_expression "acStack_101f[0]" identifier [ number_literal ]) = (char_literal "'r'" ' character ')) ;) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);" default : (expression_statement "__sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);" (call_expression "__sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23)" identifier (argument_list "(acStack_101f,1,0xb3,"%03o",*pbVar23)" ( identifier , number_literal , number_literal , (string_literal ""%03o"" " string_content ") , (pointer_expression "*pbVar23" * identifier) ))) ;) (expression_statement "sVar15 = strlen(acStack_101f);" (assignment_expression "sVar15 = strlen(acStack_101f)" identifier = (call_expression "strlen(acStack_101f)" identifier (argument_list "(acStack_101f)" ( identifier )))) ;) (expression_statement "pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);" (assignment_expression "pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020)" identifier = (binary_expression "acStack_101f + (sVar15 - (int)&bStack_1020)" identifier + (parenthesized_expression "(sVar15 - (int)&bStack_1020)" ( (binary_expression "sVar15 - (int)&bStack_1020" identifier - (cast_expression "(int)&bStack_1020" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&bStack_1020" & identifier))) )))) ;)) })) }))) (expression_statement "pcVar24 = pcVar24 + (int)pcVar12;" (assignment_expression "pcVar24 = pcVar24 + (int)pcVar12" identifier = (binary_expression "pcVar24 + (int)pcVar12" identifier + (cast_expression "(int)pcVar12" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }" if (parenthesized_expression "((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c))" ( (binary_expression "(pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)" (parenthesized_expression "(pcStack_106c <= pcVar24)" ( (binary_expression "pcStack_106c <= pcVar24" identifier <= identifier) )) && (parenthesized_expression "(0 < (int)pcStack_106c)" ( (binary_expression "0 < (int)pcStack_106c" number_literal < (cast_expression "(int)pcStack_106c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }" { (expression_statement "FUN_0001a640(&UNK_00026f7e,1,1,uVar16);" (call_expression "FUN_0001a640(&UNK_00026f7e,1,1,uVar16)" identifier (argument_list "(&UNK_00026f7e,1,1,uVar16)" ( (pointer_expression "&UNK_00026f7e" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_0001a640(&DAT_00031240,1,1,uVar16);" (call_expression "FUN_0001a640(&DAT_00031240,1,1,uVar16)" identifier (argument_list "(&DAT_00031240,1,1,uVar16)" ( (pointer_expression "&DAT_00031240" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "pcVar24 = pcVar12;" (assignment_expression "pcVar24 = pcVar12" identifier = identifier) ;) })) (expression_statement "pbVar23 = pbVar23 + 1;" (assignment_expression "pbVar23 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);" (call_expression "FUN_0001a640(&bStack_1020,1,pcVar12,uVar16)" identifier (argument_list "(&bStack_1020,1,pcVar12,uVar16)" ( (pointer_expression "&bStack_1020" & identifier) , number_literal , identifier , identifier ))) ;) }) while (parenthesized_expression "(pbVar23 != pbVar13)" ( (binary_expression "pbVar23 != pbVar13" identifier != identifier) )) ;) })) (expression_statement "FUN_0001a640(&UNK_00026f80,1,1,uVar16);" (call_expression "FUN_0001a640(&UNK_00026f80,1,1,uVar16)" identifier (argument_list "(&UNK_00026f80,1,1,uVar16)" ( (pointer_expression "&UNK_00026f80" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_0001a640(&DAT_00031240,1,1,uVar16);" (call_expression "FUN_0001a640(&DAT_00031240,1,1,uVar16)" identifier (argument_list "(&DAT_00031240,1,1,uVar16)" ( (pointer_expression "&DAT_00031240" & identifier) , number_literal , number_literal , identifier ))) ;) (if_statement "if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }" if (parenthesized_expression "(DAT_00031419 != '\0')" ( (binary_expression "DAT_00031419 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001a7e0(uVar16);\n    }" { (expression_statement "FUN_0001a7e0(uVar16);" (call_expression "FUN_0001a7e0(uVar16)" identifier (argument_list "(uVar16)" ( identifier ))) ;) })) (labeled_statement "LAB_00017de0:\n    cVar4 = *pcVar26;" statement_identifier : (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;)) (labeled_statement "code_r0x00017de7:\n    piVar20 = piVar20 + 6;" statement_identifier : (expression_statement "piVar20 = piVar20 + 6;" (assignment_expression "piVar20 = piVar20 + 6" identifier = (binary_expression "piVar20 + 6" identifier + number_literal)) ;)) (goto_statement "goto joined_r0x00017cbb;" goto statement_identifier ;)) (case_statement "case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;" case number_literal : (if_statement "if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }" if (parenthesized_expression "(DAT_00031418 == '\0')" ( (binary_expression "DAT_00031418 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_000178c0(&DAT_000313f8);\n    }" { (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" identifier (argument_list "(&DAT_000313f8)" ( (pointer_expression "&DAT_000313f8" & identifier) ))) ;) })) (if_statement "if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;" if (parenthesized_expression "(((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0'))" ( (binary_expression "((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')" (parenthesized_expression "((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0'))" ( (binary_expression "(DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')" (parenthesized_expression "(DAT_00031390 == 0)" ( (binary_expression "DAT_00031390 == 0" identifier == number_literal) )) && (parenthesized_expression "(cVar4 = FUN_00017090(), cVar4 != '\0')" ( (comma_expression "cVar4 = FUN_00017090(), cVar4 != '\0'" (assignment_expression "cVar4 = FUN_00017090()" identifier = (call_expression "FUN_00017090()" identifier (argument_list "()" ( )))) , (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) || (parenthesized_expression "(cVar4 = FUN_00017b40(), cVar4 == '\0')" ( (comma_expression "cVar4 = FUN_00017b40(), cVar4 == '\0'" (assignment_expression "cVar4 = FUN_00017b40()" identifier = (call_expression "FUN_00017b40()" identifier (argument_list "()" ( )))) , (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto code_r0x00017f46;" goto statement_identifier ;)) (if_statement "if (*pcVar26 != '\0') goto code_r0x00017dd0;" if (parenthesized_expression "(*pcVar26 != '\0')" ( (binary_expression "*pcVar26 != '\0'" (pointer_expression "*pcVar26" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00017dd0;" goto statement_identifier ;)) (expression_statement "piVar20 = piVar20 + 6;" (assignment_expression "piVar20 = piVar20 + 6" identifier = (binary_expression "piVar20 + 6" identifier + number_literal)) ;) (goto_statement "goto joined_r0x00018523;" goto statement_identifier ;)) (case_statement "case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;" case number_literal : (expression_statement "puVar7 = &DAT_000313f8;" (assignment_expression "puVar7 = &DAT_000313f8" identifier = (pointer_expression "&DAT_000313f8" & identifier)) ;) (goto_statement "goto code_r0x00018030;" goto statement_identifier ;)) (case_statement "case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;" case number_literal : (if_statement "if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }" if (parenthesized_expression "(DAT_00031418 == '\0')" ( (binary_expression "DAT_00031418 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_000178c0(&DAT_000313f8);\n    }" { (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" identifier (argument_list "(&DAT_000313f8)" ( (pointer_expression "&DAT_000313f8" & identifier) ))) ;) })) (expression_statement "FUN_00017990();" (call_expression "FUN_00017990()" identifier (argument_list "()" ( ))) ;) (labeled_statement "code_r0x00017f94:\n    iVar6 = piVar20[4];" statement_identifier : (expression_statement "iVar6 = piVar20[4];" (assignment_expression "iVar6 = piVar20[4]" identifier = (subscript_expression "piVar20[4]" identifier [ number_literal ])) ;)) (if_statement "if (iVar6 == -1) {\n      iVar6 = 0;\n    }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n      iVar6 = 0;\n    }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) })) (goto_statement "goto code_r0x00017f58;" goto statement_identifier ;)) (case_statement "case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" case number_literal : (if_statement "if (piVar20[4] == 0) goto LAB_00017de0;" if (parenthesized_expression "(piVar20[4] == 0)" ( (binary_expression "piVar20[4] == 0" (subscript_expression "piVar20[4]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (expression_statement "piVar8 = (int *)FUN_00016790();" (assignment_expression "piVar8 = (int *)FUN_00016790()" identifier = (cast_expression "(int *)FUN_00016790()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00016790()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*piVar8 = piVar20[4];" (assignment_expression "*piVar8 = piVar20[4]" (pointer_expression "*piVar8" * identifier) = (subscript_expression "piVar20[4]" identifier [ number_literal ])) ;) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;)) (case_statement "case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;" case number_literal : (expression_statement "puVar1 = (undefined4 *)piVar20[4];" (assignment_expression "puVar1 = (undefined4 *)piVar20[4]" identifier = (cast_expression "(undefined4 *)piVar20[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar20[4]" identifier [ number_literal ]))) ;) (expression_statement "FUN_00017840();" (call_expression "FUN_00017840()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);" (assignment_expression "iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1)" identifier = (call_expression "FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1)" identifier (argument_list "(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1)" ( (pointer_expression "*puVar1" * identifier) , identifier , identifier , number_literal , number_literal , (binary_expression "(*(byte *)(puVar1 + 4) >> 4) + 1" (parenthesized_expression "(*(byte *)(puVar1 + 4) >> 4)" ( (binary_expression "*(byte *)(puVar1 + 4) >> 4" (pointer_expression "*(byte *)(puVar1 + 4)" * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) )))) >> number_literal) )) + number_literal) )))) ;) (if_statement "if (iVar6 == 0) goto code_r0x000188c9;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x000188c9;" goto statement_identifier ;)) (expression_statement "uVar5 = *puRam00031370;" (assignment_expression "uVar5 = *puRam00031370" identifier = (pointer_expression "*puRam00031370" * identifier)) ;) (if_statement "if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }" if (parenthesized_expression "(((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff))" ( (binary_expression "((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)" (parenthesized_expression "((*pcVar26 != '\0') && (uRam0003136c != 0))" ( (binary_expression "(*pcVar26 != '\0') && (uRam0003136c != 0)" (parenthesized_expression "(*pcVar26 != '\0')" ( (binary_expression "*pcVar26 != '\0'" (pointer_expression "*pcVar26" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(uRam0003136c != 0)" ( (binary_expression "uRam0003136c != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(uVar5 != 0xffffffff)" ( (binary_expression "uVar5 != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }" { (expression_statement "puts("MATCHED REGEX REGISTERS");" (call_expression "puts("MATCHED REGEX REGISTERS")" identifier (argument_list "("MATCHED REGEX REGISTERS")" ( (string_literal ""MATCHED REGEX REGISTERS"" " string_content ") ))) ;) (expression_statement "uVar5 = *puRam00031370;" (assignment_expression "uVar5 = *puRam00031370" identifier = (pointer_expression "*puRam00031370" * identifier)) ;) (if_statement "if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }" if (parenthesized_expression "((uRam0003136c != 0) && (uVar5 != 0xffffffff))" ( (binary_expression "(uRam0003136c != 0) && (uVar5 != 0xffffffff)" (parenthesized_expression "(uRam0003136c != 0)" ( (binary_expression "uRam0003136c != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar5 != 0xffffffff)" ( (binary_expression "uVar5 != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);" do (compound_statement "{\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        }" { (expression_statement "__printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);" (call_expression "__printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9])" identifier (argument_list "(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9])" ( number_literal , (string_literal ""  regex[%d] = %d-%d \'"" " string_content escape_sequence ") , identifier , identifier , (subscript_expression "puRam00031374[uVar9]" identifier [ identifier ]) ))) ;) (expression_statement "uVar5 = puRam00031370[uVar9];" (assignment_expression "uVar5 = puRam00031370[uVar9]" identifier = (subscript_expression "puRam00031370[uVar9]" identifier [ identifier ])) ;) (if_statement "if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }" if (parenthesized_expression "(uVar5 != puRam00031374[uVar9])" ( (binary_expression "uVar5 != puRam00031374[uVar9]" identifier != (subscript_expression "puRam00031374[uVar9]" identifier [ identifier ])) )) (compound_statement "{\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }" { (expression_statement "fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);" (call_expression "fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3)" identifier (argument_list "(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3)" ( (binary_expression "DAT_000313e0 + uVar5" identifier + identifier) , (binary_expression "puRam00031374[uVar9] - uVar5" (subscript_expression "puRam00031374[uVar9]" identifier [ identifier ]) - identifier) , number_literal , (pointer_expression "*(FILE **)puVar3" * (cast_expression "(FILE **)puVar3" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) })) (expression_statement "puts("\'");" (call_expression "puts("\'")" identifier (argument_list "("\'")" ( (string_literal ""\'"" " escape_sequence ") ))) ;) (if_statement "if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }" if (parenthesized_expression "(uRam0003136c <= uVar9 + 1)" ( (binary_expression "uRam0003136c <= uVar9 + 1" identifier <= (binary_expression "uVar9 + 1" identifier + number_literal)) )) (compound_statement "{\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }" { (expression_statement "uVar5 = *puRam00031370;" (assignment_expression "uVar5 = *puRam00031370" identifier = (pointer_expression "*puRam00031370" * identifier)) ;) (goto_statement "goto code_r0x00018110;" goto statement_identifier ;) })) (expression_statement "uVar5 = puRam00031370[uVar9 + 1];" (assignment_expression "uVar5 = puRam00031370[uVar9 + 1]" identifier = (subscript_expression "puRam00031370[uVar9 + 1]" identifier [ (binary_expression "uVar9 + 1" identifier + number_literal) ])) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 != 0xffffffff)" ( (binary_expression "uVar5 != 0xffffffff" identifier != number_literal) )) ;) (expression_statement "uVar5 = *puRam00031370;" (assignment_expression "uVar5 = *puRam00031370" identifier = (pointer_expression "*puRam00031370" * identifier)) ;) })) })) (labeled_statement "code_r0x00018110:\n    uVar9 = *puRam00031374;" statement_identifier : (expression_statement "uVar9 = *puRam00031374;" (assignment_expression "uVar9 = *puRam00031374" identifier = (pointer_expression "*puRam00031374" * identifier)) ;)) (if_statement "if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }" if (parenthesized_expression "((puVar1[1] != 0) || (1 < (uint)puVar1[2]))" ( (binary_expression "(puVar1[1] != 0) || (1 < (uint)puVar1[2])" (parenthesized_expression "(puVar1[1] != 0)" ( (binary_expression "puVar1[1] != 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(1 < (uint)puVar1[2])" ( (binary_expression "1 < (uint)puVar1[2]" number_literal < (cast_expression "(uint)puVar1[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar1[2]" identifier [ number_literal ]))) ))) )) (compound_statement "{\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }" { (labeled_statement "code_r0x00018127:\n      uVar21 = 0;" statement_identifier : (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;)) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "uStack_1058 = 0;" (assignment_expression "uStack_1058 = 0" identifier = number_literal) ;) (do_statement "do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );" do (compound_statement "{\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      }" { (expression_statement "uStack_1060 = uVar9 - uVar5;" (assignment_expression "uStack_1060 = uVar9 - uVar5" identifier = (binary_expression "uVar9 - uVar5" identifier - identifier)) ;) (if_statement "if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }" if (parenthesized_expression "(uVar22 < uVar5)" ( (binary_expression "uVar22 < uVar5" identifier < identifier) )) (compound_statement "{\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }" { (expression_statement "uVar22 = uVar5;" (assignment_expression "uVar22 = uVar5" identifier = identifier) ;) (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar5 = uVar22;" (assignment_expression "uVar5 = uVar22" identifier = identifier) ;) })) (if_statement "if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }" if (parenthesized_expression "((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0))" ( (binary_expression "(uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)" (parenthesized_expression "(uStack_1058 == 0 || uVar21 < uVar5)" ( (binary_expression "uStack_1058 == 0 || uVar21 < uVar5" (binary_expression "uStack_1058 == 0" identifier == number_literal) || (binary_expression "uVar21 < uVar5" identifier < identifier)) )) || (parenthesized_expression "(uStack_1060 != 0)" ( (binary_expression "uStack_1060 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }" { (expression_statement "uStack_1058 = uStack_1058 + 1;" (assignment_expression "uStack_1058 = uStack_1058 + 1" identifier = (binary_expression "uStack_1058 + 1" identifier + number_literal)) ;) (if_statement "if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }" if (parenthesized_expression "(uStack_1058 < (uint)puVar1[2])" ( (binary_expression "uStack_1058 < (uint)puVar1[2]" identifier < (cast_expression "(uint)puVar1[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar1[2]" identifier [ number_literal ]))) )) (compound_statement "{\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }" { (if_statement "if (uStack_1060 == 0) goto code_r0x0001817a;" if (parenthesized_expression "(uStack_1060 == 0)" ( (binary_expression "uStack_1060 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x0001817a;" goto statement_identifier ;)) (goto_statement "goto code_r0x00018190;" goto statement_identifier ;) })) (expression_statement "iVar6 = puVar1[1];" (assignment_expression "iVar6 = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00031408 = '\x01';" (assignment_expression "DAT_00031408 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (for_statement "for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }" for ( ; (binary_expression "iVar6 != 0" identifier != number_literal) ; (assignment_expression "iVar6 = *(int *)(iVar6 + 0x10)" identifier = (pointer_expression "*(int *)(iVar6 + 0x10)" * (cast_expression "(int *)(iVar6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) ))))) ) (compound_statement "{\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }" { (expression_statement "uVar9 = *(uint *)(iVar6 + 8);" (assignment_expression "uVar9 = *(uint *)(iVar6 + 8)" identifier = (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }" if (parenthesized_expression "(*(int *)(iVar6 + 4) != 0)" ( (binary_expression "*(int *)(iVar6 + 4) != 0" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              FUN_000173c0();\n            }" { (expression_statement "FUN_000173c0();" (call_expression "FUN_000173c0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }" if (parenthesized_expression "(((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9]))" ( (binary_expression "((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])" (parenthesized_expression "((-1 < (int)uVar9) && (uVar9 < uRam0003136c))" ( (binary_expression "(-1 < (int)uVar9) && (uVar9 < uRam0003136c)" (parenthesized_expression "(-1 < (int)uVar9)" ( (binary_expression "-1 < (int)uVar9" number_literal < (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar9 < uRam0003136c)" ( (binary_expression "uVar9 < uRam0003136c" identifier < identifier) ))) )) && (parenthesized_expression "(puRam00031374[uVar9] != puRam00031370[uVar9])" ( (binary_expression "puRam00031374[uVar9] != puRam00031370[uVar9]" (subscript_expression "puRam00031374[uVar9]" identifier [ identifier ]) != (subscript_expression "puRam00031370[uVar9]" identifier [ identifier ])) ))) )) (compound_statement "{\n              FUN_000173c0();\n            }" { (expression_statement "FUN_000173c0();" (call_expression "FUN_000173c0()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "uVar22 = uVar5 + uStack_1060;" (assignment_expression "uVar22 = uVar5 + uStack_1060" identifier = (binary_expression "uVar5 + uStack_1060" identifier + identifier)) ;) (expression_statement "uVar21 = *puRam00031374;" (assignment_expression "uVar21 = *puRam00031374" identifier = (pointer_expression "*puRam00031374" * identifier)) ;) (if_statement "if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;" if (parenthesized_expression "((*(byte *)(puVar1 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(puVar1 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(puVar1 + 4) & 1)" ( (binary_expression "*(byte *)(puVar1 + 4) & 1" (pointer_expression "*(byte *)(puVar1 + 4)" * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto code_r0x00018ba8;" goto statement_identifier ;)) }) (else_clause "else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }" else (compound_statement "{\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }" { (labeled_statement "code_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;" statement_identifier : (if_statement "if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;" if (parenthesized_expression "(DAT_000313e4 <= uVar22)" ( (binary_expression "DAT_000313e4 <= uVar22" identifier <= identifier) )) (goto_statement "goto code_r0x00018bcb;" goto statement_identifier ;))) (expression_statement "uStack_1060 = 1;" (assignment_expression "uStack_1060 = 1" identifier = number_literal) ;) (labeled_statement "code_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;" statement_identifier : (expression_statement "uVar22 = uVar5 + uStack_1060;" (assignment_expression "uVar22 = uVar5 + uStack_1060" identifier = (binary_expression "uVar5 + uStack_1060" identifier + identifier)) ;)) (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar21 = *puRam00031374;" (assignment_expression "uVar21 = *puRam00031374" identifier = (pointer_expression "*puRam00031374" * identifier)) ;) }))) (if_statement "if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;" if (parenthesized_expression "(DAT_000313e4 < uVar22)" ( (binary_expression "DAT_000313e4 < uVar22" identifier < identifier) )) (goto_statement "goto code_r0x00018bcb;" goto statement_identifier ;)) (expression_statement "uVar5 = (uint)*(byte *)(puVar1 + 4);" (assignment_expression "uVar5 = (uint)*(byte *)(puVar1 + 4)" identifier = (binary_expression "(uint)*(byte *)(puVar1 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);" (assignment_expression "iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1)" identifier = (call_expression "FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1)" identifier (argument_list "(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1)" ( (pointer_expression "*puVar1" * identifier) , identifier , identifier , identifier , number_literal , (binary_expression "(*(byte *)(puVar1 + 4) >> 4) + 1" (parenthesized_expression "(*(byte *)(puVar1 + 4) >> 4)" ( (binary_expression "*(byte *)(puVar1 + 4) >> 4" (pointer_expression "*(byte *)(puVar1 + 4)" * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) )))) >> number_literal) )) + number_literal) )))) ;) (if_statement "if (iVar6 == 0) goto code_r0x00018ba8;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00018ba8;" goto statement_identifier ;)) (expression_statement "uVar5 = *puRam00031370;" (assignment_expression "uVar5 = *puRam00031370" identifier = (pointer_expression "*puRam00031370" * identifier)) ;) (expression_statement "uVar9 = *puRam00031374;" (assignment_expression "uVar9 = *puRam00031374" identifier = (pointer_expression "*puRam00031374" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }" if (parenthesized_expression "((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0))" ( (binary_expression "(uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)" (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)" ( (comma_expression "bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0" (assignment_expression "bVar18 = *(byte *)(puVar1 + 4)" identifier = (pointer_expression "*(byte *)(puVar1 + 4)" * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) ))))) , (binary_expression "(bVar18 & 1) == 0" (parenthesized_expression "(bVar18 & 1)" ( (binary_expression "bVar18 & 1" identifier & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }" { (expression_statement "DAT_000313e4 = DAT_000313e4 - uVar9;" (assignment_expression "DAT_000313e4 = DAT_000313e4 - uVar9" identifier = (binary_expression "DAT_000313e4 - uVar9" identifier - identifier)) ;) (expression_statement "DAT_000313e0 = DAT_000313e0 + uVar9;" (assignment_expression "DAT_000313e0 = DAT_000313e0 + uVar9" identifier = (binary_expression "DAT_000313e0 + uVar9" identifier + identifier)) ;) (expression_statement "DAT_000313e8 = DAT_000313e8 - *puRam00031374;" (assignment_expression "DAT_000313e8 = DAT_000313e8 - *puRam00031374" identifier = (binary_expression "DAT_000313e8 - *puRam00031374" identifier - (pointer_expression "*puRam00031374" * identifier))) ;) (expression_statement "DAT_00031408 = '\x01';" (assignment_expression "DAT_00031408 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }) (else_clause "else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }" else (compound_statement "{\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }" { (if_statement "if (uVar9 != DAT_000313e4) goto code_r0x00018127;" if (parenthesized_expression "(uVar9 != DAT_000313e4)" ( (binary_expression "uVar9 != DAT_000313e4" identifier != identifier) )) (goto_statement "goto code_r0x00018127;" goto statement_identifier ;)) (expression_statement "DAT_00031408 = '\x01';" (assignment_expression "DAT_00031408 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "bVar18 = *(byte *)(puVar1 + 4);" (assignment_expression "bVar18 = *(byte *)(puVar1 + 4)" identifier = (pointer_expression "*(byte *)(puVar1 + 4)" * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) ))))) ;) (expression_statement "DAT_000313e4 = uVar5;" (assignment_expression "DAT_000313e4 = uVar5" identifier = identifier) ;) }))) (goto_statement "goto code_r0x00018bf8;" goto statement_identifier ;)) (case_statement "case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;" case number_literal : (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (if_statement "if (DAT_00031408 == '\0') goto code_r0x00017de7;" if (parenthesized_expression "(DAT_00031408 == '\0')" ( (binary_expression "DAT_00031408 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;)) (expression_statement "DAT_00031408 = '\0';" (assignment_expression "DAT_00031408 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "code_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);" statement_identifier : (expression_statement "piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);" (assignment_expression "piVar20 = (int *)(*param_1 + piVar20[4] * 0x18)" identifier = (cast_expression "(int *)(*param_1 + piVar20[4] * 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + piVar20[4] * 0x18)" ( (binary_expression "*param_1 + piVar20[4] * 0x18" (pointer_expression "*param_1" * identifier) + (binary_expression "piVar20[4] * 0x18" (subscript_expression "piVar20[4]" identifier [ number_literal ]) * number_literal)) )))) ;)) (goto_statement "goto joined_r0x00017cbb;" goto statement_identifier ;)) (case_statement "case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" case number_literal : (expression_statement "puVar7 = (undefined *)piVar20[4];" (assignment_expression "puVar7 = (undefined *)piVar20[4]" identifier = (cast_expression "(undefined *)piVar20[4]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar20[4]" identifier [ number_literal ]))) ;) (if_statement "if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;" if (parenthesized_expression "(*(int *)(puVar7 + 8) == 0)" ( (binary_expression "*(int *)(puVar7 + 8) == 0" (pointer_expression "*(int *)(puVar7 + 8)" * (cast_expression "(int *)(puVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (labeled_statement "code_r0x00018030:\n    FUN_000178c0(puVar7);" statement_identifier : (expression_statement "FUN_000178c0(puVar7);" (call_expression "FUN_000178c0(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;)) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;)) (case_statement "case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;" case number_literal : (expression_statement "FUN_00017220();" (call_expression "FUN_00017220()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*pcVar26 == '\0') goto code_r0x000182c0;" if (parenthesized_expression "(*pcVar26 == '\0')" ( (binary_expression "*pcVar26 == '\0'" (pointer_expression "*pcVar26" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000182c0;" goto statement_identifier ;)) (expression_statement "FUN_00016620();" (call_expression "FUN_00016620()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x0001861e;" goto statement_identifier ;)) (case_statement "case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;" case number_literal : (if_statement "if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }" if (parenthesized_expression "(DAT_000316c4 < 2)" ( (binary_expression "DAT_000316c4 < 2" identifier < number_literal) )) (compound_statement "{\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }" { (expression_statement "pbVar13 = DAT_000313e0 + DAT_000313e4;" (assignment_expression "pbVar13 = DAT_000313e0 + DAT_000313e4" identifier = (binary_expression "DAT_000313e0 + DAT_000313e4" identifier + identifier)) ;) (if_statement "if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }" if (parenthesized_expression "(DAT_000313e0 < pbVar13)" ( (binary_expression "DAT_000313e0 < pbVar13" identifier < identifier) )) (compound_statement "{\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }" { (do_statement "do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);" do (compound_statement "{\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        }" { (expression_statement "pbVar19 = pbVar23 + 1;" (assignment_expression "pbVar19 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);" (assignment_expression "*pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23)" (pointer_expression "*pbVar23" * identifier) = (pointer_expression "*(byte *)(piVar20[4] + (uint)*pbVar23)" * (cast_expression "(byte *)(piVar20[4] + (uint)*pbVar23)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20[4] + (uint)*pbVar23)" ( (binary_expression "piVar20[4] + (uint)*pbVar23" (subscript_expression "piVar20[4]" identifier [ number_literal ]) + (binary_expression "(uint)*pbVar23" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))))) ;) (expression_statement "pbVar23 = pbVar19;" (assignment_expression "pbVar23 = pbVar19" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar13 != pbVar19)" ( (binary_expression "pbVar13 != pbVar19" identifier != identifier) )) ;) })) }) (else_clause "else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }" else (compound_statement "{\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }" { (expression_statement "piVar8 = (int *)piVar20[4];" (assignment_expression "piVar8 = (int *)piVar20[4]" identifier = (cast_expression "(int *)piVar20[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar20[4]" identifier [ number_literal ]))) ;) (expression_statement "uStack_1028 = 0;" (assignment_expression "uStack_1028 = 0" identifier = number_literal) ;) (expression_statement "uStack_1024 = 0;" (assignment_expression "uStack_1024 = 0" identifier = number_literal) ;) (if_statement "if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }" if (parenthesized_expression "(DAT_000313e4 != 0)" ( (binary_expression "DAT_000313e4 != 0" identifier != number_literal) )) (compound_statement "{\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }" { (expression_statement "uStack_1068 = 0;" (assignment_expression "uStack_1068 = 0" identifier = number_literal) ;) (do_statement "do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);" do (compound_statement "{\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        }" { (if_statement "if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }" if (parenthesized_expression "((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1))" ( (binary_expression "(DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)" (parenthesized_expression "(DAT_000316c4 == 1)" ( (binary_expression "DAT_000316c4 == 1" identifier == number_literal) )) || (parenthesized_expression "(uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)" ( (comma_expression "uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1" (assignment_expression "uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028)" identifier = (call_expression "FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028)" identifier (argument_list "(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028)" ( number_literal , (binary_expression "DAT_000313e0 + uStack_1068" identifier + identifier) , (binary_expression "DAT_000313e4 - uStack_1068" identifier - identifier) , (pointer_expression "&uStack_1028" & identifier) )))) , (binary_expression "0xfffffffc < uVar5 - 1" number_literal < (binary_expression "uVar5 - 1" identifier - number_literal))) ))) )) (compound_statement "{\n            uVar5 = 1;\n          }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) })) (expression_statement "pcVar24 = (char *)*piVar8;" (assignment_expression "pcVar24 = (char *)*piVar8" identifier = (cast_expression "(char *)*piVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }" if (parenthesized_expression "(pcVar24 != (char *)0x0)" ( (binary_expression "pcVar24 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "pbStack_105c = DAT_000313e0;" (assignment_expression "pbStack_105c = DAT_000313e0" identifier = identifier) ;) (expression_statement "pbVar23 = DAT_000313e0 + uStack_1068;" (assignment_expression "pbVar23 = DAT_000313e0 + uStack_1068" identifier = (binary_expression "DAT_000313e0 + uStack_1068" identifier + identifier)) ;) (do_statement "do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);" do (compound_statement "{\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            }" { (expression_statement "iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);" (assignment_expression "iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5)" identifier = (call_expression "strncmp((char *)pbVar23,pcVar24,uVar5)" identifier (argument_list "((char *)pbVar23,pcVar24,uVar5)" ( (cast_expression "(char *)pbVar23" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }" { (expression_statement "puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);" (assignment_expression "puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4)" identifier = (cast_expression "(undefined4 *)((int)piVar8 + iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + iVar6 + 4)" ( (binary_expression "(int)piVar8 + iVar6 + 4" (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pcVar24 = (char *)*puVar1;" (assignment_expression "pcVar24 = (char *)*puVar1" identifier = (cast_expression "(char *)*puVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (if_statement "if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }" if (parenthesized_expression "(*pcVar24 == '\0')" ( (binary_expression "*pcVar24 == '\0'" (pointer_expression "*pcVar24" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }" { (expression_statement "uStack_1060 = 1;" (assignment_expression "uStack_1060 = 1" identifier = number_literal) ;) (labeled_statement "code_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }" statement_identifier : (if_statement "if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }" if (parenthesized_expression "(uStack_1060 < uVar5)" ( (binary_expression "uStack_1060 < uVar5" identifier < identifier) )) (compound_statement "{\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }" { (expression_statement "iVar6 = DAT_000313e4 + 1;" (assignment_expression "iVar6 = DAT_000313e4 + 1" identifier = (binary_expression "DAT_000313e4 + 1" identifier + number_literal)) ;) (goto_statement "goto code_r0x0001841c;" goto statement_identifier ;) }))) }) (else_clause "else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }" else (compound_statement "{\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }" { (expression_statement "uStack_1060 = strlen(pcVar24);" (assignment_expression "uStack_1060 = strlen(pcVar24)" identifier = (call_expression "strlen(pcVar24)" identifier (argument_list "(pcVar24)" ( identifier )))) ;) (if_statement "if (uStack_1060 <= uVar5) goto code_r0x00018c70;" if (parenthesized_expression "(uStack_1060 <= uVar5)" ( (binary_expression "uStack_1060 <= uVar5" identifier <= identifier) )) (goto_statement "goto code_r0x00018c70;" goto statement_identifier ;)) (expression_statement "iVar6 = DAT_000313e4 + 1;" (assignment_expression "iVar6 = DAT_000313e4 + 1" identifier = (binary_expression "DAT_000313e4 + 1" identifier + number_literal)) ;) (if_statement "if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }" if (parenthesized_expression "(DAT_000313e8 < (iVar6 - uVar5) + uStack_1060)" ( (binary_expression "DAT_000313e8 < (iVar6 - uVar5) + uStack_1060" identifier < (binary_expression "(iVar6 - uVar5) + uStack_1060" (parenthesized_expression "(iVar6 - uVar5)" ( (binary_expression "iVar6 - uVar5" identifier - identifier) )) + identifier)) )) (compound_statement "{\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }" { (expression_statement "FUN_000166d0();" (call_expression "FUN_000166d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbStack_105c = DAT_000313e0;" (assignment_expression "pbStack_105c = DAT_000313e0" identifier = identifier) ;) (expression_statement "iVar6 = DAT_000313e4 + 1;" (assignment_expression "iVar6 = DAT_000313e4 + 1" identifier = (binary_expression "DAT_000313e4 + 1" identifier + number_literal)) ;) })) (labeled_statement "code_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));" statement_identifier : (expression_statement "memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));" (call_expression "memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068))" identifier (argument_list "(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068))" ( (binary_expression "pbStack_105c + uStack_1068 + uStack_1060" (binary_expression "pbStack_105c + uStack_1068" identifier + identifier) + identifier) , (binary_expression "pbStack_105c + uVar5 + uStack_1068" (binary_expression "pbStack_105c + uVar5" identifier + identifier) + identifier) , (binary_expression "iVar6 - (uVar5 + uStack_1068)" identifier - (parenthesized_expression "(uVar5 + uStack_1068)" ( (binary_expression "uVar5 + uStack_1068" identifier + identifier) ))) ))) ;)) (expression_statement "DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);" (assignment_expression "DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5)" identifier = (binary_expression "DAT_000313e4 + (uStack_1060 - uVar5)" identifier + (parenthesized_expression "(uStack_1060 - uVar5)" ( (binary_expression "uStack_1060 - uVar5" identifier - identifier) )))) ;) (expression_statement "pcVar24 = (char *)*puVar1;" (assignment_expression "pcVar24 = (char *)*puVar1" identifier = (cast_expression "(char *)*puVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (expression_statement "pbVar23 = DAT_000313e0 + uStack_1068;" (assignment_expression "pbVar23 = DAT_000313e0 + uStack_1068" identifier = (binary_expression "DAT_000313e0 + uStack_1068" identifier + identifier)) ;) (expression_statement "uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);" (assignment_expression "uStack_1068 = uStack_1068 + (uStack_1060 - uVar5)" identifier = (binary_expression "uStack_1068 + (uStack_1060 - uVar5)" identifier + (parenthesized_expression "(uStack_1060 - uVar5)" ( (binary_expression "uStack_1060 - uVar5" identifier - identifier) )))) ;) }))) (expression_statement "memcpy(pbVar23,pcVar24,uStack_1060);" (call_expression "memcpy(pbVar23,pcVar24,uStack_1060)" identifier (argument_list "(pbVar23,pcVar24,uStack_1060)" ( identifier , identifier , identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar6 = iVar6 + 8;" (assignment_expression "iVar6 = iVar6 + 8" identifier = (binary_expression "iVar6 + 8" identifier + number_literal)) ;) (expression_statement "pcVar24 = *(char **)((int)piVar8 + iVar6);" (assignment_expression "pcVar24 = *(char **)((int)piVar8 + iVar6)" identifier = (pointer_expression "*(char **)((int)piVar8 + iVar6)" * (cast_expression "(char **)((int)piVar8 + iVar6)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar8 + iVar6)" ( (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) }) while (parenthesized_expression "(pcVar24 != (char *)0x0)" ( (binary_expression "pcVar24 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "uStack_1068 = uStack_1068 + uVar5;" (assignment_expression "uStack_1068 = uStack_1068 + uVar5" identifier = (binary_expression "uStack_1068 + uVar5" identifier + identifier)) ;) }) while (parenthesized_expression "(uStack_1068 < DAT_000313e4)" ( (binary_expression "uStack_1068 < DAT_000313e4" identifier < identifier) )) ;) })) }))) (goto_statement "goto code_r0x000188c9;" goto statement_identifier ;)) (case_statement "case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;" case number_literal : (expression_statement "DAT_000313e4 = 0;" (assignment_expression "DAT_000313e4 = 0" identifier = number_literal) ;) (goto_statement "goto code_r0x000188c9;" goto statement_identifier ;)) })) (if_statement "if (cVar4 == '\0') goto code_r0x000182c0;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000182c0;" goto statement_identifier ;)) (labeled_statement "code_r0x0001861e:\n  FUN_00016620();" statement_identifier : (expression_statement "FUN_00016620();" (call_expression "FUN_00016620()" identifier (argument_list "()" ( ))) ;)) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;) (labeled_statement "code_r0x00018ba8:\n  if (uVar22 < DAT_000313e4) {\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }" statement_identifier : (if_statement "if (uVar22 < DAT_000313e4) {\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }" if (parenthesized_expression "(uVar22 < DAT_000313e4)" ( (binary_expression "uVar22 < DAT_000313e4" identifier < identifier) )) (compound_statement "{\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }" { (expression_statement "FUN_00016f30(param_2,pcVar26,uVar5);" (call_expression "FUN_00016f30(param_2,pcVar26,uVar5)" identifier (argument_list "(param_2,pcVar26,uVar5)" ( identifier , identifier , identifier ))) ;) }))) (labeled_statement "code_r0x00018bcb:\n  DAT_000313d0._0_1_ = (undefined1)DAT_000313ec;" statement_identifier : (expression_statement "DAT_000313d0._0_1_ = (undefined1)DAT_000313ec;" (assignment_expression "DAT_000313d0._0_1_ = (undefined1)DAT_000313ec" (field_expression "DAT_000313d0._0_1_" identifier . field_identifier) = (cast_expression "(undefined1)DAT_000313ec" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;)) (expression_statement "FUN_00017220();" (call_expression "FUN_00017220()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((uint)puVar1[2] <= uStack_1058) {\n    bVar18 = *(byte *)(puVar1 + 4);\ncode_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }\n  }" if (parenthesized_expression "((uint)puVar1[2] <= uStack_1058)" ( (binary_expression "(uint)puVar1[2] <= uStack_1058" (cast_expression "(uint)puVar1[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar1[2]" identifier [ number_literal ])) <= identifier) )) (compound_statement "{\n    bVar18 = *(byte *)(puVar1 + 4);\ncode_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }\n  }" { (expression_statement "bVar18 = *(byte *)(puVar1 + 4);" (assignment_expression "bVar18 = *(byte *)(puVar1 + 4)" identifier = (pointer_expression "*(byte *)(puVar1 + 4)" * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }" statement_identifier : (if_statement "if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }" if (parenthesized_expression "((bVar18 & 2) != 0)" ( (binary_expression "(bVar18 & 2) != 0" (parenthesized_expression "(bVar18 & 2)" ( (binary_expression "bVar18 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }" { (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" identifier (argument_list "(&DAT_000313f8)" ( (pointer_expression "&DAT_000313f8" & identifier) ))) ;) (expression_statement "bVar18 = *(byte *)(puVar1 + 4);" (assignment_expression "bVar18 = *(byte *)(puVar1 + 4)" identifier = (pointer_expression "*(byte *)(puVar1 + 4)" * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) ))))) ;) }))) (if_statement "if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }" if (parenthesized_expression "((bVar18 & 8) != 0)" ( (binary_expression "(bVar18 & 8) != 0" (parenthesized_expression "(bVar18 & 8)" ( (binary_expression "bVar18 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }" { (expression_statement "FUN_00017840();" (call_expression "FUN_00017840()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" identifier (argument_list "()" ( ))) ;) (expression_statement "pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");" (assignment_expression "pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r")" identifier = (cast_expression "(FILE *)func_0x00012160(DAT_000313e0,"r")" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "func_0x00012160(DAT_000313e0,"r")" identifier (argument_list "(DAT_000313e0,"r")" ( identifier , (string_literal ""r"" " string_content ") ))))) ;) (expression_statement "uVar16 = extraout_ECX_02;" (assignment_expression "uVar16 = extraout_ECX_02" identifier = identifier) ;) (if_statement "if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001a340(uVar16);\n      }" if (parenthesized_expression "(pFVar14 == (FILE *)0x0)" ( (binary_expression "pFVar14 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    /* WARNING: Subroutine does not return */\n        FUN_0001a340(uVar16);\n      }" { (labeled_statement "code_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);" statement_identifier : (expression_statement "uVar16 = dcgettext(0,"error in subprocess",5,uVar16);" (assignment_expression "uVar16 = dcgettext(0,"error in subprocess",5,uVar16)" identifier = (call_expression "dcgettext(0,"error in subprocess",5,uVar16)" identifier (argument_list "(0,"error in subprocess",5,uVar16)" ( number_literal , (string_literal ""error in subprocess"" " string_content ") , number_literal , identifier )))) ;)) comment (expression_statement "FUN_0001a340(uVar16);" (call_expression "FUN_0001a340(uVar16)" identifier (argument_list "(uVar16)" ( identifier ))) ;) })) (expression_statement "bVar18 = (byte)pFVar14->_flags;" (assignment_expression "bVar18 = (byte)pFVar14->_flags" identifier = (cast_expression "(byte)pFVar14->_flags" ( (type_descriptor "byte" type_identifier) ) (field_expression "pFVar14->_flags" identifier -> field_identifier))) ;) (while_statement "while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }" while (parenthesized_expression "((bVar18 & 0x10) == 0)" ( (binary_expression "(bVar18 & 0x10) == 0" (parenthesized_expression "(bVar18 & 0x10)" ( (binary_expression "bVar18 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }" { (expression_statement "sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);" (assignment_expression "sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14)" identifier = (call_expression "fread_unlocked(&bStack_1020,1,0x1000,pFVar14)" identifier (argument_list "(&bStack_1020,1,0x1000,pFVar14)" ( (pointer_expression "&bStack_1020" & identifier) , number_literal , number_literal , identifier )))) ;) (if_statement "if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }" if (parenthesized_expression "(0 < (int)sVar15)" ( (binary_expression "0 < (int)sVar15" number_literal < (cast_expression "(int)sVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          FUN_00016f30();\n        }" { (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "bVar18 = (byte)pFVar14->_flags;" (assignment_expression "bVar18 = (byte)pFVar14->_flags" identifier = (cast_expression "(byte)pFVar14->_flags" ( (type_descriptor "byte" type_identifier) ) (field_expression "pFVar14->_flags" identifier -> field_identifier))) ;) })) (expression_statement "func_0x00012380(pFVar14);" (call_expression "func_0x00012380(pFVar14)" identifier (argument_list "(pFVar14)" ( identifier ))) ;) (expression_statement "FUN_000176c0();" (call_expression "FUN_000176c0()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }" if (parenthesized_expression "((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240))" ( (binary_expression "(DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)" (parenthesized_expression "(DAT_000313e4 != 0)" ( (binary_expression "DAT_000313e4 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)" ( (binary_expression "DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240" (subscript_expression "DAT_000313e0[DAT_000313e4 - 1]" identifier [ (binary_expression "DAT_000313e4 - 1" identifier - number_literal) ]) == identifier) ))) )) (compound_statement "{\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }" { (expression_statement "DAT_000313e4 = DAT_000313e4 - 1;" (assignment_expression "DAT_000313e4 = DAT_000313e4 - 1" identifier = (binary_expression "DAT_000313e4 - 1" identifier - number_literal)) ;) })) (expression_statement "bVar18 = *(byte *)(puVar1 + 4);" (assignment_expression "bVar18 = *(byte *)(puVar1 + 4)" identifier = (pointer_expression "*(byte *)(puVar1 + 4)" * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) ))))) ;) })) (if_statement "if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }" if (parenthesized_expression "((bVar18 >> 1 & 2) != 0)" ( (binary_expression "(bVar18 >> 1 & 2) != 0" (parenthesized_expression "(bVar18 >> 1 & 2)" ( (binary_expression "bVar18 >> 1 & 2" (binary_expression "bVar18 >> 1" identifier >> number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_000178c0(&DAT_000313f8);\n    }" { (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" identifier (argument_list "(&DAT_000313f8)" ( (pointer_expression "&DAT_000313f8" & identifier) ))) ;) })) (if_statement "if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }" if (parenthesized_expression "(puVar1[3] != 0)" ( (binary_expression "puVar1[3] != 0" (subscript_expression "puVar1[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_000178c0(puVar1[3]);\n    }" { (expression_statement "FUN_000178c0(puVar1[3]);" (call_expression "FUN_000178c0(puVar1[3])" identifier (argument_list "(puVar1[3])" ( (subscript_expression "puVar1[3]" identifier [ number_literal ]) ))) ;) })) })) (labeled_statement "code_r0x000188c9:\n  if (*pcVar26 != '\0') {\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }" statement_identifier : (if_statement "if (*pcVar26 != '\0') {\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }" if (parenthesized_expression "(*pcVar26 != '\0')" ( (binary_expression "*pcVar26 != '\0'" (pointer_expression "*pcVar26" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }" { (labeled_statement "code_r0x00017dd0:\n    FUN_00016620();" statement_identifier : (expression_statement "FUN_00016620();" (call_expression "FUN_00016620()" identifier (argument_list "()" ( ))) ;)) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;) }))) (labeled_statement "code_r0x000182c0:\n  piVar20 = piVar20 + 6;" statement_identifier : (expression_statement "piVar20 = piVar20 + 6;" (assignment_expression "piVar20 = piVar20 + 6" identifier = (binary_expression "piVar20 + 6" identifier + number_literal)) ;)) (labeled_statement "joined_r0x00018523:\n  if (piVar2 <= piVar20) goto LAB_00017e10;" statement_identifier : (if_statement "if (piVar2 <= piVar20) goto LAB_00017e10;" if (parenthesized_expression "(piVar2 <= piVar20)" ( (binary_expression "piVar2 <= piVar20" identifier <= identifier) )) (goto_statement "goto LAB_00017e10;" goto statement_identifier ;))) (goto_statement "goto LAB_00017cfb;" goto statement_identifier ;) (labeled_statement "code_r0x00018860:\n  piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);" statement_identifier : (expression_statement "piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);" (assignment_expression "piVar20 = (int *)(*param_1 + piVar20[4] * 0x18)" identifier = (cast_expression "(int *)(*param_1 + piVar20[4] * 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + piVar20[4] * 0x18)" ( (binary_expression "*param_1 + piVar20[4] * 0x18" (pointer_expression "*param_1" * identifier) + (binary_expression "piVar20[4] * 0x18" (subscript_expression "piVar20[4]" identifier [ number_literal ]) * number_literal)) )))) ;)) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto joined_r0x00017cbb;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\nint __regparm3 execute_program(vector *vec,input *input)\n\n{\n  byte bVar1;\n  size_t sVar2;\n  int iVar3;\n  FILE *pFVar4;\n  regex *regex;\n  undefined4 *puVar5;\n  addr **ppaVar6;\n  undefined *puVar7;\n  _Bool _Var8;\n  char cVar9;\n  uint uVar10;\n  char *pcVar11;\n  output *poVar12;\n  append_queue *paVar13;\n  size_t sVar14;\n  addr_types aVar15;\n  size_t sVar16;\n  addr *paVar17;\n  int iVar18;\n  int iVar19;\n  ushort **ppuVar20;\n  void *pvVar21;\n  byte *pbVar22;\n  FILE *pFVar23;\n  addr *in_ECX;\n  addr *extraout_ECX;\n  addr *extraout_ECX_00;\n  addr *extraout_ECX_01;\n  addr *extraout_ECX_02;\n  addr *extraout_ECX_03;\n  addr *extraout_ECX_04;\n  addr *extraout_ECX_05;\n  addr *extraout_ECX_06;\n  addr *extraout_ECX_07;\n  addr *extraout_ECX_08;\n  addr *extraout_ECX_09;\n  line *extraout_ECX_10;\n  addr *extraout_ECX_11;\n  addr *extraout_ECX_12;\n  addr *extraout_ECX_13;\n  char *pcVar24;\n  addr *extraout_ECX_14;\n  addr *extraout_ECX_15;\n  addr *extraout_ECX_16;\n  undefined4 extraout_ECX_17;\n  addr *extraout_ECX_18;\n  addr *extraout_ECX_19;\n  addr *extraout_ECX_20;\n  addr *extraout_ECX_21;\n  addr *extraout_ECX_22;\n  addr *extraout_ECX_23;\n  addr *extraout_ECX_24;\n  addr *extraout_ECX_25;\n  addr *extraout_ECX_26;\n  addr *extraout_ECX_27;\n  addr *extraout_ECX_28;\n  addr *extraout_ECX_29;\n  addr *extraout_ECX_30;\n  line *extraout_ECX_31;\n  addr *extraout_ECX_32;\n  addr *extraout_ECX_33;\n  addr *extraout_ECX_34;\n  addr *extraout_ECX_35;\n  addr *extraout_ECX_36;\n  undefined4 extraout_ECX_37;\n  undefined4 extraout_ECX_38;\n  undefined4 extraout_ECX_39;\n  addr *extraout_ECX_40;\n  addr *extraout_ECX_41;\n  addr *extraout_ECX_42;\n  addr *extraout_ECX_43;\n  undefined4 uVar25;\n  line *plVar26;\n  char *buf_00;\n  line *extraout_EDX;\n  line *extraout_EDX_00;\n  line *extraout_EDX_01;\n  size_t sVar27;\n  line *extraout_EDX_02;\n  line *extraout_EDX_03;\n  line *extraout_EDX_04;\n  line *plVar28;\n  byte *pbVar29;\n  line *extraout_EDX_05;\n  line *extraout_EDX_06;\n  line *sc;\n  line *plVar30;\n  byte *pbVar31;\n  line *regsize;\n  uint uVar32;\n  int in_GS_OFFSET;\n  bool bVar33;\n  size_t in_stack_ffffef7c;\n  _Bool *b;\n  line *in_stack_ffffef8c;\n  line *local_106c;\n  uint local_1068;\n  size_t local_1060;\n  char *local_105c;\n  uint local_1058;\n  size_t buflen;\n  char *text;\n  mbstate_t mbstate;\n  char buf [4096];\n  \n  puVar7 = PTR_stdout_00030fdc;\n  sc = (line *)vec->v;\n  sVar2 = vec->v_length;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  ppaVar6 = (addr **)&sc->text;\n  b = &debug;\n  local_1060 = in_stack_ffffef7c;\n  cVar9 = debug;\njoined_r0x00017cbb:\n  if ((line *)(ppaVar6 + sVar2 * 6) <= sc) {\n    if (cVar9 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (no_default_output == false) {\nLAB_00017e26:\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\nLAB_00017f53:\n    pcVar11 = (char *)0xffffffff;\nLAB_00017f58:\n    if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail_local();\n    }\n    return (int)pcVar11;\n  }\n  if (cVar9 != '\0') {\n    local_1060 = 9;\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    debug_print_command(vec,(sed_cmd *)sc);\n    in_ECX = extraout_ECX;\n  }\nLAB_00017cfb:\n  paVar17 = (addr *)sc->text;\n  if (paVar17 == (addr *)0x0) {\nLAB_00017e6b:\n    uVar10 = 1;\n  }\n  else {\n    in_ECX = (addr *)sc->active;\n    if (sc->length == RANGE_ACTIVE) {\n      if (in_ECX->addr_type != ADDR_IS_NUM) goto LAB_00017e56;\n      uVar10 = input->line_number;\n      uVar32 = in_ECX->addr_number;\n      if (uVar32 <= uVar10) {\n        sc->length = RANGE_CLOSED;\n      }\n      uVar10 = (uint)(uVar10 <= uVar32);\n    }\n    else if (in_ECX == (addr *)0x0) {\n      _Var8 = match_an_address_p(paVar17,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_05;\n    }\n    else if (paVar17->addr_type == ADDR_IS_NUM) {\n      if ((sc->length == RANGE_CLOSED) || (input->line_number < paVar17->addr_number)) {\nLAB_00017ef0:\n        uVar10 = 0;\n      }\n      else {\n        aVar15 = in_ECX->addr_type;\n        sc->length = RANGE_ACTIVE;\n        bVar33 = aVar15 == ADDR_IS_NUM;\n        if (bVar33) goto LAB_00017ec1;\nLAB_00017d50:\n        if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }\n      }\n    }\n    else {\n      _Var8 = match_an_address_p(paVar17,input);\n      in_ECX = extraout_ECX_03;\n      if (!_Var8) goto LAB_00017ef0;\n      in_ECX = (addr *)sc->active;\n      sc->length = RANGE_ACTIVE;\n      aVar15 = in_ECX->addr_type;\n      bVar33 = aVar15 == ADDR_IS_NUM;\n      if (!bVar33) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar10 = in_ECX->addr_number;\n      uVar32 = input->line_number;\n      if ((uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10)) goto LAB_00017e6b;\n      _Var8 = match_an_address_p((addr *)sc->text,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_04;\n    }\n  }\n  pFVar4 = output_file.fp;\n  sVar16 = line.length;\n  pbVar31 = (byte *)line.active;\n  if ((int)(char)sc->alloc == uVar10) goto _L604;\n  plVar26 = (line *)(int)*(char *)((int)&sc->alloc + 1);\n  switch((uint)((int)&plVar26[-2].mbstate.__count + 1U) & 0xff) {\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto _L604;\n  default:\n                    /* WARNING: Subroutine does not return */\n    panic("INTERNAL ERROR: Bad cmd %c",plVar26);\n  case 0x1a:\n    if (output_file.missing_newline != false) {\n      local_1060 = 1;\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    pcVar11 = "%lu%c";\n    pcVar24 = (char *)input->line_number;\n    goto LAB_00018a05;\n  case 0x21:\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    if (pvVar21 == (void *)0x0) goto LAB_00017f53;\n    line.active = (char *)((int)pvVar21 + 1);\n    line.alloc = line.alloc - ((int)line.active - (int)pbVar31);\n    sc = (line *)vec->v;\n    line.length = sVar16 - ((int)line.active - (int)pbVar31);\n    in_ECX = extraout_ECX_27;\n    if (*(_Bool *)&((line *)b)->text == false) goto joined_r0x00018523;\n    debug_print_line(&line);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_28;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (output_file.missing_newline != false) {\n      local_1060 = 1;\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    pcVar11 = "%s%c";\n    pcVar24 = input->in_file_name;\nLAB_00018a05:\n    __fprintf_chk(output_file.fp,1,pcVar11,pcVar24,(int)buffer_delimiter);\n    in_ECX = extraout_ECX_29;\n    if (unbuffered == false) goto _L604;\n    ck_fflush(output_file.fp);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_30;\n    goto LAB_00017de7;\n  case 0x24:\n    line_append((line *)input,(line *)b,(int)in_stack_ffffef8c);\n    in_ECX = extraout_ECX_00;\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_000182c0;\n    goto LAB_00017dd0;\n  case 0x25:\n    line_append((line *)input,(line *)b,(int)in_stack_ffffef8c);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_22;\n    break;\n  case 0x2b:\n    str_append(&line,&buffer_delimiter,1);\n    if (((buffer.length != 0) || (_Var8 = test_eof(input), !_Var8)) &&\n       (_Var8 = read_pattern_space(input,vec,1), in_ECX = extraout_ECX_25, _Var8))\n    goto LAB_000188c9;\n    if (*(_Bool *)&((line *)b)->text != false) {\n      puts("END-OF-CYCLE:");\n    }\n    line.length = line.length - 1;\n    if ((posixicity != POSIXLY_EXTENDED) || (no_default_output != false)) goto LAB_00017f53;\n    goto LAB_00017e26;\n  case 0x2d:\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    if (pvVar21 == (void *)0x0) {\n      uVar10 = (uint)line.chomped;\n    }\n    else {\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }\n    poVar12 = &output_file;\n    goto LAB_0001881e;\n  case 0x2e:\n    goto _L358;\n  case 0x2f:\n    pFVar4 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf->fp;\n    if ((pFVar4 != (FILE *)0x0) && ((pFVar4->_flags & 0x10) == 0)) {\n      text = (char *)0x0;\n      local_1060 = (size_t)buffer_delimiter;\n      sVar16 = ck_getdelim(&text,&buflen,buffer_delimiter,pFVar4);\n      if (sVar16 == 0xffffffff) {\n        free(text);\n        in_ECX = extraout_ECX_43;\n      }\n      else {\n        paVar13 = next_append_slot();\n        paVar13->free = true;\n        paVar13->text = text;\n        paVar13->textlen = sVar16;\n        in_ECX = extraout_ECX_06;\n      }\n    }\n    goto _L604;\n  case 0x31:\n    cVar9 = *(char *)&((line *)b)->text;\n    if (replaced == false) goto LAB_00018263;\n    replaced = false;\n    goto LAB_00017de7;\n  case 0x34:\n    poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf;\n    in_stack_ffffef8c = (line *)poVar12;\n    if (((line *)poVar12)->length == RANGE_INACTIVE) goto _L604;\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    in_stack_ffffef8c = (line *)poVar12;\n    if (pvVar21 == (void *)0x0) {\n      uVar10 = (uint)line.chomped;\n    }\n    else {\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }\nLAB_0001881e:\n    output_line((char *)pbVar31,sVar16,uVar10,poVar12);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_23;\n    goto LAB_00017de7;\n  case 0x3e:\n    paVar13 = next_append_slot();\n    paVar13->text = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    paVar13->textlen = (sc->mbstate).__count;\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_24;\n    goto LAB_00017de7;\n  case 0x3f:\n  case 0x58:\n    goto _L336;\n  case 0x40:\n    if (sc->length != RANGE_ACTIVE) {\n      output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                  (sc->mbstate).__count - 1,1,&output_file);\n    }\n  case 0x41:\n_L352:\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    pcVar11 = (char *)0xffffffff;\n    goto LAB_00017f58;\n  case 0x42:\n    plVar28 = (line *)(sc->mbstate).__count;\n    in_stack_ffffef8c = plVar28;\n    line_reset((line *)0x0,plVar26);\n    if (plVar28 == (line *)0x0) {\n      str_append(&line,"",1);\n      pFVar23 = popen(line.active,"r");\n      uVar25 = extraout_ECX_17;\n    }\n    else {\n      *(char *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1 +\n               (int)in_stack_ffffef8c) = '\0';\n      pFVar23 = popen((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,"r");\n      uVar25 = extraout_ECX_37;\n      if (output_file.missing_newline != false) {\n        local_1060 = 1;\n        ck_fwrite(PTR_buffer_delimiter_00030fd8,1,1,output_file.fp);\n        output_file.missing_newline = false;\n        uVar25 = extraout_ECX_38;\n      }\n    }\n    if (pFVar23 == (FILE *)0x0) goto LAB_0001925a;\n    while ((pFVar23->_flags & 0x10) == 0) {\n      local_1060 = 0x1000;\n      sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n      if (0 < (int)sVar14) {\n        if (in_stack_ffffef8c == (line *)0x0) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        else {\n          ck_fwrite(buf,1,sVar14,output_file.fp);\n          local_1060 = sVar14;\n        }\n      }\n    }\n    pclose(pFVar23);\n    if (in_stack_ffffef8c == (line *)0x0) {\n      if ((s_accum.length != 0) && (s_accum.active[s_accum.length - 1] == buffer_delimiter)) {\n        s_accum.length = s_accum.length - 1;\n      }\n      line_exchange((line *)input,(line *)b,0);\n      in_ECX = extraout_ECX_19;\n    }\n    else {\n      in_ECX = extraout_ECX_18;\n      if (unbuffered != false) {\n        ck_fflush(output_file.fp);\n        in_ECX = extraout_ECX_36;\n      }\n    }\n    goto _L604;\n  case 0x44:\n    line_copy(&hold,&line,(int)in_ECX);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_26;\n    break;\n  case 0x45:\n    line_copy(&line,&hold,(int)in_ECX);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_20;\n    break;\n  case 0x46:\n    output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                (sc->mbstate).__count - 1,1,&output_file);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_15;\n    goto LAB_00017de7;\n  case 0x49:\n    local_106c = (line *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (local_106c == (line *)0xffffffff) {\n      local_106c = (line *)lcmd_out_line_len;\n    }\n    if (output_file.missing_newline != false) {\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    if (sVar16 != 0) {\n      pbVar22 = (byte *)((char *)pbVar31 + sVar16);\n      pcVar11 = buf + 1;\n      plVar26 = (line *)0x0;\n      do {\n        bVar1 = *pbVar31;\n        in_stack_ffffef8c = (line *)(uint)bVar1;\n        if (((bVar1 & 0x80) == 0) &&\n           (ppuVar20 = __ctype_b_loc(),\n           (*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0)) {\n          plVar28 = (line *)0x1;\n          buf[0] = bVar1;\n          if (*pbVar31 == 0x5c) {\n            buf[1] = '\\';\n            plVar28 = (line *)0x2;\n          }\n        }\n        else {\n          buf[0] = '\\';\n          switch(*pbVar31) {\n          case 7:\n            buf[1] = 'a';\n            plVar28 = (line *)0x2;\n            break;\n          case 8:\n            buf[1] = 'b';\n            plVar28 = (line *)0x2;\n            break;\n          case 9:\n            buf[1] = 't';\n            plVar28 = (line *)0x2;\n            break;\n          case 10:\n            buf[1] = 'n';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xb:\n            buf[1] = 'v';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xc:\n            buf[1] = 'f';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xd:\n            buf[1] = 'r';\n            plVar28 = (line *)0x2;\n            break;\n          default:\n            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);\n            sVar14 = strlen(pcVar11);\n            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));\n          }\n        }\n        plVar26 = (line *)((int)&plVar28->text + (int)&plVar26->text);\n        if ((local_106c <= plVar26) && (0 < (int)local_106c)) {\n          ck_fwrite(&DAT_00026f7e,1,1,pFVar4);\n          ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n          plVar26 = plVar28;\n          in_stack_ffffef8c = plVar28;\n        }\n        pbVar31 = pbVar31 + 1;\n        ck_fwrite(buf,1,(size_t)plVar28,pFVar4);\n      } while (pbVar31 != pbVar22);\n    }\n    local_1060 = 1;\n    ck_fwrite(&DAT_00026f80,1,1,pFVar4);\n    ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n    in_ECX = extraout_ECX_34;\n    if (unbuffered != false) {\n      ck_fflush(pFVar4);\n      in_ECX = extraout_ECX_35;\n    }\n_L604:\n    cVar9 = *(char *)&((line *)b)->text;\nLAB_00017de7:\n    sc = (line *)&(sc->mbstate).__value;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (no_default_output == false) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\n    if (((buffer.length == 0) && (_Var8 = test_eof(input), _Var8)) ||\n       (_Var8 = read_pattern_space(input,vec,0), !_Var8)) goto _L352;\n    if (*(_Bool *)&((line *)b)->text != false) goto LAB_00017dd0;\n    sc = (line *)&(sc->mbstate).__value;\n    in_ECX = extraout_ECX_16;\n    goto joined_r0x00018523;\n  case 0x4d:\n    poVar12 = &output_file;\n    goto LAB_00018030;\n  case 0x4e:\n    if (no_default_output == false) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\n    dump_append_queue();\n_L358:\n    pcVar11 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (pcVar11 == (char *)0xffffffff) {\n      pcVar11 = (char *)0x0;\n    }\n    goto LAB_00017f58;\n  case 0x4f:\n    in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (in_ECX == (addr *)0x0) goto _L604;\n    paVar13 = next_append_slot();\n    paVar13->fname = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_08;\n    goto LAB_00017de7;\n  case 0x50:\n    regex = (regex *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;\n    line_reset(&line,plVar26);\n    bVar1 = *(byte *)&(regex->pattern).fastmap;\n    in_stack_ffffef8c = (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),bVar1);\n    sVar14 = (bVar1 >> 4) + 1;\n    local_106c = (line *)0x3dc;\n    iVar19 = match_regex((regex *)0x3dc,buf_00,(size_t)(regex->pattern).buffer,(size_t)line.active,\n                         (re_registers *)line.length,0);\n    in_ECX = extraout_ECX_09;\n    if (iVar19 == 0) goto LAB_000188c9;\n    plVar26 = (line *)*DAT_00031370;\n    plVar28 = extraout_EDX;\n    if (((*(_Bool *)&((line *)b)->text != false) && (plVar28 = regs_7164, regs_7164 != (line *)0x0))\n       && (plVar26 != (line *)0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      plVar26 = (line *)*DAT_00031370;\n      plVar28 = extraout_EDX_05;\n      if ((regs_7164 != (line *)0x0) && (plVar28 = extraout_EDX_05, plVar26 != (line *)0xffffffff))\n      {\n        plVar28 = (line *)0x0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",plVar28,plVar26,\n                       (&DAT_00031374->addr_type)[(int)plVar28],sVar14);\n          aVar15 = DAT_00031370[(int)plVar28];\n          if (aVar15 != (&DAT_00031374->addr_type)[(int)plVar28]) {\n            sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15;\n            local_1060 = 1;\n            fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7);\n          }\n          plVar30 = (line *)((int)&plVar28->text + 1);\n          puts("\'");\n          if (regs_7164 <= plVar30) {\n            plVar26 = (line *)*DAT_00031370;\n            plVar28 = extraout_EDX_06;\n            goto LAB_00018110;\n          }\n          plVar26 = (line *)DAT_00031370[(int)((int)&plVar28->text + 1)];\n          plVar28 = plVar30;\n        } while (plVar26 != (line *)0xffffffff);\n        plVar26 = (line *)*DAT_00031370;\n        plVar28 = extraout_EDX_06;\n      }\n    }\nLAB_00018110:\n    aVar15 = DAT_00031374->addr_type;\n    if (((regex->pattern).allocated != 0) || (1 < (regex->pattern).used)) {\nLAB_00018127:\n      plVar30 = (line *)0x0;\n      regsize = (line *)0x0;\n      local_1058 = 0;\n      sVar16 = local_1060;\n      do {\n        local_1060 = aVar15 - (int)plVar26;\n        in_stack_ffffef8c = plVar26;\n        if (regsize < plVar26) {\n          sVar27 = (int)plVar26 - (int)regsize;\n          pcVar11 = line.active + (int)regsize;\n          regsize = plVar26;\n          str_append(&s_accum,pcVar11,sVar27);\n          plVar26 = extraout_ECX_10;\n          plVar28 = extraout_EDX_01;\n          in_stack_ffffef8c = regsize;\n        }\n        plVar28 = (line *)CONCAT31((int3)((uint)plVar28 >> 8),\n                                   local_1058 == 0 || plVar30 < in_stack_ffffef8c);\n        if ((local_1058 == 0 || plVar30 < in_stack_ffffef8c) || (local_1060 != 0)) {\n          local_1058 = local_1058 + 1;\n          if (local_1058 < (regex->pattern).used) {\n            if (local_1060 == 0) goto LAB_0001817a;\n            goto LAB_00018190;\n          }\n          puVar5 = (undefined4 *)(regex->pattern).allocated;\n          replaced = true;\n          local_1068 = 0;\n          for (; puVar5 != (undefined4 *)0x0; puVar5 = (undefined4 *)puVar5[4]) {\n            uVar10 = puVar5[3];\n            plVar28 = (line *)puVar5[1];\n            plVar26 = (line *)puVar5[2];\n            if ((uVar10 & 0xc) == 0) {\n              uVar10 = local_1068 | uVar10;\n            }\n            uVar32 = uVar10;\n            if (plVar28 != (line *)0x0) {\n              uVar32 = uVar10 & 0xfffffff3;\n              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);\n              plVar28 = extraout_EDX_03;\n            }\n            local_1068 = 0;\n            if ((-1 < (int)plVar26) && (plVar26 < regs_7164)) {\n              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];\n              plVar26 = (line *)DAT_00031370[(int)plVar26];\n              if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }\n            }\n          }\n          regsize = (line *)((int)in_stack_ffffef8c + local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n          if (((uint)(regex->pattern).fastmap & 1) == 0) goto LAB_00018ba8;\n        }\n        else {\nLAB_0001817a:\n          local_1060 = sVar16;\n          if (line.length <= regsize) goto LAB_00018bcb;\n          local_1060 = 1;\nLAB_00018190:\n          regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060);\n          str_append(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n        }\n        plVar26 = local_106c;\n        plVar28 = (line *)line.length;\n        local_1060 = sVar16;\n        if (line.length < regsize) goto LAB_00018bcb;\n        in_stack_ffffef8c =\n             (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),\n                              *(undefined1 *)&(regex->pattern).fastmap);\n        iVar19 = match_regex(regex,(char *)line.length,(size_t)(regex->pattern).buffer,\n                             (size_t)line.active,(re_registers *)line.length,(int)regsize);\n        plVar28 = extraout_EDX_00;\n        if (iVar19 == 0) goto LAB_00018ba8;\n        plVar26 = (line *)*DAT_00031370;\n        aVar15 = DAT_00031374->addr_type;\n      } while( true );\n    }\n    plVar28 = plVar26;\n    in_ECX = DAT_00031374;\n    if ((plVar26 == (line *)0x0) &&\n       (bVar1 = *(byte *)&(regex->pattern).fastmap, plVar28 = (line *)(uint)bVar1, (bVar1 & 1) == 0)\n       ) {\n      line.length = line.length - aVar15;\n      line.active = line.active + aVar15;\n      line.alloc = line.alloc - DAT_00031374->addr_type;\n      replaced = true;\n    }\n    else {\n      if (aVar15 != line.length) goto LAB_00018127;\n      replaced = true;\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n      line.length = (size_t)plVar26;\n    }\n    goto LAB_00018bf8;\n  case 0x51:\n    cVar9 = *(char *)&((line *)b)->text;\n    if (replaced == false) goto LAB_00017de7;\n    replaced = false;\nLAB_00018263:\n    in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg * 3);\n    sc = (line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf;\n    if (poVar12->fp == (FILE *)0x0) goto _L604;\nLAB_00018030:\n    output_line(line.active,line.length,(uint)line.chomped,poVar12);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_07;\n    goto LAB_00017de7;\n  case 0x55:\n    line_exchange(&hold,plVar26,(int)in_ECX);\n    in_ECX = extraout_ECX_11;\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_000182c0;\n    debug_print_line(&line);\n    goto LAB_0001861e;\n  case 0x56:\n    if (mb_cur_max < 2) {\n      pbVar22 = (byte *)(line.active + line.length);\n      if (line.active < pbVar22) {\n        do {\n          pbVar29 = pbVar31 + 1;\n          bVar1 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text[*pbVar31];\n          in_ECX = (addr *)(uint)bVar1;\n          *pbVar31 = bVar1;\n          pbVar31 = pbVar29;\n        } while (pbVar22 != pbVar29);\n      }\n    }\n    else {\n      in_stack_ffffef8c = (line *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;\n      mbstate.__count = 0;\n      mbstate.__value.__wch = 0;\n      if (line.length != 0) {\n        local_1068 = 0;\n        do {\n          if (mb_cur_max == 1) {\nLAB_0001836f:\n            sVar16 = 1;\n          }\n          else {\n            local_1060 = line.length - local_1068;\n            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);\n            in_ECX = extraout_ECX_12;\n            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;\n          }\n          paVar17 = (addr *)in_stack_ffffef8c->text;\n          if (paVar17 != (addr *)0x0) {\n            local_105c = line.active;\n            pcVar11 = line.active + local_1068;\n            iVar19 = 0;\n            do {\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            } while (paVar17 != (addr *)0x0);\n          }\n          local_1068 = local_1068 + sVar16;\n        } while (local_1068 < line.length);\n      }\n    }\n    goto LAB_000188c9;\n  case 0x57:\n    line.length = 0;\n    goto LAB_000188c9;\n  }\n  if (cVar9 == '\0') goto LAB_000182c0;\nLAB_0001861e:\n  debug_print_line(&hold);\n  cVar9 = *(char *)&((line *)b)->text;\n  in_ECX = extraout_ECX_21;\n  goto LAB_00017de7;\nLAB_00018ba8:\n  plVar26 = (line *)line.length;\n  local_1060 = sVar16;\n  if (regsize < line.length) {\n    str_append(&s_accum,line.active + (int)&regsize->text,line.length - (int)regsize);\n    plVar26 = extraout_ECX_31;\n    plVar28 = extraout_EDX_04;\n    local_1060 = sVar16;\n  }\nLAB_00018bcb:\n  s_accum.chomped = line.chomped;\n  line_exchange(&s_accum,plVar28,(int)plVar26);\n  in_ECX = extraout_ECX_32;\n  if ((regex->pattern).used <= local_1058) {\n    plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n    in_ECX = extraout_ECX_32;\n    plVar26 = in_stack_ffffef8c;\nLAB_00018bf8:\n    in_stack_ffffef8c = plVar26;\n    if (((uint)plVar28 & 2) != 0) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n      in_ECX = extraout_ECX_41;\n      in_stack_ffffef8c = plVar26;\n    }\n    if (((uint)plVar28 & 8) != 0) {\n      line_reset((line *)0x0,plVar28);\n      str_append(&line,"",1);\n      plVar26 = (line *)0x281e1;\n      pFVar23 = popen(line.active,"r");\n      uVar25 = extraout_ECX_39;\n      if (pFVar23 == (FILE *)0x0) {\nLAB_0001925a:\n        pcVar11 = (char *)dcgettext(0,"error in subprocess",5,uVar25);\n                    /* WARNING: Subroutine does not return */\n        panic(pcVar11);\n      }\n      bVar1 = (byte)pFVar23->_flags;\n      while ((bVar1 & 0x10) == 0) {\n        local_1060 = 0x1000;\n        plVar26 = (line *)0x1;\n        sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n        if (0 < (int)sVar14) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        in_stack_ffffef8c = sc;\n        bVar1 = (byte)pFVar23->_flags;\n      }\n      pclose(pFVar23);\n      line_exchange((line *)pFVar23,plVar26,local_1060);\n      in_ECX = extraout_ECX_40;\n      if ((line.length != 0) &&\n         (in_ECX = (addr *)(line.length - 1), line.active[line.length - 1] == buffer_delimiter)) {\n        line.length = (size_t)in_ECX;\n      }\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n    }\n    if (((uint)plVar28 >> 1 & 2) != 0) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n      in_ECX = extraout_ECX_42;\n    }\n    poVar12 = (output *)(regex->pattern).syntax;\n    if (poVar12 != (output *)0x0) {\n      output_line(line.active,line.length,(uint)line.chomped,poVar12);\n      in_ECX = extraout_ECX_33;\n    }\n  }\nLAB_000188c9:\n  if (*(_Bool *)&((line *)b)->text != false) {\nLAB_00017dd0:\n    debug_print_line(&line);\n    in_ECX = extraout_ECX_01;\n    goto _L604;\n  }\nLAB_000182c0:\n  sc = (line *)&(sc->mbstate).__value;\njoined_r0x00018523:\n  if ((line *)(ppaVar6 + sVar2 * 6) <= sc) goto LAB_00017e10;\n  goto LAB_00017cfb;\n_L336:\n  sc = (line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg);\n  cVar9 = *(char *)&((line *)b)->text;\n  goto joined_r0x00017cbb;\n}\n\n" comment comment (function_definition "int __regparm3 execute_program(vector *vec,input *input)\n\n{\n  byte bVar1;\n  size_t sVar2;\n  int iVar3;\n  FILE *pFVar4;\n  regex *regex;\n  undefined4 *puVar5;\n  addr **ppaVar6;\n  undefined *puVar7;\n  _Bool _Var8;\n  char cVar9;\n  uint uVar10;\n  char *pcVar11;\n  output *poVar12;\n  append_queue *paVar13;\n  size_t sVar14;\n  addr_types aVar15;\n  size_t sVar16;\n  addr *paVar17;\n  int iVar18;\n  int iVar19;\n  ushort **ppuVar20;\n  void *pvVar21;\n  byte *pbVar22;\n  FILE *pFVar23;\n  addr *in_ECX;\n  addr *extraout_ECX;\n  addr *extraout_ECX_00;\n  addr *extraout_ECX_01;\n  addr *extraout_ECX_02;\n  addr *extraout_ECX_03;\n  addr *extraout_ECX_04;\n  addr *extraout_ECX_05;\n  addr *extraout_ECX_06;\n  addr *extraout_ECX_07;\n  addr *extraout_ECX_08;\n  addr *extraout_ECX_09;\n  line *extraout_ECX_10;\n  addr *extraout_ECX_11;\n  addr *extraout_ECX_12;\n  addr *extraout_ECX_13;\n  char *pcVar24;\n  addr *extraout_ECX_14;\n  addr *extraout_ECX_15;\n  addr *extraout_ECX_16;\n  undefined4 extraout_ECX_17;\n  addr *extraout_ECX_18;\n  addr *extraout_ECX_19;\n  addr *extraout_ECX_20;\n  addr *extraout_ECX_21;\n  addr *extraout_ECX_22;\n  addr *extraout_ECX_23;\n  addr *extraout_ECX_24;\n  addr *extraout_ECX_25;\n  addr *extraout_ECX_26;\n  addr *extraout_ECX_27;\n  addr *extraout_ECX_28;\n  addr *extraout_ECX_29;\n  addr *extraout_ECX_30;\n  line *extraout_ECX_31;\n  addr *extraout_ECX_32;\n  addr *extraout_ECX_33;\n  addr *extraout_ECX_34;\n  addr *extraout_ECX_35;\n  addr *extraout_ECX_36;\n  undefined4 extraout_ECX_37;\n  undefined4 extraout_ECX_38;\n  undefined4 extraout_ECX_39;\n  addr *extraout_ECX_40;\n  addr *extraout_ECX_41;\n  addr *extraout_ECX_42;\n  addr *extraout_ECX_43;\n  undefined4 uVar25;\n  line *plVar26;\n  char *buf_00;\n  line *extraout_EDX;\n  line *extraout_EDX_00;\n  line *extraout_EDX_01;\n  size_t sVar27;\n  line *extraout_EDX_02;\n  line *extraout_EDX_03;\n  line *extraout_EDX_04;\n  line *plVar28;\n  byte *pbVar29;\n  line *extraout_EDX_05;\n  line *extraout_EDX_06;\n  line *sc;\n  line *plVar30;\n  byte *pbVar31;\n  line *regsize;\n  uint uVar32;\n  int in_GS_OFFSET;\n  bool bVar33;\n  size_t in_stack_ffffef7c;\n  _Bool *b;\n  line *in_stack_ffffef8c;\n  line *local_106c;\n  uint local_1068;\n  size_t local_1060;\n  char *local_105c;\n  uint local_1058;\n  size_t buflen;\n  char *text;\n  mbstate_t mbstate;\n  char buf [4096];\n  \n  puVar7 = PTR_stdout_00030fdc;\n  sc = (line *)vec->v;\n  sVar2 = vec->v_length;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  ppaVar6 = (addr **)&sc->text;\n  b = &debug;\n  local_1060 = in_stack_ffffef7c;\n  cVar9 = debug;\njoined_r0x00017cbb:\n  if ((line *)(ppaVar6 + sVar2 * 6) <= sc) {\n    if (cVar9 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (no_default_output == false) {\nLAB_00017e26:\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\nLAB_00017f53:\n    pcVar11 = (char *)0xffffffff;\nLAB_00017f58:\n    if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail_local();\n    }\n    return (int)pcVar11;\n  }\n  if (cVar9 != '\0') {\n    local_1060 = 9;\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    debug_print_command(vec,(sed_cmd *)sc);\n    in_ECX = extraout_ECX;\n  }\nLAB_00017cfb:\n  paVar17 = (addr *)sc->text;\n  if (paVar17 == (addr *)0x0) {\nLAB_00017e6b:\n    uVar10 = 1;\n  }\n  else {\n    in_ECX = (addr *)sc->active;\n    if (sc->length == RANGE_ACTIVE) {\n      if (in_ECX->addr_type != ADDR_IS_NUM) goto LAB_00017e56;\n      uVar10 = input->line_number;\n      uVar32 = in_ECX->addr_number;\n      if (uVar32 <= uVar10) {\n        sc->length = RANGE_CLOSED;\n      }\n      uVar10 = (uint)(uVar10 <= uVar32);\n    }\n    else if (in_ECX == (addr *)0x0) {\n      _Var8 = match_an_address_p(paVar17,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_05;\n    }\n    else if (paVar17->addr_type == ADDR_IS_NUM) {\n      if ((sc->length == RANGE_CLOSED) || (input->line_number < paVar17->addr_number)) {\nLAB_00017ef0:\n        uVar10 = 0;\n      }\n      else {\n        aVar15 = in_ECX->addr_type;\n        sc->length = RANGE_ACTIVE;\n        bVar33 = aVar15 == ADDR_IS_NUM;\n        if (bVar33) goto LAB_00017ec1;\nLAB_00017d50:\n        if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }\n      }\n    }\n    else {\n      _Var8 = match_an_address_p(paVar17,input);\n      in_ECX = extraout_ECX_03;\n      if (!_Var8) goto LAB_00017ef0;\n      in_ECX = (addr *)sc->active;\n      sc->length = RANGE_ACTIVE;\n      aVar15 = in_ECX->addr_type;\n      bVar33 = aVar15 == ADDR_IS_NUM;\n      if (!bVar33) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar10 = in_ECX->addr_number;\n      uVar32 = input->line_number;\n      if ((uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10)) goto LAB_00017e6b;\n      _Var8 = match_an_address_p((addr *)sc->text,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_04;\n    }\n  }\n  pFVar4 = output_file.fp;\n  sVar16 = line.length;\n  pbVar31 = (byte *)line.active;\n  if ((int)(char)sc->alloc == uVar10) goto _L604;\n  plVar26 = (line *)(int)*(char *)((int)&sc->alloc + 1);\n  switch((uint)((int)&plVar26[-2].mbstate.__count + 1U) & 0xff) {\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto _L604;\n  default:\n                    /* WARNING: Subroutine does not return */\n    panic("INTERNAL ERROR: Bad cmd %c",plVar26);\n  case 0x1a:\n    if (output_file.missing_newline != false) {\n      local_1060 = 1;\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    pcVar11 = "%lu%c";\n    pcVar24 = (char *)input->line_number;\n    goto LAB_00018a05;\n  case 0x21:\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    if (pvVar21 == (void *)0x0) goto LAB_00017f53;\n    line.active = (char *)((int)pvVar21 + 1);\n    line.alloc = line.alloc - ((int)line.active - (int)pbVar31);\n    sc = (line *)vec->v;\n    line.length = sVar16 - ((int)line.active - (int)pbVar31);\n    in_ECX = extraout_ECX_27;\n    if (*(_Bool *)&((line *)b)->text == false) goto joined_r0x00018523;\n    debug_print_line(&line);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_28;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (output_file.missing_newline != false) {\n      local_1060 = 1;\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    pcVar11 = "%s%c";\n    pcVar24 = input->in_file_name;\nLAB_00018a05:\n    __fprintf_chk(output_file.fp,1,pcVar11,pcVar24,(int)buffer_delimiter);\n    in_ECX = extraout_ECX_29;\n    if (unbuffered == false) goto _L604;\n    ck_fflush(output_file.fp);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_30;\n    goto LAB_00017de7;\n  case 0x24:\n    line_append((line *)input,(line *)b,(int)in_stack_ffffef8c);\n    in_ECX = extraout_ECX_00;\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_000182c0;\n    goto LAB_00017dd0;\n  case 0x25:\n    line_append((line *)input,(line *)b,(int)in_stack_ffffef8c);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_22;\n    break;\n  case 0x2b:\n    str_append(&line,&buffer_delimiter,1);\n    if (((buffer.length != 0) || (_Var8 = test_eof(input), !_Var8)) &&\n       (_Var8 = read_pattern_space(input,vec,1), in_ECX = extraout_ECX_25, _Var8))\n    goto LAB_000188c9;\n    if (*(_Bool *)&((line *)b)->text != false) {\n      puts("END-OF-CYCLE:");\n    }\n    line.length = line.length - 1;\n    if ((posixicity != POSIXLY_EXTENDED) || (no_default_output != false)) goto LAB_00017f53;\n    goto LAB_00017e26;\n  case 0x2d:\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    if (pvVar21 == (void *)0x0) {\n      uVar10 = (uint)line.chomped;\n    }\n    else {\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }\n    poVar12 = &output_file;\n    goto LAB_0001881e;\n  case 0x2e:\n    goto _L358;\n  case 0x2f:\n    pFVar4 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf->fp;\n    if ((pFVar4 != (FILE *)0x0) && ((pFVar4->_flags & 0x10) == 0)) {\n      text = (char *)0x0;\n      local_1060 = (size_t)buffer_delimiter;\n      sVar16 = ck_getdelim(&text,&buflen,buffer_delimiter,pFVar4);\n      if (sVar16 == 0xffffffff) {\n        free(text);\n        in_ECX = extraout_ECX_43;\n      }\n      else {\n        paVar13 = next_append_slot();\n        paVar13->free = true;\n        paVar13->text = text;\n        paVar13->textlen = sVar16;\n        in_ECX = extraout_ECX_06;\n      }\n    }\n    goto _L604;\n  case 0x31:\n    cVar9 = *(char *)&((line *)b)->text;\n    if (replaced == false) goto LAB_00018263;\n    replaced = false;\n    goto LAB_00017de7;\n  case 0x34:\n    poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf;\n    in_stack_ffffef8c = (line *)poVar12;\n    if (((line *)poVar12)->length == RANGE_INACTIVE) goto _L604;\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    in_stack_ffffef8c = (line *)poVar12;\n    if (pvVar21 == (void *)0x0) {\n      uVar10 = (uint)line.chomped;\n    }\n    else {\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }\nLAB_0001881e:\n    output_line((char *)pbVar31,sVar16,uVar10,poVar12);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_23;\n    goto LAB_00017de7;\n  case 0x3e:\n    paVar13 = next_append_slot();\n    paVar13->text = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    paVar13->textlen = (sc->mbstate).__count;\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_24;\n    goto LAB_00017de7;\n  case 0x3f:\n  case 0x58:\n    goto _L336;\n  case 0x40:\n    if (sc->length != RANGE_ACTIVE) {\n      output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                  (sc->mbstate).__count - 1,1,&output_file);\n    }\n  case 0x41:\n_L352:\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    pcVar11 = (char *)0xffffffff;\n    goto LAB_00017f58;\n  case 0x42:\n    plVar28 = (line *)(sc->mbstate).__count;\n    in_stack_ffffef8c = plVar28;\n    line_reset((line *)0x0,plVar26);\n    if (plVar28 == (line *)0x0) {\n      str_append(&line,"",1);\n      pFVar23 = popen(line.active,"r");\n      uVar25 = extraout_ECX_17;\n    }\n    else {\n      *(char *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1 +\n               (int)in_stack_ffffef8c) = '\0';\n      pFVar23 = popen((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,"r");\n      uVar25 = extraout_ECX_37;\n      if (output_file.missing_newline != false) {\n        local_1060 = 1;\n        ck_fwrite(PTR_buffer_delimiter_00030fd8,1,1,output_file.fp);\n        output_file.missing_newline = false;\n        uVar25 = extraout_ECX_38;\n      }\n    }\n    if (pFVar23 == (FILE *)0x0) goto LAB_0001925a;\n    while ((pFVar23->_flags & 0x10) == 0) {\n      local_1060 = 0x1000;\n      sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n      if (0 < (int)sVar14) {\n        if (in_stack_ffffef8c == (line *)0x0) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        else {\n          ck_fwrite(buf,1,sVar14,output_file.fp);\n          local_1060 = sVar14;\n        }\n      }\n    }\n    pclose(pFVar23);\n    if (in_stack_ffffef8c == (line *)0x0) {\n      if ((s_accum.length != 0) && (s_accum.active[s_accum.length - 1] == buffer_delimiter)) {\n        s_accum.length = s_accum.length - 1;\n      }\n      line_exchange((line *)input,(line *)b,0);\n      in_ECX = extraout_ECX_19;\n    }\n    else {\n      in_ECX = extraout_ECX_18;\n      if (unbuffered != false) {\n        ck_fflush(output_file.fp);\n        in_ECX = extraout_ECX_36;\n      }\n    }\n    goto _L604;\n  case 0x44:\n    line_copy(&hold,&line,(int)in_ECX);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_26;\n    break;\n  case 0x45:\n    line_copy(&line,&hold,(int)in_ECX);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_20;\n    break;\n  case 0x46:\n    output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                (sc->mbstate).__count - 1,1,&output_file);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_15;\n    goto LAB_00017de7;\n  case 0x49:\n    local_106c = (line *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (local_106c == (line *)0xffffffff) {\n      local_106c = (line *)lcmd_out_line_len;\n    }\n    if (output_file.missing_newline != false) {\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    if (sVar16 != 0) {\n      pbVar22 = (byte *)((char *)pbVar31 + sVar16);\n      pcVar11 = buf + 1;\n      plVar26 = (line *)0x0;\n      do {\n        bVar1 = *pbVar31;\n        in_stack_ffffef8c = (line *)(uint)bVar1;\n        if (((bVar1 & 0x80) == 0) &&\n           (ppuVar20 = __ctype_b_loc(),\n           (*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0)) {\n          plVar28 = (line *)0x1;\n          buf[0] = bVar1;\n          if (*pbVar31 == 0x5c) {\n            buf[1] = '\\';\n            plVar28 = (line *)0x2;\n          }\n        }\n        else {\n          buf[0] = '\\';\n          switch(*pbVar31) {\n          case 7:\n            buf[1] = 'a';\n            plVar28 = (line *)0x2;\n            break;\n          case 8:\n            buf[1] = 'b';\n            plVar28 = (line *)0x2;\n            break;\n          case 9:\n            buf[1] = 't';\n            plVar28 = (line *)0x2;\n            break;\n          case 10:\n            buf[1] = 'n';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xb:\n            buf[1] = 'v';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xc:\n            buf[1] = 'f';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xd:\n            buf[1] = 'r';\n            plVar28 = (line *)0x2;\n            break;\n          default:\n            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);\n            sVar14 = strlen(pcVar11);\n            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));\n          }\n        }\n        plVar26 = (line *)((int)&plVar28->text + (int)&plVar26->text);\n        if ((local_106c <= plVar26) && (0 < (int)local_106c)) {\n          ck_fwrite(&DAT_00026f7e,1,1,pFVar4);\n          ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n          plVar26 = plVar28;\n          in_stack_ffffef8c = plVar28;\n        }\n        pbVar31 = pbVar31 + 1;\n        ck_fwrite(buf,1,(size_t)plVar28,pFVar4);\n      } while (pbVar31 != pbVar22);\n    }\n    local_1060 = 1;\n    ck_fwrite(&DAT_00026f80,1,1,pFVar4);\n    ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n    in_ECX = extraout_ECX_34;\n    if (unbuffered != false) {\n      ck_fflush(pFVar4);\n      in_ECX = extraout_ECX_35;\n    }\n_L604:\n    cVar9 = *(char *)&((line *)b)->text;\nLAB_00017de7:\n    sc = (line *)&(sc->mbstate).__value;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (no_default_output == false) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\n    if (((buffer.length == 0) && (_Var8 = test_eof(input), _Var8)) ||\n       (_Var8 = read_pattern_space(input,vec,0), !_Var8)) goto _L352;\n    if (*(_Bool *)&((line *)b)->text != false) goto LAB_00017dd0;\n    sc = (line *)&(sc->mbstate).__value;\n    in_ECX = extraout_ECX_16;\n    goto joined_r0x00018523;\n  case 0x4d:\n    poVar12 = &output_file;\n    goto LAB_00018030;\n  case 0x4e:\n    if (no_default_output == false) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\n    dump_append_queue();\n_L358:\n    pcVar11 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (pcVar11 == (char *)0xffffffff) {\n      pcVar11 = (char *)0x0;\n    }\n    goto LAB_00017f58;\n  case 0x4f:\n    in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (in_ECX == (addr *)0x0) goto _L604;\n    paVar13 = next_append_slot();\n    paVar13->fname = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_08;\n    goto LAB_00017de7;\n  case 0x50:\n    regex = (regex *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;\n    line_reset(&line,plVar26);\n    bVar1 = *(byte *)&(regex->pattern).fastmap;\n    in_stack_ffffef8c = (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),bVar1);\n    sVar14 = (bVar1 >> 4) + 1;\n    local_106c = (line *)0x3dc;\n    iVar19 = match_regex((regex *)0x3dc,buf_00,(size_t)(regex->pattern).buffer,(size_t)line.active,\n                         (re_registers *)line.length,0);\n    in_ECX = extraout_ECX_09;\n    if (iVar19 == 0) goto LAB_000188c9;\n    plVar26 = (line *)*DAT_00031370;\n    plVar28 = extraout_EDX;\n    if (((*(_Bool *)&((line *)b)->text != false) && (plVar28 = regs_7164, regs_7164 != (line *)0x0))\n       && (plVar26 != (line *)0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      plVar26 = (line *)*DAT_00031370;\n      plVar28 = extraout_EDX_05;\n      if ((regs_7164 != (line *)0x0) && (plVar28 = extraout_EDX_05, plVar26 != (line *)0xffffffff))\n      {\n        plVar28 = (line *)0x0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",plVar28,plVar26,\n                       (&DAT_00031374->addr_type)[(int)plVar28],sVar14);\n          aVar15 = DAT_00031370[(int)plVar28];\n          if (aVar15 != (&DAT_00031374->addr_type)[(int)plVar28]) {\n            sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15;\n            local_1060 = 1;\n            fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7);\n          }\n          plVar30 = (line *)((int)&plVar28->text + 1);\n          puts("\'");\n          if (regs_7164 <= plVar30) {\n            plVar26 = (line *)*DAT_00031370;\n            plVar28 = extraout_EDX_06;\n            goto LAB_00018110;\n          }\n          plVar26 = (line *)DAT_00031370[(int)((int)&plVar28->text + 1)];\n          plVar28 = plVar30;\n        } while (plVar26 != (line *)0xffffffff);\n        plVar26 = (line *)*DAT_00031370;\n        plVar28 = extraout_EDX_06;\n      }\n    }\nLAB_00018110:\n    aVar15 = DAT_00031374->addr_type;\n    if (((regex->pattern).allocated != 0) || (1 < (regex->pattern).used)) {\nLAB_00018127:\n      plVar30 = (line *)0x0;\n      regsize = (line *)0x0;\n      local_1058 = 0;\n      sVar16 = local_1060;\n      do {\n        local_1060 = aVar15 - (int)plVar26;\n        in_stack_ffffef8c = plVar26;\n        if (regsize < plVar26) {\n          sVar27 = (int)plVar26 - (int)regsize;\n          pcVar11 = line.active + (int)regsize;\n          regsize = plVar26;\n          str_append(&s_accum,pcVar11,sVar27);\n          plVar26 = extraout_ECX_10;\n          plVar28 = extraout_EDX_01;\n          in_stack_ffffef8c = regsize;\n        }\n        plVar28 = (line *)CONCAT31((int3)((uint)plVar28 >> 8),\n                                   local_1058 == 0 || plVar30 < in_stack_ffffef8c);\n        if ((local_1058 == 0 || plVar30 < in_stack_ffffef8c) || (local_1060 != 0)) {\n          local_1058 = local_1058 + 1;\n          if (local_1058 < (regex->pattern).used) {\n            if (local_1060 == 0) goto LAB_0001817a;\n            goto LAB_00018190;\n          }\n          puVar5 = (undefined4 *)(regex->pattern).allocated;\n          replaced = true;\n          local_1068 = 0;\n          for (; puVar5 != (undefined4 *)0x0; puVar5 = (undefined4 *)puVar5[4]) {\n            uVar10 = puVar5[3];\n            plVar28 = (line *)puVar5[1];\n            plVar26 = (line *)puVar5[2];\n            if ((uVar10 & 0xc) == 0) {\n              uVar10 = local_1068 | uVar10;\n            }\n            uVar32 = uVar10;\n            if (plVar28 != (line *)0x0) {\n              uVar32 = uVar10 & 0xfffffff3;\n              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);\n              plVar28 = extraout_EDX_03;\n            }\n            local_1068 = 0;\n            if ((-1 < (int)plVar26) && (plVar26 < regs_7164)) {\n              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];\n              plVar26 = (line *)DAT_00031370[(int)plVar26];\n              if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }\n            }\n          }\n          regsize = (line *)((int)in_stack_ffffef8c + local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n          if (((uint)(regex->pattern).fastmap & 1) == 0) goto LAB_00018ba8;\n        }\n        else {\nLAB_0001817a:\n          local_1060 = sVar16;\n          if (line.length <= regsize) goto LAB_00018bcb;\n          local_1060 = 1;\nLAB_00018190:\n          regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060);\n          str_append(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n        }\n        plVar26 = local_106c;\n        plVar28 = (line *)line.length;\n        local_1060 = sVar16;\n        if (line.length < regsize) goto LAB_00018bcb;\n        in_stack_ffffef8c =\n             (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),\n                              *(undefined1 *)&(regex->pattern).fastmap);\n        iVar19 = match_regex(regex,(char *)line.length,(size_t)(regex->pattern).buffer,\n                             (size_t)line.active,(re_registers *)line.length,(int)regsize);\n        plVar28 = extraout_EDX_00;\n        if (iVar19 == 0) goto LAB_00018ba8;\n        plVar26 = (line *)*DAT_00031370;\n        aVar15 = DAT_00031374->addr_type;\n      } while( true );\n    }\n    plVar28 = plVar26;\n    in_ECX = DAT_00031374;\n    if ((plVar26 == (line *)0x0) &&\n       (bVar1 = *(byte *)&(regex->pattern).fastmap, plVar28 = (line *)(uint)bVar1, (bVar1 & 1) == 0)\n       ) {\n      line.length = line.length - aVar15;\n      line.active = line.active + aVar15;\n      line.alloc = line.alloc - DAT_00031374->addr_type;\n      replaced = true;\n    }\n    else {\n      if (aVar15 != line.length) goto LAB_00018127;\n      replaced = true;\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n      line.length = (size_t)plVar26;\n    }\n    goto LAB_00018bf8;\n  case 0x51:\n    cVar9 = *(char *)&((line *)b)->text;\n    if (replaced == false) goto LAB_00017de7;\n    replaced = false;\nLAB_00018263:\n    in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg * 3);\n    sc = (line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf;\n    if (poVar12->fp == (FILE *)0x0) goto _L604;\nLAB_00018030:\n    output_line(line.active,line.length,(uint)line.chomped,poVar12);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_07;\n    goto LAB_00017de7;\n  case 0x55:\n    line_exchange(&hold,plVar26,(int)in_ECX);\n    in_ECX = extraout_ECX_11;\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_000182c0;\n    debug_print_line(&line);\n    goto LAB_0001861e;\n  case 0x56:\n    if (mb_cur_max < 2) {\n      pbVar22 = (byte *)(line.active + line.length);\n      if (line.active < pbVar22) {\n        do {\n          pbVar29 = pbVar31 + 1;\n          bVar1 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text[*pbVar31];\n          in_ECX = (addr *)(uint)bVar1;\n          *pbVar31 = bVar1;\n          pbVar31 = pbVar29;\n        } while (pbVar22 != pbVar29);\n      }\n    }\n    else {\n      in_stack_ffffef8c = (line *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;\n      mbstate.__count = 0;\n      mbstate.__value.__wch = 0;\n      if (line.length != 0) {\n        local_1068 = 0;\n        do {\n          if (mb_cur_max == 1) {\nLAB_0001836f:\n            sVar16 = 1;\n          }\n          else {\n            local_1060 = line.length - local_1068;\n            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);\n            in_ECX = extraout_ECX_12;\n            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;\n          }\n          paVar17 = (addr *)in_stack_ffffef8c->text;\n          if (paVar17 != (addr *)0x0) {\n            local_105c = line.active;\n            pcVar11 = line.active + local_1068;\n            iVar19 = 0;\n            do {\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            } while (paVar17 != (addr *)0x0);\n          }\n          local_1068 = local_1068 + sVar16;\n        } while (local_1068 < line.length);\n      }\n    }\n    goto LAB_000188c9;\n  case 0x57:\n    line.length = 0;\n    goto LAB_000188c9;\n  }\n  if (cVar9 == '\0') goto LAB_000182c0;\nLAB_0001861e:\n  debug_print_line(&hold);\n  cVar9 = *(char *)&((line *)b)->text;\n  in_ECX = extraout_ECX_21;\n  goto LAB_00017de7;\nLAB_00018ba8:\n  plVar26 = (line *)line.length;\n  local_1060 = sVar16;\n  if (regsize < line.length) {\n    str_append(&s_accum,line.active + (int)&regsize->text,line.length - (int)regsize);\n    plVar26 = extraout_ECX_31;\n    plVar28 = extraout_EDX_04;\n    local_1060 = sVar16;\n  }\nLAB_00018bcb:\n  s_accum.chomped = line.chomped;\n  line_exchange(&s_accum,plVar28,(int)plVar26);\n  in_ECX = extraout_ECX_32;\n  if ((regex->pattern).used <= local_1058) {\n    plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n    in_ECX = extraout_ECX_32;\n    plVar26 = in_stack_ffffef8c;\nLAB_00018bf8:\n    in_stack_ffffef8c = plVar26;\n    if (((uint)plVar28 & 2) != 0) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n      in_ECX = extraout_ECX_41;\n      in_stack_ffffef8c = plVar26;\n    }\n    if (((uint)plVar28 & 8) != 0) {\n      line_reset((line *)0x0,plVar28);\n      str_append(&line,"",1);\n      plVar26 = (line *)0x281e1;\n      pFVar23 = popen(line.active,"r");\n      uVar25 = extraout_ECX_39;\n      if (pFVar23 == (FILE *)0x0) {\nLAB_0001925a:\n        pcVar11 = (char *)dcgettext(0,"error in subprocess",5,uVar25);\n                    /* WARNING: Subroutine does not return */\n        panic(pcVar11);\n      }\n      bVar1 = (byte)pFVar23->_flags;\n      while ((bVar1 & 0x10) == 0) {\n        local_1060 = 0x1000;\n        plVar26 = (line *)0x1;\n        sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n        if (0 < (int)sVar14) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        in_stack_ffffef8c = sc;\n        bVar1 = (byte)pFVar23->_flags;\n      }\n      pclose(pFVar23);\n      line_exchange((line *)pFVar23,plVar26,local_1060);\n      in_ECX = extraout_ECX_40;\n      if ((line.length != 0) &&\n         (in_ECX = (addr *)(line.length - 1), line.active[line.length - 1] == buffer_delimiter)) {\n        line.length = (size_t)in_ECX;\n      }\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n    }\n    if (((uint)plVar28 >> 1 & 2) != 0) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n      in_ECX = extraout_ECX_42;\n    }\n    poVar12 = (output *)(regex->pattern).syntax;\n    if (poVar12 != (output *)0x0) {\n      output_line(line.active,line.length,(uint)line.chomped,poVar12);\n      in_ECX = extraout_ECX_33;\n    }\n  }\nLAB_000188c9:\n  if (*(_Bool *)&((line *)b)->text != false) {\nLAB_00017dd0:\n    debug_print_line(&line);\n    in_ECX = extraout_ECX_01;\n    goto _L604;\n  }\nLAB_000182c0:\n  sc = (line *)&(sc->mbstate).__value;\njoined_r0x00018523:\n  if ((line *)(ppaVar6 + sVar2 * 6) <= sc) goto LAB_00017e10;\n  goto LAB_00017cfb;\n_L336:\n  sc = (line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg);\n  cVar9 = *(char *)&((line *)b)->text;\n  goto joined_r0x00017cbb;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "execute_program(vector *vec,input *input)" identifier (parameter_list "(vector *vec,input *input)" ( (parameter_declaration "vector *vec" type_identifier (pointer_declarator "*vec" * identifier)) , (parameter_declaration "input *input" type_identifier (pointer_declarator "*input" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  size_t sVar2;\n  int iVar3;\n  FILE *pFVar4;\n  regex *regex;\n  undefined4 *puVar5;\n  addr **ppaVar6;\n  undefined *puVar7;\n  _Bool _Var8;\n  char cVar9;\n  uint uVar10;\n  char *pcVar11;\n  output *poVar12;\n  append_queue *paVar13;\n  size_t sVar14;\n  addr_types aVar15;\n  size_t sVar16;\n  addr *paVar17;\n  int iVar18;\n  int iVar19;\n  ushort **ppuVar20;\n  void *pvVar21;\n  byte *pbVar22;\n  FILE *pFVar23;\n  addr *in_ECX;\n  addr *extraout_ECX;\n  addr *extraout_ECX_00;\n  addr *extraout_ECX_01;\n  addr *extraout_ECX_02;\n  addr *extraout_ECX_03;\n  addr *extraout_ECX_04;\n  addr *extraout_ECX_05;\n  addr *extraout_ECX_06;\n  addr *extraout_ECX_07;\n  addr *extraout_ECX_08;\n  addr *extraout_ECX_09;\n  line *extraout_ECX_10;\n  addr *extraout_ECX_11;\n  addr *extraout_ECX_12;\n  addr *extraout_ECX_13;\n  char *pcVar24;\n  addr *extraout_ECX_14;\n  addr *extraout_ECX_15;\n  addr *extraout_ECX_16;\n  undefined4 extraout_ECX_17;\n  addr *extraout_ECX_18;\n  addr *extraout_ECX_19;\n  addr *extraout_ECX_20;\n  addr *extraout_ECX_21;\n  addr *extraout_ECX_22;\n  addr *extraout_ECX_23;\n  addr *extraout_ECX_24;\n  addr *extraout_ECX_25;\n  addr *extraout_ECX_26;\n  addr *extraout_ECX_27;\n  addr *extraout_ECX_28;\n  addr *extraout_ECX_29;\n  addr *extraout_ECX_30;\n  line *extraout_ECX_31;\n  addr *extraout_ECX_32;\n  addr *extraout_ECX_33;\n  addr *extraout_ECX_34;\n  addr *extraout_ECX_35;\n  addr *extraout_ECX_36;\n  undefined4 extraout_ECX_37;\n  undefined4 extraout_ECX_38;\n  undefined4 extraout_ECX_39;\n  addr *extraout_ECX_40;\n  addr *extraout_ECX_41;\n  addr *extraout_ECX_42;\n  addr *extraout_ECX_43;\n  undefined4 uVar25;\n  line *plVar26;\n  char *buf_00;\n  line *extraout_EDX;\n  line *extraout_EDX_00;\n  line *extraout_EDX_01;\n  size_t sVar27;\n  line *extraout_EDX_02;\n  line *extraout_EDX_03;\n  line *extraout_EDX_04;\n  line *plVar28;\n  byte *pbVar29;\n  line *extraout_EDX_05;\n  line *extraout_EDX_06;\n  line *sc;\n  line *plVar30;\n  byte *pbVar31;\n  line *regsize;\n  uint uVar32;\n  int in_GS_OFFSET;\n  bool bVar33;\n  size_t in_stack_ffffef7c;\n  _Bool *b;\n  line *in_stack_ffffef8c;\n  line *local_106c;\n  uint local_1068;\n  size_t local_1060;\n  char *local_105c;\n  uint local_1058;\n  size_t buflen;\n  char *text;\n  mbstate_t mbstate;\n  char buf [4096];\n  \n  puVar7 = PTR_stdout_00030fdc;\n  sc = (line *)vec->v;\n  sVar2 = vec->v_length;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  ppaVar6 = (addr **)&sc->text;\n  b = &debug;\n  local_1060 = in_stack_ffffef7c;\n  cVar9 = debug;\njoined_r0x00017cbb:\n  if ((line *)(ppaVar6 + sVar2 * 6) <= sc) {\n    if (cVar9 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (no_default_output == false) {\nLAB_00017e26:\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\nLAB_00017f53:\n    pcVar11 = (char *)0xffffffff;\nLAB_00017f58:\n    if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail_local();\n    }\n    return (int)pcVar11;\n  }\n  if (cVar9 != '\0') {\n    local_1060 = 9;\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    debug_print_command(vec,(sed_cmd *)sc);\n    in_ECX = extraout_ECX;\n  }\nLAB_00017cfb:\n  paVar17 = (addr *)sc->text;\n  if (paVar17 == (addr *)0x0) {\nLAB_00017e6b:\n    uVar10 = 1;\n  }\n  else {\n    in_ECX = (addr *)sc->active;\n    if (sc->length == RANGE_ACTIVE) {\n      if (in_ECX->addr_type != ADDR_IS_NUM) goto LAB_00017e56;\n      uVar10 = input->line_number;\n      uVar32 = in_ECX->addr_number;\n      if (uVar32 <= uVar10) {\n        sc->length = RANGE_CLOSED;\n      }\n      uVar10 = (uint)(uVar10 <= uVar32);\n    }\n    else if (in_ECX == (addr *)0x0) {\n      _Var8 = match_an_address_p(paVar17,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_05;\n    }\n    else if (paVar17->addr_type == ADDR_IS_NUM) {\n      if ((sc->length == RANGE_CLOSED) || (input->line_number < paVar17->addr_number)) {\nLAB_00017ef0:\n        uVar10 = 0;\n      }\n      else {\n        aVar15 = in_ECX->addr_type;\n        sc->length = RANGE_ACTIVE;\n        bVar33 = aVar15 == ADDR_IS_NUM;\n        if (bVar33) goto LAB_00017ec1;\nLAB_00017d50:\n        if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }\n      }\n    }\n    else {\n      _Var8 = match_an_address_p(paVar17,input);\n      in_ECX = extraout_ECX_03;\n      if (!_Var8) goto LAB_00017ef0;\n      in_ECX = (addr *)sc->active;\n      sc->length = RANGE_ACTIVE;\n      aVar15 = in_ECX->addr_type;\n      bVar33 = aVar15 == ADDR_IS_NUM;\n      if (!bVar33) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar10 = in_ECX->addr_number;\n      uVar32 = input->line_number;\n      if ((uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10)) goto LAB_00017e6b;\n      _Var8 = match_an_address_p((addr *)sc->text,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_04;\n    }\n  }\n  pFVar4 = output_file.fp;\n  sVar16 = line.length;\n  pbVar31 = (byte *)line.active;\n  if ((int)(char)sc->alloc == uVar10) goto _L604;\n  plVar26 = (line *)(int)*(char *)((int)&sc->alloc + 1);\n  switch((uint)((int)&plVar26[-2].mbstate.__count + 1U) & 0xff) {\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto _L604;\n  default:\n                    /* WARNING: Subroutine does not return */\n    panic("INTERNAL ERROR: Bad cmd %c",plVar26);\n  case 0x1a:\n    if (output_file.missing_newline != false) {\n      local_1060 = 1;\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    pcVar11 = "%lu%c";\n    pcVar24 = (char *)input->line_number;\n    goto LAB_00018a05;\n  case 0x21:\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    if (pvVar21 == (void *)0x0) goto LAB_00017f53;\n    line.active = (char *)((int)pvVar21 + 1);\n    line.alloc = line.alloc - ((int)line.active - (int)pbVar31);\n    sc = (line *)vec->v;\n    line.length = sVar16 - ((int)line.active - (int)pbVar31);\n    in_ECX = extraout_ECX_27;\n    if (*(_Bool *)&((line *)b)->text == false) goto joined_r0x00018523;\n    debug_print_line(&line);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_28;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (output_file.missing_newline != false) {\n      local_1060 = 1;\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    pcVar11 = "%s%c";\n    pcVar24 = input->in_file_name;\nLAB_00018a05:\n    __fprintf_chk(output_file.fp,1,pcVar11,pcVar24,(int)buffer_delimiter);\n    in_ECX = extraout_ECX_29;\n    if (unbuffered == false) goto _L604;\n    ck_fflush(output_file.fp);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_30;\n    goto LAB_00017de7;\n  case 0x24:\n    line_append((line *)input,(line *)b,(int)in_stack_ffffef8c);\n    in_ECX = extraout_ECX_00;\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_000182c0;\n    goto LAB_00017dd0;\n  case 0x25:\n    line_append((line *)input,(line *)b,(int)in_stack_ffffef8c);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_22;\n    break;\n  case 0x2b:\n    str_append(&line,&buffer_delimiter,1);\n    if (((buffer.length != 0) || (_Var8 = test_eof(input), !_Var8)) &&\n       (_Var8 = read_pattern_space(input,vec,1), in_ECX = extraout_ECX_25, _Var8))\n    goto LAB_000188c9;\n    if (*(_Bool *)&((line *)b)->text != false) {\n      puts("END-OF-CYCLE:");\n    }\n    line.length = line.length - 1;\n    if ((posixicity != POSIXLY_EXTENDED) || (no_default_output != false)) goto LAB_00017f53;\n    goto LAB_00017e26;\n  case 0x2d:\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    if (pvVar21 == (void *)0x0) {\n      uVar10 = (uint)line.chomped;\n    }\n    else {\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }\n    poVar12 = &output_file;\n    goto LAB_0001881e;\n  case 0x2e:\n    goto _L358;\n  case 0x2f:\n    pFVar4 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf->fp;\n    if ((pFVar4 != (FILE *)0x0) && ((pFVar4->_flags & 0x10) == 0)) {\n      text = (char *)0x0;\n      local_1060 = (size_t)buffer_delimiter;\n      sVar16 = ck_getdelim(&text,&buflen,buffer_delimiter,pFVar4);\n      if (sVar16 == 0xffffffff) {\n        free(text);\n        in_ECX = extraout_ECX_43;\n      }\n      else {\n        paVar13 = next_append_slot();\n        paVar13->free = true;\n        paVar13->text = text;\n        paVar13->textlen = sVar16;\n        in_ECX = extraout_ECX_06;\n      }\n    }\n    goto _L604;\n  case 0x31:\n    cVar9 = *(char *)&((line *)b)->text;\n    if (replaced == false) goto LAB_00018263;\n    replaced = false;\n    goto LAB_00017de7;\n  case 0x34:\n    poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf;\n    in_stack_ffffef8c = (line *)poVar12;\n    if (((line *)poVar12)->length == RANGE_INACTIVE) goto _L604;\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    in_stack_ffffef8c = (line *)poVar12;\n    if (pvVar21 == (void *)0x0) {\n      uVar10 = (uint)line.chomped;\n    }\n    else {\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }\nLAB_0001881e:\n    output_line((char *)pbVar31,sVar16,uVar10,poVar12);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_23;\n    goto LAB_00017de7;\n  case 0x3e:\n    paVar13 = next_append_slot();\n    paVar13->text = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    paVar13->textlen = (sc->mbstate).__count;\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_24;\n    goto LAB_00017de7;\n  case 0x3f:\n  case 0x58:\n    goto _L336;\n  case 0x40:\n    if (sc->length != RANGE_ACTIVE) {\n      output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                  (sc->mbstate).__count - 1,1,&output_file);\n    }\n  case 0x41:\n_L352:\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    pcVar11 = (char *)0xffffffff;\n    goto LAB_00017f58;\n  case 0x42:\n    plVar28 = (line *)(sc->mbstate).__count;\n    in_stack_ffffef8c = plVar28;\n    line_reset((line *)0x0,plVar26);\n    if (plVar28 == (line *)0x0) {\n      str_append(&line,"",1);\n      pFVar23 = popen(line.active,"r");\n      uVar25 = extraout_ECX_17;\n    }\n    else {\n      *(char *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1 +\n               (int)in_stack_ffffef8c) = '\0';\n      pFVar23 = popen((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,"r");\n      uVar25 = extraout_ECX_37;\n      if (output_file.missing_newline != false) {\n        local_1060 = 1;\n        ck_fwrite(PTR_buffer_delimiter_00030fd8,1,1,output_file.fp);\n        output_file.missing_newline = false;\n        uVar25 = extraout_ECX_38;\n      }\n    }\n    if (pFVar23 == (FILE *)0x0) goto LAB_0001925a;\n    while ((pFVar23->_flags & 0x10) == 0) {\n      local_1060 = 0x1000;\n      sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n      if (0 < (int)sVar14) {\n        if (in_stack_ffffef8c == (line *)0x0) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        else {\n          ck_fwrite(buf,1,sVar14,output_file.fp);\n          local_1060 = sVar14;\n        }\n      }\n    }\n    pclose(pFVar23);\n    if (in_stack_ffffef8c == (line *)0x0) {\n      if ((s_accum.length != 0) && (s_accum.active[s_accum.length - 1] == buffer_delimiter)) {\n        s_accum.length = s_accum.length - 1;\n      }\n      line_exchange((line *)input,(line *)b,0);\n      in_ECX = extraout_ECX_19;\n    }\n    else {\n      in_ECX = extraout_ECX_18;\n      if (unbuffered != false) {\n        ck_fflush(output_file.fp);\n        in_ECX = extraout_ECX_36;\n      }\n    }\n    goto _L604;\n  case 0x44:\n    line_copy(&hold,&line,(int)in_ECX);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_26;\n    break;\n  case 0x45:\n    line_copy(&line,&hold,(int)in_ECX);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_20;\n    break;\n  case 0x46:\n    output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                (sc->mbstate).__count - 1,1,&output_file);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_15;\n    goto LAB_00017de7;\n  case 0x49:\n    local_106c = (line *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (local_106c == (line *)0xffffffff) {\n      local_106c = (line *)lcmd_out_line_len;\n    }\n    if (output_file.missing_newline != false) {\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    if (sVar16 != 0) {\n      pbVar22 = (byte *)((char *)pbVar31 + sVar16);\n      pcVar11 = buf + 1;\n      plVar26 = (line *)0x0;\n      do {\n        bVar1 = *pbVar31;\n        in_stack_ffffef8c = (line *)(uint)bVar1;\n        if (((bVar1 & 0x80) == 0) &&\n           (ppuVar20 = __ctype_b_loc(),\n           (*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0)) {\n          plVar28 = (line *)0x1;\n          buf[0] = bVar1;\n          if (*pbVar31 == 0x5c) {\n            buf[1] = '\\';\n            plVar28 = (line *)0x2;\n          }\n        }\n        else {\n          buf[0] = '\\';\n          switch(*pbVar31) {\n          case 7:\n            buf[1] = 'a';\n            plVar28 = (line *)0x2;\n            break;\n          case 8:\n            buf[1] = 'b';\n            plVar28 = (line *)0x2;\n            break;\n          case 9:\n            buf[1] = 't';\n            plVar28 = (line *)0x2;\n            break;\n          case 10:\n            buf[1] = 'n';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xb:\n            buf[1] = 'v';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xc:\n            buf[1] = 'f';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xd:\n            buf[1] = 'r';\n            plVar28 = (line *)0x2;\n            break;\n          default:\n            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);\n            sVar14 = strlen(pcVar11);\n            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));\n          }\n        }\n        plVar26 = (line *)((int)&plVar28->text + (int)&plVar26->text);\n        if ((local_106c <= plVar26) && (0 < (int)local_106c)) {\n          ck_fwrite(&DAT_00026f7e,1,1,pFVar4);\n          ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n          plVar26 = plVar28;\n          in_stack_ffffef8c = plVar28;\n        }\n        pbVar31 = pbVar31 + 1;\n        ck_fwrite(buf,1,(size_t)plVar28,pFVar4);\n      } while (pbVar31 != pbVar22);\n    }\n    local_1060 = 1;\n    ck_fwrite(&DAT_00026f80,1,1,pFVar4);\n    ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n    in_ECX = extraout_ECX_34;\n    if (unbuffered != false) {\n      ck_fflush(pFVar4);\n      in_ECX = extraout_ECX_35;\n    }\n_L604:\n    cVar9 = *(char *)&((line *)b)->text;\nLAB_00017de7:\n    sc = (line *)&(sc->mbstate).__value;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (no_default_output == false) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\n    if (((buffer.length == 0) && (_Var8 = test_eof(input), _Var8)) ||\n       (_Var8 = read_pattern_space(input,vec,0), !_Var8)) goto _L352;\n    if (*(_Bool *)&((line *)b)->text != false) goto LAB_00017dd0;\n    sc = (line *)&(sc->mbstate).__value;\n    in_ECX = extraout_ECX_16;\n    goto joined_r0x00018523;\n  case 0x4d:\n    poVar12 = &output_file;\n    goto LAB_00018030;\n  case 0x4e:\n    if (no_default_output == false) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\n    dump_append_queue();\n_L358:\n    pcVar11 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (pcVar11 == (char *)0xffffffff) {\n      pcVar11 = (char *)0x0;\n    }\n    goto LAB_00017f58;\n  case 0x4f:\n    in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (in_ECX == (addr *)0x0) goto _L604;\n    paVar13 = next_append_slot();\n    paVar13->fname = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_08;\n    goto LAB_00017de7;\n  case 0x50:\n    regex = (regex *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;\n    line_reset(&line,plVar26);\n    bVar1 = *(byte *)&(regex->pattern).fastmap;\n    in_stack_ffffef8c = (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),bVar1);\n    sVar14 = (bVar1 >> 4) + 1;\n    local_106c = (line *)0x3dc;\n    iVar19 = match_regex((regex *)0x3dc,buf_00,(size_t)(regex->pattern).buffer,(size_t)line.active,\n                         (re_registers *)line.length,0);\n    in_ECX = extraout_ECX_09;\n    if (iVar19 == 0) goto LAB_000188c9;\n    plVar26 = (line *)*DAT_00031370;\n    plVar28 = extraout_EDX;\n    if (((*(_Bool *)&((line *)b)->text != false) && (plVar28 = regs_7164, regs_7164 != (line *)0x0))\n       && (plVar26 != (line *)0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      plVar26 = (line *)*DAT_00031370;\n      plVar28 = extraout_EDX_05;\n      if ((regs_7164 != (line *)0x0) && (plVar28 = extraout_EDX_05, plVar26 != (line *)0xffffffff))\n      {\n        plVar28 = (line *)0x0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",plVar28,plVar26,\n                       (&DAT_00031374->addr_type)[(int)plVar28],sVar14);\n          aVar15 = DAT_00031370[(int)plVar28];\n          if (aVar15 != (&DAT_00031374->addr_type)[(int)plVar28]) {\n            sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15;\n            local_1060 = 1;\n            fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7);\n          }\n          plVar30 = (line *)((int)&plVar28->text + 1);\n          puts("\'");\n          if (regs_7164 <= plVar30) {\n            plVar26 = (line *)*DAT_00031370;\n            plVar28 = extraout_EDX_06;\n            goto LAB_00018110;\n          }\n          plVar26 = (line *)DAT_00031370[(int)((int)&plVar28->text + 1)];\n          plVar28 = plVar30;\n        } while (plVar26 != (line *)0xffffffff);\n        plVar26 = (line *)*DAT_00031370;\n        plVar28 = extraout_EDX_06;\n      }\n    }\nLAB_00018110:\n    aVar15 = DAT_00031374->addr_type;\n    if (((regex->pattern).allocated != 0) || (1 < (regex->pattern).used)) {\nLAB_00018127:\n      plVar30 = (line *)0x0;\n      regsize = (line *)0x0;\n      local_1058 = 0;\n      sVar16 = local_1060;\n      do {\n        local_1060 = aVar15 - (int)plVar26;\n        in_stack_ffffef8c = plVar26;\n        if (regsize < plVar26) {\n          sVar27 = (int)plVar26 - (int)regsize;\n          pcVar11 = line.active + (int)regsize;\n          regsize = plVar26;\n          str_append(&s_accum,pcVar11,sVar27);\n          plVar26 = extraout_ECX_10;\n          plVar28 = extraout_EDX_01;\n          in_stack_ffffef8c = regsize;\n        }\n        plVar28 = (line *)CONCAT31((int3)((uint)plVar28 >> 8),\n                                   local_1058 == 0 || plVar30 < in_stack_ffffef8c);\n        if ((local_1058 == 0 || plVar30 < in_stack_ffffef8c) || (local_1060 != 0)) {\n          local_1058 = local_1058 + 1;\n          if (local_1058 < (regex->pattern).used) {\n            if (local_1060 == 0) goto LAB_0001817a;\n            goto LAB_00018190;\n          }\n          puVar5 = (undefined4 *)(regex->pattern).allocated;\n          replaced = true;\n          local_1068 = 0;\n          for (; puVar5 != (undefined4 *)0x0; puVar5 = (undefined4 *)puVar5[4]) {\n            uVar10 = puVar5[3];\n            plVar28 = (line *)puVar5[1];\n            plVar26 = (line *)puVar5[2];\n            if ((uVar10 & 0xc) == 0) {\n              uVar10 = local_1068 | uVar10;\n            }\n            uVar32 = uVar10;\n            if (plVar28 != (line *)0x0) {\n              uVar32 = uVar10 & 0xfffffff3;\n              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);\n              plVar28 = extraout_EDX_03;\n            }\n            local_1068 = 0;\n            if ((-1 < (int)plVar26) && (plVar26 < regs_7164)) {\n              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];\n              plVar26 = (line *)DAT_00031370[(int)plVar26];\n              if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }\n            }\n          }\n          regsize = (line *)((int)in_stack_ffffef8c + local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n          if (((uint)(regex->pattern).fastmap & 1) == 0) goto LAB_00018ba8;\n        }\n        else {\nLAB_0001817a:\n          local_1060 = sVar16;\n          if (line.length <= regsize) goto LAB_00018bcb;\n          local_1060 = 1;\nLAB_00018190:\n          regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060);\n          str_append(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n        }\n        plVar26 = local_106c;\n        plVar28 = (line *)line.length;\n        local_1060 = sVar16;\n        if (line.length < regsize) goto LAB_00018bcb;\n        in_stack_ffffef8c =\n             (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),\n                              *(undefined1 *)&(regex->pattern).fastmap);\n        iVar19 = match_regex(regex,(char *)line.length,(size_t)(regex->pattern).buffer,\n                             (size_t)line.active,(re_registers *)line.length,(int)regsize);\n        plVar28 = extraout_EDX_00;\n        if (iVar19 == 0) goto LAB_00018ba8;\n        plVar26 = (line *)*DAT_00031370;\n        aVar15 = DAT_00031374->addr_type;\n      } while( true );\n    }\n    plVar28 = plVar26;\n    in_ECX = DAT_00031374;\n    if ((plVar26 == (line *)0x0) &&\n       (bVar1 = *(byte *)&(regex->pattern).fastmap, plVar28 = (line *)(uint)bVar1, (bVar1 & 1) == 0)\n       ) {\n      line.length = line.length - aVar15;\n      line.active = line.active + aVar15;\n      line.alloc = line.alloc - DAT_00031374->addr_type;\n      replaced = true;\n    }\n    else {\n      if (aVar15 != line.length) goto LAB_00018127;\n      replaced = true;\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n      line.length = (size_t)plVar26;\n    }\n    goto LAB_00018bf8;\n  case 0x51:\n    cVar9 = *(char *)&((line *)b)->text;\n    if (replaced == false) goto LAB_00017de7;\n    replaced = false;\nLAB_00018263:\n    in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg * 3);\n    sc = (line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf;\n    if (poVar12->fp == (FILE *)0x0) goto _L604;\nLAB_00018030:\n    output_line(line.active,line.length,(uint)line.chomped,poVar12);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_07;\n    goto LAB_00017de7;\n  case 0x55:\n    line_exchange(&hold,plVar26,(int)in_ECX);\n    in_ECX = extraout_ECX_11;\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_000182c0;\n    debug_print_line(&line);\n    goto LAB_0001861e;\n  case 0x56:\n    if (mb_cur_max < 2) {\n      pbVar22 = (byte *)(line.active + line.length);\n      if (line.active < pbVar22) {\n        do {\n          pbVar29 = pbVar31 + 1;\n          bVar1 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text[*pbVar31];\n          in_ECX = (addr *)(uint)bVar1;\n          *pbVar31 = bVar1;\n          pbVar31 = pbVar29;\n        } while (pbVar22 != pbVar29);\n      }\n    }\n    else {\n      in_stack_ffffef8c = (line *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;\n      mbstate.__count = 0;\n      mbstate.__value.__wch = 0;\n      if (line.length != 0) {\n        local_1068 = 0;\n        do {\n          if (mb_cur_max == 1) {\nLAB_0001836f:\n            sVar16 = 1;\n          }\n          else {\n            local_1060 = line.length - local_1068;\n            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);\n            in_ECX = extraout_ECX_12;\n            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;\n          }\n          paVar17 = (addr *)in_stack_ffffef8c->text;\n          if (paVar17 != (addr *)0x0) {\n            local_105c = line.active;\n            pcVar11 = line.active + local_1068;\n            iVar19 = 0;\n            do {\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            } while (paVar17 != (addr *)0x0);\n          }\n          local_1068 = local_1068 + sVar16;\n        } while (local_1068 < line.length);\n      }\n    }\n    goto LAB_000188c9;\n  case 0x57:\n    line.length = 0;\n    goto LAB_000188c9;\n  }\n  if (cVar9 == '\0') goto LAB_000182c0;\nLAB_0001861e:\n  debug_print_line(&hold);\n  cVar9 = *(char *)&((line *)b)->text;\n  in_ECX = extraout_ECX_21;\n  goto LAB_00017de7;\nLAB_00018ba8:\n  plVar26 = (line *)line.length;\n  local_1060 = sVar16;\n  if (regsize < line.length) {\n    str_append(&s_accum,line.active + (int)&regsize->text,line.length - (int)regsize);\n    plVar26 = extraout_ECX_31;\n    plVar28 = extraout_EDX_04;\n    local_1060 = sVar16;\n  }\nLAB_00018bcb:\n  s_accum.chomped = line.chomped;\n  line_exchange(&s_accum,plVar28,(int)plVar26);\n  in_ECX = extraout_ECX_32;\n  if ((regex->pattern).used <= local_1058) {\n    plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n    in_ECX = extraout_ECX_32;\n    plVar26 = in_stack_ffffef8c;\nLAB_00018bf8:\n    in_stack_ffffef8c = plVar26;\n    if (((uint)plVar28 & 2) != 0) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n      in_ECX = extraout_ECX_41;\n      in_stack_ffffef8c = plVar26;\n    }\n    if (((uint)plVar28 & 8) != 0) {\n      line_reset((line *)0x0,plVar28);\n      str_append(&line,"",1);\n      plVar26 = (line *)0x281e1;\n      pFVar23 = popen(line.active,"r");\n      uVar25 = extraout_ECX_39;\n      if (pFVar23 == (FILE *)0x0) {\nLAB_0001925a:\n        pcVar11 = (char *)dcgettext(0,"error in subprocess",5,uVar25);\n                    /* WARNING: Subroutine does not return */\n        panic(pcVar11);\n      }\n      bVar1 = (byte)pFVar23->_flags;\n      while ((bVar1 & 0x10) == 0) {\n        local_1060 = 0x1000;\n        plVar26 = (line *)0x1;\n        sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n        if (0 < (int)sVar14) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        in_stack_ffffef8c = sc;\n        bVar1 = (byte)pFVar23->_flags;\n      }\n      pclose(pFVar23);\n      line_exchange((line *)pFVar23,plVar26,local_1060);\n      in_ECX = extraout_ECX_40;\n      if ((line.length != 0) &&\n         (in_ECX = (addr *)(line.length - 1), line.active[line.length - 1] == buffer_delimiter)) {\n        line.length = (size_t)in_ECX;\n      }\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n    }\n    if (((uint)plVar28 >> 1 & 2) != 0) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n      in_ECX = extraout_ECX_42;\n    }\n    poVar12 = (output *)(regex->pattern).syntax;\n    if (poVar12 != (output *)0x0) {\n      output_line(line.active,line.length,(uint)line.chomped,poVar12);\n      in_ECX = extraout_ECX_33;\n    }\n  }\nLAB_000188c9:\n  if (*(_Bool *)&((line *)b)->text != false) {\nLAB_00017dd0:\n    debug_print_line(&line);\n    in_ECX = extraout_ECX_01;\n    goto _L604;\n  }\nLAB_000182c0:\n  sc = (line *)&(sc->mbstate).__value;\njoined_r0x00018523:\n  if ((line *)(ppaVar6 + sVar2 * 6) <= sc) goto LAB_00017e10;\n  goto LAB_00017cfb;\n_L336:\n  sc = (line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg);\n  cVar9 = *(char *)&((line *)b)->text;\n  goto joined_r0x00017cbb;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "FILE *pFVar4;" type_identifier (pointer_declarator "*pFVar4" * identifier) ;) (declaration "regex *regex;" type_identifier (pointer_declarator "*regex" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "addr **ppaVar6;" type_identifier (pointer_declarator "**ppaVar6" * (pointer_declarator "*ppaVar6" * identifier)) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "_Bool _Var8;" type_identifier identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "output *poVar12;" type_identifier (pointer_declarator "*poVar12" * identifier) ;) (declaration "append_queue *paVar13;" type_identifier (pointer_declarator "*paVar13" * identifier) ;) (declaration "size_t sVar14;" primitive_type identifier ;) (declaration "addr_types aVar15;" type_identifier identifier ;) (declaration "size_t sVar16;" primitive_type identifier ;) (declaration "addr *paVar17;" type_identifier (pointer_declarator "*paVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "ushort **ppuVar20;" type_identifier (pointer_declarator "**ppuVar20" * (pointer_declarator "*ppuVar20" * identifier)) ;) (declaration "void *pvVar21;" primitive_type (pointer_declarator "*pvVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "FILE *pFVar23;" type_identifier (pointer_declarator "*pFVar23" * identifier) ;) (declaration "addr *in_ECX;" type_identifier (pointer_declarator "*in_ECX" * identifier) ;) (declaration "addr *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "addr *extraout_ECX_00;" type_identifier (pointer_declarator "*extraout_ECX_00" * identifier) ;) (declaration "addr *extraout_ECX_01;" type_identifier (pointer_declarator "*extraout_ECX_01" * identifier) ;) (declaration "addr *extraout_ECX_02;" type_identifier (pointer_declarator "*extraout_ECX_02" * identifier) ;) (declaration "addr *extraout_ECX_03;" type_identifier (pointer_declarator "*extraout_ECX_03" * identifier) ;) (declaration "addr *extraout_ECX_04;" type_identifier (pointer_declarator "*extraout_ECX_04" * identifier) ;) (declaration "addr *extraout_ECX_05;" type_identifier (pointer_declarator "*extraout_ECX_05" * identifier) ;) (declaration "addr *extraout_ECX_06;" type_identifier (pointer_declarator "*extraout_ECX_06" * identifier) ;) (declaration "addr *extraout_ECX_07;" type_identifier (pointer_declarator "*extraout_ECX_07" * identifier) ;) (declaration "addr *extraout_ECX_08;" type_identifier (pointer_declarator "*extraout_ECX_08" * identifier) ;) (declaration "addr *extraout_ECX_09;" type_identifier (pointer_declarator "*extraout_ECX_09" * identifier) ;) (declaration "line *extraout_ECX_10;" type_identifier (pointer_declarator "*extraout_ECX_10" * identifier) ;) (declaration "addr *extraout_ECX_11;" type_identifier (pointer_declarator "*extraout_ECX_11" * identifier) ;) (declaration "addr *extraout_ECX_12;" type_identifier (pointer_declarator "*extraout_ECX_12" * identifier) ;) (declaration "addr *extraout_ECX_13;" type_identifier (pointer_declarator "*extraout_ECX_13" * identifier) ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "addr *extraout_ECX_14;" type_identifier (pointer_declarator "*extraout_ECX_14" * identifier) ;) (declaration "addr *extraout_ECX_15;" type_identifier (pointer_declarator "*extraout_ECX_15" * identifier) ;) (declaration "addr *extraout_ECX_16;" type_identifier (pointer_declarator "*extraout_ECX_16" * identifier) ;) (declaration "undefined4 extraout_ECX_17;" type_identifier identifier ;) (declaration "addr *extraout_ECX_18;" type_identifier (pointer_declarator "*extraout_ECX_18" * identifier) ;) (declaration "addr *extraout_ECX_19;" type_identifier (pointer_declarator "*extraout_ECX_19" * identifier) ;) (declaration "addr *extraout_ECX_20;" type_identifier (pointer_declarator "*extraout_ECX_20" * identifier) ;) (declaration "addr *extraout_ECX_21;" type_identifier (pointer_declarator "*extraout_ECX_21" * identifier) ;) (declaration "addr *extraout_ECX_22;" type_identifier (pointer_declarator "*extraout_ECX_22" * identifier) ;) (declaration "addr *extraout_ECX_23;" type_identifier (pointer_declarator "*extraout_ECX_23" * identifier) ;) (declaration "addr *extraout_ECX_24;" type_identifier (pointer_declarator "*extraout_ECX_24" * identifier) ;) (declaration "addr *extraout_ECX_25;" type_identifier (pointer_declarator "*extraout_ECX_25" * identifier) ;) (declaration "addr *extraout_ECX_26;" type_identifier (pointer_declarator "*extraout_ECX_26" * identifier) ;) (declaration "addr *extraout_ECX_27;" type_identifier (pointer_declarator "*extraout_ECX_27" * identifier) ;) (declaration "addr *extraout_ECX_28;" type_identifier (pointer_declarator "*extraout_ECX_28" * identifier) ;) (declaration "addr *extraout_ECX_29;" type_identifier (pointer_declarator "*extraout_ECX_29" * identifier) ;) (declaration "addr *extraout_ECX_30;" type_identifier (pointer_declarator "*extraout_ECX_30" * identifier) ;) (declaration "line *extraout_ECX_31;" type_identifier (pointer_declarator "*extraout_ECX_31" * identifier) ;) (declaration "addr *extraout_ECX_32;" type_identifier (pointer_declarator "*extraout_ECX_32" * identifier) ;) (declaration "addr *extraout_ECX_33;" type_identifier (pointer_declarator "*extraout_ECX_33" * identifier) ;) (declaration "addr *extraout_ECX_34;" type_identifier (pointer_declarator "*extraout_ECX_34" * identifier) ;) (declaration "addr *extraout_ECX_35;" type_identifier (pointer_declarator "*extraout_ECX_35" * identifier) ;) (declaration "addr *extraout_ECX_36;" type_identifier (pointer_declarator "*extraout_ECX_36" * identifier) ;) (declaration "undefined4 extraout_ECX_37;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_38;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_39;" type_identifier identifier ;) (declaration "addr *extraout_ECX_40;" type_identifier (pointer_declarator "*extraout_ECX_40" * identifier) ;) (declaration "addr *extraout_ECX_41;" type_identifier (pointer_declarator "*extraout_ECX_41" * identifier) ;) (declaration "addr *extraout_ECX_42;" type_identifier (pointer_declarator "*extraout_ECX_42" * identifier) ;) (declaration "addr *extraout_ECX_43;" type_identifier (pointer_declarator "*extraout_ECX_43" * identifier) ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "line *plVar26;" type_identifier (pointer_declarator "*plVar26" * identifier) ;) (declaration "char *buf_00;" primitive_type (pointer_declarator "*buf_00" * identifier) ;) (declaration "line *extraout_EDX;" type_identifier (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "line *extraout_EDX_00;" type_identifier (pointer_declarator "*extraout_EDX_00" * identifier) ;) (declaration "line *extraout_EDX_01;" type_identifier (pointer_declarator "*extraout_EDX_01" * identifier) ;) (declaration "size_t sVar27;" primitive_type identifier ;) (declaration "line *extraout_EDX_02;" type_identifier (pointer_declarator "*extraout_EDX_02" * identifier) ;) (declaration "line *extraout_EDX_03;" type_identifier (pointer_declarator "*extraout_EDX_03" * identifier) ;) (declaration "line *extraout_EDX_04;" type_identifier (pointer_declarator "*extraout_EDX_04" * identifier) ;) (declaration "line *plVar28;" type_identifier (pointer_declarator "*plVar28" * identifier) ;) (declaration "byte *pbVar29;" type_identifier (pointer_declarator "*pbVar29" * identifier) ;) (declaration "line *extraout_EDX_05;" type_identifier (pointer_declarator "*extraout_EDX_05" * identifier) ;) (declaration "line *extraout_EDX_06;" type_identifier (pointer_declarator "*extraout_EDX_06" * identifier) ;) (declaration "line *sc;" type_identifier (pointer_declarator "*sc" * identifier) ;) (declaration "line *plVar30;" type_identifier (pointer_declarator "*plVar30" * identifier) ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "line *regsize;" type_identifier (pointer_declarator "*regsize" * identifier) ;) (declaration "uint uVar32;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar33;" primitive_type identifier ;) (declaration "size_t in_stack_ffffef7c;" primitive_type identifier ;) (declaration "_Bool *b;" type_identifier (pointer_declarator "*b" * identifier) ;) (declaration "line *in_stack_ffffef8c;" type_identifier (pointer_declarator "*in_stack_ffffef8c" * identifier) ;) (declaration "line *local_106c;" type_identifier (pointer_declarator "*local_106c" * identifier) ;) (declaration "uint local_1068;" type_identifier identifier ;) (declaration "size_t local_1060;" primitive_type identifier ;) (declaration "char *local_105c;" primitive_type (pointer_declarator "*local_105c" * identifier) ;) (declaration "uint local_1058;" type_identifier identifier ;) (declaration "size_t buflen;" primitive_type identifier ;) (declaration "char *text;" primitive_type (pointer_declarator "*text" * identifier) ;) (declaration "mbstate_t mbstate;" type_identifier identifier ;) (declaration "char buf [4096];" primitive_type (array_declarator "buf [4096]" identifier [ number_literal ]) ;) (expression_statement "puVar7 = PTR_stdout_00030fdc;" (assignment_expression "puVar7 = PTR_stdout_00030fdc" identifier = identifier) ;) (expression_statement "sc = (line *)vec->v;" (assignment_expression "sc = (line *)vec->v" identifier = (cast_expression "(line *)vec->v" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "vec->v" identifier -> field_identifier))) ;) (expression_statement "sVar2 = vec->v_length;" (assignment_expression "sVar2 = vec->v_length" identifier = (field_expression "vec->v_length" identifier -> field_identifier)) ;) (expression_statement "iVar3 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar3 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "ppaVar6 = (addr **)&sc->text;" (assignment_expression "ppaVar6 = (addr **)&sc->text" identifier = (cast_expression "(addr **)&sc->text" ( (type_descriptor "addr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&sc->text" & (field_expression "sc->text" identifier -> field_identifier)))) ;) (expression_statement "b = &debug;" (assignment_expression "b = &debug" identifier = (pointer_expression "&debug" & identifier)) ;) (expression_statement "local_1060 = in_stack_ffffef7c;" (assignment_expression "local_1060 = in_stack_ffffef7c" identifier = identifier) ;) (expression_statement "cVar9 = debug;" (assignment_expression "cVar9 = debug" identifier = identifier) ;) (labeled_statement "joined_r0x00017cbb:\n  if ((line *)(ppaVar6 + sVar2 * 6) <= sc) {\n    if (cVar9 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (no_default_output == false) {\nLAB_00017e26:\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\nLAB_00017f53:\n    pcVar11 = (char *)0xffffffff;\nLAB_00017f58:\n    if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail_local();\n    }\n    return (int)pcVar11;\n  }" statement_identifier : (if_statement "if ((line *)(ppaVar6 + sVar2 * 6) <= sc) {\n    if (cVar9 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (no_default_output == false) {\nLAB_00017e26:\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\nLAB_00017f53:\n    pcVar11 = (char *)0xffffffff;\nLAB_00017f58:\n    if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail_local();\n    }\n    return (int)pcVar11;\n  }" if (parenthesized_expression "((line *)(ppaVar6 + sVar2 * 6) <= sc)" ( (binary_expression "(line *)(ppaVar6 + sVar2 * 6) <= sc" (cast_expression "(line *)(ppaVar6 + sVar2 * 6)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppaVar6 + sVar2 * 6)" ( (binary_expression "ppaVar6 + sVar2 * 6" identifier + (binary_expression "sVar2 * 6" identifier * number_literal)) ))) <= identifier) )) (compound_statement "{\n    if (cVar9 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (no_default_output == false) {\nLAB_00017e26:\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\nLAB_00017f53:\n    pcVar11 = (char *)0xffffffff;\nLAB_00017f58:\n    if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail_local();\n    }\n    return (int)pcVar11;\n  }" { (if_statement "if (cVar9 != '\0') {\n      puts("END-OF-CYCLE:");\n    }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      puts("END-OF-CYCLE:");\n    }" { (expression_statement "puts("END-OF-CYCLE:");" (call_expression "puts("END-OF-CYCLE:")" identifier (argument_list "("END-OF-CYCLE:")" ( (string_literal ""END-OF-CYCLE:"" " string_content ") ))) ;) })) (labeled_statement "LAB_00017e10:\n    if (no_default_output == false) {\nLAB_00017e26:\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }" statement_identifier : (if_statement "if (no_default_output == false) {\nLAB_00017e26:\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }" if (parenthesized_expression "(no_default_output == false)" ( (binary_expression "no_default_output == false" identifier == false) )) (compound_statement "{\nLAB_00017e26:\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }" { (labeled_statement "LAB_00017e26:\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);" statement_identifier : (expression_statement "output_line(line.active,line.length,(uint)line.chomped,&output_file);" (call_expression "output_line(line.active,line.length,(uint)line.chomped,&output_file)" identifier (argument_list "(line.active,line.length,(uint)line.chomped,&output_file)" ( (field_expression "line.active" identifier . field_identifier) , (field_expression "line.length" identifier . field_identifier) , (cast_expression "(uint)line.chomped" ( (type_descriptor "uint" type_identifier) ) (field_expression "line.chomped" identifier . field_identifier)) , (pointer_expression "&output_file" & identifier) ))) ;)) }))) (labeled_statement "LAB_00017f53:\n    pcVar11 = (char *)0xffffffff;" statement_identifier : (expression_statement "pcVar11 = (char *)0xffffffff;" (assignment_expression "pcVar11 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (labeled_statement "LAB_00017f58:\n    if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail_local();\n    }" statement_identifier : (if_statement "if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail_local();\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                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail_local();\n    }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return (int)pcVar11;" return (cast_expression "(int)pcVar11" ( (type_descriptor "int" primitive_type) ) identifier) ;) }))) (if_statement "if (cVar9 != '\0') {\n    local_1060 = 9;\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    debug_print_command(vec,(sed_cmd *)sc);\n    in_ECX = extraout_ECX;\n  }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    local_1060 = 9;\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    debug_print_command(vec,(sed_cmd *)sc);\n    in_ECX = extraout_ECX;\n  }" { (expression_statement "local_1060 = 9;" (assignment_expression "local_1060 = 9" identifier = number_literal) ;) (expression_statement "fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);" (call_expression "fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc)" identifier (argument_list "("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc)" ( (string_literal ""COMMAND: "" " string_content ") , number_literal , number_literal , (pointer_expression "*(FILE **)PTR_stdout_00030fdc" * (cast_expression "(FILE **)PTR_stdout_00030fdc" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "debug_print_command(vec,(sed_cmd *)sc);" (call_expression "debug_print_command(vec,(sed_cmd *)sc)" identifier (argument_list "(vec,(sed_cmd *)sc)" ( identifier , (cast_expression "(sed_cmd *)sc" ( (type_descriptor "sed_cmd *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "in_ECX = extraout_ECX;" (assignment_expression "in_ECX = extraout_ECX" identifier = identifier) ;) })) (labeled_statement "LAB_00017cfb:\n  paVar17 = (addr *)sc->text;" statement_identifier : (expression_statement "paVar17 = (addr *)sc->text;" (assignment_expression "paVar17 = (addr *)sc->text" identifier = (cast_expression "(addr *)sc->text" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sc->text" identifier -> field_identifier))) ;)) (if_statement "if (paVar17 == (addr *)0x0) {\nLAB_00017e6b:\n    uVar10 = 1;\n  }\n  else {\n    in_ECX = (addr *)sc->active;\n    if (sc->length == RANGE_ACTIVE) {\n      if (in_ECX->addr_type != ADDR_IS_NUM) goto LAB_00017e56;\n      uVar10 = input->line_number;\n      uVar32 = in_ECX->addr_number;\n      if (uVar32 <= uVar10) {\n        sc->length = RANGE_CLOSED;\n      }\n      uVar10 = (uint)(uVar10 <= uVar32);\n    }\n    else if (in_ECX == (addr *)0x0) {\n      _Var8 = match_an_address_p(paVar17,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_05;\n    }\n    else if (paVar17->addr_type == ADDR_IS_NUM) {\n      if ((sc->length == RANGE_CLOSED) || (input->line_number < paVar17->addr_number)) {\nLAB_00017ef0:\n        uVar10 = 0;\n      }\n      else {\n        aVar15 = in_ECX->addr_type;\n        sc->length = RANGE_ACTIVE;\n        bVar33 = aVar15 == ADDR_IS_NUM;\n        if (bVar33) goto LAB_00017ec1;\nLAB_00017d50:\n        if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }\n      }\n    }\n    else {\n      _Var8 = match_an_address_p(paVar17,input);\n      in_ECX = extraout_ECX_03;\n      if (!_Var8) goto LAB_00017ef0;\n      in_ECX = (addr *)sc->active;\n      sc->length = RANGE_ACTIVE;\n      aVar15 = in_ECX->addr_type;\n      bVar33 = aVar15 == ADDR_IS_NUM;\n      if (!bVar33) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar10 = in_ECX->addr_number;\n      uVar32 = input->line_number;\n      if ((uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10)) goto LAB_00017e6b;\n      _Var8 = match_an_address_p((addr *)sc->text,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_04;\n    }\n  }" if (parenthesized_expression "(paVar17 == (addr *)0x0)" ( (binary_expression "paVar17 == (addr *)0x0" identifier == (cast_expression "(addr *)0x0" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00017e6b:\n    uVar10 = 1;\n  }" { (labeled_statement "LAB_00017e6b:\n    uVar10 = 1;" statement_identifier : (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;)) }) (else_clause "else {\n    in_ECX = (addr *)sc->active;\n    if (sc->length == RANGE_ACTIVE) {\n      if (in_ECX->addr_type != ADDR_IS_NUM) goto LAB_00017e56;\n      uVar10 = input->line_number;\n      uVar32 = in_ECX->addr_number;\n      if (uVar32 <= uVar10) {\n        sc->length = RANGE_CLOSED;\n      }\n      uVar10 = (uint)(uVar10 <= uVar32);\n    }\n    else if (in_ECX == (addr *)0x0) {\n      _Var8 = match_an_address_p(paVar17,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_05;\n    }\n    else if (paVar17->addr_type == ADDR_IS_NUM) {\n      if ((sc->length == RANGE_CLOSED) || (input->line_number < paVar17->addr_number)) {\nLAB_00017ef0:\n        uVar10 = 0;\n      }\n      else {\n        aVar15 = in_ECX->addr_type;\n        sc->length = RANGE_ACTIVE;\n        bVar33 = aVar15 == ADDR_IS_NUM;\n        if (bVar33) goto LAB_00017ec1;\nLAB_00017d50:\n        if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }\n      }\n    }\n    else {\n      _Var8 = match_an_address_p(paVar17,input);\n      in_ECX = extraout_ECX_03;\n      if (!_Var8) goto LAB_00017ef0;\n      in_ECX = (addr *)sc->active;\n      sc->length = RANGE_ACTIVE;\n      aVar15 = in_ECX->addr_type;\n      bVar33 = aVar15 == ADDR_IS_NUM;\n      if (!bVar33) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar10 = in_ECX->addr_number;\n      uVar32 = input->line_number;\n      if ((uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10)) goto LAB_00017e6b;\n      _Var8 = match_an_address_p((addr *)sc->text,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_04;\n    }\n  }" else (compound_statement "{\n    in_ECX = (addr *)sc->active;\n    if (sc->length == RANGE_ACTIVE) {\n      if (in_ECX->addr_type != ADDR_IS_NUM) goto LAB_00017e56;\n      uVar10 = input->line_number;\n      uVar32 = in_ECX->addr_number;\n      if (uVar32 <= uVar10) {\n        sc->length = RANGE_CLOSED;\n      }\n      uVar10 = (uint)(uVar10 <= uVar32);\n    }\n    else if (in_ECX == (addr *)0x0) {\n      _Var8 = match_an_address_p(paVar17,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_05;\n    }\n    else if (paVar17->addr_type == ADDR_IS_NUM) {\n      if ((sc->length == RANGE_CLOSED) || (input->line_number < paVar17->addr_number)) {\nLAB_00017ef0:\n        uVar10 = 0;\n      }\n      else {\n        aVar15 = in_ECX->addr_type;\n        sc->length = RANGE_ACTIVE;\n        bVar33 = aVar15 == ADDR_IS_NUM;\n        if (bVar33) goto LAB_00017ec1;\nLAB_00017d50:\n        if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }\n      }\n    }\n    else {\n      _Var8 = match_an_address_p(paVar17,input);\n      in_ECX = extraout_ECX_03;\n      if (!_Var8) goto LAB_00017ef0;\n      in_ECX = (addr *)sc->active;\n      sc->length = RANGE_ACTIVE;\n      aVar15 = in_ECX->addr_type;\n      bVar33 = aVar15 == ADDR_IS_NUM;\n      if (!bVar33) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar10 = in_ECX->addr_number;\n      uVar32 = input->line_number;\n      if ((uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10)) goto LAB_00017e6b;\n      _Var8 = match_an_address_p((addr *)sc->text,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_04;\n    }\n  }" { (expression_statement "in_ECX = (addr *)sc->active;" (assignment_expression "in_ECX = (addr *)sc->active" identifier = (cast_expression "(addr *)sc->active" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sc->active" identifier -> field_identifier))) ;) (if_statement "if (sc->length == RANGE_ACTIVE) {\n      if (in_ECX->addr_type != ADDR_IS_NUM) goto LAB_00017e56;\n      uVar10 = input->line_number;\n      uVar32 = in_ECX->addr_number;\n      if (uVar32 <= uVar10) {\n        sc->length = RANGE_CLOSED;\n      }\n      uVar10 = (uint)(uVar10 <= uVar32);\n    }\n    else if (in_ECX == (addr *)0x0) {\n      _Var8 = match_an_address_p(paVar17,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_05;\n    }\n    else if (paVar17->addr_type == ADDR_IS_NUM) {\n      if ((sc->length == RANGE_CLOSED) || (input->line_number < paVar17->addr_number)) {\nLAB_00017ef0:\n        uVar10 = 0;\n      }\n      else {\n        aVar15 = in_ECX->addr_type;\n        sc->length = RANGE_ACTIVE;\n        bVar33 = aVar15 == ADDR_IS_NUM;\n        if (bVar33) goto LAB_00017ec1;\nLAB_00017d50:\n        if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }\n      }\n    }\n    else {\n      _Var8 = match_an_address_p(paVar17,input);\n      in_ECX = extraout_ECX_03;\n      if (!_Var8) goto LAB_00017ef0;\n      in_ECX = (addr *)sc->active;\n      sc->length = RANGE_ACTIVE;\n      aVar15 = in_ECX->addr_type;\n      bVar33 = aVar15 == ADDR_IS_NUM;\n      if (!bVar33) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar10 = in_ECX->addr_number;\n      uVar32 = input->line_number;\n      if ((uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10)) goto LAB_00017e6b;\n      _Var8 = match_an_address_p((addr *)sc->text,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_04;\n    }" if (parenthesized_expression "(sc->length == RANGE_ACTIVE)" ( (binary_expression "sc->length == RANGE_ACTIVE" (field_expression "sc->length" identifier -> field_identifier) == identifier) )) (compound_statement "{\n      if (in_ECX->addr_type != ADDR_IS_NUM) goto LAB_00017e56;\n      uVar10 = input->line_number;\n      uVar32 = in_ECX->addr_number;\n      if (uVar32 <= uVar10) {\n        sc->length = RANGE_CLOSED;\n      }\n      uVar10 = (uint)(uVar10 <= uVar32);\n    }" { (if_statement "if (in_ECX->addr_type != ADDR_IS_NUM) goto LAB_00017e56;" if (parenthesized_expression "(in_ECX->addr_type != ADDR_IS_NUM)" ( (binary_expression "in_ECX->addr_type != ADDR_IS_NUM" (field_expression "in_ECX->addr_type" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_00017e56;" goto statement_identifier ;)) (expression_statement "uVar10 = input->line_number;" (assignment_expression "uVar10 = input->line_number" identifier = (field_expression "input->line_number" identifier -> field_identifier)) ;) (expression_statement "uVar32 = in_ECX->addr_number;" (assignment_expression "uVar32 = in_ECX->addr_number" identifier = (field_expression "in_ECX->addr_number" identifier -> field_identifier)) ;) (if_statement "if (uVar32 <= uVar10) {\n        sc->length = RANGE_CLOSED;\n      }" if (parenthesized_expression "(uVar32 <= uVar10)" ( (binary_expression "uVar32 <= uVar10" identifier <= identifier) )) (compound_statement "{\n        sc->length = RANGE_CLOSED;\n      }" { (expression_statement "sc->length = RANGE_CLOSED;" (assignment_expression "sc->length = RANGE_CLOSED" (field_expression "sc->length" identifier -> field_identifier) = identifier) ;) })) (expression_statement "uVar10 = (uint)(uVar10 <= uVar32);" (assignment_expression "uVar10 = (uint)(uVar10 <= uVar32)" identifier = (call_expression "(uint)(uVar10 <= uVar32)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 <= uVar32)" ( (binary_expression "uVar10 <= uVar32" identifier <= identifier) )))) ;) }) (else_clause "else if (in_ECX == (addr *)0x0) {\n      _Var8 = match_an_address_p(paVar17,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_05;\n    }\n    else if (paVar17->addr_type == ADDR_IS_NUM) {\n      if ((sc->length == RANGE_CLOSED) || (input->line_number < paVar17->addr_number)) {\nLAB_00017ef0:\n        uVar10 = 0;\n      }\n      else {\n        aVar15 = in_ECX->addr_type;\n        sc->length = RANGE_ACTIVE;\n        bVar33 = aVar15 == ADDR_IS_NUM;\n        if (bVar33) goto LAB_00017ec1;\nLAB_00017d50:\n        if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }\n      }\n    }\n    else {\n      _Var8 = match_an_address_p(paVar17,input);\n      in_ECX = extraout_ECX_03;\n      if (!_Var8) goto LAB_00017ef0;\n      in_ECX = (addr *)sc->active;\n      sc->length = RANGE_ACTIVE;\n      aVar15 = in_ECX->addr_type;\n      bVar33 = aVar15 == ADDR_IS_NUM;\n      if (!bVar33) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar10 = in_ECX->addr_number;\n      uVar32 = input->line_number;\n      if ((uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10)) goto LAB_00017e6b;\n      _Var8 = match_an_address_p((addr *)sc->text,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_04;\n    }" else (if_statement "if (in_ECX == (addr *)0x0) {\n      _Var8 = match_an_address_p(paVar17,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_05;\n    }\n    else if (paVar17->addr_type == ADDR_IS_NUM) {\n      if ((sc->length == RANGE_CLOSED) || (input->line_number < paVar17->addr_number)) {\nLAB_00017ef0:\n        uVar10 = 0;\n      }\n      else {\n        aVar15 = in_ECX->addr_type;\n        sc->length = RANGE_ACTIVE;\n        bVar33 = aVar15 == ADDR_IS_NUM;\n        if (bVar33) goto LAB_00017ec1;\nLAB_00017d50:\n        if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }\n      }\n    }\n    else {\n      _Var8 = match_an_address_p(paVar17,input);\n      in_ECX = extraout_ECX_03;\n      if (!_Var8) goto LAB_00017ef0;\n      in_ECX = (addr *)sc->active;\n      sc->length = RANGE_ACTIVE;\n      aVar15 = in_ECX->addr_type;\n      bVar33 = aVar15 == ADDR_IS_NUM;\n      if (!bVar33) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar10 = in_ECX->addr_number;\n      uVar32 = input->line_number;\n      if ((uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10)) goto LAB_00017e6b;\n      _Var8 = match_an_address_p((addr *)sc->text,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_04;\n    }" if (parenthesized_expression "(in_ECX == (addr *)0x0)" ( (binary_expression "in_ECX == (addr *)0x0" identifier == (cast_expression "(addr *)0x0" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      _Var8 = match_an_address_p(paVar17,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_05;\n    }" { (expression_statement "_Var8 = match_an_address_p(paVar17,input);" (assignment_expression "_Var8 = match_an_address_p(paVar17,input)" identifier = (call_expression "match_an_address_p(paVar17,input)" identifier (argument_list "(paVar17,input)" ( identifier , identifier )))) ;) (expression_statement "uVar10 = (uint)_Var8;" (assignment_expression "uVar10 = (uint)_Var8" identifier = (cast_expression "(uint)_Var8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "in_ECX = extraout_ECX_05;" (assignment_expression "in_ECX = extraout_ECX_05" identifier = identifier) ;) }) (else_clause "else if (paVar17->addr_type == ADDR_IS_NUM) {\n      if ((sc->length == RANGE_CLOSED) || (input->line_number < paVar17->addr_number)) {\nLAB_00017ef0:\n        uVar10 = 0;\n      }\n      else {\n        aVar15 = in_ECX->addr_type;\n        sc->length = RANGE_ACTIVE;\n        bVar33 = aVar15 == ADDR_IS_NUM;\n        if (bVar33) goto LAB_00017ec1;\nLAB_00017d50:\n        if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }\n      }\n    }\n    else {\n      _Var8 = match_an_address_p(paVar17,input);\n      in_ECX = extraout_ECX_03;\n      if (!_Var8) goto LAB_00017ef0;\n      in_ECX = (addr *)sc->active;\n      sc->length = RANGE_ACTIVE;\n      aVar15 = in_ECX->addr_type;\n      bVar33 = aVar15 == ADDR_IS_NUM;\n      if (!bVar33) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar10 = in_ECX->addr_number;\n      uVar32 = input->line_number;\n      if ((uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10)) goto LAB_00017e6b;\n      _Var8 = match_an_address_p((addr *)sc->text,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_04;\n    }" else (if_statement "if (paVar17->addr_type == ADDR_IS_NUM) {\n      if ((sc->length == RANGE_CLOSED) || (input->line_number < paVar17->addr_number)) {\nLAB_00017ef0:\n        uVar10 = 0;\n      }\n      else {\n        aVar15 = in_ECX->addr_type;\n        sc->length = RANGE_ACTIVE;\n        bVar33 = aVar15 == ADDR_IS_NUM;\n        if (bVar33) goto LAB_00017ec1;\nLAB_00017d50:\n        if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }\n      }\n    }\n    else {\n      _Var8 = match_an_address_p(paVar17,input);\n      in_ECX = extraout_ECX_03;\n      if (!_Var8) goto LAB_00017ef0;\n      in_ECX = (addr *)sc->active;\n      sc->length = RANGE_ACTIVE;\n      aVar15 = in_ECX->addr_type;\n      bVar33 = aVar15 == ADDR_IS_NUM;\n      if (!bVar33) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar10 = in_ECX->addr_number;\n      uVar32 = input->line_number;\n      if ((uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10)) goto LAB_00017e6b;\n      _Var8 = match_an_address_p((addr *)sc->text,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_04;\n    }" if (parenthesized_expression "(paVar17->addr_type == ADDR_IS_NUM)" ( (binary_expression "paVar17->addr_type == ADDR_IS_NUM" (field_expression "paVar17->addr_type" identifier -> field_identifier) == identifier) )) (compound_statement "{\n      if ((sc->length == RANGE_CLOSED) || (input->line_number < paVar17->addr_number)) {\nLAB_00017ef0:\n        uVar10 = 0;\n      }\n      else {\n        aVar15 = in_ECX->addr_type;\n        sc->length = RANGE_ACTIVE;\n        bVar33 = aVar15 == ADDR_IS_NUM;\n        if (bVar33) goto LAB_00017ec1;\nLAB_00017d50:\n        if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }\n      }\n    }" { (if_statement "if ((sc->length == RANGE_CLOSED) || (input->line_number < paVar17->addr_number)) {\nLAB_00017ef0:\n        uVar10 = 0;\n      }\n      else {\n        aVar15 = in_ECX->addr_type;\n        sc->length = RANGE_ACTIVE;\n        bVar33 = aVar15 == ADDR_IS_NUM;\n        if (bVar33) goto LAB_00017ec1;\nLAB_00017d50:\n        if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }\n      }" if (parenthesized_expression "((sc->length == RANGE_CLOSED) || (input->line_number < paVar17->addr_number))" ( (binary_expression "(sc->length == RANGE_CLOSED) || (input->line_number < paVar17->addr_number)" (parenthesized_expression "(sc->length == RANGE_CLOSED)" ( (binary_expression "sc->length == RANGE_CLOSED" (field_expression "sc->length" identifier -> field_identifier) == identifier) )) || (parenthesized_expression "(input->line_number < paVar17->addr_number)" ( (binary_expression "input->line_number < paVar17->addr_number" (field_expression "input->line_number" identifier -> field_identifier) < (field_expression "paVar17->addr_number" identifier -> field_identifier)) ))) )) (compound_statement "{\nLAB_00017ef0:\n        uVar10 = 0;\n      }" { (labeled_statement "LAB_00017ef0:\n        uVar10 = 0;" statement_identifier : (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n        aVar15 = in_ECX->addr_type;\n        sc->length = RANGE_ACTIVE;\n        bVar33 = aVar15 == ADDR_IS_NUM;\n        if (bVar33) goto LAB_00017ec1;\nLAB_00017d50:\n        if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }\n      }" else (compound_statement "{\n        aVar15 = in_ECX->addr_type;\n        sc->length = RANGE_ACTIVE;\n        bVar33 = aVar15 == ADDR_IS_NUM;\n        if (bVar33) goto LAB_00017ec1;\nLAB_00017d50:\n        if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }\n      }" { (expression_statement "aVar15 = in_ECX->addr_type;" (assignment_expression "aVar15 = in_ECX->addr_type" identifier = (field_expression "in_ECX->addr_type" identifier -> field_identifier)) ;) (expression_statement "sc->length = RANGE_ACTIVE;" (assignment_expression "sc->length = RANGE_ACTIVE" (field_expression "sc->length" identifier -> field_identifier) = identifier) ;) (expression_statement "bVar33 = aVar15 == ADDR_IS_NUM;" (assignment_expression "bVar33 = aVar15 == ADDR_IS_NUM" identifier = (binary_expression "aVar15 == ADDR_IS_NUM" identifier == identifier)) ;) (if_statement "if (bVar33) goto LAB_00017ec1;" if (parenthesized_expression "(bVar33)" ( identifier )) (goto_statement "goto LAB_00017ec1;" goto statement_identifier ;)) (labeled_statement "LAB_00017d50:\n        if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }" statement_identifier : (if_statement "if (aVar15 < ADDR_IS_NUM || bVar33) {\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }" if (parenthesized_expression "(aVar15 < ADDR_IS_NUM || bVar33)" ( (binary_expression "aVar15 < ADDR_IS_NUM || bVar33" (binary_expression "aVar15 < ADDR_IS_NUM" identifier < identifier) || identifier) )) (compound_statement "{\n          uVar10 = 1;\n          if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }\n        }" { (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (if_statement "if (aVar15 != ADDR_IS_REGEX) {\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }" if (parenthesized_expression "(aVar15 != ADDR_IS_REGEX)" ( (binary_expression "aVar15 != ADDR_IS_REGEX" identifier != identifier) )) (compound_statement "{\nLAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);\n            in_ECX = extraout_ECX_02;\n            if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }\n            goto LAB_00017e6b;\n          }" { (labeled_statement "LAB_00017e56:\n            _Var8 = match_an_address_p(in_ECX,input);" statement_identifier : (expression_statement "_Var8 = match_an_address_p(in_ECX,input);" (assignment_expression "_Var8 = match_an_address_p(in_ECX,input)" identifier = (call_expression "match_an_address_p(in_ECX,input)" identifier (argument_list "(in_ECX,input)" ( identifier , identifier )))) ;)) (expression_statement "in_ECX = extraout_ECX_02;" (assignment_expression "in_ECX = extraout_ECX_02" identifier = identifier) ;) (if_statement "if (_Var8) {\n              sc->length = RANGE_CLOSED;\n            }" if (parenthesized_expression "(_Var8)" ( identifier )) (compound_statement "{\n              sc->length = RANGE_CLOSED;\n            }" { (expression_statement "sc->length = RANGE_CLOSED;" (assignment_expression "sc->length = RANGE_CLOSED" (field_expression "sc->length" identifier -> field_identifier) = identifier) ;) })) (goto_statement "goto LAB_00017e6b;" goto statement_identifier ;) })) }) (else_clause "else if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }" else (if_statement "if (aVar15 == ADDR_IS_STEP) {\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }\n        else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }" if (parenthesized_expression "(aVar15 == ADDR_IS_STEP)" ( (binary_expression "aVar15 == ADDR_IS_STEP" identifier == identifier) )) (compound_statement "{\n          in_ECX->addr_number = in_ECX->addr_step + input->line_number;\n          uVar10 = 1;\n        }" { (expression_statement "in_ECX->addr_number = in_ECX->addr_step + input->line_number;" (assignment_expression "in_ECX->addr_number = in_ECX->addr_step + input->line_number" (field_expression "in_ECX->addr_number" identifier -> field_identifier) = (binary_expression "in_ECX->addr_step + input->line_number" (field_expression "in_ECX->addr_step" identifier -> field_identifier) + (field_expression "input->line_number" identifier -> field_identifier))) ;) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }" else (compound_statement "{\n          if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;\n          uVar10 = 1;\n          in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;\n        }" { (if_statement "if (aVar15 != ADDR_IS_STEP_MOD) goto LAB_00017e56;" if (parenthesized_expression "(aVar15 != ADDR_IS_STEP_MOD)" ( (binary_expression "aVar15 != ADDR_IS_STEP_MOD" identifier != identifier) )) (goto_statement "goto LAB_00017e56;" goto statement_identifier ;)) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (expression_statement "in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step;" (assignment_expression "in_ECX->addr_number =\n               (input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step" (field_expression "in_ECX->addr_number" identifier -> field_identifier) = (binary_expression "(input->line_number + in_ECX->addr_step) - input->line_number % in_ECX->addr_step" (parenthesized_expression "(input->line_number + in_ECX->addr_step)" ( (binary_expression "input->line_number + in_ECX->addr_step" (field_expression "input->line_number" identifier -> field_identifier) + (field_expression "in_ECX->addr_step" identifier -> field_identifier)) )) - (binary_expression "input->line_number % in_ECX->addr_step" (field_expression "input->line_number" identifier -> field_identifier) % (field_expression "in_ECX->addr_step" identifier -> field_identifier)))) ;) })))))) }))) }) (else_clause "else {\n      _Var8 = match_an_address_p(paVar17,input);\n      in_ECX = extraout_ECX_03;\n      if (!_Var8) goto LAB_00017ef0;\n      in_ECX = (addr *)sc->active;\n      sc->length = RANGE_ACTIVE;\n      aVar15 = in_ECX->addr_type;\n      bVar33 = aVar15 == ADDR_IS_NUM;\n      if (!bVar33) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar10 = in_ECX->addr_number;\n      uVar32 = input->line_number;\n      if ((uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10)) goto LAB_00017e6b;\n      _Var8 = match_an_address_p((addr *)sc->text,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_04;\n    }" else (compound_statement "{\n      _Var8 = match_an_address_p(paVar17,input);\n      in_ECX = extraout_ECX_03;\n      if (!_Var8) goto LAB_00017ef0;\n      in_ECX = (addr *)sc->active;\n      sc->length = RANGE_ACTIVE;\n      aVar15 = in_ECX->addr_type;\n      bVar33 = aVar15 == ADDR_IS_NUM;\n      if (!bVar33) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar10 = in_ECX->addr_number;\n      uVar32 = input->line_number;\n      if ((uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10)) goto LAB_00017e6b;\n      _Var8 = match_an_address_p((addr *)sc->text,input);\n      uVar10 = (uint)_Var8;\n      in_ECX = extraout_ECX_04;\n    }" { (expression_statement "_Var8 = match_an_address_p(paVar17,input);" (assignment_expression "_Var8 = match_an_address_p(paVar17,input)" identifier = (call_expression "match_an_address_p(paVar17,input)" identifier (argument_list "(paVar17,input)" ( identifier , identifier )))) ;) (expression_statement "in_ECX = extraout_ECX_03;" (assignment_expression "in_ECX = extraout_ECX_03" identifier = identifier) ;) (if_statement "if (!_Var8) goto LAB_00017ef0;" if (parenthesized_expression "(!_Var8)" ( (unary_expression "!_Var8" ! identifier) )) (goto_statement "goto LAB_00017ef0;" goto statement_identifier ;)) (expression_statement "in_ECX = (addr *)sc->active;" (assignment_expression "in_ECX = (addr *)sc->active" identifier = (cast_expression "(addr *)sc->active" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sc->active" identifier -> field_identifier))) ;) (expression_statement "sc->length = RANGE_ACTIVE;" (assignment_expression "sc->length = RANGE_ACTIVE" (field_expression "sc->length" identifier -> field_identifier) = identifier) ;) (expression_statement "aVar15 = in_ECX->addr_type;" (assignment_expression "aVar15 = in_ECX->addr_type" identifier = (field_expression "in_ECX->addr_type" identifier -> field_identifier)) ;) (expression_statement "bVar33 = aVar15 == ADDR_IS_NUM;" (assignment_expression "bVar33 = aVar15 == ADDR_IS_NUM" identifier = (binary_expression "aVar15 == ADDR_IS_NUM" identifier == identifier)) ;) (if_statement "if (!bVar33) goto LAB_00017d50;" if (parenthesized_expression "(!bVar33)" ( (unary_expression "!bVar33" ! identifier) )) (goto_statement "goto LAB_00017d50;" goto statement_identifier ;)) (labeled_statement "LAB_00017ec1:\n      uVar10 = in_ECX->addr_number;" statement_identifier : (expression_statement "uVar10 = in_ECX->addr_number;" (assignment_expression "uVar10 = in_ECX->addr_number" identifier = (field_expression "in_ECX->addr_number" identifier -> field_identifier)) ;)) (expression_statement "uVar32 = input->line_number;" (assignment_expression "uVar32 = input->line_number" identifier = (field_expression "input->line_number" identifier -> field_identifier)) ;) (if_statement "if ((uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10)) goto LAB_00017e6b;" if (parenthesized_expression "((uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10))" ( (binary_expression "(uVar32 < uVar10) || (sc->length = RANGE_CLOSED, uVar32 == uVar10)" (parenthesized_expression "(uVar32 < uVar10)" ( (binary_expression "uVar32 < uVar10" identifier < identifier) )) || (parenthesized_expression "(sc->length = RANGE_CLOSED, uVar32 == uVar10)" ( (comma_expression "sc->length = RANGE_CLOSED, uVar32 == uVar10" (assignment_expression "sc->length = RANGE_CLOSED" (field_expression "sc->length" identifier -> field_identifier) = identifier) , (binary_expression "uVar32 == uVar10" identifier == identifier)) ))) )) (goto_statement "goto LAB_00017e6b;" goto statement_identifier ;)) (expression_statement "_Var8 = match_an_address_p((addr *)sc->text,input);" (assignment_expression "_Var8 = match_an_address_p((addr *)sc->text,input)" identifier = (call_expression "match_an_address_p((addr *)sc->text,input)" identifier (argument_list "((addr *)sc->text,input)" ( (cast_expression "(addr *)sc->text" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "sc->text" identifier -> field_identifier)) , identifier )))) ;) (expression_statement "uVar10 = (uint)_Var8;" (assignment_expression "uVar10 = (uint)_Var8" identifier = (cast_expression "(uint)_Var8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "in_ECX = extraout_ECX_04;" (assignment_expression "in_ECX = extraout_ECX_04" identifier = identifier) ;) }))))))) }))) (expression_statement "pFVar4 = output_file.fp;" (assignment_expression "pFVar4 = output_file.fp" identifier = (field_expression "output_file.fp" identifier . field_identifier)) ;) (expression_statement "sVar16 = line.length;" (assignment_expression "sVar16 = line.length" identifier = (field_expression "line.length" identifier . field_identifier)) ;) (expression_statement "pbVar31 = (byte *)line.active;" (assignment_expression "pbVar31 = (byte *)line.active" identifier = (cast_expression "(byte *)line.active" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "line.active" identifier . field_identifier))) ;) (if_statement "if ((int)(char)sc->alloc == uVar10) goto _L604;" if (parenthesized_expression "((int)(char)sc->alloc == uVar10)" ( (binary_expression "(int)(char)sc->alloc == uVar10" (cast_expression "(int)(char)sc->alloc" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)sc->alloc" ( (type_descriptor "char" primitive_type) ) (field_expression "sc->alloc" identifier -> field_identifier))) == identifier) )) (goto_statement "goto _L604;" goto statement_identifier ;)) (expression_statement "plVar26 = (line *)(int)*(char *)((int)&sc->alloc + 1);" (assignment_expression "plVar26 = (line *)(int)*(char *)((int)&sc->alloc + 1)" identifier = (cast_expression "(line *)(int)*(char *)((int)&sc->alloc + 1)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*(char *)((int)&sc->alloc + 1)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)((int)&sc->alloc + 1)" * (cast_expression "(char *)((int)&sc->alloc + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&sc->alloc + 1)" ( (binary_expression "(int)&sc->alloc + 1" (cast_expression "(int)&sc->alloc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&sc->alloc" & (field_expression "sc->alloc" identifier -> field_identifier))) + number_literal) ))))))) ;) (switch_statement "switch((uint)((int)&plVar26[-2].mbstate.__count + 1U) & 0xff) {\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto _L604;\n  default:\n                    /* WARNING: Subroutine does not return */\n    panic("INTERNAL ERROR: Bad cmd %c",plVar26);\n  case 0x1a:\n    if (output_file.missing_newline != false) {\n      local_1060 = 1;\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    pcVar11 = "%lu%c";\n    pcVar24 = (char *)input->line_number;\n    goto LAB_00018a05;\n  case 0x21:\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    if (pvVar21 == (void *)0x0) goto LAB_00017f53;\n    line.active = (char *)((int)pvVar21 + 1);\n    line.alloc = line.alloc - ((int)line.active - (int)pbVar31);\n    sc = (line *)vec->v;\n    line.length = sVar16 - ((int)line.active - (int)pbVar31);\n    in_ECX = extraout_ECX_27;\n    if (*(_Bool *)&((line *)b)->text == false) goto joined_r0x00018523;\n    debug_print_line(&line);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_28;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (output_file.missing_newline != false) {\n      local_1060 = 1;\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    pcVar11 = "%s%c";\n    pcVar24 = input->in_file_name;\nLAB_00018a05:\n    __fprintf_chk(output_file.fp,1,pcVar11,pcVar24,(int)buffer_delimiter);\n    in_ECX = extraout_ECX_29;\n    if (unbuffered == false) goto _L604;\n    ck_fflush(output_file.fp);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_30;\n    goto LAB_00017de7;\n  case 0x24:\n    line_append((line *)input,(line *)b,(int)in_stack_ffffef8c);\n    in_ECX = extraout_ECX_00;\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_000182c0;\n    goto LAB_00017dd0;\n  case 0x25:\n    line_append((line *)input,(line *)b,(int)in_stack_ffffef8c);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_22;\n    break;\n  case 0x2b:\n    str_append(&line,&buffer_delimiter,1);\n    if (((buffer.length != 0) || (_Var8 = test_eof(input), !_Var8)) &&\n       (_Var8 = read_pattern_space(input,vec,1), in_ECX = extraout_ECX_25, _Var8))\n    goto LAB_000188c9;\n    if (*(_Bool *)&((line *)b)->text != false) {\n      puts("END-OF-CYCLE:");\n    }\n    line.length = line.length - 1;\n    if ((posixicity != POSIXLY_EXTENDED) || (no_default_output != false)) goto LAB_00017f53;\n    goto LAB_00017e26;\n  case 0x2d:\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    if (pvVar21 == (void *)0x0) {\n      uVar10 = (uint)line.chomped;\n    }\n    else {\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }\n    poVar12 = &output_file;\n    goto LAB_0001881e;\n  case 0x2e:\n    goto _L358;\n  case 0x2f:\n    pFVar4 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf->fp;\n    if ((pFVar4 != (FILE *)0x0) && ((pFVar4->_flags & 0x10) == 0)) {\n      text = (char *)0x0;\n      local_1060 = (size_t)buffer_delimiter;\n      sVar16 = ck_getdelim(&text,&buflen,buffer_delimiter,pFVar4);\n      if (sVar16 == 0xffffffff) {\n        free(text);\n        in_ECX = extraout_ECX_43;\n      }\n      else {\n        paVar13 = next_append_slot();\n        paVar13->free = true;\n        paVar13->text = text;\n        paVar13->textlen = sVar16;\n        in_ECX = extraout_ECX_06;\n      }\n    }\n    goto _L604;\n  case 0x31:\n    cVar9 = *(char *)&((line *)b)->text;\n    if (replaced == false) goto LAB_00018263;\n    replaced = false;\n    goto LAB_00017de7;\n  case 0x34:\n    poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf;\n    in_stack_ffffef8c = (line *)poVar12;\n    if (((line *)poVar12)->length == RANGE_INACTIVE) goto _L604;\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    in_stack_ffffef8c = (line *)poVar12;\n    if (pvVar21 == (void *)0x0) {\n      uVar10 = (uint)line.chomped;\n    }\n    else {\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }\nLAB_0001881e:\n    output_line((char *)pbVar31,sVar16,uVar10,poVar12);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_23;\n    goto LAB_00017de7;\n  case 0x3e:\n    paVar13 = next_append_slot();\n    paVar13->text = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    paVar13->textlen = (sc->mbstate).__count;\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_24;\n    goto LAB_00017de7;\n  case 0x3f:\n  case 0x58:\n    goto _L336;\n  case 0x40:\n    if (sc->length != RANGE_ACTIVE) {\n      output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                  (sc->mbstate).__count - 1,1,&output_file);\n    }\n  case 0x41:\n_L352:\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    pcVar11 = (char *)0xffffffff;\n    goto LAB_00017f58;\n  case 0x42:\n    plVar28 = (line *)(sc->mbstate).__count;\n    in_stack_ffffef8c = plVar28;\n    line_reset((line *)0x0,plVar26);\n    if (plVar28 == (line *)0x0) {\n      str_append(&line,"",1);\n      pFVar23 = popen(line.active,"r");\n      uVar25 = extraout_ECX_17;\n    }\n    else {\n      *(char *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1 +\n               (int)in_stack_ffffef8c) = '\0';\n      pFVar23 = popen((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,"r");\n      uVar25 = extraout_ECX_37;\n      if (output_file.missing_newline != false) {\n        local_1060 = 1;\n        ck_fwrite(PTR_buffer_delimiter_00030fd8,1,1,output_file.fp);\n        output_file.missing_newline = false;\n        uVar25 = extraout_ECX_38;\n      }\n    }\n    if (pFVar23 == (FILE *)0x0) goto LAB_0001925a;\n    while ((pFVar23->_flags & 0x10) == 0) {\n      local_1060 = 0x1000;\n      sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n      if (0 < (int)sVar14) {\n        if (in_stack_ffffef8c == (line *)0x0) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        else {\n          ck_fwrite(buf,1,sVar14,output_file.fp);\n          local_1060 = sVar14;\n        }\n      }\n    }\n    pclose(pFVar23);\n    if (in_stack_ffffef8c == (line *)0x0) {\n      if ((s_accum.length != 0) && (s_accum.active[s_accum.length - 1] == buffer_delimiter)) {\n        s_accum.length = s_accum.length - 1;\n      }\n      line_exchange((line *)input,(line *)b,0);\n      in_ECX = extraout_ECX_19;\n    }\n    else {\n      in_ECX = extraout_ECX_18;\n      if (unbuffered != false) {\n        ck_fflush(output_file.fp);\n        in_ECX = extraout_ECX_36;\n      }\n    }\n    goto _L604;\n  case 0x44:\n    line_copy(&hold,&line,(int)in_ECX);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_26;\n    break;\n  case 0x45:\n    line_copy(&line,&hold,(int)in_ECX);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_20;\n    break;\n  case 0x46:\n    output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                (sc->mbstate).__count - 1,1,&output_file);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_15;\n    goto LAB_00017de7;\n  case 0x49:\n    local_106c = (line *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (local_106c == (line *)0xffffffff) {\n      local_106c = (line *)lcmd_out_line_len;\n    }\n    if (output_file.missing_newline != false) {\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    if (sVar16 != 0) {\n      pbVar22 = (byte *)((char *)pbVar31 + sVar16);\n      pcVar11 = buf + 1;\n      plVar26 = (line *)0x0;\n      do {\n        bVar1 = *pbVar31;\n        in_stack_ffffef8c = (line *)(uint)bVar1;\n        if (((bVar1 & 0x80) == 0) &&\n           (ppuVar20 = __ctype_b_loc(),\n           (*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0)) {\n          plVar28 = (line *)0x1;\n          buf[0] = bVar1;\n          if (*pbVar31 == 0x5c) {\n            buf[1] = '\\';\n            plVar28 = (line *)0x2;\n          }\n        }\n        else {\n          buf[0] = '\\';\n          switch(*pbVar31) {\n          case 7:\n            buf[1] = 'a';\n            plVar28 = (line *)0x2;\n            break;\n          case 8:\n            buf[1] = 'b';\n            plVar28 = (line *)0x2;\n            break;\n          case 9:\n            buf[1] = 't';\n            plVar28 = (line *)0x2;\n            break;\n          case 10:\n            buf[1] = 'n';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xb:\n            buf[1] = 'v';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xc:\n            buf[1] = 'f';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xd:\n            buf[1] = 'r';\n            plVar28 = (line *)0x2;\n            break;\n          default:\n            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);\n            sVar14 = strlen(pcVar11);\n            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));\n          }\n        }\n        plVar26 = (line *)((int)&plVar28->text + (int)&plVar26->text);\n        if ((local_106c <= plVar26) && (0 < (int)local_106c)) {\n          ck_fwrite(&DAT_00026f7e,1,1,pFVar4);\n          ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n          plVar26 = plVar28;\n          in_stack_ffffef8c = plVar28;\n        }\n        pbVar31 = pbVar31 + 1;\n        ck_fwrite(buf,1,(size_t)plVar28,pFVar4);\n      } while (pbVar31 != pbVar22);\n    }\n    local_1060 = 1;\n    ck_fwrite(&DAT_00026f80,1,1,pFVar4);\n    ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n    in_ECX = extraout_ECX_34;\n    if (unbuffered != false) {\n      ck_fflush(pFVar4);\n      in_ECX = extraout_ECX_35;\n    }\n_L604:\n    cVar9 = *(char *)&((line *)b)->text;\nLAB_00017de7:\n    sc = (line *)&(sc->mbstate).__value;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (no_default_output == false) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\n    if (((buffer.length == 0) && (_Var8 = test_eof(input), _Var8)) ||\n       (_Var8 = read_pattern_space(input,vec,0), !_Var8)) goto _L352;\n    if (*(_Bool *)&((line *)b)->text != false) goto LAB_00017dd0;\n    sc = (line *)&(sc->mbstate).__value;\n    in_ECX = extraout_ECX_16;\n    goto joined_r0x00018523;\n  case 0x4d:\n    poVar12 = &output_file;\n    goto LAB_00018030;\n  case 0x4e:\n    if (no_default_output == false) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\n    dump_append_queue();\n_L358:\n    pcVar11 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (pcVar11 == (char *)0xffffffff) {\n      pcVar11 = (char *)0x0;\n    }\n    goto LAB_00017f58;\n  case 0x4f:\n    in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (in_ECX == (addr *)0x0) goto _L604;\n    paVar13 = next_append_slot();\n    paVar13->fname = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_08;\n    goto LAB_00017de7;\n  case 0x50:\n    regex = (regex *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;\n    line_reset(&line,plVar26);\n    bVar1 = *(byte *)&(regex->pattern).fastmap;\n    in_stack_ffffef8c = (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),bVar1);\n    sVar14 = (bVar1 >> 4) + 1;\n    local_106c = (line *)0x3dc;\n    iVar19 = match_regex((regex *)0x3dc,buf_00,(size_t)(regex->pattern).buffer,(size_t)line.active,\n                         (re_registers *)line.length,0);\n    in_ECX = extraout_ECX_09;\n    if (iVar19 == 0) goto LAB_000188c9;\n    plVar26 = (line *)*DAT_00031370;\n    plVar28 = extraout_EDX;\n    if (((*(_Bool *)&((line *)b)->text != false) && (plVar28 = regs_7164, regs_7164 != (line *)0x0))\n       && (plVar26 != (line *)0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      plVar26 = (line *)*DAT_00031370;\n      plVar28 = extraout_EDX_05;\n      if ((regs_7164 != (line *)0x0) && (plVar28 = extraout_EDX_05, plVar26 != (line *)0xffffffff))\n      {\n        plVar28 = (line *)0x0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",plVar28,plVar26,\n                       (&DAT_00031374->addr_type)[(int)plVar28],sVar14);\n          aVar15 = DAT_00031370[(int)plVar28];\n          if (aVar15 != (&DAT_00031374->addr_type)[(int)plVar28]) {\n            sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15;\n            local_1060 = 1;\n            fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7);\n          }\n          plVar30 = (line *)((int)&plVar28->text + 1);\n          puts("\'");\n          if (regs_7164 <= plVar30) {\n            plVar26 = (line *)*DAT_00031370;\n            plVar28 = extraout_EDX_06;\n            goto LAB_00018110;\n          }\n          plVar26 = (line *)DAT_00031370[(int)((int)&plVar28->text + 1)];\n          plVar28 = plVar30;\n        } while (plVar26 != (line *)0xffffffff);\n        plVar26 = (line *)*DAT_00031370;\n        plVar28 = extraout_EDX_06;\n      }\n    }\nLAB_00018110:\n    aVar15 = DAT_00031374->addr_type;\n    if (((regex->pattern).allocated != 0) || (1 < (regex->pattern).used)) {\nLAB_00018127:\n      plVar30 = (line *)0x0;\n      regsize = (line *)0x0;\n      local_1058 = 0;\n      sVar16 = local_1060;\n      do {\n        local_1060 = aVar15 - (int)plVar26;\n        in_stack_ffffef8c = plVar26;\n        if (regsize < plVar26) {\n          sVar27 = (int)plVar26 - (int)regsize;\n          pcVar11 = line.active + (int)regsize;\n          regsize = plVar26;\n          str_append(&s_accum,pcVar11,sVar27);\n          plVar26 = extraout_ECX_10;\n          plVar28 = extraout_EDX_01;\n          in_stack_ffffef8c = regsize;\n        }\n        plVar28 = (line *)CONCAT31((int3)((uint)plVar28 >> 8),\n                                   local_1058 == 0 || plVar30 < in_stack_ffffef8c);\n        if ((local_1058 == 0 || plVar30 < in_stack_ffffef8c) || (local_1060 != 0)) {\n          local_1058 = local_1058 + 1;\n          if (local_1058 < (regex->pattern).used) {\n            if (local_1060 == 0) goto LAB_0001817a;\n            goto LAB_00018190;\n          }\n          puVar5 = (undefined4 *)(regex->pattern).allocated;\n          replaced = true;\n          local_1068 = 0;\n          for (; puVar5 != (undefined4 *)0x0; puVar5 = (undefined4 *)puVar5[4]) {\n            uVar10 = puVar5[3];\n            plVar28 = (line *)puVar5[1];\n            plVar26 = (line *)puVar5[2];\n            if ((uVar10 & 0xc) == 0) {\n              uVar10 = local_1068 | uVar10;\n            }\n            uVar32 = uVar10;\n            if (plVar28 != (line *)0x0) {\n              uVar32 = uVar10 & 0xfffffff3;\n              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);\n              plVar28 = extraout_EDX_03;\n            }\n            local_1068 = 0;\n            if ((-1 < (int)plVar26) && (plVar26 < regs_7164)) {\n              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];\n              plVar26 = (line *)DAT_00031370[(int)plVar26];\n              if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }\n            }\n          }\n          regsize = (line *)((int)in_stack_ffffef8c + local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n          if (((uint)(regex->pattern).fastmap & 1) == 0) goto LAB_00018ba8;\n        }\n        else {\nLAB_0001817a:\n          local_1060 = sVar16;\n          if (line.length <= regsize) goto LAB_00018bcb;\n          local_1060 = 1;\nLAB_00018190:\n          regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060);\n          str_append(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n        }\n        plVar26 = local_106c;\n        plVar28 = (line *)line.length;\n        local_1060 = sVar16;\n        if (line.length < regsize) goto LAB_00018bcb;\n        in_stack_ffffef8c =\n             (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),\n                              *(undefined1 *)&(regex->pattern).fastmap);\n        iVar19 = match_regex(regex,(char *)line.length,(size_t)(regex->pattern).buffer,\n                             (size_t)line.active,(re_registers *)line.length,(int)regsize);\n        plVar28 = extraout_EDX_00;\n        if (iVar19 == 0) goto LAB_00018ba8;\n        plVar26 = (line *)*DAT_00031370;\n        aVar15 = DAT_00031374->addr_type;\n      } while( true );\n    }\n    plVar28 = plVar26;\n    in_ECX = DAT_00031374;\n    if ((plVar26 == (line *)0x0) &&\n       (bVar1 = *(byte *)&(regex->pattern).fastmap, plVar28 = (line *)(uint)bVar1, (bVar1 & 1) == 0)\n       ) {\n      line.length = line.length - aVar15;\n      line.active = line.active + aVar15;\n      line.alloc = line.alloc - DAT_00031374->addr_type;\n      replaced = true;\n    }\n    else {\n      if (aVar15 != line.length) goto LAB_00018127;\n      replaced = true;\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n      line.length = (size_t)plVar26;\n    }\n    goto LAB_00018bf8;\n  case 0x51:\n    cVar9 = *(char *)&((line *)b)->text;\n    if (replaced == false) goto LAB_00017de7;\n    replaced = false;\nLAB_00018263:\n    in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg * 3);\n    sc = (line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf;\n    if (poVar12->fp == (FILE *)0x0) goto _L604;\nLAB_00018030:\n    output_line(line.active,line.length,(uint)line.chomped,poVar12);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_07;\n    goto LAB_00017de7;\n  case 0x55:\n    line_exchange(&hold,plVar26,(int)in_ECX);\n    in_ECX = extraout_ECX_11;\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_000182c0;\n    debug_print_line(&line);\n    goto LAB_0001861e;\n  case 0x56:\n    if (mb_cur_max < 2) {\n      pbVar22 = (byte *)(line.active + line.length);\n      if (line.active < pbVar22) {\n        do {\n          pbVar29 = pbVar31 + 1;\n          bVar1 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text[*pbVar31];\n          in_ECX = (addr *)(uint)bVar1;\n          *pbVar31 = bVar1;\n          pbVar31 = pbVar29;\n        } while (pbVar22 != pbVar29);\n      }\n    }\n    else {\n      in_stack_ffffef8c = (line *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;\n      mbstate.__count = 0;\n      mbstate.__value.__wch = 0;\n      if (line.length != 0) {\n        local_1068 = 0;\n        do {\n          if (mb_cur_max == 1) {\nLAB_0001836f:\n            sVar16 = 1;\n          }\n          else {\n            local_1060 = line.length - local_1068;\n            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);\n            in_ECX = extraout_ECX_12;\n            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;\n          }\n          paVar17 = (addr *)in_stack_ffffef8c->text;\n          if (paVar17 != (addr *)0x0) {\n            local_105c = line.active;\n            pcVar11 = line.active + local_1068;\n            iVar19 = 0;\n            do {\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            } while (paVar17 != (addr *)0x0);\n          }\n          local_1068 = local_1068 + sVar16;\n        } while (local_1068 < line.length);\n      }\n    }\n    goto LAB_000188c9;\n  case 0x57:\n    line.length = 0;\n    goto LAB_000188c9;\n  }" switch (parenthesized_expression "((uint)((int)&plVar26[-2].mbstate.__count + 1U) & 0xff)" ( (binary_expression "(uint)((int)&plVar26[-2].mbstate.__count + 1U) & 0xff" (call_expression "(uint)((int)&plVar26[-2].mbstate.__count + 1U)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)&plVar26[-2].mbstate.__count + 1U)" ( (binary_expression "(int)&plVar26[-2].mbstate.__count + 1U" (cast_expression "(int)&plVar26[-2].mbstate.__count" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&plVar26[-2].mbstate.__count" & (field_expression "plVar26[-2].mbstate.__count" (field_expression "plVar26[-2].mbstate" (subscript_expression "plVar26[-2]" identifier [ number_literal ]) . field_identifier) . field_identifier))) + number_literal) ))) & number_literal) )) (compound_statement "{\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto _L604;\n  default:\n                    /* WARNING: Subroutine does not return */\n    panic("INTERNAL ERROR: Bad cmd %c",plVar26);\n  case 0x1a:\n    if (output_file.missing_newline != false) {\n      local_1060 = 1;\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    pcVar11 = "%lu%c";\n    pcVar24 = (char *)input->line_number;\n    goto LAB_00018a05;\n  case 0x21:\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    if (pvVar21 == (void *)0x0) goto LAB_00017f53;\n    line.active = (char *)((int)pvVar21 + 1);\n    line.alloc = line.alloc - ((int)line.active - (int)pbVar31);\n    sc = (line *)vec->v;\n    line.length = sVar16 - ((int)line.active - (int)pbVar31);\n    in_ECX = extraout_ECX_27;\n    if (*(_Bool *)&((line *)b)->text == false) goto joined_r0x00018523;\n    debug_print_line(&line);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_28;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (output_file.missing_newline != false) {\n      local_1060 = 1;\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    pcVar11 = "%s%c";\n    pcVar24 = input->in_file_name;\nLAB_00018a05:\n    __fprintf_chk(output_file.fp,1,pcVar11,pcVar24,(int)buffer_delimiter);\n    in_ECX = extraout_ECX_29;\n    if (unbuffered == false) goto _L604;\n    ck_fflush(output_file.fp);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_30;\n    goto LAB_00017de7;\n  case 0x24:\n    line_append((line *)input,(line *)b,(int)in_stack_ffffef8c);\n    in_ECX = extraout_ECX_00;\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_000182c0;\n    goto LAB_00017dd0;\n  case 0x25:\n    line_append((line *)input,(line *)b,(int)in_stack_ffffef8c);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_22;\n    break;\n  case 0x2b:\n    str_append(&line,&buffer_delimiter,1);\n    if (((buffer.length != 0) || (_Var8 = test_eof(input), !_Var8)) &&\n       (_Var8 = read_pattern_space(input,vec,1), in_ECX = extraout_ECX_25, _Var8))\n    goto LAB_000188c9;\n    if (*(_Bool *)&((line *)b)->text != false) {\n      puts("END-OF-CYCLE:");\n    }\n    line.length = line.length - 1;\n    if ((posixicity != POSIXLY_EXTENDED) || (no_default_output != false)) goto LAB_00017f53;\n    goto LAB_00017e26;\n  case 0x2d:\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    if (pvVar21 == (void *)0x0) {\n      uVar10 = (uint)line.chomped;\n    }\n    else {\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }\n    poVar12 = &output_file;\n    goto LAB_0001881e;\n  case 0x2e:\n    goto _L358;\n  case 0x2f:\n    pFVar4 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf->fp;\n    if ((pFVar4 != (FILE *)0x0) && ((pFVar4->_flags & 0x10) == 0)) {\n      text = (char *)0x0;\n      local_1060 = (size_t)buffer_delimiter;\n      sVar16 = ck_getdelim(&text,&buflen,buffer_delimiter,pFVar4);\n      if (sVar16 == 0xffffffff) {\n        free(text);\n        in_ECX = extraout_ECX_43;\n      }\n      else {\n        paVar13 = next_append_slot();\n        paVar13->free = true;\n        paVar13->text = text;\n        paVar13->textlen = sVar16;\n        in_ECX = extraout_ECX_06;\n      }\n    }\n    goto _L604;\n  case 0x31:\n    cVar9 = *(char *)&((line *)b)->text;\n    if (replaced == false) goto LAB_00018263;\n    replaced = false;\n    goto LAB_00017de7;\n  case 0x34:\n    poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf;\n    in_stack_ffffef8c = (line *)poVar12;\n    if (((line *)poVar12)->length == RANGE_INACTIVE) goto _L604;\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    in_stack_ffffef8c = (line *)poVar12;\n    if (pvVar21 == (void *)0x0) {\n      uVar10 = (uint)line.chomped;\n    }\n    else {\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }\nLAB_0001881e:\n    output_line((char *)pbVar31,sVar16,uVar10,poVar12);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_23;\n    goto LAB_00017de7;\n  case 0x3e:\n    paVar13 = next_append_slot();\n    paVar13->text = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    paVar13->textlen = (sc->mbstate).__count;\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_24;\n    goto LAB_00017de7;\n  case 0x3f:\n  case 0x58:\n    goto _L336;\n  case 0x40:\n    if (sc->length != RANGE_ACTIVE) {\n      output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                  (sc->mbstate).__count - 1,1,&output_file);\n    }\n  case 0x41:\n_L352:\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    pcVar11 = (char *)0xffffffff;\n    goto LAB_00017f58;\n  case 0x42:\n    plVar28 = (line *)(sc->mbstate).__count;\n    in_stack_ffffef8c = plVar28;\n    line_reset((line *)0x0,plVar26);\n    if (plVar28 == (line *)0x0) {\n      str_append(&line,"",1);\n      pFVar23 = popen(line.active,"r");\n      uVar25 = extraout_ECX_17;\n    }\n    else {\n      *(char *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1 +\n               (int)in_stack_ffffef8c) = '\0';\n      pFVar23 = popen((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,"r");\n      uVar25 = extraout_ECX_37;\n      if (output_file.missing_newline != false) {\n        local_1060 = 1;\n        ck_fwrite(PTR_buffer_delimiter_00030fd8,1,1,output_file.fp);\n        output_file.missing_newline = false;\n        uVar25 = extraout_ECX_38;\n      }\n    }\n    if (pFVar23 == (FILE *)0x0) goto LAB_0001925a;\n    while ((pFVar23->_flags & 0x10) == 0) {\n      local_1060 = 0x1000;\n      sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n      if (0 < (int)sVar14) {\n        if (in_stack_ffffef8c == (line *)0x0) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        else {\n          ck_fwrite(buf,1,sVar14,output_file.fp);\n          local_1060 = sVar14;\n        }\n      }\n    }\n    pclose(pFVar23);\n    if (in_stack_ffffef8c == (line *)0x0) {\n      if ((s_accum.length != 0) && (s_accum.active[s_accum.length - 1] == buffer_delimiter)) {\n        s_accum.length = s_accum.length - 1;\n      }\n      line_exchange((line *)input,(line *)b,0);\n      in_ECX = extraout_ECX_19;\n    }\n    else {\n      in_ECX = extraout_ECX_18;\n      if (unbuffered != false) {\n        ck_fflush(output_file.fp);\n        in_ECX = extraout_ECX_36;\n      }\n    }\n    goto _L604;\n  case 0x44:\n    line_copy(&hold,&line,(int)in_ECX);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_26;\n    break;\n  case 0x45:\n    line_copy(&line,&hold,(int)in_ECX);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_20;\n    break;\n  case 0x46:\n    output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                (sc->mbstate).__count - 1,1,&output_file);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_15;\n    goto LAB_00017de7;\n  case 0x49:\n    local_106c = (line *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (local_106c == (line *)0xffffffff) {\n      local_106c = (line *)lcmd_out_line_len;\n    }\n    if (output_file.missing_newline != false) {\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    if (sVar16 != 0) {\n      pbVar22 = (byte *)((char *)pbVar31 + sVar16);\n      pcVar11 = buf + 1;\n      plVar26 = (line *)0x0;\n      do {\n        bVar1 = *pbVar31;\n        in_stack_ffffef8c = (line *)(uint)bVar1;\n        if (((bVar1 & 0x80) == 0) &&\n           (ppuVar20 = __ctype_b_loc(),\n           (*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0)) {\n          plVar28 = (line *)0x1;\n          buf[0] = bVar1;\n          if (*pbVar31 == 0x5c) {\n            buf[1] = '\\';\n            plVar28 = (line *)0x2;\n          }\n        }\n        else {\n          buf[0] = '\\';\n          switch(*pbVar31) {\n          case 7:\n            buf[1] = 'a';\n            plVar28 = (line *)0x2;\n            break;\n          case 8:\n            buf[1] = 'b';\n            plVar28 = (line *)0x2;\n            break;\n          case 9:\n            buf[1] = 't';\n            plVar28 = (line *)0x2;\n            break;\n          case 10:\n            buf[1] = 'n';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xb:\n            buf[1] = 'v';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xc:\n            buf[1] = 'f';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xd:\n            buf[1] = 'r';\n            plVar28 = (line *)0x2;\n            break;\n          default:\n            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);\n            sVar14 = strlen(pcVar11);\n            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));\n          }\n        }\n        plVar26 = (line *)((int)&plVar28->text + (int)&plVar26->text);\n        if ((local_106c <= plVar26) && (0 < (int)local_106c)) {\n          ck_fwrite(&DAT_00026f7e,1,1,pFVar4);\n          ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n          plVar26 = plVar28;\n          in_stack_ffffef8c = plVar28;\n        }\n        pbVar31 = pbVar31 + 1;\n        ck_fwrite(buf,1,(size_t)plVar28,pFVar4);\n      } while (pbVar31 != pbVar22);\n    }\n    local_1060 = 1;\n    ck_fwrite(&DAT_00026f80,1,1,pFVar4);\n    ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n    in_ECX = extraout_ECX_34;\n    if (unbuffered != false) {\n      ck_fflush(pFVar4);\n      in_ECX = extraout_ECX_35;\n    }\n_L604:\n    cVar9 = *(char *)&((line *)b)->text;\nLAB_00017de7:\n    sc = (line *)&(sc->mbstate).__value;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (no_default_output == false) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\n    if (((buffer.length == 0) && (_Var8 = test_eof(input), _Var8)) ||\n       (_Var8 = read_pattern_space(input,vec,0), !_Var8)) goto _L352;\n    if (*(_Bool *)&((line *)b)->text != false) goto LAB_00017dd0;\n    sc = (line *)&(sc->mbstate).__value;\n    in_ECX = extraout_ECX_16;\n    goto joined_r0x00018523;\n  case 0x4d:\n    poVar12 = &output_file;\n    goto LAB_00018030;\n  case 0x4e:\n    if (no_default_output == false) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\n    dump_append_queue();\n_L358:\n    pcVar11 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (pcVar11 == (char *)0xffffffff) {\n      pcVar11 = (char *)0x0;\n    }\n    goto LAB_00017f58;\n  case 0x4f:\n    in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (in_ECX == (addr *)0x0) goto _L604;\n    paVar13 = next_append_slot();\n    paVar13->fname = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_08;\n    goto LAB_00017de7;\n  case 0x50:\n    regex = (regex *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;\n    line_reset(&line,plVar26);\n    bVar1 = *(byte *)&(regex->pattern).fastmap;\n    in_stack_ffffef8c = (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),bVar1);\n    sVar14 = (bVar1 >> 4) + 1;\n    local_106c = (line *)0x3dc;\n    iVar19 = match_regex((regex *)0x3dc,buf_00,(size_t)(regex->pattern).buffer,(size_t)line.active,\n                         (re_registers *)line.length,0);\n    in_ECX = extraout_ECX_09;\n    if (iVar19 == 0) goto LAB_000188c9;\n    plVar26 = (line *)*DAT_00031370;\n    plVar28 = extraout_EDX;\n    if (((*(_Bool *)&((line *)b)->text != false) && (plVar28 = regs_7164, regs_7164 != (line *)0x0))\n       && (plVar26 != (line *)0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      plVar26 = (line *)*DAT_00031370;\n      plVar28 = extraout_EDX_05;\n      if ((regs_7164 != (line *)0x0) && (plVar28 = extraout_EDX_05, plVar26 != (line *)0xffffffff))\n      {\n        plVar28 = (line *)0x0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",plVar28,plVar26,\n                       (&DAT_00031374->addr_type)[(int)plVar28],sVar14);\n          aVar15 = DAT_00031370[(int)plVar28];\n          if (aVar15 != (&DAT_00031374->addr_type)[(int)plVar28]) {\n            sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15;\n            local_1060 = 1;\n            fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7);\n          }\n          plVar30 = (line *)((int)&plVar28->text + 1);\n          puts("\'");\n          if (regs_7164 <= plVar30) {\n            plVar26 = (line *)*DAT_00031370;\n            plVar28 = extraout_EDX_06;\n            goto LAB_00018110;\n          }\n          plVar26 = (line *)DAT_00031370[(int)((int)&plVar28->text + 1)];\n          plVar28 = plVar30;\n        } while (plVar26 != (line *)0xffffffff);\n        plVar26 = (line *)*DAT_00031370;\n        plVar28 = extraout_EDX_06;\n      }\n    }\nLAB_00018110:\n    aVar15 = DAT_00031374->addr_type;\n    if (((regex->pattern).allocated != 0) || (1 < (regex->pattern).used)) {\nLAB_00018127:\n      plVar30 = (line *)0x0;\n      regsize = (line *)0x0;\n      local_1058 = 0;\n      sVar16 = local_1060;\n      do {\n        local_1060 = aVar15 - (int)plVar26;\n        in_stack_ffffef8c = plVar26;\n        if (regsize < plVar26) {\n          sVar27 = (int)plVar26 - (int)regsize;\n          pcVar11 = line.active + (int)regsize;\n          regsize = plVar26;\n          str_append(&s_accum,pcVar11,sVar27);\n          plVar26 = extraout_ECX_10;\n          plVar28 = extraout_EDX_01;\n          in_stack_ffffef8c = regsize;\n        }\n        plVar28 = (line *)CONCAT31((int3)((uint)plVar28 >> 8),\n                                   local_1058 == 0 || plVar30 < in_stack_ffffef8c);\n        if ((local_1058 == 0 || plVar30 < in_stack_ffffef8c) || (local_1060 != 0)) {\n          local_1058 = local_1058 + 1;\n          if (local_1058 < (regex->pattern).used) {\n            if (local_1060 == 0) goto LAB_0001817a;\n            goto LAB_00018190;\n          }\n          puVar5 = (undefined4 *)(regex->pattern).allocated;\n          replaced = true;\n          local_1068 = 0;\n          for (; puVar5 != (undefined4 *)0x0; puVar5 = (undefined4 *)puVar5[4]) {\n            uVar10 = puVar5[3];\n            plVar28 = (line *)puVar5[1];\n            plVar26 = (line *)puVar5[2];\n            if ((uVar10 & 0xc) == 0) {\n              uVar10 = local_1068 | uVar10;\n            }\n            uVar32 = uVar10;\n            if (plVar28 != (line *)0x0) {\n              uVar32 = uVar10 & 0xfffffff3;\n              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);\n              plVar28 = extraout_EDX_03;\n            }\n            local_1068 = 0;\n            if ((-1 < (int)plVar26) && (plVar26 < regs_7164)) {\n              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];\n              plVar26 = (line *)DAT_00031370[(int)plVar26];\n              if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }\n            }\n          }\n          regsize = (line *)((int)in_stack_ffffef8c + local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n          if (((uint)(regex->pattern).fastmap & 1) == 0) goto LAB_00018ba8;\n        }\n        else {\nLAB_0001817a:\n          local_1060 = sVar16;\n          if (line.length <= regsize) goto LAB_00018bcb;\n          local_1060 = 1;\nLAB_00018190:\n          regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060);\n          str_append(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n        }\n        plVar26 = local_106c;\n        plVar28 = (line *)line.length;\n        local_1060 = sVar16;\n        if (line.length < regsize) goto LAB_00018bcb;\n        in_stack_ffffef8c =\n             (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),\n                              *(undefined1 *)&(regex->pattern).fastmap);\n        iVar19 = match_regex(regex,(char *)line.length,(size_t)(regex->pattern).buffer,\n                             (size_t)line.active,(re_registers *)line.length,(int)regsize);\n        plVar28 = extraout_EDX_00;\n        if (iVar19 == 0) goto LAB_00018ba8;\n        plVar26 = (line *)*DAT_00031370;\n        aVar15 = DAT_00031374->addr_type;\n      } while( true );\n    }\n    plVar28 = plVar26;\n    in_ECX = DAT_00031374;\n    if ((plVar26 == (line *)0x0) &&\n       (bVar1 = *(byte *)&(regex->pattern).fastmap, plVar28 = (line *)(uint)bVar1, (bVar1 & 1) == 0)\n       ) {\n      line.length = line.length - aVar15;\n      line.active = line.active + aVar15;\n      line.alloc = line.alloc - DAT_00031374->addr_type;\n      replaced = true;\n    }\n    else {\n      if (aVar15 != line.length) goto LAB_00018127;\n      replaced = true;\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n      line.length = (size_t)plVar26;\n    }\n    goto LAB_00018bf8;\n  case 0x51:\n    cVar9 = *(char *)&((line *)b)->text;\n    if (replaced == false) goto LAB_00017de7;\n    replaced = false;\nLAB_00018263:\n    in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg * 3);\n    sc = (line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf;\n    if (poVar12->fp == (FILE *)0x0) goto _L604;\nLAB_00018030:\n    output_line(line.active,line.length,(uint)line.chomped,poVar12);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_07;\n    goto LAB_00017de7;\n  case 0x55:\n    line_exchange(&hold,plVar26,(int)in_ECX);\n    in_ECX = extraout_ECX_11;\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_000182c0;\n    debug_print_line(&line);\n    goto LAB_0001861e;\n  case 0x56:\n    if (mb_cur_max < 2) {\n      pbVar22 = (byte *)(line.active + line.length);\n      if (line.active < pbVar22) {\n        do {\n          pbVar29 = pbVar31 + 1;\n          bVar1 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text[*pbVar31];\n          in_ECX = (addr *)(uint)bVar1;\n          *pbVar31 = bVar1;\n          pbVar31 = pbVar29;\n        } while (pbVar22 != pbVar29);\n      }\n    }\n    else {\n      in_stack_ffffef8c = (line *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;\n      mbstate.__count = 0;\n      mbstate.__value.__wch = 0;\n      if (line.length != 0) {\n        local_1068 = 0;\n        do {\n          if (mb_cur_max == 1) {\nLAB_0001836f:\n            sVar16 = 1;\n          }\n          else {\n            local_1060 = line.length - local_1068;\n            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);\n            in_ECX = extraout_ECX_12;\n            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;\n          }\n          paVar17 = (addr *)in_stack_ffffef8c->text;\n          if (paVar17 != (addr *)0x0) {\n            local_105c = line.active;\n            pcVar11 = line.active + local_1068;\n            iVar19 = 0;\n            do {\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            } while (paVar17 != (addr *)0x0);\n          }\n          local_1068 = local_1068 + sVar16;\n        } while (local_1068 < line.length);\n      }\n    }\n    goto LAB_000188c9;\n  case 0x57:\n    line.length = 0;\n    goto LAB_000188c9;\n  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x5a:\n    goto _L604;" case number_literal : (goto_statement "goto _L604;" goto statement_identifier ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    panic("INTERNAL ERROR: Bad cmd %c",plVar26);" default : comment (expression_statement "panic("INTERNAL ERROR: Bad cmd %c",plVar26);" (call_expression "panic("INTERNAL ERROR: Bad cmd %c",plVar26)" identifier (argument_list "("INTERNAL ERROR: Bad cmd %c",plVar26)" ( (string_literal ""INTERNAL ERROR: Bad cmd %c"" " string_content ") , identifier ))) ;)) (case_statement "case 0x1a:\n    if (output_file.missing_newline != false) {\n      local_1060 = 1;\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    pcVar11 = "%lu%c";\n    pcVar24 = (char *)input->line_number;\n    goto LAB_00018a05;" case number_literal : (if_statement "if (output_file.missing_newline != false) {\n      local_1060 = 1;\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }" if (parenthesized_expression "(output_file.missing_newline != false)" ( (binary_expression "output_file.missing_newline != false" (field_expression "output_file.missing_newline" identifier . field_identifier) != false) )) (compound_statement "{\n      local_1060 = 1;\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }" { (expression_statement "local_1060 = 1;" (assignment_expression "local_1060 = 1" identifier = number_literal) ;) (expression_statement "ck_fwrite(&buffer_delimiter,1,1,output_file.fp);" (call_expression "ck_fwrite(&buffer_delimiter,1,1,output_file.fp)" identifier (argument_list "(&buffer_delimiter,1,1,output_file.fp)" ( (pointer_expression "&buffer_delimiter" & identifier) , number_literal , number_literal , (field_expression "output_file.fp" identifier . field_identifier) ))) ;) (expression_statement "output_file.missing_newline = false;" (assignment_expression "output_file.missing_newline = false" (field_expression "output_file.missing_newline" identifier . field_identifier) = false) ;) })) (expression_statement "pcVar11 = "%lu%c";" (assignment_expression "pcVar11 = "%lu%c"" identifier = (string_literal ""%lu%c"" " string_content ")) ;) (expression_statement "pcVar24 = (char *)input->line_number;" (assignment_expression "pcVar24 = (char *)input->line_number" identifier = (cast_expression "(char *)input->line_number" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "input->line_number" identifier -> field_identifier))) ;) (goto_statement "goto LAB_00018a05;" goto statement_identifier ;)) (case_statement "case 0x21:\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    if (pvVar21 == (void *)0x0) goto LAB_00017f53;\n    line.active = (char *)((int)pvVar21 + 1);\n    line.alloc = line.alloc - ((int)line.active - (int)pbVar31);\n    sc = (line *)vec->v;\n    line.length = sVar16 - ((int)line.active - (int)pbVar31);\n    in_ECX = extraout_ECX_27;\n    if (*(_Bool *)&((line *)b)->text == false) goto joined_r0x00018523;\n    debug_print_line(&line);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_28;\n    goto joined_r0x00017cbb;" case number_literal : (expression_statement "local_1060 = line.length;" (assignment_expression "local_1060 = line.length" identifier = (field_expression "line.length" identifier . field_identifier)) ;) (expression_statement "pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);" (assignment_expression "pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length)" identifier = (call_expression "rpl_memchr(line.active,(int)buffer_delimiter,line.length)" identifier (argument_list "(line.active,(int)buffer_delimiter,line.length)" ( (field_expression "line.active" identifier . field_identifier) , (cast_expression "(int)buffer_delimiter" ( (type_descriptor "int" primitive_type) ) identifier) , (field_expression "line.length" identifier . field_identifier) )))) ;) (if_statement "if (pvVar21 == (void *)0x0) goto LAB_00017f53;" if (parenthesized_expression "(pvVar21 == (void *)0x0)" ( (binary_expression "pvVar21 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00017f53;" goto statement_identifier ;)) (expression_statement "line.active = (char *)((int)pvVar21 + 1);" (assignment_expression "line.active = (char *)((int)pvVar21 + 1)" (field_expression "line.active" identifier . field_identifier) = (cast_expression "(char *)((int)pvVar21 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar21 + 1)" ( (binary_expression "(int)pvVar21 + 1" (cast_expression "(int)pvVar21" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "line.alloc = line.alloc - ((int)line.active - (int)pbVar31);" (assignment_expression "line.alloc = line.alloc - ((int)line.active - (int)pbVar31)" (field_expression "line.alloc" identifier . field_identifier) = (binary_expression "line.alloc - ((int)line.active - (int)pbVar31)" (field_expression "line.alloc" identifier . field_identifier) - (parenthesized_expression "((int)line.active - (int)pbVar31)" ( (binary_expression "(int)line.active - (int)pbVar31" (cast_expression "(int)line.active" ( (type_descriptor "int" primitive_type) ) (field_expression "line.active" identifier . field_identifier)) - (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "sc = (line *)vec->v;" (assignment_expression "sc = (line *)vec->v" identifier = (cast_expression "(line *)vec->v" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "vec->v" identifier -> field_identifier))) ;) (expression_statement "line.length = sVar16 - ((int)line.active - (int)pbVar31);" (assignment_expression "line.length = sVar16 - ((int)line.active - (int)pbVar31)" (field_expression "line.length" identifier . field_identifier) = (binary_expression "sVar16 - ((int)line.active - (int)pbVar31)" identifier - (parenthesized_expression "((int)line.active - (int)pbVar31)" ( (binary_expression "(int)line.active - (int)pbVar31" (cast_expression "(int)line.active" ( (type_descriptor "int" primitive_type) ) (field_expression "line.active" identifier . field_identifier)) - (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "in_ECX = extraout_ECX_27;" (assignment_expression "in_ECX = extraout_ECX_27" identifier = identifier) ;) (if_statement "if (*(_Bool *)&((line *)b)->text == false) goto joined_r0x00018523;" if (parenthesized_expression "(*(_Bool *)&((line *)b)->text == false)" ( (binary_expression "*(_Bool *)&((line *)b)->text == false" (pointer_expression "*(_Bool *)&((line *)b)->text" * (cast_expression "(_Bool *)&((line *)b)->text" ( (type_descriptor "_Bool *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)))) == false) )) (goto_statement "goto joined_r0x00018523;" goto statement_identifier ;)) (expression_statement "debug_print_line(&line);" (call_expression "debug_print_line(&line)" identifier (argument_list "(&line)" ( (pointer_expression "&line" & identifier) ))) ;) (expression_statement "cVar9 = *(char *)&((line *)b)->text;" (assignment_expression "cVar9 = *(char *)&((line *)b)->text" identifier = (pointer_expression "*(char *)&((line *)b)->text" * (cast_expression "(char *)&((line *)b)->text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (expression_statement "in_ECX = extraout_ECX_28;" (assignment_expression "in_ECX = extraout_ECX_28" identifier = identifier) ;) (goto_statement "goto joined_r0x00017cbb;" goto statement_identifier ;)) (case_statement "case 0x23:\n    if (output_file.missing_newline != false) {\n      local_1060 = 1;\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    pcVar11 = "%s%c";\n    pcVar24 = input->in_file_name;\nLAB_00018a05:\n    __fprintf_chk(output_file.fp,1,pcVar11,pcVar24,(int)buffer_delimiter);\n    in_ECX = extraout_ECX_29;\n    if (unbuffered == false) goto _L604;\n    ck_fflush(output_file.fp);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_30;\n    goto LAB_00017de7;" case number_literal : (if_statement "if (output_file.missing_newline != false) {\n      local_1060 = 1;\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }" if (parenthesized_expression "(output_file.missing_newline != false)" ( (binary_expression "output_file.missing_newline != false" (field_expression "output_file.missing_newline" identifier . field_identifier) != false) )) (compound_statement "{\n      local_1060 = 1;\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }" { (expression_statement "local_1060 = 1;" (assignment_expression "local_1060 = 1" identifier = number_literal) ;) (expression_statement "ck_fwrite(&buffer_delimiter,1,1,output_file.fp);" (call_expression "ck_fwrite(&buffer_delimiter,1,1,output_file.fp)" identifier (argument_list "(&buffer_delimiter,1,1,output_file.fp)" ( (pointer_expression "&buffer_delimiter" & identifier) , number_literal , number_literal , (field_expression "output_file.fp" identifier . field_identifier) ))) ;) (expression_statement "output_file.missing_newline = false;" (assignment_expression "output_file.missing_newline = false" (field_expression "output_file.missing_newline" identifier . field_identifier) = false) ;) })) (expression_statement "pcVar11 = "%s%c";" (assignment_expression "pcVar11 = "%s%c"" identifier = (string_literal ""%s%c"" " string_content ")) ;) (expression_statement "pcVar24 = input->in_file_name;" (assignment_expression "pcVar24 = input->in_file_name" identifier = (field_expression "input->in_file_name" identifier -> field_identifier)) ;) (labeled_statement "LAB_00018a05:\n    __fprintf_chk(output_file.fp,1,pcVar11,pcVar24,(int)buffer_delimiter);" statement_identifier : (expression_statement "__fprintf_chk(output_file.fp,1,pcVar11,pcVar24,(int)buffer_delimiter);" (call_expression "__fprintf_chk(output_file.fp,1,pcVar11,pcVar24,(int)buffer_delimiter)" identifier (argument_list "(output_file.fp,1,pcVar11,pcVar24,(int)buffer_delimiter)" ( (field_expression "output_file.fp" identifier . field_identifier) , number_literal , identifier , identifier , (cast_expression "(int)buffer_delimiter" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;)) (expression_statement "in_ECX = extraout_ECX_29;" (assignment_expression "in_ECX = extraout_ECX_29" identifier = identifier) ;) (if_statement "if (unbuffered == false) goto _L604;" if (parenthesized_expression "(unbuffered == false)" ( (binary_expression "unbuffered == false" identifier == false) )) (goto_statement "goto _L604;" goto statement_identifier ;)) (expression_statement "ck_fflush(output_file.fp);" (call_expression "ck_fflush(output_file.fp)" identifier (argument_list "(output_file.fp)" ( (field_expression "output_file.fp" identifier . field_identifier) ))) ;) (expression_statement "cVar9 = *(char *)&((line *)b)->text;" (assignment_expression "cVar9 = *(char *)&((line *)b)->text" identifier = (pointer_expression "*(char *)&((line *)b)->text" * (cast_expression "(char *)&((line *)b)->text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (expression_statement "in_ECX = extraout_ECX_30;" (assignment_expression "in_ECX = extraout_ECX_30" identifier = identifier) ;) (goto_statement "goto LAB_00017de7;" goto statement_identifier ;)) (case_statement "case 0x24:\n    line_append((line *)input,(line *)b,(int)in_stack_ffffef8c);\n    in_ECX = extraout_ECX_00;\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_000182c0;\n    goto LAB_00017dd0;" case number_literal : (expression_statement "line_append((line *)input,(line *)b,(int)in_stack_ffffef8c);" (call_expression "line_append((line *)input,(line *)b,(int)in_stack_ffffef8c)" identifier (argument_list "((line *)input,(line *)b,(int)in_stack_ffffef8c)" ( (cast_expression "(line *)input" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)in_stack_ffffef8c" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "in_ECX = extraout_ECX_00;" (assignment_expression "in_ECX = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (*(_Bool *)&((line *)b)->text == false) goto LAB_000182c0;" if (parenthesized_expression "(*(_Bool *)&((line *)b)->text == false)" ( (binary_expression "*(_Bool *)&((line *)b)->text == false" (pointer_expression "*(_Bool *)&((line *)b)->text" * (cast_expression "(_Bool *)&((line *)b)->text" ( (type_descriptor "_Bool *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)))) == false) )) (goto_statement "goto LAB_000182c0;" goto statement_identifier ;)) (goto_statement "goto LAB_00017dd0;" goto statement_identifier ;)) (case_statement "case 0x25:\n    line_append((line *)input,(line *)b,(int)in_stack_ffffef8c);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_22;\n    break;" case number_literal : (expression_statement "line_append((line *)input,(line *)b,(int)in_stack_ffffef8c);" (call_expression "line_append((line *)input,(line *)b,(int)in_stack_ffffef8c)" identifier (argument_list "((line *)input,(line *)b,(int)in_stack_ffffef8c)" ( (cast_expression "(line *)input" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)in_stack_ffffef8c" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "cVar9 = *(char *)&((line *)b)->text;" (assignment_expression "cVar9 = *(char *)&((line *)b)->text" identifier = (pointer_expression "*(char *)&((line *)b)->text" * (cast_expression "(char *)&((line *)b)->text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (expression_statement "in_ECX = extraout_ECX_22;" (assignment_expression "in_ECX = extraout_ECX_22" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x2b:\n    str_append(&line,&buffer_delimiter,1);\n    if (((buffer.length != 0) || (_Var8 = test_eof(input), !_Var8)) &&\n       (_Var8 = read_pattern_space(input,vec,1), in_ECX = extraout_ECX_25, _Var8))\n    goto LAB_000188c9;\n    if (*(_Bool *)&((line *)b)->text != false) {\n      puts("END-OF-CYCLE:");\n    }\n    line.length = line.length - 1;\n    if ((posixicity != POSIXLY_EXTENDED) || (no_default_output != false)) goto LAB_00017f53;\n    goto LAB_00017e26;" case number_literal : (expression_statement "str_append(&line,&buffer_delimiter,1);" (call_expression "str_append(&line,&buffer_delimiter,1)" identifier (argument_list "(&line,&buffer_delimiter,1)" ( (pointer_expression "&line" & identifier) , (pointer_expression "&buffer_delimiter" & identifier) , number_literal ))) ;) (if_statement "if (((buffer.length != 0) || (_Var8 = test_eof(input), !_Var8)) &&\n       (_Var8 = read_pattern_space(input,vec,1), in_ECX = extraout_ECX_25, _Var8))\n    goto LAB_000188c9;" if (parenthesized_expression "(((buffer.length != 0) || (_Var8 = test_eof(input), !_Var8)) &&\n       (_Var8 = read_pattern_space(input,vec,1), in_ECX = extraout_ECX_25, _Var8))" ( (binary_expression "((buffer.length != 0) || (_Var8 = test_eof(input), !_Var8)) &&\n       (_Var8 = read_pattern_space(input,vec,1), in_ECX = extraout_ECX_25, _Var8)" (parenthesized_expression "((buffer.length != 0) || (_Var8 = test_eof(input), !_Var8))" ( (binary_expression "(buffer.length != 0) || (_Var8 = test_eof(input), !_Var8)" (parenthesized_expression "(buffer.length != 0)" ( (binary_expression "buffer.length != 0" (field_expression "buffer.length" identifier . field_identifier) != number_literal) )) || (parenthesized_expression "(_Var8 = test_eof(input), !_Var8)" ( (comma_expression "_Var8 = test_eof(input), !_Var8" (assignment_expression "_Var8 = test_eof(input)" identifier = (call_expression "test_eof(input)" identifier (argument_list "(input)" ( identifier )))) , (unary_expression "!_Var8" ! identifier)) ))) )) && (parenthesized_expression "(_Var8 = read_pattern_space(input,vec,1), in_ECX = extraout_ECX_25, _Var8)" ( (comma_expression "_Var8 = read_pattern_space(input,vec,1), in_ECX = extraout_ECX_25, _Var8" (assignment_expression "_Var8 = read_pattern_space(input,vec,1)" identifier = (call_expression "read_pattern_space(input,vec,1)" identifier (argument_list "(input,vec,1)" ( identifier , identifier , number_literal )))) , (comma_expression "in_ECX = extraout_ECX_25, _Var8" (assignment_expression "in_ECX = extraout_ECX_25" identifier = identifier) , identifier)) ))) )) (goto_statement "goto LAB_000188c9;" goto statement_identifier ;)) (if_statement "if (*(_Bool *)&((line *)b)->text != false) {\n      puts("END-OF-CYCLE:");\n    }" if (parenthesized_expression "(*(_Bool *)&((line *)b)->text != false)" ( (binary_expression "*(_Bool *)&((line *)b)->text != false" (pointer_expression "*(_Bool *)&((line *)b)->text" * (cast_expression "(_Bool *)&((line *)b)->text" ( (type_descriptor "_Bool *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)))) != false) )) (compound_statement "{\n      puts("END-OF-CYCLE:");\n    }" { (expression_statement "puts("END-OF-CYCLE:");" (call_expression "puts("END-OF-CYCLE:")" identifier (argument_list "("END-OF-CYCLE:")" ( (string_literal ""END-OF-CYCLE:"" " string_content ") ))) ;) })) (expression_statement "line.length = line.length - 1;" (assignment_expression "line.length = line.length - 1" (field_expression "line.length" identifier . field_identifier) = (binary_expression "line.length - 1" (field_expression "line.length" identifier . field_identifier) - number_literal)) ;) (if_statement "if ((posixicity != POSIXLY_EXTENDED) || (no_default_output != false)) goto LAB_00017f53;" if (parenthesized_expression "((posixicity != POSIXLY_EXTENDED) || (no_default_output != false))" ( (binary_expression "(posixicity != POSIXLY_EXTENDED) || (no_default_output != false)" (parenthesized_expression "(posixicity != POSIXLY_EXTENDED)" ( (binary_expression "posixicity != POSIXLY_EXTENDED" identifier != identifier) )) || (parenthesized_expression "(no_default_output != false)" ( (binary_expression "no_default_output != false" identifier != false) ))) )) (goto_statement "goto LAB_00017f53;" goto statement_identifier ;)) (goto_statement "goto LAB_00017e26;" goto statement_identifier ;)) (case_statement "case 0x2d:\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    if (pvVar21 == (void *)0x0) {\n      uVar10 = (uint)line.chomped;\n    }\n    else {\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }\n    poVar12 = &output_file;\n    goto LAB_0001881e;" case number_literal : (expression_statement "local_1060 = line.length;" (assignment_expression "local_1060 = line.length" identifier = (field_expression "line.length" identifier . field_identifier)) ;) (expression_statement "pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);" (assignment_expression "pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length)" identifier = (call_expression "rpl_memchr(line.active,(int)buffer_delimiter,line.length)" identifier (argument_list "(line.active,(int)buffer_delimiter,line.length)" ( (field_expression "line.active" identifier . field_identifier) , (cast_expression "(int)buffer_delimiter" ( (type_descriptor "int" primitive_type) ) identifier) , (field_expression "line.length" identifier . field_identifier) )))) ;) (if_statement "if (pvVar21 == (void *)0x0) {\n      uVar10 = (uint)line.chomped;\n    }\n    else {\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }" if (parenthesized_expression "(pvVar21 == (void *)0x0)" ( (binary_expression "pvVar21 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar10 = (uint)line.chomped;\n    }" { (expression_statement "uVar10 = (uint)line.chomped;" (assignment_expression "uVar10 = (uint)line.chomped" identifier = (cast_expression "(uint)line.chomped" ( (type_descriptor "uint" type_identifier) ) (field_expression "line.chomped" identifier . field_identifier))) ;) }) (else_clause "else {\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }" else (compound_statement "{\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }" { (expression_statement "sVar16 = (int)pvVar21 - (int)pbVar31;" (assignment_expression "sVar16 = (int)pvVar21 - (int)pbVar31" identifier = (binary_expression "(int)pvVar21 - (int)pbVar31" (cast_expression "(int)pvVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) }))) (expression_statement "poVar12 = &output_file;" (assignment_expression "poVar12 = &output_file" identifier = (pointer_expression "&output_file" & identifier)) ;) (goto_statement "goto LAB_0001881e;" goto statement_identifier ;)) (case_statement "case 0x2e:\n    goto _L358;" case number_literal : (goto_statement "goto _L358;" goto statement_identifier ;)) (case_statement "case 0x2f:\n    pFVar4 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf->fp;\n    if ((pFVar4 != (FILE *)0x0) && ((pFVar4->_flags & 0x10) == 0)) {\n      text = (char *)0x0;\n      local_1060 = (size_t)buffer_delimiter;\n      sVar16 = ck_getdelim(&text,&buflen,buffer_delimiter,pFVar4);\n      if (sVar16 == 0xffffffff) {\n        free(text);\n        in_ECX = extraout_ECX_43;\n      }\n      else {\n        paVar13 = next_append_slot();\n        paVar13->free = true;\n        paVar13->text = text;\n        paVar13->textlen = sVar16;\n        in_ECX = extraout_ECX_06;\n      }\n    }\n    goto _L604;" case number_literal : (expression_statement "pFVar4 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf->fp;" (assignment_expression "pFVar4 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf->fp" identifier = (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf->fp" (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier) -> field_identifier)) ;) (if_statement "if ((pFVar4 != (FILE *)0x0) && ((pFVar4->_flags & 0x10) == 0)) {\n      text = (char *)0x0;\n      local_1060 = (size_t)buffer_delimiter;\n      sVar16 = ck_getdelim(&text,&buflen,buffer_delimiter,pFVar4);\n      if (sVar16 == 0xffffffff) {\n        free(text);\n        in_ECX = extraout_ECX_43;\n      }\n      else {\n        paVar13 = next_append_slot();\n        paVar13->free = true;\n        paVar13->text = text;\n        paVar13->textlen = sVar16;\n        in_ECX = extraout_ECX_06;\n      }\n    }" if (parenthesized_expression "((pFVar4 != (FILE *)0x0) && ((pFVar4->_flags & 0x10) == 0))" ( (binary_expression "(pFVar4 != (FILE *)0x0) && ((pFVar4->_flags & 0x10) == 0)" (parenthesized_expression "(pFVar4 != (FILE *)0x0)" ( (binary_expression "pFVar4 != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((pFVar4->_flags & 0x10) == 0)" ( (binary_expression "(pFVar4->_flags & 0x10) == 0" (parenthesized_expression "(pFVar4->_flags & 0x10)" ( (binary_expression "pFVar4->_flags & 0x10" (field_expression "pFVar4->_flags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      text = (char *)0x0;\n      local_1060 = (size_t)buffer_delimiter;\n      sVar16 = ck_getdelim(&text,&buflen,buffer_delimiter,pFVar4);\n      if (sVar16 == 0xffffffff) {\n        free(text);\n        in_ECX = extraout_ECX_43;\n      }\n      else {\n        paVar13 = next_append_slot();\n        paVar13->free = true;\n        paVar13->text = text;\n        paVar13->textlen = sVar16;\n        in_ECX = extraout_ECX_06;\n      }\n    }" { (expression_statement "text = (char *)0x0;" (assignment_expression "text = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_1060 = (size_t)buffer_delimiter;" (assignment_expression "local_1060 = (size_t)buffer_delimiter" identifier = (cast_expression "(size_t)buffer_delimiter" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "sVar16 = ck_getdelim(&text,&buflen,buffer_delimiter,pFVar4);" (assignment_expression "sVar16 = ck_getdelim(&text,&buflen,buffer_delimiter,pFVar4)" identifier = (call_expression "ck_getdelim(&text,&buflen,buffer_delimiter,pFVar4)" identifier (argument_list "(&text,&buflen,buffer_delimiter,pFVar4)" ( (pointer_expression "&text" & identifier) , (pointer_expression "&buflen" & identifier) , identifier , identifier )))) ;) (if_statement "if (sVar16 == 0xffffffff) {\n        free(text);\n        in_ECX = extraout_ECX_43;\n      }\n      else {\n        paVar13 = next_append_slot();\n        paVar13->free = true;\n        paVar13->text = text;\n        paVar13->textlen = sVar16;\n        in_ECX = extraout_ECX_06;\n      }" if (parenthesized_expression "(sVar16 == 0xffffffff)" ( (binary_expression "sVar16 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n        free(text);\n        in_ECX = extraout_ECX_43;\n      }" { (expression_statement "free(text);" (call_expression "free(text)" identifier (argument_list "(text)" ( identifier ))) ;) (expression_statement "in_ECX = extraout_ECX_43;" (assignment_expression "in_ECX = extraout_ECX_43" identifier = identifier) ;) }) (else_clause "else {\n        paVar13 = next_append_slot();\n        paVar13->free = true;\n        paVar13->text = text;\n        paVar13->textlen = sVar16;\n        in_ECX = extraout_ECX_06;\n      }" else (compound_statement "{\n        paVar13 = next_append_slot();\n        paVar13->free = true;\n        paVar13->text = text;\n        paVar13->textlen = sVar16;\n        in_ECX = extraout_ECX_06;\n      }" { (expression_statement "paVar13 = next_append_slot();" (assignment_expression "paVar13 = next_append_slot()" identifier = (call_expression "next_append_slot()" identifier (argument_list "()" ( )))) ;) (expression_statement "paVar13->free = true;" (assignment_expression "paVar13->free = true" (field_expression "paVar13->free" identifier -> field_identifier) = true) ;) (expression_statement "paVar13->text = text;" (assignment_expression "paVar13->text = text" (field_expression "paVar13->text" identifier -> field_identifier) = identifier) ;) (expression_statement "paVar13->textlen = sVar16;" (assignment_expression "paVar13->textlen = sVar16" (field_expression "paVar13->textlen" identifier -> field_identifier) = identifier) ;) (expression_statement "in_ECX = extraout_ECX_06;" (assignment_expression "in_ECX = extraout_ECX_06" identifier = identifier) ;) }))) })) (goto_statement "goto _L604;" goto statement_identifier ;)) (case_statement "case 0x31:\n    cVar9 = *(char *)&((line *)b)->text;\n    if (replaced == false) goto LAB_00018263;\n    replaced = false;\n    goto LAB_00017de7;" case number_literal : (expression_statement "cVar9 = *(char *)&((line *)b)->text;" (assignment_expression "cVar9 = *(char *)&((line *)b)->text" identifier = (pointer_expression "*(char *)&((line *)b)->text" * (cast_expression "(char *)&((line *)b)->text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (if_statement "if (replaced == false) goto LAB_00018263;" if (parenthesized_expression "(replaced == false)" ( (binary_expression "replaced == false" identifier == false) )) (goto_statement "goto LAB_00018263;" goto statement_identifier ;)) (expression_statement "replaced = false;" (assignment_expression "replaced = false" identifier = false) ;) (goto_statement "goto LAB_00017de7;" goto statement_identifier ;)) (case_statement "case 0x34:\n    poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf;\n    in_stack_ffffef8c = (line *)poVar12;\n    if (((line *)poVar12)->length == RANGE_INACTIVE) goto _L604;\n    local_1060 = line.length;\n    pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);\n    in_stack_ffffef8c = (line *)poVar12;\n    if (pvVar21 == (void *)0x0) {\n      uVar10 = (uint)line.chomped;\n    }\n    else {\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }\nLAB_0001881e:\n    output_line((char *)pbVar31,sVar16,uVar10,poVar12);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_23;\n    goto LAB_00017de7;" case number_literal : (expression_statement "poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf;" (assignment_expression "poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf" identifier = (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier)) ;) (expression_statement "in_stack_ffffef8c = (line *)poVar12;" (assignment_expression "in_stack_ffffef8c = (line *)poVar12" identifier = (cast_expression "(line *)poVar12" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (((line *)poVar12)->length == RANGE_INACTIVE) goto _L604;" if (parenthesized_expression "(((line *)poVar12)->length == RANGE_INACTIVE)" ( (binary_expression "((line *)poVar12)->length == RANGE_INACTIVE" (field_expression "((line *)poVar12)->length" (parenthesized_expression "((line *)poVar12)" ( (cast_expression "(line *)poVar12" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) == identifier) )) (goto_statement "goto _L604;" goto statement_identifier ;)) (expression_statement "local_1060 = line.length;" (assignment_expression "local_1060 = line.length" identifier = (field_expression "line.length" identifier . field_identifier)) ;) (expression_statement "pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length);" (assignment_expression "pvVar21 = rpl_memchr(line.active,(int)buffer_delimiter,line.length)" identifier = (call_expression "rpl_memchr(line.active,(int)buffer_delimiter,line.length)" identifier (argument_list "(line.active,(int)buffer_delimiter,line.length)" ( (field_expression "line.active" identifier . field_identifier) , (cast_expression "(int)buffer_delimiter" ( (type_descriptor "int" primitive_type) ) identifier) , (field_expression "line.length" identifier . field_identifier) )))) ;) (expression_statement "in_stack_ffffef8c = (line *)poVar12;" (assignment_expression "in_stack_ffffef8c = (line *)poVar12" identifier = (cast_expression "(line *)poVar12" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pvVar21 == (void *)0x0) {\n      uVar10 = (uint)line.chomped;\n    }\n    else {\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }" if (parenthesized_expression "(pvVar21 == (void *)0x0)" ( (binary_expression "pvVar21 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar10 = (uint)line.chomped;\n    }" { (expression_statement "uVar10 = (uint)line.chomped;" (assignment_expression "uVar10 = (uint)line.chomped" identifier = (cast_expression "(uint)line.chomped" ( (type_descriptor "uint" type_identifier) ) (field_expression "line.chomped" identifier . field_identifier))) ;) }) (else_clause "else {\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }" else (compound_statement "{\n      sVar16 = (int)pvVar21 - (int)pbVar31;\n      uVar10 = 1;\n    }" { (expression_statement "sVar16 = (int)pvVar21 - (int)pbVar31;" (assignment_expression "sVar16 = (int)pvVar21 - (int)pbVar31" identifier = (binary_expression "(int)pvVar21 - (int)pbVar31" (cast_expression "(int)pvVar21" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0001881e:\n    output_line((char *)pbVar31,sVar16,uVar10,poVar12);" statement_identifier : (expression_statement "output_line((char *)pbVar31,sVar16,uVar10,poVar12);" (call_expression "output_line((char *)pbVar31,sVar16,uVar10,poVar12)" identifier (argument_list "((char *)pbVar31,sVar16,uVar10,poVar12)" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier ))) ;)) (expression_statement "cVar9 = *(char *)&((line *)b)->text;" (assignment_expression "cVar9 = *(char *)&((line *)b)->text" identifier = (pointer_expression "*(char *)&((line *)b)->text" * (cast_expression "(char *)&((line *)b)->text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (expression_statement "in_ECX = extraout_ECX_23;" (assignment_expression "in_ECX = extraout_ECX_23" identifier = identifier) ;) (goto_statement "goto LAB_00017de7;" goto statement_identifier ;)) (case_statement "case 0x3e:\n    paVar13 = next_append_slot();\n    paVar13->text = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    paVar13->textlen = (sc->mbstate).__count;\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_24;\n    goto LAB_00017de7;" case number_literal : (expression_statement "paVar13 = next_append_slot();" (assignment_expression "paVar13 = next_append_slot()" identifier = (call_expression "next_append_slot()" identifier (argument_list "()" ( )))) ;) (expression_statement "paVar13->text = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;" (assignment_expression "paVar13->text = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text" (field_expression "paVar13->text" identifier -> field_identifier) = (field_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text" (parenthesized_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt)" ( (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "paVar13->textlen = (sc->mbstate).__count;" (assignment_expression "paVar13->textlen = (sc->mbstate).__count" (field_expression "paVar13->textlen" identifier -> field_identifier) = (field_expression "(sc->mbstate).__count" (parenthesized_expression "(sc->mbstate)" ( (field_expression "sc->mbstate" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "cVar9 = *(char *)&((line *)b)->text;" (assignment_expression "cVar9 = *(char *)&((line *)b)->text" identifier = (pointer_expression "*(char *)&((line *)b)->text" * (cast_expression "(char *)&((line *)b)->text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (expression_statement "in_ECX = extraout_ECX_24;" (assignment_expression "in_ECX = extraout_ECX_24" identifier = identifier) ;) (goto_statement "goto LAB_00017de7;" goto statement_identifier ;)) (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x58:\n    goto _L336;" case number_literal : (goto_statement "goto _L336;" goto statement_identifier ;)) (case_statement "case 0x40:\n    if (sc->length != RANGE_ACTIVE) {\n      output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                  (sc->mbstate).__count - 1,1,&output_file);\n    }" case number_literal : (if_statement "if (sc->length != RANGE_ACTIVE) {\n      output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                  (sc->mbstate).__count - 1,1,&output_file);\n    }" if (parenthesized_expression "(sc->length != RANGE_ACTIVE)" ( (binary_expression "sc->length != RANGE_ACTIVE" (field_expression "sc->length" identifier -> field_identifier) != identifier) )) (compound_statement "{\n      output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                  (sc->mbstate).__count - 1,1,&output_file);\n    }" { (expression_statement "output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                  (sc->mbstate).__count - 1,1,&output_file);" (call_expression "output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                  (sc->mbstate).__count - 1,1,&output_file)" identifier (argument_list "((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                  (sc->mbstate).__count - 1,1,&output_file)" ( (field_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text" (parenthesized_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt)" ( (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier) )) . field_identifier) , (binary_expression "(sc->mbstate).__count - 1" (field_expression "(sc->mbstate).__count" (parenthesized_expression "(sc->mbstate)" ( (field_expression "sc->mbstate" identifier -> field_identifier) )) . field_identifier) - number_literal) , number_literal , (pointer_expression "&output_file" & identifier) ))) ;) }))) (case_statement "case 0x41:\n_L352:\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    pcVar11 = (char *)0xffffffff;\n    goto LAB_00017f58;" case number_literal : (labeled_statement "_L352:\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_00017f53;" statement_identifier : (if_statement "if (*(_Bool *)&((line *)b)->text == false) goto LAB_00017f53;" if (parenthesized_expression "(*(_Bool *)&((line *)b)->text == false)" ( (binary_expression "*(_Bool *)&((line *)b)->text == false" (pointer_expression "*(_Bool *)&((line *)b)->text" * (cast_expression "(_Bool *)&((line *)b)->text" ( (type_descriptor "_Bool *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)))) == false) )) (goto_statement "goto LAB_00017f53;" goto statement_identifier ;))) (expression_statement "puts("END-OF-CYCLE:");" (call_expression "puts("END-OF-CYCLE:")" identifier (argument_list "("END-OF-CYCLE:")" ( (string_literal ""END-OF-CYCLE:"" " string_content ") ))) ;) (expression_statement "pcVar11 = (char *)0xffffffff;" (assignment_expression "pcVar11 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00017f58;" goto statement_identifier ;)) (case_statement "case 0x42:\n    plVar28 = (line *)(sc->mbstate).__count;\n    in_stack_ffffef8c = plVar28;\n    line_reset((line *)0x0,plVar26);\n    if (plVar28 == (line *)0x0) {\n      str_append(&line,"",1);\n      pFVar23 = popen(line.active,"r");\n      uVar25 = extraout_ECX_17;\n    }\n    else {\n      *(char *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1 +\n               (int)in_stack_ffffef8c) = '\0';\n      pFVar23 = popen((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,"r");\n      uVar25 = extraout_ECX_37;\n      if (output_file.missing_newline != false) {\n        local_1060 = 1;\n        ck_fwrite(PTR_buffer_delimiter_00030fd8,1,1,output_file.fp);\n        output_file.missing_newline = false;\n        uVar25 = extraout_ECX_38;\n      }\n    }\n    if (pFVar23 == (FILE *)0x0) goto LAB_0001925a;\n    while ((pFVar23->_flags & 0x10) == 0) {\n      local_1060 = 0x1000;\n      sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n      if (0 < (int)sVar14) {\n        if (in_stack_ffffef8c == (line *)0x0) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        else {\n          ck_fwrite(buf,1,sVar14,output_file.fp);\n          local_1060 = sVar14;\n        }\n      }\n    }\n    pclose(pFVar23);\n    if (in_stack_ffffef8c == (line *)0x0) {\n      if ((s_accum.length != 0) && (s_accum.active[s_accum.length - 1] == buffer_delimiter)) {\n        s_accum.length = s_accum.length - 1;\n      }\n      line_exchange((line *)input,(line *)b,0);\n      in_ECX = extraout_ECX_19;\n    }\n    else {\n      in_ECX = extraout_ECX_18;\n      if (unbuffered != false) {\n        ck_fflush(output_file.fp);\n        in_ECX = extraout_ECX_36;\n      }\n    }\n    goto _L604;" case number_literal : (expression_statement "plVar28 = (line *)(sc->mbstate).__count;" (assignment_expression "plVar28 = (line *)(sc->mbstate).__count" identifier = (cast_expression "(line *)(sc->mbstate).__count" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(sc->mbstate).__count" (parenthesized_expression "(sc->mbstate)" ( (field_expression "sc->mbstate" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "in_stack_ffffef8c = plVar28;" (assignment_expression "in_stack_ffffef8c = plVar28" identifier = identifier) ;) (expression_statement "line_reset((line *)0x0,plVar26);" (call_expression "line_reset((line *)0x0,plVar26)" identifier (argument_list "((line *)0x0,plVar26)" ( (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;) (if_statement "if (plVar28 == (line *)0x0) {\n      str_append(&line,"",1);\n      pFVar23 = popen(line.active,"r");\n      uVar25 = extraout_ECX_17;\n    }\n    else {\n      *(char *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1 +\n               (int)in_stack_ffffef8c) = '\0';\n      pFVar23 = popen((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,"r");\n      uVar25 = extraout_ECX_37;\n      if (output_file.missing_newline != false) {\n        local_1060 = 1;\n        ck_fwrite(PTR_buffer_delimiter_00030fd8,1,1,output_file.fp);\n        output_file.missing_newline = false;\n        uVar25 = extraout_ECX_38;\n      }\n    }" if (parenthesized_expression "(plVar28 == (line *)0x0)" ( (binary_expression "plVar28 == (line *)0x0" identifier == (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      str_append(&line,"",1);\n      pFVar23 = popen(line.active,"r");\n      uVar25 = extraout_ECX_17;\n    }" { (expression_statement "str_append(&line,"",1);" (call_expression "str_append(&line,"",1)" identifier (argument_list "(&line,"",1)" ( (pointer_expression "&line" & identifier) , (string_literal """" " ") , number_literal ))) ;) (expression_statement "pFVar23 = popen(line.active,"r");" (assignment_expression "pFVar23 = popen(line.active,"r")" identifier = (call_expression "popen(line.active,"r")" identifier (argument_list "(line.active,"r")" ( (field_expression "line.active" identifier . field_identifier) , (string_literal ""r"" " string_content ") )))) ;) (expression_statement "uVar25 = extraout_ECX_17;" (assignment_expression "uVar25 = extraout_ECX_17" identifier = identifier) ;) }) (else_clause "else {\n      *(char *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1 +\n               (int)in_stack_ffffef8c) = '\0';\n      pFVar23 = popen((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,"r");\n      uVar25 = extraout_ECX_37;\n      if (output_file.missing_newline != false) {\n        local_1060 = 1;\n        ck_fwrite(PTR_buffer_delimiter_00030fd8,1,1,output_file.fp);\n        output_file.missing_newline = false;\n        uVar25 = extraout_ECX_38;\n      }\n    }" else (compound_statement "{\n      *(char *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1 +\n               (int)in_stack_ffffef8c) = '\0';\n      pFVar23 = popen((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,"r");\n      uVar25 = extraout_ECX_37;\n      if (output_file.missing_newline != false) {\n        local_1060 = 1;\n        ck_fwrite(PTR_buffer_delimiter_00030fd8,1,1,output_file.fp);\n        output_file.missing_newline = false;\n        uVar25 = extraout_ECX_38;\n      }\n    }" { (expression_statement "*(char *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1 +\n               (int)in_stack_ffffef8c) = '\0';" (assignment_expression "*(char *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1 +\n               (int)in_stack_ffffef8c) = '\0'" (pointer_expression "*(char *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1 +\n               (int)in_stack_ffffef8c)" * (cast_expression "(char *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1 +\n               (int)in_stack_ffffef8c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1 +\n               (int)in_stack_ffffef8c)" ( (binary_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1 +\n               (int)in_stack_ffffef8c" (binary_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg + -1" (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier) + number_literal) + (cast_expression "(int)in_stack_ffffef8c" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pFVar23 = popen((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,"r");" (assignment_expression "pFVar23 = popen((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,"r")" identifier = (call_expression "popen((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,"r")" identifier (argument_list "((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,"r")" ( (field_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text" (parenthesized_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt)" ( (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier) )) . field_identifier) , (string_literal ""r"" " string_content ") )))) ;) (expression_statement "uVar25 = extraout_ECX_37;" (assignment_expression "uVar25 = extraout_ECX_37" identifier = identifier) ;) (if_statement "if (output_file.missing_newline != false) {\n        local_1060 = 1;\n        ck_fwrite(PTR_buffer_delimiter_00030fd8,1,1,output_file.fp);\n        output_file.missing_newline = false;\n        uVar25 = extraout_ECX_38;\n      }" if (parenthesized_expression "(output_file.missing_newline != false)" ( (binary_expression "output_file.missing_newline != false" (field_expression "output_file.missing_newline" identifier . field_identifier) != false) )) (compound_statement "{\n        local_1060 = 1;\n        ck_fwrite(PTR_buffer_delimiter_00030fd8,1,1,output_file.fp);\n        output_file.missing_newline = false;\n        uVar25 = extraout_ECX_38;\n      }" { (expression_statement "local_1060 = 1;" (assignment_expression "local_1060 = 1" identifier = number_literal) ;) (expression_statement "ck_fwrite(PTR_buffer_delimiter_00030fd8,1,1,output_file.fp);" (call_expression "ck_fwrite(PTR_buffer_delimiter_00030fd8,1,1,output_file.fp)" identifier (argument_list "(PTR_buffer_delimiter_00030fd8,1,1,output_file.fp)" ( identifier , number_literal , number_literal , (field_expression "output_file.fp" identifier . field_identifier) ))) ;) (expression_statement "output_file.missing_newline = false;" (assignment_expression "output_file.missing_newline = false" (field_expression "output_file.missing_newline" identifier . field_identifier) = false) ;) (expression_statement "uVar25 = extraout_ECX_38;" (assignment_expression "uVar25 = extraout_ECX_38" identifier = identifier) ;) })) }))) (if_statement "if (pFVar23 == (FILE *)0x0) goto LAB_0001925a;" if (parenthesized_expression "(pFVar23 == (FILE *)0x0)" ( (binary_expression "pFVar23 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001925a;" goto statement_identifier ;)) (while_statement "while ((pFVar23->_flags & 0x10) == 0) {\n      local_1060 = 0x1000;\n      sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n      if (0 < (int)sVar14) {\n        if (in_stack_ffffef8c == (line *)0x0) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        else {\n          ck_fwrite(buf,1,sVar14,output_file.fp);\n          local_1060 = sVar14;\n        }\n      }\n    }" while (parenthesized_expression "((pFVar23->_flags & 0x10) == 0)" ( (binary_expression "(pFVar23->_flags & 0x10) == 0" (parenthesized_expression "(pFVar23->_flags & 0x10)" ( (binary_expression "pFVar23->_flags & 0x10" (field_expression "pFVar23->_flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      local_1060 = 0x1000;\n      sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n      if (0 < (int)sVar14) {\n        if (in_stack_ffffef8c == (line *)0x0) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        else {\n          ck_fwrite(buf,1,sVar14,output_file.fp);\n          local_1060 = sVar14;\n        }\n      }\n    }" { (expression_statement "local_1060 = 0x1000;" (assignment_expression "local_1060 = 0x1000" identifier = number_literal) ;) (expression_statement "sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);" (assignment_expression "sVar14 = fread_unlocked(buf,1,0x1000,pFVar23)" identifier = (call_expression "fread_unlocked(buf,1,0x1000,pFVar23)" identifier (argument_list "(buf,1,0x1000,pFVar23)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (0 < (int)sVar14) {\n        if (in_stack_ffffef8c == (line *)0x0) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        else {\n          ck_fwrite(buf,1,sVar14,output_file.fp);\n          local_1060 = sVar14;\n        }\n      }" if (parenthesized_expression "(0 < (int)sVar14)" ( (binary_expression "0 < (int)sVar14" number_literal < (cast_expression "(int)sVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        if (in_stack_ffffef8c == (line *)0x0) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        else {\n          ck_fwrite(buf,1,sVar14,output_file.fp);\n          local_1060 = sVar14;\n        }\n      }" { (if_statement "if (in_stack_ffffef8c == (line *)0x0) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        else {\n          ck_fwrite(buf,1,sVar14,output_file.fp);\n          local_1060 = sVar14;\n        }" if (parenthesized_expression "(in_stack_ffffef8c == (line *)0x0)" ( (binary_expression "in_stack_ffffef8c == (line *)0x0" identifier == (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          str_append(&s_accum,buf,sVar14);\n        }" { (expression_statement "str_append(&s_accum,buf,sVar14);" (call_expression "str_append(&s_accum,buf,sVar14)" identifier (argument_list "(&s_accum,buf,sVar14)" ( (pointer_expression "&s_accum" & identifier) , identifier , identifier ))) ;) }) (else_clause "else {\n          ck_fwrite(buf,1,sVar14,output_file.fp);\n          local_1060 = sVar14;\n        }" else (compound_statement "{\n          ck_fwrite(buf,1,sVar14,output_file.fp);\n          local_1060 = sVar14;\n        }" { (expression_statement "ck_fwrite(buf,1,sVar14,output_file.fp);" (call_expression "ck_fwrite(buf,1,sVar14,output_file.fp)" identifier (argument_list "(buf,1,sVar14,output_file.fp)" ( identifier , number_literal , identifier , (field_expression "output_file.fp" identifier . field_identifier) ))) ;) (expression_statement "local_1060 = sVar14;" (assignment_expression "local_1060 = sVar14" identifier = identifier) ;) }))) })) })) (expression_statement "pclose(pFVar23);" (call_expression "pclose(pFVar23)" identifier (argument_list "(pFVar23)" ( identifier ))) ;) (if_statement "if (in_stack_ffffef8c == (line *)0x0) {\n      if ((s_accum.length != 0) && (s_accum.active[s_accum.length - 1] == buffer_delimiter)) {\n        s_accum.length = s_accum.length - 1;\n      }\n      line_exchange((line *)input,(line *)b,0);\n      in_ECX = extraout_ECX_19;\n    }\n    else {\n      in_ECX = extraout_ECX_18;\n      if (unbuffered != false) {\n        ck_fflush(output_file.fp);\n        in_ECX = extraout_ECX_36;\n      }\n    }" if (parenthesized_expression "(in_stack_ffffef8c == (line *)0x0)" ( (binary_expression "in_stack_ffffef8c == (line *)0x0" identifier == (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if ((s_accum.length != 0) && (s_accum.active[s_accum.length - 1] == buffer_delimiter)) {\n        s_accum.length = s_accum.length - 1;\n      }\n      line_exchange((line *)input,(line *)b,0);\n      in_ECX = extraout_ECX_19;\n    }" { (if_statement "if ((s_accum.length != 0) && (s_accum.active[s_accum.length - 1] == buffer_delimiter)) {\n        s_accum.length = s_accum.length - 1;\n      }" if (parenthesized_expression "((s_accum.length != 0) && (s_accum.active[s_accum.length - 1] == buffer_delimiter))" ( (binary_expression "(s_accum.length != 0) && (s_accum.active[s_accum.length - 1] == buffer_delimiter)" (parenthesized_expression "(s_accum.length != 0)" ( (binary_expression "s_accum.length != 0" (field_expression "s_accum.length" identifier . field_identifier) != number_literal) )) && (parenthesized_expression "(s_accum.active[s_accum.length - 1] == buffer_delimiter)" ( (binary_expression "s_accum.active[s_accum.length - 1] == buffer_delimiter" (subscript_expression "s_accum.active[s_accum.length - 1]" (field_expression "s_accum.active" identifier . field_identifier) [ (binary_expression "s_accum.length - 1" (field_expression "s_accum.length" identifier . field_identifier) - number_literal) ]) == identifier) ))) )) (compound_statement "{\n        s_accum.length = s_accum.length - 1;\n      }" { (expression_statement "s_accum.length = s_accum.length - 1;" (assignment_expression "s_accum.length = s_accum.length - 1" (field_expression "s_accum.length" identifier . field_identifier) = (binary_expression "s_accum.length - 1" (field_expression "s_accum.length" identifier . field_identifier) - number_literal)) ;) })) (expression_statement "line_exchange((line *)input,(line *)b,0);" (call_expression "line_exchange((line *)input,(line *)b,0)" identifier (argument_list "((line *)input,(line *)b,0)" ( (cast_expression "(line *)input" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (expression_statement "in_ECX = extraout_ECX_19;" (assignment_expression "in_ECX = extraout_ECX_19" identifier = identifier) ;) }) (else_clause "else {\n      in_ECX = extraout_ECX_18;\n      if (unbuffered != false) {\n        ck_fflush(output_file.fp);\n        in_ECX = extraout_ECX_36;\n      }\n    }" else (compound_statement "{\n      in_ECX = extraout_ECX_18;\n      if (unbuffered != false) {\n        ck_fflush(output_file.fp);\n        in_ECX = extraout_ECX_36;\n      }\n    }" { (expression_statement "in_ECX = extraout_ECX_18;" (assignment_expression "in_ECX = extraout_ECX_18" identifier = identifier) ;) (if_statement "if (unbuffered != false) {\n        ck_fflush(output_file.fp);\n        in_ECX = extraout_ECX_36;\n      }" if (parenthesized_expression "(unbuffered != false)" ( (binary_expression "unbuffered != false" identifier != false) )) (compound_statement "{\n        ck_fflush(output_file.fp);\n        in_ECX = extraout_ECX_36;\n      }" { (expression_statement "ck_fflush(output_file.fp);" (call_expression "ck_fflush(output_file.fp)" identifier (argument_list "(output_file.fp)" ( (field_expression "output_file.fp" identifier . field_identifier) ))) ;) (expression_statement "in_ECX = extraout_ECX_36;" (assignment_expression "in_ECX = extraout_ECX_36" identifier = identifier) ;) })) }))) (goto_statement "goto _L604;" goto statement_identifier ;)) (case_statement "case 0x44:\n    line_copy(&hold,&line,(int)in_ECX);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_26;\n    break;" case number_literal : (expression_statement "line_copy(&hold,&line,(int)in_ECX);" (call_expression "line_copy(&hold,&line,(int)in_ECX)" identifier (argument_list "(&hold,&line,(int)in_ECX)" ( (pointer_expression "&hold" & identifier) , (pointer_expression "&line" & identifier) , (cast_expression "(int)in_ECX" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "cVar9 = *(char *)&((line *)b)->text;" (assignment_expression "cVar9 = *(char *)&((line *)b)->text" identifier = (pointer_expression "*(char *)&((line *)b)->text" * (cast_expression "(char *)&((line *)b)->text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (expression_statement "in_ECX = extraout_ECX_26;" (assignment_expression "in_ECX = extraout_ECX_26" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x45:\n    line_copy(&line,&hold,(int)in_ECX);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_20;\n    break;" case number_literal : (expression_statement "line_copy(&line,&hold,(int)in_ECX);" (call_expression "line_copy(&line,&hold,(int)in_ECX)" identifier (argument_list "(&line,&hold,(int)in_ECX)" ( (pointer_expression "&line" & identifier) , (pointer_expression "&hold" & identifier) , (cast_expression "(int)in_ECX" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "cVar9 = *(char *)&((line *)b)->text;" (assignment_expression "cVar9 = *(char *)&((line *)b)->text" identifier = (pointer_expression "*(char *)&((line *)b)->text" * (cast_expression "(char *)&((line *)b)->text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (expression_statement "in_ECX = extraout_ECX_20;" (assignment_expression "in_ECX = extraout_ECX_20" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x46:\n    output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                (sc->mbstate).__count - 1,1,&output_file);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_15;\n    goto LAB_00017de7;" case number_literal : (expression_statement "output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                (sc->mbstate).__count - 1,1,&output_file);" (call_expression "output_line((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                (sc->mbstate).__count - 1,1,&output_file)" identifier (argument_list "((((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text,\n                (sc->mbstate).__count - 1,1,&output_file)" ( (field_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text" (parenthesized_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt)" ( (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier) )) . field_identifier) , (binary_expression "(sc->mbstate).__count - 1" (field_expression "(sc->mbstate).__count" (parenthesized_expression "(sc->mbstate)" ( (field_expression "sc->mbstate" identifier -> field_identifier) )) . field_identifier) - number_literal) , number_literal , (pointer_expression "&output_file" & identifier) ))) ;) (expression_statement "cVar9 = *(char *)&((line *)b)->text;" (assignment_expression "cVar9 = *(char *)&((line *)b)->text" identifier = (pointer_expression "*(char *)&((line *)b)->text" * (cast_expression "(char *)&((line *)b)->text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (expression_statement "in_ECX = extraout_ECX_15;" (assignment_expression "in_ECX = extraout_ECX_15" identifier = identifier) ;) (goto_statement "goto LAB_00017de7;" goto statement_identifier ;)) (case_statement "case 0x49:\n    local_106c = (line *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (local_106c == (line *)0xffffffff) {\n      local_106c = (line *)lcmd_out_line_len;\n    }\n    if (output_file.missing_newline != false) {\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }\n    if (sVar16 != 0) {\n      pbVar22 = (byte *)((char *)pbVar31 + sVar16);\n      pcVar11 = buf + 1;\n      plVar26 = (line *)0x0;\n      do {\n        bVar1 = *pbVar31;\n        in_stack_ffffef8c = (line *)(uint)bVar1;\n        if (((bVar1 & 0x80) == 0) &&\n           (ppuVar20 = __ctype_b_loc(),\n           (*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0)) {\n          plVar28 = (line *)0x1;\n          buf[0] = bVar1;\n          if (*pbVar31 == 0x5c) {\n            buf[1] = '\\';\n            plVar28 = (line *)0x2;\n          }\n        }\n        else {\n          buf[0] = '\\';\n          switch(*pbVar31) {\n          case 7:\n            buf[1] = 'a';\n            plVar28 = (line *)0x2;\n            break;\n          case 8:\n            buf[1] = 'b';\n            plVar28 = (line *)0x2;\n            break;\n          case 9:\n            buf[1] = 't';\n            plVar28 = (line *)0x2;\n            break;\n          case 10:\n            buf[1] = 'n';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xb:\n            buf[1] = 'v';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xc:\n            buf[1] = 'f';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xd:\n            buf[1] = 'r';\n            plVar28 = (line *)0x2;\n            break;\n          default:\n            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);\n            sVar14 = strlen(pcVar11);\n            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));\n          }\n        }\n        plVar26 = (line *)((int)&plVar28->text + (int)&plVar26->text);\n        if ((local_106c <= plVar26) && (0 < (int)local_106c)) {\n          ck_fwrite(&DAT_00026f7e,1,1,pFVar4);\n          ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n          plVar26 = plVar28;\n          in_stack_ffffef8c = plVar28;\n        }\n        pbVar31 = pbVar31 + 1;\n        ck_fwrite(buf,1,(size_t)plVar28,pFVar4);\n      } while (pbVar31 != pbVar22);\n    }\n    local_1060 = 1;\n    ck_fwrite(&DAT_00026f80,1,1,pFVar4);\n    ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n    in_ECX = extraout_ECX_34;\n    if (unbuffered != false) {\n      ck_fflush(pFVar4);\n      in_ECX = extraout_ECX_35;\n    }\n_L604:\n    cVar9 = *(char *)&((line *)b)->text;\nLAB_00017de7:\n    sc = (line *)&(sc->mbstate).__value;\n    goto joined_r0x00017cbb;" case number_literal : (expression_statement "local_106c = (line *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;" (assignment_expression "local_106c = (line *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text" identifier = (cast_expression "(line *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text" (parenthesized_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt)" ( (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier) )) . field_identifier))) ;) (if_statement "if (local_106c == (line *)0xffffffff) {\n      local_106c = (line *)lcmd_out_line_len;\n    }" if (parenthesized_expression "(local_106c == (line *)0xffffffff)" ( (binary_expression "local_106c == (line *)0xffffffff" identifier == (cast_expression "(line *)0xffffffff" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_106c = (line *)lcmd_out_line_len;\n    }" { (expression_statement "local_106c = (line *)lcmd_out_line_len;" (assignment_expression "local_106c = (line *)lcmd_out_line_len" identifier = (cast_expression "(line *)lcmd_out_line_len" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (if_statement "if (output_file.missing_newline != false) {\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }" if (parenthesized_expression "(output_file.missing_newline != false)" ( (binary_expression "output_file.missing_newline != false" (field_expression "output_file.missing_newline" identifier . field_identifier) != false) )) (compound_statement "{\n      ck_fwrite(&buffer_delimiter,1,1,output_file.fp);\n      output_file.missing_newline = false;\n    }" { (expression_statement "ck_fwrite(&buffer_delimiter,1,1,output_file.fp);" (call_expression "ck_fwrite(&buffer_delimiter,1,1,output_file.fp)" identifier (argument_list "(&buffer_delimiter,1,1,output_file.fp)" ( (pointer_expression "&buffer_delimiter" & identifier) , number_literal , number_literal , (field_expression "output_file.fp" identifier . field_identifier) ))) ;) (expression_statement "output_file.missing_newline = false;" (assignment_expression "output_file.missing_newline = false" (field_expression "output_file.missing_newline" identifier . field_identifier) = false) ;) })) (if_statement "if (sVar16 != 0) {\n      pbVar22 = (byte *)((char *)pbVar31 + sVar16);\n      pcVar11 = buf + 1;\n      plVar26 = (line *)0x0;\n      do {\n        bVar1 = *pbVar31;\n        in_stack_ffffef8c = (line *)(uint)bVar1;\n        if (((bVar1 & 0x80) == 0) &&\n           (ppuVar20 = __ctype_b_loc(),\n           (*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0)) {\n          plVar28 = (line *)0x1;\n          buf[0] = bVar1;\n          if (*pbVar31 == 0x5c) {\n            buf[1] = '\\';\n            plVar28 = (line *)0x2;\n          }\n        }\n        else {\n          buf[0] = '\\';\n          switch(*pbVar31) {\n          case 7:\n            buf[1] = 'a';\n            plVar28 = (line *)0x2;\n            break;\n          case 8:\n            buf[1] = 'b';\n            plVar28 = (line *)0x2;\n            break;\n          case 9:\n            buf[1] = 't';\n            plVar28 = (line *)0x2;\n            break;\n          case 10:\n            buf[1] = 'n';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xb:\n            buf[1] = 'v';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xc:\n            buf[1] = 'f';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xd:\n            buf[1] = 'r';\n            plVar28 = (line *)0x2;\n            break;\n          default:\n            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);\n            sVar14 = strlen(pcVar11);\n            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));\n          }\n        }\n        plVar26 = (line *)((int)&plVar28->text + (int)&plVar26->text);\n        if ((local_106c <= plVar26) && (0 < (int)local_106c)) {\n          ck_fwrite(&DAT_00026f7e,1,1,pFVar4);\n          ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n          plVar26 = plVar28;\n          in_stack_ffffef8c = plVar28;\n        }\n        pbVar31 = pbVar31 + 1;\n        ck_fwrite(buf,1,(size_t)plVar28,pFVar4);\n      } while (pbVar31 != pbVar22);\n    }" if (parenthesized_expression "(sVar16 != 0)" ( (binary_expression "sVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      pbVar22 = (byte *)((char *)pbVar31 + sVar16);\n      pcVar11 = buf + 1;\n      plVar26 = (line *)0x0;\n      do {\n        bVar1 = *pbVar31;\n        in_stack_ffffef8c = (line *)(uint)bVar1;\n        if (((bVar1 & 0x80) == 0) &&\n           (ppuVar20 = __ctype_b_loc(),\n           (*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0)) {\n          plVar28 = (line *)0x1;\n          buf[0] = bVar1;\n          if (*pbVar31 == 0x5c) {\n            buf[1] = '\\';\n            plVar28 = (line *)0x2;\n          }\n        }\n        else {\n          buf[0] = '\\';\n          switch(*pbVar31) {\n          case 7:\n            buf[1] = 'a';\n            plVar28 = (line *)0x2;\n            break;\n          case 8:\n            buf[1] = 'b';\n            plVar28 = (line *)0x2;\n            break;\n          case 9:\n            buf[1] = 't';\n            plVar28 = (line *)0x2;\n            break;\n          case 10:\n            buf[1] = 'n';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xb:\n            buf[1] = 'v';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xc:\n            buf[1] = 'f';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xd:\n            buf[1] = 'r';\n            plVar28 = (line *)0x2;\n            break;\n          default:\n            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);\n            sVar14 = strlen(pcVar11);\n            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));\n          }\n        }\n        plVar26 = (line *)((int)&plVar28->text + (int)&plVar26->text);\n        if ((local_106c <= plVar26) && (0 < (int)local_106c)) {\n          ck_fwrite(&DAT_00026f7e,1,1,pFVar4);\n          ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n          plVar26 = plVar28;\n          in_stack_ffffef8c = plVar28;\n        }\n        pbVar31 = pbVar31 + 1;\n        ck_fwrite(buf,1,(size_t)plVar28,pFVar4);\n      } while (pbVar31 != pbVar22);\n    }" { (expression_statement "pbVar22 = (byte *)((char *)pbVar31 + sVar16);" (assignment_expression "pbVar22 = (byte *)((char *)pbVar31 + sVar16)" identifier = (cast_expression "(byte *)((char *)pbVar31 + sVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((char *)pbVar31 + sVar16)" ( (binary_expression "(char *)pbVar31 + sVar16" (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + identifier) )))) ;) (expression_statement "pcVar11 = buf + 1;" (assignment_expression "pcVar11 = buf + 1" identifier = (binary_expression "buf + 1" identifier + number_literal)) ;) (expression_statement "plVar26 = (line *)0x0;" (assignment_expression "plVar26 = (line *)0x0" identifier = (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        bVar1 = *pbVar31;\n        in_stack_ffffef8c = (line *)(uint)bVar1;\n        if (((bVar1 & 0x80) == 0) &&\n           (ppuVar20 = __ctype_b_loc(),\n           (*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0)) {\n          plVar28 = (line *)0x1;\n          buf[0] = bVar1;\n          if (*pbVar31 == 0x5c) {\n            buf[1] = '\\';\n            plVar28 = (line *)0x2;\n          }\n        }\n        else {\n          buf[0] = '\\';\n          switch(*pbVar31) {\n          case 7:\n            buf[1] = 'a';\n            plVar28 = (line *)0x2;\n            break;\n          case 8:\n            buf[1] = 'b';\n            plVar28 = (line *)0x2;\n            break;\n          case 9:\n            buf[1] = 't';\n            plVar28 = (line *)0x2;\n            break;\n          case 10:\n            buf[1] = 'n';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xb:\n            buf[1] = 'v';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xc:\n            buf[1] = 'f';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xd:\n            buf[1] = 'r';\n            plVar28 = (line *)0x2;\n            break;\n          default:\n            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);\n            sVar14 = strlen(pcVar11);\n            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));\n          }\n        }\n        plVar26 = (line *)((int)&plVar28->text + (int)&plVar26->text);\n        if ((local_106c <= plVar26) && (0 < (int)local_106c)) {\n          ck_fwrite(&DAT_00026f7e,1,1,pFVar4);\n          ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n          plVar26 = plVar28;\n          in_stack_ffffef8c = plVar28;\n        }\n        pbVar31 = pbVar31 + 1;\n        ck_fwrite(buf,1,(size_t)plVar28,pFVar4);\n      } while (pbVar31 != pbVar22);" do (compound_statement "{\n        bVar1 = *pbVar31;\n        in_stack_ffffef8c = (line *)(uint)bVar1;\n        if (((bVar1 & 0x80) == 0) &&\n           (ppuVar20 = __ctype_b_loc(),\n           (*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0)) {\n          plVar28 = (line *)0x1;\n          buf[0] = bVar1;\n          if (*pbVar31 == 0x5c) {\n            buf[1] = '\\';\n            plVar28 = (line *)0x2;\n          }\n        }\n        else {\n          buf[0] = '\\';\n          switch(*pbVar31) {\n          case 7:\n            buf[1] = 'a';\n            plVar28 = (line *)0x2;\n            break;\n          case 8:\n            buf[1] = 'b';\n            plVar28 = (line *)0x2;\n            break;\n          case 9:\n            buf[1] = 't';\n            plVar28 = (line *)0x2;\n            break;\n          case 10:\n            buf[1] = 'n';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xb:\n            buf[1] = 'v';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xc:\n            buf[1] = 'f';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xd:\n            buf[1] = 'r';\n            plVar28 = (line *)0x2;\n            break;\n          default:\n            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);\n            sVar14 = strlen(pcVar11);\n            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));\n          }\n        }\n        plVar26 = (line *)((int)&plVar28->text + (int)&plVar26->text);\n        if ((local_106c <= plVar26) && (0 < (int)local_106c)) {\n          ck_fwrite(&DAT_00026f7e,1,1,pFVar4);\n          ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n          plVar26 = plVar28;\n          in_stack_ffffef8c = plVar28;\n        }\n        pbVar31 = pbVar31 + 1;\n        ck_fwrite(buf,1,(size_t)plVar28,pFVar4);\n      }" { (expression_statement "bVar1 = *pbVar31;" (assignment_expression "bVar1 = *pbVar31" identifier = (pointer_expression "*pbVar31" * identifier)) ;) (expression_statement "in_stack_ffffef8c = (line *)(uint)bVar1;" (assignment_expression "in_stack_ffffef8c = (line *)(uint)bVar1" identifier = (cast_expression "(line *)(uint)bVar1" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (((bVar1 & 0x80) == 0) &&\n           (ppuVar20 = __ctype_b_loc(),\n           (*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0)) {\n          plVar28 = (line *)0x1;\n          buf[0] = bVar1;\n          if (*pbVar31 == 0x5c) {\n            buf[1] = '\\';\n            plVar28 = (line *)0x2;\n          }\n        }\n        else {\n          buf[0] = '\\';\n          switch(*pbVar31) {\n          case 7:\n            buf[1] = 'a';\n            plVar28 = (line *)0x2;\n            break;\n          case 8:\n            buf[1] = 'b';\n            plVar28 = (line *)0x2;\n            break;\n          case 9:\n            buf[1] = 't';\n            plVar28 = (line *)0x2;\n            break;\n          case 10:\n            buf[1] = 'n';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xb:\n            buf[1] = 'v';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xc:\n            buf[1] = 'f';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xd:\n            buf[1] = 'r';\n            plVar28 = (line *)0x2;\n            break;\n          default:\n            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);\n            sVar14 = strlen(pcVar11);\n            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));\n          }\n        }" if (parenthesized_expression "(((bVar1 & 0x80) == 0) &&\n           (ppuVar20 = __ctype_b_loc(),\n           (*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0))" ( (binary_expression "((bVar1 & 0x80) == 0) &&\n           (ppuVar20 = __ctype_b_loc(),\n           (*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0)" (parenthesized_expression "((bVar1 & 0x80) == 0)" ( (binary_expression "(bVar1 & 0x80) == 0" (parenthesized_expression "(bVar1 & 0x80)" ( (binary_expression "bVar1 & 0x80" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(ppuVar20 = __ctype_b_loc(),\n           (*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0)" ( (comma_expression "ppuVar20 = __ctype_b_loc(),\n           (*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0" (assignment_expression "ppuVar20 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) , (binary_expression "(*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40) != 0" (parenthesized_expression "(*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40)" ( (binary_expression "*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1) & 0x40" (pointer_expression "*(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1)" ( (binary_expression "(int)*ppuVar20 + (int)in_stack_ffffef8c * 2 + 1" (binary_expression "(int)*ppuVar20 + (int)in_stack_ffffef8c * 2" (cast_expression "(int)*ppuVar20" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar20" * identifier)) + (binary_expression "(int)in_stack_ffffef8c * 2" (cast_expression "(int)in_stack_ffffef8c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          plVar28 = (line *)0x1;\n          buf[0] = bVar1;\n          if (*pbVar31 == 0x5c) {\n            buf[1] = '\\';\n            plVar28 = (line *)0x2;\n          }\n        }" { (expression_statement "plVar28 = (line *)0x1;" (assignment_expression "plVar28 = (line *)0x1" identifier = (cast_expression "(line *)0x1" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "buf[0] = bVar1;" (assignment_expression "buf[0] = bVar1" (subscript_expression "buf[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*pbVar31 == 0x5c) {\n            buf[1] = '\\';\n            plVar28 = (line *)0x2;\n          }" if (parenthesized_expression "(*pbVar31 == 0x5c)" ( (binary_expression "*pbVar31 == 0x5c" (pointer_expression "*pbVar31" * identifier) == number_literal) )) (compound_statement "{\n            buf[1] = '\\';\n            plVar28 = (line *)0x2;\n          }" { (expression_statement "buf[1] = '\\';" (assignment_expression "buf[1] = '\\'" (subscript_expression "buf[1]" identifier [ number_literal ]) = (char_literal "'\\'" ' escape_sequence ')) ;) (expression_statement "plVar28 = (line *)0x2;" (assignment_expression "plVar28 = (line *)0x2" identifier = (cast_expression "(line *)0x2" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n          buf[0] = '\\';\n          switch(*pbVar31) {\n          case 7:\n            buf[1] = 'a';\n            plVar28 = (line *)0x2;\n            break;\n          case 8:\n            buf[1] = 'b';\n            plVar28 = (line *)0x2;\n            break;\n          case 9:\n            buf[1] = 't';\n            plVar28 = (line *)0x2;\n            break;\n          case 10:\n            buf[1] = 'n';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xb:\n            buf[1] = 'v';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xc:\n            buf[1] = 'f';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xd:\n            buf[1] = 'r';\n            plVar28 = (line *)0x2;\n            break;\n          default:\n            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);\n            sVar14 = strlen(pcVar11);\n            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));\n          }\n        }" else (compound_statement "{\n          buf[0] = '\\';\n          switch(*pbVar31) {\n          case 7:\n            buf[1] = 'a';\n            plVar28 = (line *)0x2;\n            break;\n          case 8:\n            buf[1] = 'b';\n            plVar28 = (line *)0x2;\n            break;\n          case 9:\n            buf[1] = 't';\n            plVar28 = (line *)0x2;\n            break;\n          case 10:\n            buf[1] = 'n';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xb:\n            buf[1] = 'v';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xc:\n            buf[1] = 'f';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xd:\n            buf[1] = 'r';\n            plVar28 = (line *)0x2;\n            break;\n          default:\n            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);\n            sVar14 = strlen(pcVar11);\n            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));\n          }\n        }" { (expression_statement "buf[0] = '\\';" (assignment_expression "buf[0] = '\\'" (subscript_expression "buf[0]" identifier [ number_literal ]) = (char_literal "'\\'" ' escape_sequence ')) ;) (switch_statement "switch(*pbVar31) {\n          case 7:\n            buf[1] = 'a';\n            plVar28 = (line *)0x2;\n            break;\n          case 8:\n            buf[1] = 'b';\n            plVar28 = (line *)0x2;\n            break;\n          case 9:\n            buf[1] = 't';\n            plVar28 = (line *)0x2;\n            break;\n          case 10:\n            buf[1] = 'n';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xb:\n            buf[1] = 'v';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xc:\n            buf[1] = 'f';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xd:\n            buf[1] = 'r';\n            plVar28 = (line *)0x2;\n            break;\n          default:\n            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);\n            sVar14 = strlen(pcVar11);\n            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));\n          }" switch (parenthesized_expression "(*pbVar31)" ( (pointer_expression "*pbVar31" * identifier) )) (compound_statement "{\n          case 7:\n            buf[1] = 'a';\n            plVar28 = (line *)0x2;\n            break;\n          case 8:\n            buf[1] = 'b';\n            plVar28 = (line *)0x2;\n            break;\n          case 9:\n            buf[1] = 't';\n            plVar28 = (line *)0x2;\n            break;\n          case 10:\n            buf[1] = 'n';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xb:\n            buf[1] = 'v';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xc:\n            buf[1] = 'f';\n            plVar28 = (line *)0x2;\n            break;\n          case 0xd:\n            buf[1] = 'r';\n            plVar28 = (line *)0x2;\n            break;\n          default:\n            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);\n            sVar14 = strlen(pcVar11);\n            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));\n          }" { (case_statement "case 7:\n            buf[1] = 'a';\n            plVar28 = (line *)0x2;\n            break;" case number_literal : (expression_statement "buf[1] = 'a';" (assignment_expression "buf[1] = 'a'" (subscript_expression "buf[1]" identifier [ number_literal ]) = (char_literal "'a'" ' character ')) ;) (expression_statement "plVar28 = (line *)0x2;" (assignment_expression "plVar28 = (line *)0x2" identifier = (cast_expression "(line *)0x2" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n            buf[1] = 'b';\n            plVar28 = (line *)0x2;\n            break;" case number_literal : (expression_statement "buf[1] = 'b';" (assignment_expression "buf[1] = 'b'" (subscript_expression "buf[1]" identifier [ number_literal ]) = (char_literal "'b'" ' character ')) ;) (expression_statement "plVar28 = (line *)0x2;" (assignment_expression "plVar28 = (line *)0x2" identifier = (cast_expression "(line *)0x2" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n            buf[1] = 't';\n            plVar28 = (line *)0x2;\n            break;" case number_literal : (expression_statement "buf[1] = 't';" (assignment_expression "buf[1] = 't'" (subscript_expression "buf[1]" identifier [ number_literal ]) = (char_literal "'t'" ' character ')) ;) (expression_statement "plVar28 = (line *)0x2;" (assignment_expression "plVar28 = (line *)0x2" identifier = (cast_expression "(line *)0x2" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n            buf[1] = 'n';\n            plVar28 = (line *)0x2;\n            break;" case number_literal : (expression_statement "buf[1] = 'n';" (assignment_expression "buf[1] = 'n'" (subscript_expression "buf[1]" identifier [ number_literal ]) = (char_literal "'n'" ' character ')) ;) (expression_statement "plVar28 = (line *)0x2;" (assignment_expression "plVar28 = (line *)0x2" identifier = (cast_expression "(line *)0x2" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0xb:\n            buf[1] = 'v';\n            plVar28 = (line *)0x2;\n            break;" case number_literal : (expression_statement "buf[1] = 'v';" (assignment_expression "buf[1] = 'v'" (subscript_expression "buf[1]" identifier [ number_literal ]) = (char_literal "'v'" ' character ')) ;) (expression_statement "plVar28 = (line *)0x2;" (assignment_expression "plVar28 = (line *)0x2" identifier = (cast_expression "(line *)0x2" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0xc:\n            buf[1] = 'f';\n            plVar28 = (line *)0x2;\n            break;" case number_literal : (expression_statement "buf[1] = 'f';" (assignment_expression "buf[1] = 'f'" (subscript_expression "buf[1]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "plVar28 = (line *)0x2;" (assignment_expression "plVar28 = (line *)0x2" identifier = (cast_expression "(line *)0x2" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n            buf[1] = 'r';\n            plVar28 = (line *)0x2;\n            break;" case number_literal : (expression_statement "buf[1] = 'r';" (assignment_expression "buf[1] = 'r'" (subscript_expression "buf[1]" identifier [ number_literal ]) = (char_literal "'r'" ' character ')) ;) (expression_statement "plVar28 = (line *)0x2;" (assignment_expression "plVar28 = (line *)0x2" identifier = (cast_expression "(line *)0x2" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "default:\n            __sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);\n            sVar14 = strlen(pcVar11);\n            plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));" default : (expression_statement "__sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31);" (call_expression "__sprintf_chk(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31)" identifier (argument_list "(pcVar11,1,0xb3,&DAT_00026d42,*pbVar31)" ( identifier , number_literal , number_literal , (pointer_expression "&DAT_00026d42" & identifier) , (pointer_expression "*pbVar31" * identifier) ))) ;) (expression_statement "sVar14 = strlen(pcVar11);" (assignment_expression "sVar14 = strlen(pcVar11)" identifier = (call_expression "strlen(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier )))) ;) (expression_statement "plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf));" (assignment_expression "plVar28 = (line *)(pcVar11 + (sVar14 - (int)buf))" identifier = (cast_expression "(line *)(pcVar11 + (sVar14 - (int)buf))" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + (sVar14 - (int)buf))" ( (binary_expression "pcVar11 + (sVar14 - (int)buf)" identifier + (parenthesized_expression "(sVar14 - (int)buf)" ( (binary_expression "sVar14 - (int)buf" identifier - (cast_expression "(int)buf" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;)) })) }))) (expression_statement "plVar26 = (line *)((int)&plVar28->text + (int)&plVar26->text);" (assignment_expression "plVar26 = (line *)((int)&plVar28->text + (int)&plVar26->text)" identifier = (cast_expression "(line *)((int)&plVar28->text + (int)&plVar26->text)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&plVar28->text + (int)&plVar26->text)" ( (binary_expression "(int)&plVar28->text + (int)&plVar26->text" (cast_expression "(int)&plVar28->text" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&plVar28->text" & (field_expression "plVar28->text" identifier -> field_identifier))) + (cast_expression "(int)&plVar26->text" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&plVar26->text" & (field_expression "plVar26->text" identifier -> field_identifier)))) )))) ;) (if_statement "if ((local_106c <= plVar26) && (0 < (int)local_106c)) {\n          ck_fwrite(&DAT_00026f7e,1,1,pFVar4);\n          ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n          plVar26 = plVar28;\n          in_stack_ffffef8c = plVar28;\n        }" if (parenthesized_expression "((local_106c <= plVar26) && (0 < (int)local_106c))" ( (binary_expression "(local_106c <= plVar26) && (0 < (int)local_106c)" (parenthesized_expression "(local_106c <= plVar26)" ( (binary_expression "local_106c <= plVar26" identifier <= identifier) )) && (parenthesized_expression "(0 < (int)local_106c)" ( (binary_expression "0 < (int)local_106c" number_literal < (cast_expression "(int)local_106c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n          ck_fwrite(&DAT_00026f7e,1,1,pFVar4);\n          ck_fwrite(&buffer_delimiter,1,1,pFVar4);\n          plVar26 = plVar28;\n          in_stack_ffffef8c = plVar28;\n        }" { (expression_statement "ck_fwrite(&DAT_00026f7e,1,1,pFVar4);" (call_expression "ck_fwrite(&DAT_00026f7e,1,1,pFVar4)" identifier (argument_list "(&DAT_00026f7e,1,1,pFVar4)" ( (pointer_expression "&DAT_00026f7e" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "ck_fwrite(&buffer_delimiter,1,1,pFVar4);" (call_expression "ck_fwrite(&buffer_delimiter,1,1,pFVar4)" identifier (argument_list "(&buffer_delimiter,1,1,pFVar4)" ( (pointer_expression "&buffer_delimiter" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "plVar26 = plVar28;" (assignment_expression "plVar26 = plVar28" identifier = identifier) ;) (expression_statement "in_stack_ffffef8c = plVar28;" (assignment_expression "in_stack_ffffef8c = plVar28" identifier = identifier) ;) })) (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 1" identifier + number_literal)) ;) (expression_statement "ck_fwrite(buf,1,(size_t)plVar28,pFVar4);" (call_expression "ck_fwrite(buf,1,(size_t)plVar28,pFVar4)" identifier (argument_list "(buf,1,(size_t)plVar28,pFVar4)" ( identifier , number_literal , (cast_expression "(size_t)plVar28" ( (type_descriptor "size_t" primitive_type) ) identifier) , identifier ))) ;) }) while (parenthesized_expression "(pbVar31 != pbVar22)" ( (binary_expression "pbVar31 != pbVar22" identifier != identifier) )) ;) })) (expression_statement "local_1060 = 1;" (assignment_expression "local_1060 = 1" identifier = number_literal) ;) (expression_statement "ck_fwrite(&DAT_00026f80,1,1,pFVar4);" (call_expression "ck_fwrite(&DAT_00026f80,1,1,pFVar4)" identifier (argument_list "(&DAT_00026f80,1,1,pFVar4)" ( (pointer_expression "&DAT_00026f80" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "ck_fwrite(&buffer_delimiter,1,1,pFVar4);" (call_expression "ck_fwrite(&buffer_delimiter,1,1,pFVar4)" identifier (argument_list "(&buffer_delimiter,1,1,pFVar4)" ( (pointer_expression "&buffer_delimiter" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "in_ECX = extraout_ECX_34;" (assignment_expression "in_ECX = extraout_ECX_34" identifier = identifier) ;) (if_statement "if (unbuffered != false) {\n      ck_fflush(pFVar4);\n      in_ECX = extraout_ECX_35;\n    }" if (parenthesized_expression "(unbuffered != false)" ( (binary_expression "unbuffered != false" identifier != false) )) (compound_statement "{\n      ck_fflush(pFVar4);\n      in_ECX = extraout_ECX_35;\n    }" { (expression_statement "ck_fflush(pFVar4);" (call_expression "ck_fflush(pFVar4)" identifier (argument_list "(pFVar4)" ( identifier ))) ;) (expression_statement "in_ECX = extraout_ECX_35;" (assignment_expression "in_ECX = extraout_ECX_35" identifier = identifier) ;) })) (labeled_statement "_L604:\n    cVar9 = *(char *)&((line *)b)->text;" statement_identifier : (expression_statement "cVar9 = *(char *)&((line *)b)->text;" (assignment_expression "cVar9 = *(char *)&((line *)b)->text" identifier = (pointer_expression "*(char *)&((line *)b)->text" * (cast_expression "(char *)&((line *)b)->text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;)) (labeled_statement "LAB_00017de7:\n    sc = (line *)&(sc->mbstate).__value;" statement_identifier : (expression_statement "sc = (line *)&(sc->mbstate).__value;" (assignment_expression "sc = (line *)&(sc->mbstate).__value" identifier = (cast_expression "(line *)&(sc->mbstate).__value" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(sc->mbstate).__value" & (field_expression "(sc->mbstate).__value" (parenthesized_expression "(sc->mbstate)" ( (field_expression "sc->mbstate" identifier -> field_identifier) )) . field_identifier)))) ;)) (goto_statement "goto joined_r0x00017cbb;" goto statement_identifier ;)) (case_statement "case 0x4b:\n    if (no_default_output == false) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\n    if (((buffer.length == 0) && (_Var8 = test_eof(input), _Var8)) ||\n       (_Var8 = read_pattern_space(input,vec,0), !_Var8)) goto _L352;\n    if (*(_Bool *)&((line *)b)->text != false) goto LAB_00017dd0;\n    sc = (line *)&(sc->mbstate).__value;\n    in_ECX = extraout_ECX_16;\n    goto joined_r0x00018523;" case number_literal : (if_statement "if (no_default_output == false) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }" if (parenthesized_expression "(no_default_output == false)" ( (binary_expression "no_default_output == false" identifier == false) )) (compound_statement "{\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }" { (expression_statement "output_line(line.active,line.length,(uint)line.chomped,&output_file);" (call_expression "output_line(line.active,line.length,(uint)line.chomped,&output_file)" identifier (argument_list "(line.active,line.length,(uint)line.chomped,&output_file)" ( (field_expression "line.active" identifier . field_identifier) , (field_expression "line.length" identifier . field_identifier) , (cast_expression "(uint)line.chomped" ( (type_descriptor "uint" type_identifier) ) (field_expression "line.chomped" identifier . field_identifier)) , (pointer_expression "&output_file" & identifier) ))) ;) })) (if_statement "if (((buffer.length == 0) && (_Var8 = test_eof(input), _Var8)) ||\n       (_Var8 = read_pattern_space(input,vec,0), !_Var8)) goto _L352;" if (parenthesized_expression "(((buffer.length == 0) && (_Var8 = test_eof(input), _Var8)) ||\n       (_Var8 = read_pattern_space(input,vec,0), !_Var8))" ( (binary_expression "((buffer.length == 0) && (_Var8 = test_eof(input), _Var8)) ||\n       (_Var8 = read_pattern_space(input,vec,0), !_Var8)" (parenthesized_expression "((buffer.length == 0) && (_Var8 = test_eof(input), _Var8))" ( (binary_expression "(buffer.length == 0) && (_Var8 = test_eof(input), _Var8)" (parenthesized_expression "(buffer.length == 0)" ( (binary_expression "buffer.length == 0" (field_expression "buffer.length" identifier . field_identifier) == number_literal) )) && (parenthesized_expression "(_Var8 = test_eof(input), _Var8)" ( (comma_expression "_Var8 = test_eof(input), _Var8" (assignment_expression "_Var8 = test_eof(input)" identifier = (call_expression "test_eof(input)" identifier (argument_list "(input)" ( identifier )))) , identifier) ))) )) || (parenthesized_expression "(_Var8 = read_pattern_space(input,vec,0), !_Var8)" ( (comma_expression "_Var8 = read_pattern_space(input,vec,0), !_Var8" (assignment_expression "_Var8 = read_pattern_space(input,vec,0)" identifier = (call_expression "read_pattern_space(input,vec,0)" identifier (argument_list "(input,vec,0)" ( identifier , identifier , number_literal )))) , (unary_expression "!_Var8" ! identifier)) ))) )) (goto_statement "goto _L352;" goto statement_identifier ;)) (if_statement "if (*(_Bool *)&((line *)b)->text != false) goto LAB_00017dd0;" if (parenthesized_expression "(*(_Bool *)&((line *)b)->text != false)" ( (binary_expression "*(_Bool *)&((line *)b)->text != false" (pointer_expression "*(_Bool *)&((line *)b)->text" * (cast_expression "(_Bool *)&((line *)b)->text" ( (type_descriptor "_Bool *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)))) != false) )) (goto_statement "goto LAB_00017dd0;" goto statement_identifier ;)) (expression_statement "sc = (line *)&(sc->mbstate).__value;" (assignment_expression "sc = (line *)&(sc->mbstate).__value" identifier = (cast_expression "(line *)&(sc->mbstate).__value" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(sc->mbstate).__value" & (field_expression "(sc->mbstate).__value" (parenthesized_expression "(sc->mbstate)" ( (field_expression "sc->mbstate" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "in_ECX = extraout_ECX_16;" (assignment_expression "in_ECX = extraout_ECX_16" identifier = identifier) ;) (goto_statement "goto joined_r0x00018523;" goto statement_identifier ;)) (case_statement "case 0x4d:\n    poVar12 = &output_file;\n    goto LAB_00018030;" case number_literal : (expression_statement "poVar12 = &output_file;" (assignment_expression "poVar12 = &output_file" identifier = (pointer_expression "&output_file" & identifier)) ;) (goto_statement "goto LAB_00018030;" goto statement_identifier ;)) (case_statement "case 0x4e:\n    if (no_default_output == false) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }\n    dump_append_queue();\n_L358:\n    pcVar11 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (pcVar11 == (char *)0xffffffff) {\n      pcVar11 = (char *)0x0;\n    }\n    goto LAB_00017f58;" case number_literal : (if_statement "if (no_default_output == false) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }" if (parenthesized_expression "(no_default_output == false)" ( (binary_expression "no_default_output == false" identifier == false) )) (compound_statement "{\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n    }" { (expression_statement "output_line(line.active,line.length,(uint)line.chomped,&output_file);" (call_expression "output_line(line.active,line.length,(uint)line.chomped,&output_file)" identifier (argument_list "(line.active,line.length,(uint)line.chomped,&output_file)" ( (field_expression "line.active" identifier . field_identifier) , (field_expression "line.length" identifier . field_identifier) , (cast_expression "(uint)line.chomped" ( (type_descriptor "uint" type_identifier) ) (field_expression "line.chomped" identifier . field_identifier)) , (pointer_expression "&output_file" & identifier) ))) ;) })) (expression_statement "dump_append_queue();" (call_expression "dump_append_queue()" identifier (argument_list "()" ( ))) ;) (labeled_statement "_L358:\n    pcVar11 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;" statement_identifier : (expression_statement "pcVar11 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;" (assignment_expression "pcVar11 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text" identifier = (field_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text" (parenthesized_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt)" ( (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier) )) . field_identifier)) ;)) (if_statement "if (pcVar11 == (char *)0xffffffff) {\n      pcVar11 = (char *)0x0;\n    }" if (parenthesized_expression "(pcVar11 == (char *)0xffffffff)" ( (binary_expression "pcVar11 == (char *)0xffffffff" identifier == (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar11 = (char *)0x0;\n    }" { (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)) ;) })) (goto_statement "goto LAB_00017f58;" goto statement_identifier ;)) (case_statement "case 0x4f:\n    in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    if (in_ECX == (addr *)0x0) goto _L604;\n    paVar13 = next_append_slot();\n    paVar13->fname = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_08;\n    goto LAB_00017de7;" case number_literal : (expression_statement "in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;" (assignment_expression "in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text" identifier = (cast_expression "(addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text" (parenthesized_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt)" ( (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier) )) . field_identifier))) ;) (if_statement "if (in_ECX == (addr *)0x0) goto _L604;" if (parenthesized_expression "(in_ECX == (addr *)0x0)" ( (binary_expression "in_ECX == (addr *)0x0" identifier == (cast_expression "(addr *)0x0" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto _L604;" goto statement_identifier ;)) (expression_statement "paVar13 = next_append_slot();" (assignment_expression "paVar13 = next_append_slot()" identifier = (call_expression "next_append_slot()" identifier (argument_list "()" ( )))) ;) (expression_statement "paVar13->fname = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text;" (assignment_expression "paVar13->fname = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text" (field_expression "paVar13->fname" identifier -> field_identifier) = (field_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text" (parenthesized_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt)" ( (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "cVar9 = *(char *)&((line *)b)->text;" (assignment_expression "cVar9 = *(char *)&((line *)b)->text" identifier = (pointer_expression "*(char *)&((line *)b)->text" * (cast_expression "(char *)&((line *)b)->text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (expression_statement "in_ECX = extraout_ECX_08;" (assignment_expression "in_ECX = extraout_ECX_08" identifier = identifier) ;) (goto_statement "goto LAB_00017de7;" goto statement_identifier ;)) (case_statement "case 0x50:\n    regex = (regex *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;\n    line_reset(&line,plVar26);\n    bVar1 = *(byte *)&(regex->pattern).fastmap;\n    in_stack_ffffef8c = (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),bVar1);\n    sVar14 = (bVar1 >> 4) + 1;\n    local_106c = (line *)0x3dc;\n    iVar19 = match_regex((regex *)0x3dc,buf_00,(size_t)(regex->pattern).buffer,(size_t)line.active,\n                         (re_registers *)line.length,0);\n    in_ECX = extraout_ECX_09;\n    if (iVar19 == 0) goto LAB_000188c9;\n    plVar26 = (line *)*DAT_00031370;\n    plVar28 = extraout_EDX;\n    if (((*(_Bool *)&((line *)b)->text != false) && (plVar28 = regs_7164, regs_7164 != (line *)0x0))\n       && (plVar26 != (line *)0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      plVar26 = (line *)*DAT_00031370;\n      plVar28 = extraout_EDX_05;\n      if ((regs_7164 != (line *)0x0) && (plVar28 = extraout_EDX_05, plVar26 != (line *)0xffffffff))\n      {\n        plVar28 = (line *)0x0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",plVar28,plVar26,\n                       (&DAT_00031374->addr_type)[(int)plVar28],sVar14);\n          aVar15 = DAT_00031370[(int)plVar28];\n          if (aVar15 != (&DAT_00031374->addr_type)[(int)plVar28]) {\n            sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15;\n            local_1060 = 1;\n            fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7);\n          }\n          plVar30 = (line *)((int)&plVar28->text + 1);\n          puts("\'");\n          if (regs_7164 <= plVar30) {\n            plVar26 = (line *)*DAT_00031370;\n            plVar28 = extraout_EDX_06;\n            goto LAB_00018110;\n          }\n          plVar26 = (line *)DAT_00031370[(int)((int)&plVar28->text + 1)];\n          plVar28 = plVar30;\n        } while (plVar26 != (line *)0xffffffff);\n        plVar26 = (line *)*DAT_00031370;\n        plVar28 = extraout_EDX_06;\n      }\n    }\nLAB_00018110:\n    aVar15 = DAT_00031374->addr_type;\n    if (((regex->pattern).allocated != 0) || (1 < (regex->pattern).used)) {\nLAB_00018127:\n      plVar30 = (line *)0x0;\n      regsize = (line *)0x0;\n      local_1058 = 0;\n      sVar16 = local_1060;\n      do {\n        local_1060 = aVar15 - (int)plVar26;\n        in_stack_ffffef8c = plVar26;\n        if (regsize < plVar26) {\n          sVar27 = (int)plVar26 - (int)regsize;\n          pcVar11 = line.active + (int)regsize;\n          regsize = plVar26;\n          str_append(&s_accum,pcVar11,sVar27);\n          plVar26 = extraout_ECX_10;\n          plVar28 = extraout_EDX_01;\n          in_stack_ffffef8c = regsize;\n        }\n        plVar28 = (line *)CONCAT31((int3)((uint)plVar28 >> 8),\n                                   local_1058 == 0 || plVar30 < in_stack_ffffef8c);\n        if ((local_1058 == 0 || plVar30 < in_stack_ffffef8c) || (local_1060 != 0)) {\n          local_1058 = local_1058 + 1;\n          if (local_1058 < (regex->pattern).used) {\n            if (local_1060 == 0) goto LAB_0001817a;\n            goto LAB_00018190;\n          }\n          puVar5 = (undefined4 *)(regex->pattern).allocated;\n          replaced = true;\n          local_1068 = 0;\n          for (; puVar5 != (undefined4 *)0x0; puVar5 = (undefined4 *)puVar5[4]) {\n            uVar10 = puVar5[3];\n            plVar28 = (line *)puVar5[1];\n            plVar26 = (line *)puVar5[2];\n            if ((uVar10 & 0xc) == 0) {\n              uVar10 = local_1068 | uVar10;\n            }\n            uVar32 = uVar10;\n            if (plVar28 != (line *)0x0) {\n              uVar32 = uVar10 & 0xfffffff3;\n              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);\n              plVar28 = extraout_EDX_03;\n            }\n            local_1068 = 0;\n            if ((-1 < (int)plVar26) && (plVar26 < regs_7164)) {\n              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];\n              plVar26 = (line *)DAT_00031370[(int)plVar26];\n              if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }\n            }\n          }\n          regsize = (line *)((int)in_stack_ffffef8c + local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n          if (((uint)(regex->pattern).fastmap & 1) == 0) goto LAB_00018ba8;\n        }\n        else {\nLAB_0001817a:\n          local_1060 = sVar16;\n          if (line.length <= regsize) goto LAB_00018bcb;\n          local_1060 = 1;\nLAB_00018190:\n          regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060);\n          str_append(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n        }\n        plVar26 = local_106c;\n        plVar28 = (line *)line.length;\n        local_1060 = sVar16;\n        if (line.length < regsize) goto LAB_00018bcb;\n        in_stack_ffffef8c =\n             (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),\n                              *(undefined1 *)&(regex->pattern).fastmap);\n        iVar19 = match_regex(regex,(char *)line.length,(size_t)(regex->pattern).buffer,\n                             (size_t)line.active,(re_registers *)line.length,(int)regsize);\n        plVar28 = extraout_EDX_00;\n        if (iVar19 == 0) goto LAB_00018ba8;\n        plVar26 = (line *)*DAT_00031370;\n        aVar15 = DAT_00031374->addr_type;\n      } while( true );\n    }\n    plVar28 = plVar26;\n    in_ECX = DAT_00031374;\n    if ((plVar26 == (line *)0x0) &&\n       (bVar1 = *(byte *)&(regex->pattern).fastmap, plVar28 = (line *)(uint)bVar1, (bVar1 & 1) == 0)\n       ) {\n      line.length = line.length - aVar15;\n      line.active = line.active + aVar15;\n      line.alloc = line.alloc - DAT_00031374->addr_type;\n      replaced = true;\n    }\n    else {\n      if (aVar15 != line.length) goto LAB_00018127;\n      replaced = true;\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n      line.length = (size_t)plVar26;\n    }\n    goto LAB_00018bf8;" case number_literal : (expression_statement "regex = (regex *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;" (assignment_expression "regex = (regex *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst" identifier = (cast_expression "(regex *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst" ( (type_descriptor "regex *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier))) ;) (expression_statement "line_reset(&line,plVar26);" (call_expression "line_reset(&line,plVar26)" identifier (argument_list "(&line,plVar26)" ( (pointer_expression "&line" & identifier) , identifier ))) ;) (expression_statement "bVar1 = *(byte *)&(regex->pattern).fastmap;" (assignment_expression "bVar1 = *(byte *)&(regex->pattern).fastmap" identifier = (pointer_expression "*(byte *)&(regex->pattern).fastmap" * (cast_expression "(byte *)&(regex->pattern).fastmap" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(regex->pattern).fastmap" & (field_expression "(regex->pattern).fastmap" (parenthesized_expression "(regex->pattern)" ( (field_expression "regex->pattern" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "in_stack_ffffef8c = (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),bVar1);" (assignment_expression "in_stack_ffffef8c = (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),bVar1)" identifier = (cast_expression "(line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),bVar1)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),bVar1)" identifier (argument_list "((int3)((uint)in_stack_ffffef8c >> 8),bVar1)" ( (call_expression "(int3)((uint)in_stack_ffffef8c >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)in_stack_ffffef8c >> 8)" ( (binary_expression "(uint)in_stack_ffffef8c >> 8" (cast_expression "(uint)in_stack_ffffef8c" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , identifier ))))) ;) (expression_statement "sVar14 = (bVar1 >> 4) + 1;" (assignment_expression "sVar14 = (bVar1 >> 4) + 1" identifier = (binary_expression "(bVar1 >> 4) + 1" (parenthesized_expression "(bVar1 >> 4)" ( (binary_expression "bVar1 >> 4" identifier >> number_literal) )) + number_literal)) ;) (expression_statement "local_106c = (line *)0x3dc;" (assignment_expression "local_106c = (line *)0x3dc" identifier = (cast_expression "(line *)0x3dc" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = match_regex((regex *)0x3dc,buf_00,(size_t)(regex->pattern).buffer,(size_t)line.active,\n                         (re_registers *)line.length,0);" (assignment_expression "iVar19 = match_regex((regex *)0x3dc,buf_00,(size_t)(regex->pattern).buffer,(size_t)line.active,\n                         (re_registers *)line.length,0)" identifier = (call_expression "match_regex((regex *)0x3dc,buf_00,(size_t)(regex->pattern).buffer,(size_t)line.active,\n                         (re_registers *)line.length,0)" identifier (argument_list "((regex *)0x3dc,buf_00,(size_t)(regex->pattern).buffer,(size_t)line.active,\n                         (re_registers *)line.length,0)" ( (cast_expression "(regex *)0x3dc" ( (type_descriptor "regex *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(size_t)(regex->pattern).buffer" ( (type_descriptor "size_t" primitive_type) ) (field_expression "(regex->pattern).buffer" (parenthesized_expression "(regex->pattern)" ( (field_expression "regex->pattern" identifier -> field_identifier) )) . field_identifier)) , (cast_expression "(size_t)line.active" ( (type_descriptor "size_t" primitive_type) ) (field_expression "line.active" identifier . field_identifier)) , (cast_expression "(re_registers *)line.length" ( (type_descriptor "re_registers *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "line.length" identifier . field_identifier)) , number_literal )))) ;) (expression_statement "in_ECX = extraout_ECX_09;" (assignment_expression "in_ECX = extraout_ECX_09" identifier = identifier) ;) (if_statement "if (iVar19 == 0) goto LAB_000188c9;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000188c9;" goto statement_identifier ;)) (expression_statement "plVar26 = (line *)*DAT_00031370;" (assignment_expression "plVar26 = (line *)*DAT_00031370" identifier = (cast_expression "(line *)*DAT_00031370" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00031370" * identifier))) ;) (expression_statement "plVar28 = extraout_EDX;" (assignment_expression "plVar28 = extraout_EDX" identifier = identifier) ;) (if_statement "if (((*(_Bool *)&((line *)b)->text != false) && (plVar28 = regs_7164, regs_7164 != (line *)0x0))\n       && (plVar26 != (line *)0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      plVar26 = (line *)*DAT_00031370;\n      plVar28 = extraout_EDX_05;\n      if ((regs_7164 != (line *)0x0) && (plVar28 = extraout_EDX_05, plVar26 != (line *)0xffffffff))\n      {\n        plVar28 = (line *)0x0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",plVar28,plVar26,\n                       (&DAT_00031374->addr_type)[(int)plVar28],sVar14);\n          aVar15 = DAT_00031370[(int)plVar28];\n          if (aVar15 != (&DAT_00031374->addr_type)[(int)plVar28]) {\n            sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15;\n            local_1060 = 1;\n            fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7);\n          }\n          plVar30 = (line *)((int)&plVar28->text + 1);\n          puts("\'");\n          if (regs_7164 <= plVar30) {\n            plVar26 = (line *)*DAT_00031370;\n            plVar28 = extraout_EDX_06;\n            goto LAB_00018110;\n          }\n          plVar26 = (line *)DAT_00031370[(int)((int)&plVar28->text + 1)];\n          plVar28 = plVar30;\n        } while (plVar26 != (line *)0xffffffff);\n        plVar26 = (line *)*DAT_00031370;\n        plVar28 = extraout_EDX_06;\n      }\n    }" if (parenthesized_expression "(((*(_Bool *)&((line *)b)->text != false) && (plVar28 = regs_7164, regs_7164 != (line *)0x0))\n       && (plVar26 != (line *)0xffffffff))" ( (binary_expression "((*(_Bool *)&((line *)b)->text != false) && (plVar28 = regs_7164, regs_7164 != (line *)0x0))\n       && (plVar26 != (line *)0xffffffff)" (parenthesized_expression "((*(_Bool *)&((line *)b)->text != false) && (plVar28 = regs_7164, regs_7164 != (line *)0x0))" ( (binary_expression "(*(_Bool *)&((line *)b)->text != false) && (plVar28 = regs_7164, regs_7164 != (line *)0x0)" (parenthesized_expression "(*(_Bool *)&((line *)b)->text != false)" ( (binary_expression "*(_Bool *)&((line *)b)->text != false" (pointer_expression "*(_Bool *)&((line *)b)->text" * (cast_expression "(_Bool *)&((line *)b)->text" ( (type_descriptor "_Bool *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)))) != false) )) && (parenthesized_expression "(plVar28 = regs_7164, regs_7164 != (line *)0x0)" ( (comma_expression "plVar28 = regs_7164, regs_7164 != (line *)0x0" (assignment_expression "plVar28 = regs_7164" identifier = identifier) , (binary_expression "regs_7164 != (line *)0x0" identifier != (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(plVar26 != (line *)0xffffffff)" ( (binary_expression "plVar26 != (line *)0xffffffff" identifier != (cast_expression "(line *)0xffffffff" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      puts("MATCHED REGEX REGISTERS");\n      plVar26 = (line *)*DAT_00031370;\n      plVar28 = extraout_EDX_05;\n      if ((regs_7164 != (line *)0x0) && (plVar28 = extraout_EDX_05, plVar26 != (line *)0xffffffff))\n      {\n        plVar28 = (line *)0x0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",plVar28,plVar26,\n                       (&DAT_00031374->addr_type)[(int)plVar28],sVar14);\n          aVar15 = DAT_00031370[(int)plVar28];\n          if (aVar15 != (&DAT_00031374->addr_type)[(int)plVar28]) {\n            sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15;\n            local_1060 = 1;\n            fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7);\n          }\n          plVar30 = (line *)((int)&plVar28->text + 1);\n          puts("\'");\n          if (regs_7164 <= plVar30) {\n            plVar26 = (line *)*DAT_00031370;\n            plVar28 = extraout_EDX_06;\n            goto LAB_00018110;\n          }\n          plVar26 = (line *)DAT_00031370[(int)((int)&plVar28->text + 1)];\n          plVar28 = plVar30;\n        } while (plVar26 != (line *)0xffffffff);\n        plVar26 = (line *)*DAT_00031370;\n        plVar28 = extraout_EDX_06;\n      }\n    }" { (expression_statement "puts("MATCHED REGEX REGISTERS");" (call_expression "puts("MATCHED REGEX REGISTERS")" identifier (argument_list "("MATCHED REGEX REGISTERS")" ( (string_literal ""MATCHED REGEX REGISTERS"" " string_content ") ))) ;) (expression_statement "plVar26 = (line *)*DAT_00031370;" (assignment_expression "plVar26 = (line *)*DAT_00031370" identifier = (cast_expression "(line *)*DAT_00031370" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00031370" * identifier))) ;) (expression_statement "plVar28 = extraout_EDX_05;" (assignment_expression "plVar28 = extraout_EDX_05" identifier = identifier) ;) (if_statement "if ((regs_7164 != (line *)0x0) && (plVar28 = extraout_EDX_05, plVar26 != (line *)0xffffffff))\n      {\n        plVar28 = (line *)0x0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",plVar28,plVar26,\n                       (&DAT_00031374->addr_type)[(int)plVar28],sVar14);\n          aVar15 = DAT_00031370[(int)plVar28];\n          if (aVar15 != (&DAT_00031374->addr_type)[(int)plVar28]) {\n            sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15;\n            local_1060 = 1;\n            fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7);\n          }\n          plVar30 = (line *)((int)&plVar28->text + 1);\n          puts("\'");\n          if (regs_7164 <= plVar30) {\n            plVar26 = (line *)*DAT_00031370;\n            plVar28 = extraout_EDX_06;\n            goto LAB_00018110;\n          }\n          plVar26 = (line *)DAT_00031370[(int)((int)&plVar28->text + 1)];\n          plVar28 = plVar30;\n        } while (plVar26 != (line *)0xffffffff);\n        plVar26 = (line *)*DAT_00031370;\n        plVar28 = extraout_EDX_06;\n      }" if (parenthesized_expression "((regs_7164 != (line *)0x0) && (plVar28 = extraout_EDX_05, plVar26 != (line *)0xffffffff))" ( (binary_expression "(regs_7164 != (line *)0x0) && (plVar28 = extraout_EDX_05, plVar26 != (line *)0xffffffff)" (parenthesized_expression "(regs_7164 != (line *)0x0)" ( (binary_expression "regs_7164 != (line *)0x0" identifier != (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(plVar28 = extraout_EDX_05, plVar26 != (line *)0xffffffff)" ( (comma_expression "plVar28 = extraout_EDX_05, plVar26 != (line *)0xffffffff" (assignment_expression "plVar28 = extraout_EDX_05" identifier = identifier) , (binary_expression "plVar26 != (line *)0xffffffff" identifier != (cast_expression "(line *)0xffffffff" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        plVar28 = (line *)0x0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",plVar28,plVar26,\n                       (&DAT_00031374->addr_type)[(int)plVar28],sVar14);\n          aVar15 = DAT_00031370[(int)plVar28];\n          if (aVar15 != (&DAT_00031374->addr_type)[(int)plVar28]) {\n            sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15;\n            local_1060 = 1;\n            fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7);\n          }\n          plVar30 = (line *)((int)&plVar28->text + 1);\n          puts("\'");\n          if (regs_7164 <= plVar30) {\n            plVar26 = (line *)*DAT_00031370;\n            plVar28 = extraout_EDX_06;\n            goto LAB_00018110;\n          }\n          plVar26 = (line *)DAT_00031370[(int)((int)&plVar28->text + 1)];\n          plVar28 = plVar30;\n        } while (plVar26 != (line *)0xffffffff);\n        plVar26 = (line *)*DAT_00031370;\n        plVar28 = extraout_EDX_06;\n      }" { (expression_statement "plVar28 = (line *)0x0;" (assignment_expression "plVar28 = (line *)0x0" identifier = (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",plVar28,plVar26,\n                       (&DAT_00031374->addr_type)[(int)plVar28],sVar14);\n          aVar15 = DAT_00031370[(int)plVar28];\n          if (aVar15 != (&DAT_00031374->addr_type)[(int)plVar28]) {\n            sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15;\n            local_1060 = 1;\n            fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7);\n          }\n          plVar30 = (line *)((int)&plVar28->text + 1);\n          puts("\'");\n          if (regs_7164 <= plVar30) {\n            plVar26 = (line *)*DAT_00031370;\n            plVar28 = extraout_EDX_06;\n            goto LAB_00018110;\n          }\n          plVar26 = (line *)DAT_00031370[(int)((int)&plVar28->text + 1)];\n          plVar28 = plVar30;\n        } while (plVar26 != (line *)0xffffffff);" do (compound_statement "{\n          __printf_chk(1,"  regex[%d] = %d-%d \'",plVar28,plVar26,\n                       (&DAT_00031374->addr_type)[(int)plVar28],sVar14);\n          aVar15 = DAT_00031370[(int)plVar28];\n          if (aVar15 != (&DAT_00031374->addr_type)[(int)plVar28]) {\n            sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15;\n            local_1060 = 1;\n            fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7);\n          }\n          plVar30 = (line *)((int)&plVar28->text + 1);\n          puts("\'");\n          if (regs_7164 <= plVar30) {\n            plVar26 = (line *)*DAT_00031370;\n            plVar28 = extraout_EDX_06;\n            goto LAB_00018110;\n          }\n          plVar26 = (line *)DAT_00031370[(int)((int)&plVar28->text + 1)];\n          plVar28 = plVar30;\n        }" { (expression_statement "__printf_chk(1,"  regex[%d] = %d-%d \'",plVar28,plVar26,\n                       (&DAT_00031374->addr_type)[(int)plVar28],sVar14);" (call_expression "__printf_chk(1,"  regex[%d] = %d-%d \'",plVar28,plVar26,\n                       (&DAT_00031374->addr_type)[(int)plVar28],sVar14)" identifier (argument_list "(1,"  regex[%d] = %d-%d \'",plVar28,plVar26,\n                       (&DAT_00031374->addr_type)[(int)plVar28],sVar14)" ( number_literal , (string_literal ""  regex[%d] = %d-%d \'"" " string_content escape_sequence ") , identifier , identifier , (subscript_expression "(&DAT_00031374->addr_type)[(int)plVar28]" (parenthesized_expression "(&DAT_00031374->addr_type)" ( (pointer_expression "&DAT_00031374->addr_type" & (field_expression "DAT_00031374->addr_type" identifier -> field_identifier)) )) [ (cast_expression "(int)plVar28" ( (type_descriptor "int" primitive_type) ) identifier) ]) , identifier ))) ;) (expression_statement "aVar15 = DAT_00031370[(int)plVar28];" (assignment_expression "aVar15 = DAT_00031370[(int)plVar28]" identifier = (subscript_expression "DAT_00031370[(int)plVar28]" identifier [ (cast_expression "(int)plVar28" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (if_statement "if (aVar15 != (&DAT_00031374->addr_type)[(int)plVar28]) {\n            sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15;\n            local_1060 = 1;\n            fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7);\n          }" if (parenthesized_expression "(aVar15 != (&DAT_00031374->addr_type)[(int)plVar28])" ( (binary_expression "aVar15 != (&DAT_00031374->addr_type)[(int)plVar28]" identifier != (subscript_expression "(&DAT_00031374->addr_type)[(int)plVar28]" (parenthesized_expression "(&DAT_00031374->addr_type)" ( (pointer_expression "&DAT_00031374->addr_type" & (field_expression "DAT_00031374->addr_type" identifier -> field_identifier)) )) [ (cast_expression "(int)plVar28" ( (type_descriptor "int" primitive_type) ) identifier) ])) )) (compound_statement "{\n            sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15;\n            local_1060 = 1;\n            fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7);\n          }" { (expression_statement "sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15;" (assignment_expression "sVar14 = (&DAT_00031374->addr_type)[(int)plVar28] - aVar15" identifier = (binary_expression "(&DAT_00031374->addr_type)[(int)plVar28] - aVar15" (subscript_expression "(&DAT_00031374->addr_type)[(int)plVar28]" (parenthesized_expression "(&DAT_00031374->addr_type)" ( (pointer_expression "&DAT_00031374->addr_type" & (field_expression "DAT_00031374->addr_type" identifier -> field_identifier)) )) [ (cast_expression "(int)plVar28" ( (type_descriptor "int" primitive_type) ) identifier) ]) - identifier)) ;) (expression_statement "local_1060 = 1;" (assignment_expression "local_1060 = 1" identifier = number_literal) ;) (expression_statement "fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7);" (call_expression "fwrite_unlocked(line.active + aVar15,sVar14,1,*(FILE **)puVar7)" identifier (argument_list "(line.active + aVar15,sVar14,1,*(FILE **)puVar7)" ( (binary_expression "line.active + aVar15" (field_expression "line.active" identifier . field_identifier) + identifier) , identifier , number_literal , (pointer_expression "*(FILE **)puVar7" * (cast_expression "(FILE **)puVar7" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) })) (expression_statement "plVar30 = (line *)((int)&plVar28->text + 1);" (assignment_expression "plVar30 = (line *)((int)&plVar28->text + 1)" identifier = (cast_expression "(line *)((int)&plVar28->text + 1)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&plVar28->text + 1)" ( (binary_expression "(int)&plVar28->text + 1" (cast_expression "(int)&plVar28->text" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&plVar28->text" & (field_expression "plVar28->text" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "puts("\'");" (call_expression "puts("\'")" identifier (argument_list "("\'")" ( (string_literal ""\'"" " escape_sequence ") ))) ;) (if_statement "if (regs_7164 <= plVar30) {\n            plVar26 = (line *)*DAT_00031370;\n            plVar28 = extraout_EDX_06;\n            goto LAB_00018110;\n          }" if (parenthesized_expression "(regs_7164 <= plVar30)" ( (binary_expression "regs_7164 <= plVar30" identifier <= identifier) )) (compound_statement "{\n            plVar26 = (line *)*DAT_00031370;\n            plVar28 = extraout_EDX_06;\n            goto LAB_00018110;\n          }" { (expression_statement "plVar26 = (line *)*DAT_00031370;" (assignment_expression "plVar26 = (line *)*DAT_00031370" identifier = (cast_expression "(line *)*DAT_00031370" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00031370" * identifier))) ;) (expression_statement "plVar28 = extraout_EDX_06;" (assignment_expression "plVar28 = extraout_EDX_06" identifier = identifier) ;) (goto_statement "goto LAB_00018110;" goto statement_identifier ;) })) (expression_statement "plVar26 = (line *)DAT_00031370[(int)((int)&plVar28->text + 1)];" (assignment_expression "plVar26 = (line *)DAT_00031370[(int)((int)&plVar28->text + 1)]" identifier = (cast_expression "(line *)DAT_00031370[(int)((int)&plVar28->text + 1)]" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_00031370[(int)((int)&plVar28->text + 1)]" identifier [ (cast_expression "(int)((int)&plVar28->text + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&plVar28->text + 1)" ( (binary_expression "(int)&plVar28->text + 1" (cast_expression "(int)&plVar28->text" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&plVar28->text" & (field_expression "plVar28->text" identifier -> field_identifier))) + number_literal) ))) ]))) ;) (expression_statement "plVar28 = plVar30;" (assignment_expression "plVar28 = plVar30" identifier = identifier) ;) }) while (parenthesized_expression "(plVar26 != (line *)0xffffffff)" ( (binary_expression "plVar26 != (line *)0xffffffff" identifier != (cast_expression "(line *)0xffffffff" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "plVar26 = (line *)*DAT_00031370;" (assignment_expression "plVar26 = (line *)*DAT_00031370" identifier = (cast_expression "(line *)*DAT_00031370" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00031370" * identifier))) ;) (expression_statement "plVar28 = extraout_EDX_06;" (assignment_expression "plVar28 = extraout_EDX_06" identifier = identifier) ;) })) })) (labeled_statement "LAB_00018110:\n    aVar15 = DAT_00031374->addr_type;" statement_identifier : (expression_statement "aVar15 = DAT_00031374->addr_type;" (assignment_expression "aVar15 = DAT_00031374->addr_type" identifier = (field_expression "DAT_00031374->addr_type" identifier -> field_identifier)) ;)) (if_statement "if (((regex->pattern).allocated != 0) || (1 < (regex->pattern).used)) {\nLAB_00018127:\n      plVar30 = (line *)0x0;\n      regsize = (line *)0x0;\n      local_1058 = 0;\n      sVar16 = local_1060;\n      do {\n        local_1060 = aVar15 - (int)plVar26;\n        in_stack_ffffef8c = plVar26;\n        if (regsize < plVar26) {\n          sVar27 = (int)plVar26 - (int)regsize;\n          pcVar11 = line.active + (int)regsize;\n          regsize = plVar26;\n          str_append(&s_accum,pcVar11,sVar27);\n          plVar26 = extraout_ECX_10;\n          plVar28 = extraout_EDX_01;\n          in_stack_ffffef8c = regsize;\n        }\n        plVar28 = (line *)CONCAT31((int3)((uint)plVar28 >> 8),\n                                   local_1058 == 0 || plVar30 < in_stack_ffffef8c);\n        if ((local_1058 == 0 || plVar30 < in_stack_ffffef8c) || (local_1060 != 0)) {\n          local_1058 = local_1058 + 1;\n          if (local_1058 < (regex->pattern).used) {\n            if (local_1060 == 0) goto LAB_0001817a;\n            goto LAB_00018190;\n          }\n          puVar5 = (undefined4 *)(regex->pattern).allocated;\n          replaced = true;\n          local_1068 = 0;\n          for (; puVar5 != (undefined4 *)0x0; puVar5 = (undefined4 *)puVar5[4]) {\n            uVar10 = puVar5[3];\n            plVar28 = (line *)puVar5[1];\n            plVar26 = (line *)puVar5[2];\n            if ((uVar10 & 0xc) == 0) {\n              uVar10 = local_1068 | uVar10;\n            }\n            uVar32 = uVar10;\n            if (plVar28 != (line *)0x0) {\n              uVar32 = uVar10 & 0xfffffff3;\n              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);\n              plVar28 = extraout_EDX_03;\n            }\n            local_1068 = 0;\n            if ((-1 < (int)plVar26) && (plVar26 < regs_7164)) {\n              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];\n              plVar26 = (line *)DAT_00031370[(int)plVar26];\n              if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }\n            }\n          }\n          regsize = (line *)((int)in_stack_ffffef8c + local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n          if (((uint)(regex->pattern).fastmap & 1) == 0) goto LAB_00018ba8;\n        }\n        else {\nLAB_0001817a:\n          local_1060 = sVar16;\n          if (line.length <= regsize) goto LAB_00018bcb;\n          local_1060 = 1;\nLAB_00018190:\n          regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060);\n          str_append(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n        }\n        plVar26 = local_106c;\n        plVar28 = (line *)line.length;\n        local_1060 = sVar16;\n        if (line.length < regsize) goto LAB_00018bcb;\n        in_stack_ffffef8c =\n             (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),\n                              *(undefined1 *)&(regex->pattern).fastmap);\n        iVar19 = match_regex(regex,(char *)line.length,(size_t)(regex->pattern).buffer,\n                             (size_t)line.active,(re_registers *)line.length,(int)regsize);\n        plVar28 = extraout_EDX_00;\n        if (iVar19 == 0) goto LAB_00018ba8;\n        plVar26 = (line *)*DAT_00031370;\n        aVar15 = DAT_00031374->addr_type;\n      } while( true );\n    }" if (parenthesized_expression "(((regex->pattern).allocated != 0) || (1 < (regex->pattern).used))" ( (binary_expression "((regex->pattern).allocated != 0) || (1 < (regex->pattern).used)" (parenthesized_expression "((regex->pattern).allocated != 0)" ( (binary_expression "(regex->pattern).allocated != 0" (field_expression "(regex->pattern).allocated" (parenthesized_expression "(regex->pattern)" ( (field_expression "regex->pattern" identifier -> field_identifier) )) . field_identifier) != number_literal) )) || (parenthesized_expression "(1 < (regex->pattern).used)" ( (binary_expression "1 < (regex->pattern).used" number_literal < (field_expression "(regex->pattern).used" (parenthesized_expression "(regex->pattern)" ( (field_expression "regex->pattern" identifier -> field_identifier) )) . field_identifier)) ))) )) (compound_statement "{\nLAB_00018127:\n      plVar30 = (line *)0x0;\n      regsize = (line *)0x0;\n      local_1058 = 0;\n      sVar16 = local_1060;\n      do {\n        local_1060 = aVar15 - (int)plVar26;\n        in_stack_ffffef8c = plVar26;\n        if (regsize < plVar26) {\n          sVar27 = (int)plVar26 - (int)regsize;\n          pcVar11 = line.active + (int)regsize;\n          regsize = plVar26;\n          str_append(&s_accum,pcVar11,sVar27);\n          plVar26 = extraout_ECX_10;\n          plVar28 = extraout_EDX_01;\n          in_stack_ffffef8c = regsize;\n        }\n        plVar28 = (line *)CONCAT31((int3)((uint)plVar28 >> 8),\n                                   local_1058 == 0 || plVar30 < in_stack_ffffef8c);\n        if ((local_1058 == 0 || plVar30 < in_stack_ffffef8c) || (local_1060 != 0)) {\n          local_1058 = local_1058 + 1;\n          if (local_1058 < (regex->pattern).used) {\n            if (local_1060 == 0) goto LAB_0001817a;\n            goto LAB_00018190;\n          }\n          puVar5 = (undefined4 *)(regex->pattern).allocated;\n          replaced = true;\n          local_1068 = 0;\n          for (; puVar5 != (undefined4 *)0x0; puVar5 = (undefined4 *)puVar5[4]) {\n            uVar10 = puVar5[3];\n            plVar28 = (line *)puVar5[1];\n            plVar26 = (line *)puVar5[2];\n            if ((uVar10 & 0xc) == 0) {\n              uVar10 = local_1068 | uVar10;\n            }\n            uVar32 = uVar10;\n            if (plVar28 != (line *)0x0) {\n              uVar32 = uVar10 & 0xfffffff3;\n              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);\n              plVar28 = extraout_EDX_03;\n            }\n            local_1068 = 0;\n            if ((-1 < (int)plVar26) && (plVar26 < regs_7164)) {\n              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];\n              plVar26 = (line *)DAT_00031370[(int)plVar26];\n              if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }\n            }\n          }\n          regsize = (line *)((int)in_stack_ffffef8c + local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n          if (((uint)(regex->pattern).fastmap & 1) == 0) goto LAB_00018ba8;\n        }\n        else {\nLAB_0001817a:\n          local_1060 = sVar16;\n          if (line.length <= regsize) goto LAB_00018bcb;\n          local_1060 = 1;\nLAB_00018190:\n          regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060);\n          str_append(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n        }\n        plVar26 = local_106c;\n        plVar28 = (line *)line.length;\n        local_1060 = sVar16;\n        if (line.length < regsize) goto LAB_00018bcb;\n        in_stack_ffffef8c =\n             (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),\n                              *(undefined1 *)&(regex->pattern).fastmap);\n        iVar19 = match_regex(regex,(char *)line.length,(size_t)(regex->pattern).buffer,\n                             (size_t)line.active,(re_registers *)line.length,(int)regsize);\n        plVar28 = extraout_EDX_00;\n        if (iVar19 == 0) goto LAB_00018ba8;\n        plVar26 = (line *)*DAT_00031370;\n        aVar15 = DAT_00031374->addr_type;\n      } while( true );\n    }" { (labeled_statement "LAB_00018127:\n      plVar30 = (line *)0x0;" statement_identifier : (expression_statement "plVar30 = (line *)0x0;" (assignment_expression "plVar30 = (line *)0x0" identifier = (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "regsize = (line *)0x0;" (assignment_expression "regsize = (line *)0x0" identifier = (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_1058 = 0;" (assignment_expression "local_1058 = 0" identifier = number_literal) ;) (expression_statement "sVar16 = local_1060;" (assignment_expression "sVar16 = local_1060" identifier = identifier) ;) (do_statement "do {\n        local_1060 = aVar15 - (int)plVar26;\n        in_stack_ffffef8c = plVar26;\n        if (regsize < plVar26) {\n          sVar27 = (int)plVar26 - (int)regsize;\n          pcVar11 = line.active + (int)regsize;\n          regsize = plVar26;\n          str_append(&s_accum,pcVar11,sVar27);\n          plVar26 = extraout_ECX_10;\n          plVar28 = extraout_EDX_01;\n          in_stack_ffffef8c = regsize;\n        }\n        plVar28 = (line *)CONCAT31((int3)((uint)plVar28 >> 8),\n                                   local_1058 == 0 || plVar30 < in_stack_ffffef8c);\n        if ((local_1058 == 0 || plVar30 < in_stack_ffffef8c) || (local_1060 != 0)) {\n          local_1058 = local_1058 + 1;\n          if (local_1058 < (regex->pattern).used) {\n            if (local_1060 == 0) goto LAB_0001817a;\n            goto LAB_00018190;\n          }\n          puVar5 = (undefined4 *)(regex->pattern).allocated;\n          replaced = true;\n          local_1068 = 0;\n          for (; puVar5 != (undefined4 *)0x0; puVar5 = (undefined4 *)puVar5[4]) {\n            uVar10 = puVar5[3];\n            plVar28 = (line *)puVar5[1];\n            plVar26 = (line *)puVar5[2];\n            if ((uVar10 & 0xc) == 0) {\n              uVar10 = local_1068 | uVar10;\n            }\n            uVar32 = uVar10;\n            if (plVar28 != (line *)0x0) {\n              uVar32 = uVar10 & 0xfffffff3;\n              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);\n              plVar28 = extraout_EDX_03;\n            }\n            local_1068 = 0;\n            if ((-1 < (int)plVar26) && (plVar26 < regs_7164)) {\n              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];\n              plVar26 = (line *)DAT_00031370[(int)plVar26];\n              if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }\n            }\n          }\n          regsize = (line *)((int)in_stack_ffffef8c + local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n          if (((uint)(regex->pattern).fastmap & 1) == 0) goto LAB_00018ba8;\n        }\n        else {\nLAB_0001817a:\n          local_1060 = sVar16;\n          if (line.length <= regsize) goto LAB_00018bcb;\n          local_1060 = 1;\nLAB_00018190:\n          regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060);\n          str_append(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n        }\n        plVar26 = local_106c;\n        plVar28 = (line *)line.length;\n        local_1060 = sVar16;\n        if (line.length < regsize) goto LAB_00018bcb;\n        in_stack_ffffef8c =\n             (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),\n                              *(undefined1 *)&(regex->pattern).fastmap);\n        iVar19 = match_regex(regex,(char *)line.length,(size_t)(regex->pattern).buffer,\n                             (size_t)line.active,(re_registers *)line.length,(int)regsize);\n        plVar28 = extraout_EDX_00;\n        if (iVar19 == 0) goto LAB_00018ba8;\n        plVar26 = (line *)*DAT_00031370;\n        aVar15 = DAT_00031374->addr_type;\n      } while( true );" do (compound_statement "{\n        local_1060 = aVar15 - (int)plVar26;\n        in_stack_ffffef8c = plVar26;\n        if (regsize < plVar26) {\n          sVar27 = (int)plVar26 - (int)regsize;\n          pcVar11 = line.active + (int)regsize;\n          regsize = plVar26;\n          str_append(&s_accum,pcVar11,sVar27);\n          plVar26 = extraout_ECX_10;\n          plVar28 = extraout_EDX_01;\n          in_stack_ffffef8c = regsize;\n        }\n        plVar28 = (line *)CONCAT31((int3)((uint)plVar28 >> 8),\n                                   local_1058 == 0 || plVar30 < in_stack_ffffef8c);\n        if ((local_1058 == 0 || plVar30 < in_stack_ffffef8c) || (local_1060 != 0)) {\n          local_1058 = local_1058 + 1;\n          if (local_1058 < (regex->pattern).used) {\n            if (local_1060 == 0) goto LAB_0001817a;\n            goto LAB_00018190;\n          }\n          puVar5 = (undefined4 *)(regex->pattern).allocated;\n          replaced = true;\n          local_1068 = 0;\n          for (; puVar5 != (undefined4 *)0x0; puVar5 = (undefined4 *)puVar5[4]) {\n            uVar10 = puVar5[3];\n            plVar28 = (line *)puVar5[1];\n            plVar26 = (line *)puVar5[2];\n            if ((uVar10 & 0xc) == 0) {\n              uVar10 = local_1068 | uVar10;\n            }\n            uVar32 = uVar10;\n            if (plVar28 != (line *)0x0) {\n              uVar32 = uVar10 & 0xfffffff3;\n              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);\n              plVar28 = extraout_EDX_03;\n            }\n            local_1068 = 0;\n            if ((-1 < (int)plVar26) && (plVar26 < regs_7164)) {\n              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];\n              plVar26 = (line *)DAT_00031370[(int)plVar26];\n              if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }\n            }\n          }\n          regsize = (line *)((int)in_stack_ffffef8c + local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n          if (((uint)(regex->pattern).fastmap & 1) == 0) goto LAB_00018ba8;\n        }\n        else {\nLAB_0001817a:\n          local_1060 = sVar16;\n          if (line.length <= regsize) goto LAB_00018bcb;\n          local_1060 = 1;\nLAB_00018190:\n          regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060);\n          str_append(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n        }\n        plVar26 = local_106c;\n        plVar28 = (line *)line.length;\n        local_1060 = sVar16;\n        if (line.length < regsize) goto LAB_00018bcb;\n        in_stack_ffffef8c =\n             (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),\n                              *(undefined1 *)&(regex->pattern).fastmap);\n        iVar19 = match_regex(regex,(char *)line.length,(size_t)(regex->pattern).buffer,\n                             (size_t)line.active,(re_registers *)line.length,(int)regsize);\n        plVar28 = extraout_EDX_00;\n        if (iVar19 == 0) goto LAB_00018ba8;\n        plVar26 = (line *)*DAT_00031370;\n        aVar15 = DAT_00031374->addr_type;\n      }" { (expression_statement "local_1060 = aVar15 - (int)plVar26;" (assignment_expression "local_1060 = aVar15 - (int)plVar26" identifier = (binary_expression "aVar15 - (int)plVar26" identifier - (cast_expression "(int)plVar26" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "in_stack_ffffef8c = plVar26;" (assignment_expression "in_stack_ffffef8c = plVar26" identifier = identifier) ;) (if_statement "if (regsize < plVar26) {\n          sVar27 = (int)plVar26 - (int)regsize;\n          pcVar11 = line.active + (int)regsize;\n          regsize = plVar26;\n          str_append(&s_accum,pcVar11,sVar27);\n          plVar26 = extraout_ECX_10;\n          plVar28 = extraout_EDX_01;\n          in_stack_ffffef8c = regsize;\n        }" if (parenthesized_expression "(regsize < plVar26)" ( (binary_expression "regsize < plVar26" identifier < identifier) )) (compound_statement "{\n          sVar27 = (int)plVar26 - (int)regsize;\n          pcVar11 = line.active + (int)regsize;\n          regsize = plVar26;\n          str_append(&s_accum,pcVar11,sVar27);\n          plVar26 = extraout_ECX_10;\n          plVar28 = extraout_EDX_01;\n          in_stack_ffffef8c = regsize;\n        }" { (expression_statement "sVar27 = (int)plVar26 - (int)regsize;" (assignment_expression "sVar27 = (int)plVar26 - (int)regsize" identifier = (binary_expression "(int)plVar26 - (int)regsize" (cast_expression "(int)plVar26" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)regsize" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pcVar11 = line.active + (int)regsize;" (assignment_expression "pcVar11 = line.active + (int)regsize" identifier = (binary_expression "line.active + (int)regsize" (field_expression "line.active" identifier . field_identifier) + (cast_expression "(int)regsize" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "regsize = plVar26;" (assignment_expression "regsize = plVar26" identifier = identifier) ;) (expression_statement "str_append(&s_accum,pcVar11,sVar27);" (call_expression "str_append(&s_accum,pcVar11,sVar27)" identifier (argument_list "(&s_accum,pcVar11,sVar27)" ( (pointer_expression "&s_accum" & identifier) , identifier , identifier ))) ;) (expression_statement "plVar26 = extraout_ECX_10;" (assignment_expression "plVar26 = extraout_ECX_10" identifier = identifier) ;) (expression_statement "plVar28 = extraout_EDX_01;" (assignment_expression "plVar28 = extraout_EDX_01" identifier = identifier) ;) (expression_statement "in_stack_ffffef8c = regsize;" (assignment_expression "in_stack_ffffef8c = regsize" identifier = identifier) ;) })) (expression_statement "plVar28 = (line *)CONCAT31((int3)((uint)plVar28 >> 8),\n                                   local_1058 == 0 || plVar30 < in_stack_ffffef8c);" (assignment_expression "plVar28 = (line *)CONCAT31((int3)((uint)plVar28 >> 8),\n                                   local_1058 == 0 || plVar30 < in_stack_ffffef8c)" identifier = (cast_expression "(line *)CONCAT31((int3)((uint)plVar28 >> 8),\n                                   local_1058 == 0 || plVar30 < in_stack_ffffef8c)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31((int3)((uint)plVar28 >> 8),\n                                   local_1058 == 0 || plVar30 < in_stack_ffffef8c)" identifier (argument_list "((int3)((uint)plVar28 >> 8),\n                                   local_1058 == 0 || plVar30 < in_stack_ffffef8c)" ( (call_expression "(int3)((uint)plVar28 >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)plVar28 >> 8)" ( (binary_expression "(uint)plVar28 >> 8" (cast_expression "(uint)plVar28" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (binary_expression "local_1058 == 0 || plVar30 < in_stack_ffffef8c" (binary_expression "local_1058 == 0" identifier == number_literal) || (binary_expression "plVar30 < in_stack_ffffef8c" identifier < identifier)) ))))) ;) (if_statement "if ((local_1058 == 0 || plVar30 < in_stack_ffffef8c) || (local_1060 != 0)) {\n          local_1058 = local_1058 + 1;\n          if (local_1058 < (regex->pattern).used) {\n            if (local_1060 == 0) goto LAB_0001817a;\n            goto LAB_00018190;\n          }\n          puVar5 = (undefined4 *)(regex->pattern).allocated;\n          replaced = true;\n          local_1068 = 0;\n          for (; puVar5 != (undefined4 *)0x0; puVar5 = (undefined4 *)puVar5[4]) {\n            uVar10 = puVar5[3];\n            plVar28 = (line *)puVar5[1];\n            plVar26 = (line *)puVar5[2];\n            if ((uVar10 & 0xc) == 0) {\n              uVar10 = local_1068 | uVar10;\n            }\n            uVar32 = uVar10;\n            if (plVar28 != (line *)0x0) {\n              uVar32 = uVar10 & 0xfffffff3;\n              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);\n              plVar28 = extraout_EDX_03;\n            }\n            local_1068 = 0;\n            if ((-1 < (int)plVar26) && (plVar26 < regs_7164)) {\n              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];\n              plVar26 = (line *)DAT_00031370[(int)plVar26];\n              if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }\n            }\n          }\n          regsize = (line *)((int)in_stack_ffffef8c + local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n          if (((uint)(regex->pattern).fastmap & 1) == 0) goto LAB_00018ba8;\n        }\n        else {\nLAB_0001817a:\n          local_1060 = sVar16;\n          if (line.length <= regsize) goto LAB_00018bcb;\n          local_1060 = 1;\nLAB_00018190:\n          regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060);\n          str_append(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n        }" if (parenthesized_expression "((local_1058 == 0 || plVar30 < in_stack_ffffef8c) || (local_1060 != 0))" ( (binary_expression "(local_1058 == 0 || plVar30 < in_stack_ffffef8c) || (local_1060 != 0)" (parenthesized_expression "(local_1058 == 0 || plVar30 < in_stack_ffffef8c)" ( (binary_expression "local_1058 == 0 || plVar30 < in_stack_ffffef8c" (binary_expression "local_1058 == 0" identifier == number_literal) || (binary_expression "plVar30 < in_stack_ffffef8c" identifier < identifier)) )) || (parenthesized_expression "(local_1060 != 0)" ( (binary_expression "local_1060 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          local_1058 = local_1058 + 1;\n          if (local_1058 < (regex->pattern).used) {\n            if (local_1060 == 0) goto LAB_0001817a;\n            goto LAB_00018190;\n          }\n          puVar5 = (undefined4 *)(regex->pattern).allocated;\n          replaced = true;\n          local_1068 = 0;\n          for (; puVar5 != (undefined4 *)0x0; puVar5 = (undefined4 *)puVar5[4]) {\n            uVar10 = puVar5[3];\n            plVar28 = (line *)puVar5[1];\n            plVar26 = (line *)puVar5[2];\n            if ((uVar10 & 0xc) == 0) {\n              uVar10 = local_1068 | uVar10;\n            }\n            uVar32 = uVar10;\n            if (plVar28 != (line *)0x0) {\n              uVar32 = uVar10 & 0xfffffff3;\n              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);\n              plVar28 = extraout_EDX_03;\n            }\n            local_1068 = 0;\n            if ((-1 < (int)plVar26) && (plVar26 < regs_7164)) {\n              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];\n              plVar26 = (line *)DAT_00031370[(int)plVar26];\n              if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }\n            }\n          }\n          regsize = (line *)((int)in_stack_ffffef8c + local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n          if (((uint)(regex->pattern).fastmap & 1) == 0) goto LAB_00018ba8;\n        }" { (expression_statement "local_1058 = local_1058 + 1;" (assignment_expression "local_1058 = local_1058 + 1" identifier = (binary_expression "local_1058 + 1" identifier + number_literal)) ;) (if_statement "if (local_1058 < (regex->pattern).used) {\n            if (local_1060 == 0) goto LAB_0001817a;\n            goto LAB_00018190;\n          }" if (parenthesized_expression "(local_1058 < (regex->pattern).used)" ( (binary_expression "local_1058 < (regex->pattern).used" identifier < (field_expression "(regex->pattern).used" (parenthesized_expression "(regex->pattern)" ( (field_expression "regex->pattern" identifier -> field_identifier) )) . field_identifier)) )) (compound_statement "{\n            if (local_1060 == 0) goto LAB_0001817a;\n            goto LAB_00018190;\n          }" { (if_statement "if (local_1060 == 0) goto LAB_0001817a;" if (parenthesized_expression "(local_1060 == 0)" ( (binary_expression "local_1060 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0001817a;" goto statement_identifier ;)) (goto_statement "goto LAB_00018190;" goto statement_identifier ;) })) (expression_statement "puVar5 = (undefined4 *)(regex->pattern).allocated;" (assignment_expression "puVar5 = (undefined4 *)(regex->pattern).allocated" identifier = (cast_expression "(undefined4 *)(regex->pattern).allocated" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(regex->pattern).allocated" (parenthesized_expression "(regex->pattern)" ( (field_expression "regex->pattern" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "replaced = true;" (assignment_expression "replaced = true" identifier = true) ;) (expression_statement "local_1068 = 0;" (assignment_expression "local_1068 = 0" identifier = number_literal) ;) (for_statement "for (; puVar5 != (undefined4 *)0x0; puVar5 = (undefined4 *)puVar5[4]) {\n            uVar10 = puVar5[3];\n            plVar28 = (line *)puVar5[1];\n            plVar26 = (line *)puVar5[2];\n            if ((uVar10 & 0xc) == 0) {\n              uVar10 = local_1068 | uVar10;\n            }\n            uVar32 = uVar10;\n            if (plVar28 != (line *)0x0) {\n              uVar32 = uVar10 & 0xfffffff3;\n              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);\n              plVar28 = extraout_EDX_03;\n            }\n            local_1068 = 0;\n            if ((-1 < (int)plVar26) && (plVar26 < regs_7164)) {\n              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];\n              plVar26 = (line *)DAT_00031370[(int)plVar26];\n              if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }\n            }\n          }" for ( ; (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar5 = (undefined4 *)puVar5[4]" identifier = (cast_expression "(undefined4 *)puVar5[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[4]" identifier [ number_literal ]))) ) (compound_statement "{\n            uVar10 = puVar5[3];\n            plVar28 = (line *)puVar5[1];\n            plVar26 = (line *)puVar5[2];\n            if ((uVar10 & 0xc) == 0) {\n              uVar10 = local_1068 | uVar10;\n            }\n            uVar32 = uVar10;\n            if (plVar28 != (line *)0x0) {\n              uVar32 = uVar10 & 0xfffffff3;\n              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);\n              plVar28 = extraout_EDX_03;\n            }\n            local_1068 = 0;\n            if ((-1 < (int)plVar26) && (plVar26 < regs_7164)) {\n              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];\n              plVar26 = (line *)DAT_00031370[(int)plVar26];\n              if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }\n            }\n          }" { (expression_statement "uVar10 = puVar5[3];" (assignment_expression "uVar10 = puVar5[3]" identifier = (subscript_expression "puVar5[3]" identifier [ number_literal ])) ;) (expression_statement "plVar28 = (line *)puVar5[1];" (assignment_expression "plVar28 = (line *)puVar5[1]" identifier = (cast_expression "(line *)puVar5[1]" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[1]" identifier [ number_literal ]))) ;) (expression_statement "plVar26 = (line *)puVar5[2];" (assignment_expression "plVar26 = (line *)puVar5[2]" identifier = (cast_expression "(line *)puVar5[2]" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[2]" identifier [ number_literal ]))) ;) (if_statement "if ((uVar10 & 0xc) == 0) {\n              uVar10 = local_1068 | uVar10;\n            }" if (parenthesized_expression "((uVar10 & 0xc) == 0)" ( (binary_expression "(uVar10 & 0xc) == 0" (parenthesized_expression "(uVar10 & 0xc)" ( (binary_expression "uVar10 & 0xc" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              uVar10 = local_1068 | uVar10;\n            }" { (expression_statement "uVar10 = local_1068 | uVar10;" (assignment_expression "uVar10 = local_1068 | uVar10" identifier = (binary_expression "local_1068 | uVar10" identifier | identifier)) ;) })) (expression_statement "uVar32 = uVar10;" (assignment_expression "uVar32 = uVar10" identifier = identifier) ;) (if_statement "if (plVar28 != (line *)0x0) {\n              uVar32 = uVar10 & 0xfffffff3;\n              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);\n              plVar28 = extraout_EDX_03;\n            }" if (parenthesized_expression "(plVar28 != (line *)0x0)" ( (binary_expression "plVar28 != (line *)0x0" identifier != (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar32 = uVar10 & 0xfffffff3;\n              str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);\n              plVar28 = extraout_EDX_03;\n            }" { (expression_statement "uVar32 = uVar10 & 0xfffffff3;" (assignment_expression "uVar32 = uVar10 & 0xfffffff3" identifier = (binary_expression "uVar10 & 0xfffffff3" identifier & number_literal)) ;) (expression_statement "str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input);" (call_expression "str_append_modified((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input)" identifier (argument_list "((line *)*puVar5,(char *)plVar28,uVar10,(replacement_types)input)" ( (cast_expression "(line *)*puVar5" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier)) , (cast_expression "(char *)plVar28" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(replacement_types)input" ( (type_descriptor "replacement_types" type_identifier) ) identifier) ))) ;) (expression_statement "plVar28 = extraout_EDX_03;" (assignment_expression "plVar28 = extraout_EDX_03" identifier = identifier) ;) })) (expression_statement "local_1068 = 0;" (assignment_expression "local_1068 = 0" identifier = number_literal) ;) (if_statement "if ((-1 < (int)plVar26) && (plVar26 < regs_7164)) {\n              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];\n              plVar26 = (line *)DAT_00031370[(int)plVar26];\n              if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }\n            }" if (parenthesized_expression "((-1 < (int)plVar26) && (plVar26 < regs_7164))" ( (binary_expression "(-1 < (int)plVar26) && (plVar26 < regs_7164)" (parenthesized_expression "(-1 < (int)plVar26)" ( (binary_expression "-1 < (int)plVar26" number_literal < (cast_expression "(int)plVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(plVar26 < regs_7164)" ( (binary_expression "plVar26 < regs_7164" identifier < identifier) ))) )) (compound_statement "{\n              plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];\n              plVar26 = (line *)DAT_00031370[(int)plVar26];\n              if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }\n            }" { (expression_statement "plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26];" (assignment_expression "plVar28 = (line *)(&DAT_00031374->addr_type)[(int)plVar26]" identifier = (cast_expression "(line *)(&DAT_00031374->addr_type)[(int)plVar26]" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(&DAT_00031374->addr_type)[(int)plVar26]" (parenthesized_expression "(&DAT_00031374->addr_type)" ( (pointer_expression "&DAT_00031374->addr_type" & (field_expression "DAT_00031374->addr_type" identifier -> field_identifier)) )) [ (cast_expression "(int)plVar26" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (expression_statement "plVar26 = (line *)DAT_00031370[(int)plVar26];" (assignment_expression "plVar26 = (line *)DAT_00031370[(int)plVar26]" identifier = (cast_expression "(line *)DAT_00031370[(int)plVar26]" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_00031370[(int)plVar26]" identifier [ (cast_expression "(int)plVar26" ( (type_descriptor "int" primitive_type) ) identifier) ]))) ;) (if_statement "if (plVar28 == plVar26) {\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }\n              else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }" if (parenthesized_expression "(plVar28 == plVar26)" ( (binary_expression "plVar28 == plVar26" identifier == identifier) )) (compound_statement "{\n                local_1068 = uVar32 & 0xc;\n                if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }\n              }" { (expression_statement "local_1068 = uVar32 & 0xc;" (assignment_expression "local_1068 = uVar32 & 0xc" identifier = (binary_expression "uVar32 & 0xc" identifier & number_literal)) ;) (if_statement "if ((puVar5[3] & 0xc) == 0) {\n                  local_1068 = 0;\n                }" if (parenthesized_expression "((puVar5[3] & 0xc) == 0)" ( (binary_expression "(puVar5[3] & 0xc) == 0" (parenthesized_expression "(puVar5[3] & 0xc)" ( (binary_expression "puVar5[3] & 0xc" (subscript_expression "puVar5[3]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n                  local_1068 = 0;\n                }" { (expression_statement "local_1068 = 0;" (assignment_expression "local_1068 = 0" identifier = number_literal) ;) })) }) (else_clause "else {\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }" else (compound_statement "{\n                str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);\n                plVar28 = extraout_EDX_02;\n              }" { (expression_statement "str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input);" (call_expression "str_append_modified((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input)" identifier (argument_list "((line *)(line.active + (int)&plVar26->text),\n                                    (char *)((int)plVar28 - (int)plVar26),uVar32,\n                                    (replacement_types)input)" ( (cast_expression "(line *)(line.active + (int)&plVar26->text)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(line.active + (int)&plVar26->text)" ( (binary_expression "line.active + (int)&plVar26->text" (field_expression "line.active" identifier . field_identifier) + (cast_expression "(int)&plVar26->text" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&plVar26->text" & (field_expression "plVar26->text" identifier -> field_identifier)))) ))) , (cast_expression "(char *)((int)plVar28 - (int)plVar26)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)plVar28 - (int)plVar26)" ( (binary_expression "(int)plVar28 - (int)plVar26" (cast_expression "(int)plVar28" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)plVar26" ( (type_descriptor "int" primitive_type) ) identifier)) ))) , identifier , (cast_expression "(replacement_types)input" ( (type_descriptor "replacement_types" type_identifier) ) identifier) ))) ;) (expression_statement "plVar28 = extraout_EDX_02;" (assignment_expression "plVar28 = extraout_EDX_02" identifier = identifier) ;) }))) })) })) (expression_statement "regsize = (line *)((int)in_stack_ffffef8c + local_1060);" (assignment_expression "regsize = (line *)((int)in_stack_ffffef8c + local_1060)" identifier = (cast_expression "(line *)((int)in_stack_ffffef8c + local_1060)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)in_stack_ffffef8c + local_1060)" ( (binary_expression "(int)in_stack_ffffef8c + local_1060" (cast_expression "(int)in_stack_ffffef8c" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "plVar30 = (line *)DAT_00031374->addr_type;" (assignment_expression "plVar30 = (line *)DAT_00031374->addr_type" identifier = (cast_expression "(line *)DAT_00031374->addr_type" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "DAT_00031374->addr_type" identifier -> field_identifier))) ;) (if_statement "if (((uint)(regex->pattern).fastmap & 1) == 0) goto LAB_00018ba8;" if (parenthesized_expression "(((uint)(regex->pattern).fastmap & 1) == 0)" ( (binary_expression "((uint)(regex->pattern).fastmap & 1) == 0" (parenthesized_expression "((uint)(regex->pattern).fastmap & 1)" ( (binary_expression "(uint)(regex->pattern).fastmap & 1" (field_expression "(uint)(regex->pattern).fastmap" (call_expression "(uint)(regex->pattern)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(regex->pattern)" ( (field_expression "regex->pattern" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00018ba8;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0001817a:\n          local_1060 = sVar16;\n          if (line.length <= regsize) goto LAB_00018bcb;\n          local_1060 = 1;\nLAB_00018190:\n          regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060);\n          str_append(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n        }" else (compound_statement "{\nLAB_0001817a:\n          local_1060 = sVar16;\n          if (line.length <= regsize) goto LAB_00018bcb;\n          local_1060 = 1;\nLAB_00018190:\n          regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060);\n          str_append(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060);\n          plVar30 = (line *)DAT_00031374->addr_type;\n        }" { (labeled_statement "LAB_0001817a:\n          local_1060 = sVar16;" statement_identifier : (expression_statement "local_1060 = sVar16;" (assignment_expression "local_1060 = sVar16" identifier = identifier) ;)) (if_statement "if (line.length <= regsize) goto LAB_00018bcb;" if (parenthesized_expression "(line.length <= regsize)" ( (binary_expression "line.length <= regsize" (field_expression "line.length" identifier . field_identifier) <= identifier) )) (goto_statement "goto LAB_00018bcb;" goto statement_identifier ;)) (expression_statement "local_1060 = 1;" (assignment_expression "local_1060 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00018190:\n          regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060);" statement_identifier : (expression_statement "regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060);" (assignment_expression "regsize = (line *)((int)&in_stack_ffffef8c->text + local_1060)" identifier = (cast_expression "(line *)((int)&in_stack_ffffef8c->text + local_1060)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&in_stack_ffffef8c->text + local_1060)" ( (binary_expression "(int)&in_stack_ffffef8c->text + local_1060" (cast_expression "(int)&in_stack_ffffef8c->text" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&in_stack_ffffef8c->text" & (field_expression "in_stack_ffffef8c->text" identifier -> field_identifier))) + identifier) )))) ;)) (expression_statement "str_append(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060);" (call_expression "str_append(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060)" identifier (argument_list "(&s_accum,line.active + (int)in_stack_ffffef8c,local_1060)" ( (pointer_expression "&s_accum" & identifier) , (binary_expression "line.active + (int)in_stack_ffffef8c" (field_expression "line.active" identifier . field_identifier) + (cast_expression "(int)in_stack_ffffef8c" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier ))) ;) (expression_statement "plVar30 = (line *)DAT_00031374->addr_type;" (assignment_expression "plVar30 = (line *)DAT_00031374->addr_type" identifier = (cast_expression "(line *)DAT_00031374->addr_type" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "DAT_00031374->addr_type" identifier -> field_identifier))) ;) }))) (expression_statement "plVar26 = local_106c;" (assignment_expression "plVar26 = local_106c" identifier = identifier) ;) (expression_statement "plVar28 = (line *)line.length;" (assignment_expression "plVar28 = (line *)line.length" identifier = (cast_expression "(line *)line.length" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "line.length" identifier . field_identifier))) ;) (expression_statement "local_1060 = sVar16;" (assignment_expression "local_1060 = sVar16" identifier = identifier) ;) (if_statement "if (line.length < regsize) goto LAB_00018bcb;" if (parenthesized_expression "(line.length < regsize)" ( (binary_expression "line.length < regsize" (field_expression "line.length" identifier . field_identifier) < identifier) )) (goto_statement "goto LAB_00018bcb;" goto statement_identifier ;)) (expression_statement "in_stack_ffffef8c =\n             (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),\n                              *(undefined1 *)&(regex->pattern).fastmap);" (assignment_expression "in_stack_ffffef8c =\n             (line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),\n                              *(undefined1 *)&(regex->pattern).fastmap)" identifier = (cast_expression "(line *)CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),\n                              *(undefined1 *)&(regex->pattern).fastmap)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31((int3)((uint)in_stack_ffffef8c >> 8),\n                              *(undefined1 *)&(regex->pattern).fastmap)" identifier (argument_list "((int3)((uint)in_stack_ffffef8c >> 8),\n                              *(undefined1 *)&(regex->pattern).fastmap)" ( (call_expression "(int3)((uint)in_stack_ffffef8c >> 8)" (parenthesized_expression "(int3)" ( identifier )) (argument_list "((uint)in_stack_ffffef8c >> 8)" ( (binary_expression "(uint)in_stack_ffffef8c >> 8" (cast_expression "(uint)in_stack_ffffef8c" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))) , (pointer_expression "*(undefined1 *)&(regex->pattern).fastmap" * (cast_expression "(undefined1 *)&(regex->pattern).fastmap" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(regex->pattern).fastmap" & (field_expression "(regex->pattern).fastmap" (parenthesized_expression "(regex->pattern)" ( (field_expression "regex->pattern" identifier -> field_identifier) )) . field_identifier)))) ))))) ;) (expression_statement "iVar19 = match_regex(regex,(char *)line.length,(size_t)(regex->pattern).buffer,\n                             (size_t)line.active,(re_registers *)line.length,(int)regsize);" (assignment_expression "iVar19 = match_regex(regex,(char *)line.length,(size_t)(regex->pattern).buffer,\n                             (size_t)line.active,(re_registers *)line.length,(int)regsize)" identifier = (call_expression "match_regex(regex,(char *)line.length,(size_t)(regex->pattern).buffer,\n                             (size_t)line.active,(re_registers *)line.length,(int)regsize)" identifier (argument_list "(regex,(char *)line.length,(size_t)(regex->pattern).buffer,\n                             (size_t)line.active,(re_registers *)line.length,(int)regsize)" ( identifier , (cast_expression "(char *)line.length" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "line.length" identifier . field_identifier)) , (cast_expression "(size_t)(regex->pattern).buffer" ( (type_descriptor "size_t" primitive_type) ) (field_expression "(regex->pattern).buffer" (parenthesized_expression "(regex->pattern)" ( (field_expression "regex->pattern" identifier -> field_identifier) )) . field_identifier)) , (cast_expression "(size_t)line.active" ( (type_descriptor "size_t" primitive_type) ) (field_expression "line.active" identifier . field_identifier)) , (cast_expression "(re_registers *)line.length" ( (type_descriptor "re_registers *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "line.length" identifier . field_identifier)) , (cast_expression "(int)regsize" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "plVar28 = extraout_EDX_00;" (assignment_expression "plVar28 = extraout_EDX_00" identifier = identifier) ;) (if_statement "if (iVar19 == 0) goto LAB_00018ba8;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00018ba8;" goto statement_identifier ;)) (expression_statement "plVar26 = (line *)*DAT_00031370;" (assignment_expression "plVar26 = (line *)*DAT_00031370" identifier = (cast_expression "(line *)*DAT_00031370" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00031370" * identifier))) ;) (expression_statement "aVar15 = DAT_00031374->addr_type;" (assignment_expression "aVar15 = DAT_00031374->addr_type" identifier = (field_expression "DAT_00031374->addr_type" identifier -> field_identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "plVar28 = plVar26;" (assignment_expression "plVar28 = plVar26" identifier = identifier) ;) (expression_statement "in_ECX = DAT_00031374;" (assignment_expression "in_ECX = DAT_00031374" identifier = identifier) ;) (if_statement "if ((plVar26 == (line *)0x0) &&\n       (bVar1 = *(byte *)&(regex->pattern).fastmap, plVar28 = (line *)(uint)bVar1, (bVar1 & 1) == 0)\n       ) {\n      line.length = line.length - aVar15;\n      line.active = line.active + aVar15;\n      line.alloc = line.alloc - DAT_00031374->addr_type;\n      replaced = true;\n    }\n    else {\n      if (aVar15 != line.length) goto LAB_00018127;\n      replaced = true;\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n      line.length = (size_t)plVar26;\n    }" if (parenthesized_expression "((plVar26 == (line *)0x0) &&\n       (bVar1 = *(byte *)&(regex->pattern).fastmap, plVar28 = (line *)(uint)bVar1, (bVar1 & 1) == 0)\n       )" ( (binary_expression "(plVar26 == (line *)0x0) &&\n       (bVar1 = *(byte *)&(regex->pattern).fastmap, plVar28 = (line *)(uint)bVar1, (bVar1 & 1) == 0)" (parenthesized_expression "(plVar26 == (line *)0x0)" ( (binary_expression "plVar26 == (line *)0x0" identifier == (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar1 = *(byte *)&(regex->pattern).fastmap, plVar28 = (line *)(uint)bVar1, (bVar1 & 1) == 0)" ( (comma_expression "bVar1 = *(byte *)&(regex->pattern).fastmap, plVar28 = (line *)(uint)bVar1, (bVar1 & 1) == 0" (assignment_expression "bVar1 = *(byte *)&(regex->pattern).fastmap" identifier = (pointer_expression "*(byte *)&(regex->pattern).fastmap" * (cast_expression "(byte *)&(regex->pattern).fastmap" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(regex->pattern).fastmap" & (field_expression "(regex->pattern).fastmap" (parenthesized_expression "(regex->pattern)" ( (field_expression "regex->pattern" identifier -> field_identifier) )) . field_identifier))))) , (comma_expression "plVar28 = (line *)(uint)bVar1, (bVar1 & 1) == 0" (assignment_expression "plVar28 = (line *)(uint)bVar1" identifier = (cast_expression "(line *)(uint)bVar1" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) , (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal))) ))) )) (compound_statement "{\n      line.length = line.length - aVar15;\n      line.active = line.active + aVar15;\n      line.alloc = line.alloc - DAT_00031374->addr_type;\n      replaced = true;\n    }" { (expression_statement "line.length = line.length - aVar15;" (assignment_expression "line.length = line.length - aVar15" (field_expression "line.length" identifier . field_identifier) = (binary_expression "line.length - aVar15" (field_expression "line.length" identifier . field_identifier) - identifier)) ;) (expression_statement "line.active = line.active + aVar15;" (assignment_expression "line.active = line.active + aVar15" (field_expression "line.active" identifier . field_identifier) = (binary_expression "line.active + aVar15" (field_expression "line.active" identifier . field_identifier) + identifier)) ;) (expression_statement "line.alloc = line.alloc - DAT_00031374->addr_type;" (assignment_expression "line.alloc = line.alloc - DAT_00031374->addr_type" (field_expression "line.alloc" identifier . field_identifier) = (binary_expression "line.alloc - DAT_00031374->addr_type" (field_expression "line.alloc" identifier . field_identifier) - (field_expression "DAT_00031374->addr_type" identifier -> field_identifier))) ;) (expression_statement "replaced = true;" (assignment_expression "replaced = true" identifier = true) ;) }) (else_clause "else {\n      if (aVar15 != line.length) goto LAB_00018127;\n      replaced = true;\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n      line.length = (size_t)plVar26;\n    }" else (compound_statement "{\n      if (aVar15 != line.length) goto LAB_00018127;\n      replaced = true;\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n      line.length = (size_t)plVar26;\n    }" { (if_statement "if (aVar15 != line.length) goto LAB_00018127;" if (parenthesized_expression "(aVar15 != line.length)" ( (binary_expression "aVar15 != line.length" identifier != (field_expression "line.length" identifier . field_identifier)) )) (goto_statement "goto LAB_00018127;" goto statement_identifier ;)) (expression_statement "replaced = true;" (assignment_expression "replaced = true" identifier = true) ;) (expression_statement "plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;" (assignment_expression "plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap" identifier = (binary_expression "(line *)(uint)*(byte *)&(regex->pattern).fastmap" (cast_expression "(line *)(uint)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)&(regex->pattern).fastmap" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(regex->pattern).fastmap" & (field_expression "(regex->pattern).fastmap" (parenthesized_expression "(regex->pattern)" ( (field_expression "regex->pattern" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "line.length = (size_t)plVar26;" (assignment_expression "line.length = (size_t)plVar26" (field_expression "line.length" identifier . field_identifier) = (cast_expression "(size_t)plVar26" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) }))) (goto_statement "goto LAB_00018bf8;" goto statement_identifier ;)) (case_statement "case 0x51:\n    cVar9 = *(char *)&((line *)b)->text;\n    if (replaced == false) goto LAB_00017de7;\n    replaced = false;\nLAB_00018263:\n    in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg * 3);\n    sc = (line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg);\n    goto joined_r0x00017cbb;" case number_literal : (expression_statement "cVar9 = *(char *)&((line *)b)->text;" (assignment_expression "cVar9 = *(char *)&((line *)b)->text" identifier = (pointer_expression "*(char *)&((line *)b)->text" * (cast_expression "(char *)&((line *)b)->text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (if_statement "if (replaced == false) goto LAB_00017de7;" if (parenthesized_expression "(replaced == false)" ( (binary_expression "replaced == false" identifier == false) )) (goto_statement "goto LAB_00017de7;" goto statement_identifier ;)) (expression_statement "replaced = false;" (assignment_expression "replaced = false" identifier = false) ;) (labeled_statement "LAB_00018263:\n    in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg * 3);" statement_identifier : (expression_statement "in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg * 3);" (assignment_expression "in_ECX = (addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg * 3)" identifier = (cast_expression "(addr *)(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg * 3)" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg * 3)" ( (binary_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg * 3" (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier) * number_literal) )))) ;)) (expression_statement "sc = (line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg);" (assignment_expression "sc = (line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg)" identifier = (cast_expression "(line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg)" ( (binary_expression "vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg" (field_expression "vec->v" identifier -> field_identifier) + (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier)) )))) ;) (goto_statement "goto joined_r0x00017cbb;" goto statement_identifier ;)) (case_statement "case 0x54:\n    poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf;\n    if (poVar12->fp == (FILE *)0x0) goto _L604;\nLAB_00018030:\n    output_line(line.active,line.length,(uint)line.chomped,poVar12);\n    cVar9 = *(char *)&((line *)b)->text;\n    in_ECX = extraout_ECX_07;\n    goto LAB_00017de7;" case number_literal : (expression_statement "poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf;" (assignment_expression "poVar12 = ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf" identifier = (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->outf" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier)) ;) (if_statement "if (poVar12->fp == (FILE *)0x0) goto _L604;" if (parenthesized_expression "(poVar12->fp == (FILE *)0x0)" ( (binary_expression "poVar12->fp == (FILE *)0x0" (field_expression "poVar12->fp" identifier -> field_identifier) == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto _L604;" goto statement_identifier ;)) (labeled_statement "LAB_00018030:\n    output_line(line.active,line.length,(uint)line.chomped,poVar12);" statement_identifier : (expression_statement "output_line(line.active,line.length,(uint)line.chomped,poVar12);" (call_expression "output_line(line.active,line.length,(uint)line.chomped,poVar12)" identifier (argument_list "(line.active,line.length,(uint)line.chomped,poVar12)" ( (field_expression "line.active" identifier . field_identifier) , (field_expression "line.length" identifier . field_identifier) , (cast_expression "(uint)line.chomped" ( (type_descriptor "uint" type_identifier) ) (field_expression "line.chomped" identifier . field_identifier)) , identifier ))) ;)) (expression_statement "cVar9 = *(char *)&((line *)b)->text;" (assignment_expression "cVar9 = *(char *)&((line *)b)->text" identifier = (pointer_expression "*(char *)&((line *)b)->text" * (cast_expression "(char *)&((line *)b)->text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (expression_statement "in_ECX = extraout_ECX_07;" (assignment_expression "in_ECX = extraout_ECX_07" identifier = identifier) ;) (goto_statement "goto LAB_00017de7;" goto statement_identifier ;)) (case_statement "case 0x55:\n    line_exchange(&hold,plVar26,(int)in_ECX);\n    in_ECX = extraout_ECX_11;\n    if (*(_Bool *)&((line *)b)->text == false) goto LAB_000182c0;\n    debug_print_line(&line);\n    goto LAB_0001861e;" case number_literal : (expression_statement "line_exchange(&hold,plVar26,(int)in_ECX);" (call_expression "line_exchange(&hold,plVar26,(int)in_ECX)" identifier (argument_list "(&hold,plVar26,(int)in_ECX)" ( (pointer_expression "&hold" & identifier) , identifier , (cast_expression "(int)in_ECX" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "in_ECX = extraout_ECX_11;" (assignment_expression "in_ECX = extraout_ECX_11" identifier = identifier) ;) (if_statement "if (*(_Bool *)&((line *)b)->text == false) goto LAB_000182c0;" if (parenthesized_expression "(*(_Bool *)&((line *)b)->text == false)" ( (binary_expression "*(_Bool *)&((line *)b)->text == false" (pointer_expression "*(_Bool *)&((line *)b)->text" * (cast_expression "(_Bool *)&((line *)b)->text" ( (type_descriptor "_Bool *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)))) == false) )) (goto_statement "goto LAB_000182c0;" goto statement_identifier ;)) (expression_statement "debug_print_line(&line);" (call_expression "debug_print_line(&line)" identifier (argument_list "(&line)" ( (pointer_expression "&line" & identifier) ))) ;) (goto_statement "goto LAB_0001861e;" goto statement_identifier ;)) (case_statement "case 0x56:\n    if (mb_cur_max < 2) {\n      pbVar22 = (byte *)(line.active + line.length);\n      if (line.active < pbVar22) {\n        do {\n          pbVar29 = pbVar31 + 1;\n          bVar1 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text[*pbVar31];\n          in_ECX = (addr *)(uint)bVar1;\n          *pbVar31 = bVar1;\n          pbVar31 = pbVar29;\n        } while (pbVar22 != pbVar29);\n      }\n    }\n    else {\n      in_stack_ffffef8c = (line *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;\n      mbstate.__count = 0;\n      mbstate.__value.__wch = 0;\n      if (line.length != 0) {\n        local_1068 = 0;\n        do {\n          if (mb_cur_max == 1) {\nLAB_0001836f:\n            sVar16 = 1;\n          }\n          else {\n            local_1060 = line.length - local_1068;\n            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);\n            in_ECX = extraout_ECX_12;\n            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;\n          }\n          paVar17 = (addr *)in_stack_ffffef8c->text;\n          if (paVar17 != (addr *)0x0) {\n            local_105c = line.active;\n            pcVar11 = line.active + local_1068;\n            iVar19 = 0;\n            do {\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            } while (paVar17 != (addr *)0x0);\n          }\n          local_1068 = local_1068 + sVar16;\n        } while (local_1068 < line.length);\n      }\n    }\n    goto LAB_000188c9;" case number_literal : (if_statement "if (mb_cur_max < 2) {\n      pbVar22 = (byte *)(line.active + line.length);\n      if (line.active < pbVar22) {\n        do {\n          pbVar29 = pbVar31 + 1;\n          bVar1 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text[*pbVar31];\n          in_ECX = (addr *)(uint)bVar1;\n          *pbVar31 = bVar1;\n          pbVar31 = pbVar29;\n        } while (pbVar22 != pbVar29);\n      }\n    }\n    else {\n      in_stack_ffffef8c = (line *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;\n      mbstate.__count = 0;\n      mbstate.__value.__wch = 0;\n      if (line.length != 0) {\n        local_1068 = 0;\n        do {\n          if (mb_cur_max == 1) {\nLAB_0001836f:\n            sVar16 = 1;\n          }\n          else {\n            local_1060 = line.length - local_1068;\n            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);\n            in_ECX = extraout_ECX_12;\n            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;\n          }\n          paVar17 = (addr *)in_stack_ffffef8c->text;\n          if (paVar17 != (addr *)0x0) {\n            local_105c = line.active;\n            pcVar11 = line.active + local_1068;\n            iVar19 = 0;\n            do {\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            } while (paVar17 != (addr *)0x0);\n          }\n          local_1068 = local_1068 + sVar16;\n        } while (local_1068 < line.length);\n      }\n    }" if (parenthesized_expression "(mb_cur_max < 2)" ( (binary_expression "mb_cur_max < 2" identifier < number_literal) )) (compound_statement "{\n      pbVar22 = (byte *)(line.active + line.length);\n      if (line.active < pbVar22) {\n        do {\n          pbVar29 = pbVar31 + 1;\n          bVar1 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text[*pbVar31];\n          in_ECX = (addr *)(uint)bVar1;\n          *pbVar31 = bVar1;\n          pbVar31 = pbVar29;\n        } while (pbVar22 != pbVar29);\n      }\n    }" { (expression_statement "pbVar22 = (byte *)(line.active + line.length);" (assignment_expression "pbVar22 = (byte *)(line.active + line.length)" identifier = (cast_expression "(byte *)(line.active + line.length)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(line.active + line.length)" ( (binary_expression "line.active + line.length" (field_expression "line.active" identifier . field_identifier) + (field_expression "line.length" identifier . field_identifier)) )))) ;) (if_statement "if (line.active < pbVar22) {\n        do {\n          pbVar29 = pbVar31 + 1;\n          bVar1 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text[*pbVar31];\n          in_ECX = (addr *)(uint)bVar1;\n          *pbVar31 = bVar1;\n          pbVar31 = pbVar29;\n        } while (pbVar22 != pbVar29);\n      }" if (parenthesized_expression "(line.active < pbVar22)" ( (binary_expression "line.active < pbVar22" (field_expression "line.active" identifier . field_identifier) < identifier) )) (compound_statement "{\n        do {\n          pbVar29 = pbVar31 + 1;\n          bVar1 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text[*pbVar31];\n          in_ECX = (addr *)(uint)bVar1;\n          *pbVar31 = bVar1;\n          pbVar31 = pbVar29;\n        } while (pbVar22 != pbVar29);\n      }" { (do_statement "do {\n          pbVar29 = pbVar31 + 1;\n          bVar1 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text[*pbVar31];\n          in_ECX = (addr *)(uint)bVar1;\n          *pbVar31 = bVar1;\n          pbVar31 = pbVar29;\n        } while (pbVar22 != pbVar29);" do (compound_statement "{\n          pbVar29 = pbVar31 + 1;\n          bVar1 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text[*pbVar31];\n          in_ECX = (addr *)(uint)bVar1;\n          *pbVar31 = bVar1;\n          pbVar31 = pbVar29;\n        }" { (expression_statement "pbVar29 = pbVar31 + 1;" (assignment_expression "pbVar29 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text[*pbVar31];" (assignment_expression "bVar1 = (((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text[*pbVar31]" identifier = (subscript_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text[*pbVar31]" (field_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt).text" (parenthesized_expression "(((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt)" ( (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_txt" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier) )) . field_identifier) [ (pointer_expression "*pbVar31" * identifier) ])) ;) (expression_statement "in_ECX = (addr *)(uint)bVar1;" (assignment_expression "in_ECX = (addr *)(uint)bVar1" identifier = (cast_expression "(addr *)(uint)bVar1" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "*pbVar31 = bVar1;" (assignment_expression "*pbVar31 = bVar1" (pointer_expression "*pbVar31" * identifier) = identifier) ;) (expression_statement "pbVar31 = pbVar29;" (assignment_expression "pbVar31 = pbVar29" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar22 != pbVar29)" ( (binary_expression "pbVar22 != pbVar29" identifier != identifier) )) ;) })) }) (else_clause "else {\n      in_stack_ffffef8c = (line *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;\n      mbstate.__count = 0;\n      mbstate.__value.__wch = 0;\n      if (line.length != 0) {\n        local_1068 = 0;\n        do {\n          if (mb_cur_max == 1) {\nLAB_0001836f:\n            sVar16 = 1;\n          }\n          else {\n            local_1060 = line.length - local_1068;\n            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);\n            in_ECX = extraout_ECX_12;\n            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;\n          }\n          paVar17 = (addr *)in_stack_ffffef8c->text;\n          if (paVar17 != (addr *)0x0) {\n            local_105c = line.active;\n            pcVar11 = line.active + local_1068;\n            iVar19 = 0;\n            do {\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            } while (paVar17 != (addr *)0x0);\n          }\n          local_1068 = local_1068 + sVar16;\n        } while (local_1068 < line.length);\n      }\n    }" else (compound_statement "{\n      in_stack_ffffef8c = (line *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;\n      mbstate.__count = 0;\n      mbstate.__value.__wch = 0;\n      if (line.length != 0) {\n        local_1068 = 0;\n        do {\n          if (mb_cur_max == 1) {\nLAB_0001836f:\n            sVar16 = 1;\n          }\n          else {\n            local_1060 = line.length - local_1068;\n            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);\n            in_ECX = extraout_ECX_12;\n            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;\n          }\n          paVar17 = (addr *)in_stack_ffffef8c->text;\n          if (paVar17 != (addr *)0x0) {\n            local_105c = line.active;\n            pcVar11 = line.active + local_1068;\n            iVar19 = 0;\n            do {\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            } while (paVar17 != (addr *)0x0);\n          }\n          local_1068 = local_1068 + sVar16;\n        } while (local_1068 < line.length);\n      }\n    }" { (expression_statement "in_stack_ffffef8c = (line *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst;" (assignment_expression "in_stack_ffffef8c = (line *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst" identifier = (cast_expression "(line *)((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->cmd_subst" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier))) ;) (expression_statement "mbstate.__count = 0;" (assignment_expression "mbstate.__count = 0" (field_expression "mbstate.__count" identifier . field_identifier) = number_literal) ;) (expression_statement "mbstate.__value.__wch = 0;" (assignment_expression "mbstate.__value.__wch = 0" (field_expression "mbstate.__value.__wch" (field_expression "mbstate.__value" identifier . field_identifier) . field_identifier) = number_literal) ;) (if_statement "if (line.length != 0) {\n        local_1068 = 0;\n        do {\n          if (mb_cur_max == 1) {\nLAB_0001836f:\n            sVar16 = 1;\n          }\n          else {\n            local_1060 = line.length - local_1068;\n            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);\n            in_ECX = extraout_ECX_12;\n            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;\n          }\n          paVar17 = (addr *)in_stack_ffffef8c->text;\n          if (paVar17 != (addr *)0x0) {\n            local_105c = line.active;\n            pcVar11 = line.active + local_1068;\n            iVar19 = 0;\n            do {\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            } while (paVar17 != (addr *)0x0);\n          }\n          local_1068 = local_1068 + sVar16;\n        } while (local_1068 < line.length);\n      }" if (parenthesized_expression "(line.length != 0)" ( (binary_expression "line.length != 0" (field_expression "line.length" identifier . field_identifier) != number_literal) )) (compound_statement "{\n        local_1068 = 0;\n        do {\n          if (mb_cur_max == 1) {\nLAB_0001836f:\n            sVar16 = 1;\n          }\n          else {\n            local_1060 = line.length - local_1068;\n            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);\n            in_ECX = extraout_ECX_12;\n            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;\n          }\n          paVar17 = (addr *)in_stack_ffffef8c->text;\n          if (paVar17 != (addr *)0x0) {\n            local_105c = line.active;\n            pcVar11 = line.active + local_1068;\n            iVar19 = 0;\n            do {\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            } while (paVar17 != (addr *)0x0);\n          }\n          local_1068 = local_1068 + sVar16;\n        } while (local_1068 < line.length);\n      }" { (expression_statement "local_1068 = 0;" (assignment_expression "local_1068 = 0" identifier = number_literal) ;) (do_statement "do {\n          if (mb_cur_max == 1) {\nLAB_0001836f:\n            sVar16 = 1;\n          }\n          else {\n            local_1060 = line.length - local_1068;\n            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);\n            in_ECX = extraout_ECX_12;\n            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;\n          }\n          paVar17 = (addr *)in_stack_ffffef8c->text;\n          if (paVar17 != (addr *)0x0) {\n            local_105c = line.active;\n            pcVar11 = line.active + local_1068;\n            iVar19 = 0;\n            do {\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            } while (paVar17 != (addr *)0x0);\n          }\n          local_1068 = local_1068 + sVar16;\n        } while (local_1068 < line.length);" do (compound_statement "{\n          if (mb_cur_max == 1) {\nLAB_0001836f:\n            sVar16 = 1;\n          }\n          else {\n            local_1060 = line.length - local_1068;\n            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);\n            in_ECX = extraout_ECX_12;\n            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;\n          }\n          paVar17 = (addr *)in_stack_ffffef8c->text;\n          if (paVar17 != (addr *)0x0) {\n            local_105c = line.active;\n            pcVar11 = line.active + local_1068;\n            iVar19 = 0;\n            do {\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            } while (paVar17 != (addr *)0x0);\n          }\n          local_1068 = local_1068 + sVar16;\n        }" { (if_statement "if (mb_cur_max == 1) {\nLAB_0001836f:\n            sVar16 = 1;\n          }\n          else {\n            local_1060 = line.length - local_1068;\n            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);\n            in_ECX = extraout_ECX_12;\n            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;\n          }" if (parenthesized_expression "(mb_cur_max == 1)" ( (binary_expression "mb_cur_max == 1" identifier == number_literal) )) (compound_statement "{\nLAB_0001836f:\n            sVar16 = 1;\n          }" { (labeled_statement "LAB_0001836f:\n            sVar16 = 1;" statement_identifier : (expression_statement "sVar16 = 1;" (assignment_expression "sVar16 = 1" identifier = number_literal) ;)) }) (else_clause "else {\n            local_1060 = line.length - local_1068;\n            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);\n            in_ECX = extraout_ECX_12;\n            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;\n          }" else (compound_statement "{\n            local_1060 = line.length - local_1068;\n            sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);\n            in_ECX = extraout_ECX_12;\n            if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;\n          }" { (expression_statement "local_1060 = line.length - local_1068;" (assignment_expression "local_1060 = line.length - local_1068" identifier = (binary_expression "line.length - local_1068" (field_expression "line.length" identifier . field_identifier) - identifier)) ;) (expression_statement "sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate);" (assignment_expression "sVar16 = rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate)" identifier = (call_expression "rpl_mbrtowc((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate)" identifier (argument_list "((wchar_t *)0x0,line.active + local_1068,local_1060,&mbstate)" ( (cast_expression "(wchar_t *)0x0" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (binary_expression "line.active + local_1068" (field_expression "line.active" identifier . field_identifier) + identifier) , identifier , (pointer_expression "&mbstate" & identifier) )))) ;) (expression_statement "in_ECX = extraout_ECX_12;" (assignment_expression "in_ECX = extraout_ECX_12" identifier = identifier) ;) (if_statement "if (0xfffffffc < sVar16 - 1) goto LAB_0001836f;" if (parenthesized_expression "(0xfffffffc < sVar16 - 1)" ( (binary_expression "0xfffffffc < sVar16 - 1" number_literal < (binary_expression "sVar16 - 1" identifier - number_literal)) )) (goto_statement "goto LAB_0001836f;" goto statement_identifier ;)) }))) (expression_statement "paVar17 = (addr *)in_stack_ffffef8c->text;" (assignment_expression "paVar17 = (addr *)in_stack_ffffef8c->text" identifier = (cast_expression "(addr *)in_stack_ffffef8c->text" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "in_stack_ffffef8c->text" identifier -> field_identifier))) ;) (if_statement "if (paVar17 != (addr *)0x0) {\n            local_105c = line.active;\n            pcVar11 = line.active + local_1068;\n            iVar19 = 0;\n            do {\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            } while (paVar17 != (addr *)0x0);\n          }" if (parenthesized_expression "(paVar17 != (addr *)0x0)" ( (binary_expression "paVar17 != (addr *)0x0" identifier != (cast_expression "(addr *)0x0" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_105c = line.active;\n            pcVar11 = line.active + local_1068;\n            iVar19 = 0;\n            do {\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            } while (paVar17 != (addr *)0x0);\n          }" { (expression_statement "local_105c = line.active;" (assignment_expression "local_105c = line.active" identifier = (field_expression "line.active" identifier . field_identifier)) ;) (expression_statement "pcVar11 = line.active + local_1068;" (assignment_expression "pcVar11 = line.active + local_1068" identifier = (binary_expression "line.active + local_1068" (field_expression "line.active" identifier . field_identifier) + identifier)) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            } while (paVar17 != (addr *)0x0);" do (compound_statement "{\n              local_1060 = sVar16;\n              iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);\n              if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }\n              paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);\n              in_ECX = extraout_ECX_13;\n              iVar19 = iVar19 + 8;\n            }" { (expression_statement "local_1060 = sVar16;" (assignment_expression "local_1060 = sVar16" identifier = identifier) ;) (expression_statement "iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16);" (assignment_expression "iVar18 = strncmp(pcVar11,(char *)paVar17,sVar16)" identifier = (call_expression "strncmp(pcVar11,(char *)paVar17,sVar16)" identifier (argument_list "(pcVar11,(char *)paVar17,sVar16)" ( identifier , (cast_expression "(char *)paVar17" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (iVar18 == 0) {\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);\n                pcVar24 = (char *)*puVar5;\n                if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }\n                memcpy(pcVar11,pcVar24,local_1060);\n                in_ECX = extraout_ECX_14;\n                break;\n              }" { (expression_statement "puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19);" (assignment_expression "puVar5 = (undefined4 *)((int)&in_stack_ffffef8c->active + iVar19)" identifier = (cast_expression "(undefined4 *)((int)&in_stack_ffffef8c->active + iVar19)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&in_stack_ffffef8c->active + iVar19)" ( (binary_expression "(int)&in_stack_ffffef8c->active + iVar19" (cast_expression "(int)&in_stack_ffffef8c->active" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&in_stack_ffffef8c->active" & (field_expression "in_stack_ffffef8c->active" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "pcVar24 = (char *)*puVar5;" (assignment_expression "pcVar24 = (char *)*puVar5" identifier = (cast_expression "(char *)*puVar5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) (if_statement "if (*pcVar24 == '\0') {\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }\n                else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }" if (parenthesized_expression "(*pcVar24 == '\0')" ( (binary_expression "*pcVar24 == '\0'" (pointer_expression "*pcVar24" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  local_1060 = 1;\nLAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }\n                }" { (expression_statement "local_1060 = 1;" (assignment_expression "local_1060 = 1" identifier = number_literal) ;) (labeled_statement "LAB_00018c70:\n                  if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }" statement_identifier : (if_statement "if (local_1060 < sVar16) {\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }" if (parenthesized_expression "(local_1060 < sVar16)" ( (binary_expression "local_1060 < sVar16" identifier < identifier) )) (compound_statement "{\n                    iVar19 = line.length + 1;\n                    goto LAB_0001841c;\n                  }" { (expression_statement "iVar19 = line.length + 1;" (assignment_expression "iVar19 = line.length + 1" identifier = (binary_expression "line.length + 1" (field_expression "line.length" identifier . field_identifier) + number_literal)) ;) (goto_statement "goto LAB_0001841c;" goto statement_identifier ;) }))) }) (else_clause "else {\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }" else (compound_statement "{\n                  local_1060 = strlen(pcVar24);\n                  if (local_1060 <= sVar16) goto LAB_00018c70;\n                  iVar19 = line.length + 1;\n                  sVar27 = (iVar19 - sVar16) + local_1060;\n                  if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }\nLAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));\n                  line.length = line.length + (local_1060 - sVar16);\n                  pcVar24 = (char *)*puVar5;\n                  pcVar11 = line.active + local_1068;\n                  local_1068 = local_1068 + (local_1060 - sVar16);\n                }" { (expression_statement "local_1060 = strlen(pcVar24);" (assignment_expression "local_1060 = strlen(pcVar24)" identifier = (call_expression "strlen(pcVar24)" identifier (argument_list "(pcVar24)" ( identifier )))) ;) (if_statement "if (local_1060 <= sVar16) goto LAB_00018c70;" if (parenthesized_expression "(local_1060 <= sVar16)" ( (binary_expression "local_1060 <= sVar16" identifier <= identifier) )) (goto_statement "goto LAB_00018c70;" goto statement_identifier ;)) (expression_statement "iVar19 = line.length + 1;" (assignment_expression "iVar19 = line.length + 1" identifier = (binary_expression "line.length + 1" (field_expression "line.length" identifier . field_identifier) + number_literal)) ;) (expression_statement "sVar27 = (iVar19 - sVar16) + local_1060;" (assignment_expression "sVar27 = (iVar19 - sVar16) + local_1060" identifier = (binary_expression "(iVar19 - sVar16) + local_1060" (parenthesized_expression "(iVar19 - sVar16)" ( (binary_expression "iVar19 - sVar16" identifier - identifier) )) + identifier)) ;) (if_statement "if (line.alloc < sVar27) {\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }" if (parenthesized_expression "(line.alloc < sVar27)" ( (binary_expression "line.alloc < sVar27" (field_expression "line.alloc" identifier . field_identifier) < identifier) )) (compound_statement "{\n                    resize_line(&line,sVar27);\n                    local_105c = line.active;\n                    iVar19 = line.length + 1;\n                  }" { (expression_statement "resize_line(&line,sVar27);" (call_expression "resize_line(&line,sVar27)" identifier (argument_list "(&line,sVar27)" ( (pointer_expression "&line" & identifier) , identifier ))) ;) (expression_statement "local_105c = line.active;" (assignment_expression "local_105c = line.active" identifier = (field_expression "line.active" identifier . field_identifier)) ;) (expression_statement "iVar19 = line.length + 1;" (assignment_expression "iVar19 = line.length + 1" identifier = (binary_expression "line.length + 1" (field_expression "line.length" identifier . field_identifier) + number_literal)) ;) })) (labeled_statement "LAB_0001841c:\n                  memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));" statement_identifier : (expression_statement "memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068));" (call_expression "memmove(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068))" identifier (argument_list "(local_105c + local_1068 + local_1060,local_105c + sVar16 + local_1068,\n                          iVar19 - (sVar16 + local_1068))" ( (binary_expression "local_105c + local_1068 + local_1060" (binary_expression "local_105c + local_1068" identifier + identifier) + identifier) , (binary_expression "local_105c + sVar16 + local_1068" (binary_expression "local_105c + sVar16" identifier + identifier) + identifier) , (binary_expression "iVar19 - (sVar16 + local_1068)" identifier - (parenthesized_expression "(sVar16 + local_1068)" ( (binary_expression "sVar16 + local_1068" identifier + identifier) ))) ))) ;)) (expression_statement "line.length = line.length + (local_1060 - sVar16);" (assignment_expression "line.length = line.length + (local_1060 - sVar16)" (field_expression "line.length" identifier . field_identifier) = (binary_expression "line.length + (local_1060 - sVar16)" (field_expression "line.length" identifier . field_identifier) + (parenthesized_expression "(local_1060 - sVar16)" ( (binary_expression "local_1060 - sVar16" identifier - identifier) )))) ;) (expression_statement "pcVar24 = (char *)*puVar5;" (assignment_expression "pcVar24 = (char *)*puVar5" identifier = (cast_expression "(char *)*puVar5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier))) ;) (expression_statement "pcVar11 = line.active + local_1068;" (assignment_expression "pcVar11 = line.active + local_1068" identifier = (binary_expression "line.active + local_1068" (field_expression "line.active" identifier . field_identifier) + identifier)) ;) (expression_statement "local_1068 = local_1068 + (local_1060 - sVar16);" (assignment_expression "local_1068 = local_1068 + (local_1060 - sVar16)" identifier = (binary_expression "local_1068 + (local_1060 - sVar16)" identifier + (parenthesized_expression "(local_1060 - sVar16)" ( (binary_expression "local_1060 - sVar16" identifier - identifier) )))) ;) }))) (expression_statement "memcpy(pcVar11,pcVar24,local_1060);" (call_expression "memcpy(pcVar11,pcVar24,local_1060)" identifier (argument_list "(pcVar11,pcVar24,local_1060)" ( identifier , identifier , identifier ))) ;) (expression_statement "in_ECX = extraout_ECX_14;" (assignment_expression "in_ECX = extraout_ECX_14" identifier = identifier) ;) (break_statement "break;" break ;) })) (expression_statement "paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19);" (assignment_expression "paVar17 = *(addr **)((int)&in_stack_ffffef8c->length + iVar19)" identifier = (pointer_expression "*(addr **)((int)&in_stack_ffffef8c->length + iVar19)" * (cast_expression "(addr **)((int)&in_stack_ffffef8c->length + iVar19)" ( (type_descriptor "addr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&in_stack_ffffef8c->length + iVar19)" ( (binary_expression "(int)&in_stack_ffffef8c->length + iVar19" (cast_expression "(int)&in_stack_ffffef8c->length" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&in_stack_ffffef8c->length" & (field_expression "in_stack_ffffef8c->length" identifier -> field_identifier))) + identifier) ))))) ;) (expression_statement "in_ECX = extraout_ECX_13;" (assignment_expression "in_ECX = extraout_ECX_13" identifier = identifier) ;) (expression_statement "iVar19 = iVar19 + 8;" (assignment_expression "iVar19 = iVar19 + 8" identifier = (binary_expression "iVar19 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(paVar17 != (addr *)0x0)" ( (binary_expression "paVar17 != (addr *)0x0" identifier != (cast_expression "(addr *)0x0" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "local_1068 = local_1068 + sVar16;" (assignment_expression "local_1068 = local_1068 + sVar16" identifier = (binary_expression "local_1068 + sVar16" identifier + identifier)) ;) }) while (parenthesized_expression "(local_1068 < line.length)" ( (binary_expression "local_1068 < line.length" identifier < (field_expression "line.length" identifier . field_identifier)) )) ;) })) }))) (goto_statement "goto LAB_000188c9;" goto statement_identifier ;)) (case_statement "case 0x57:\n    line.length = 0;\n    goto LAB_000188c9;" case number_literal : (expression_statement "line.length = 0;" (assignment_expression "line.length = 0" (field_expression "line.length" identifier . field_identifier) = number_literal) ;) (goto_statement "goto LAB_000188c9;" goto statement_identifier ;)) })) (if_statement "if (cVar9 == '\0') goto LAB_000182c0;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000182c0;" goto statement_identifier ;)) (labeled_statement "LAB_0001861e:\n  debug_print_line(&hold);" statement_identifier : (expression_statement "debug_print_line(&hold);" (call_expression "debug_print_line(&hold)" identifier (argument_list "(&hold)" ( (pointer_expression "&hold" & identifier) ))) ;)) (expression_statement "cVar9 = *(char *)&((line *)b)->text;" (assignment_expression "cVar9 = *(char *)&((line *)b)->text" identifier = (pointer_expression "*(char *)&((line *)b)->text" * (cast_expression "(char *)&((line *)b)->text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (expression_statement "in_ECX = extraout_ECX_21;" (assignment_expression "in_ECX = extraout_ECX_21" identifier = identifier) ;) (goto_statement "goto LAB_00017de7;" goto statement_identifier ;) (labeled_statement "LAB_00018ba8:\n  plVar26 = (line *)line.length;" statement_identifier : (expression_statement "plVar26 = (line *)line.length;" (assignment_expression "plVar26 = (line *)line.length" identifier = (cast_expression "(line *)line.length" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "line.length" identifier . field_identifier))) ;)) (expression_statement "local_1060 = sVar16;" (assignment_expression "local_1060 = sVar16" identifier = identifier) ;) (if_statement "if (regsize < line.length) {\n    str_append(&s_accum,line.active + (int)&regsize->text,line.length - (int)regsize);\n    plVar26 = extraout_ECX_31;\n    plVar28 = extraout_EDX_04;\n    local_1060 = sVar16;\n  }" if (parenthesized_expression "(regsize < line.length)" ( (binary_expression "regsize < line.length" identifier < (field_expression "line.length" identifier . field_identifier)) )) (compound_statement "{\n    str_append(&s_accum,line.active + (int)&regsize->text,line.length - (int)regsize);\n    plVar26 = extraout_ECX_31;\n    plVar28 = extraout_EDX_04;\n    local_1060 = sVar16;\n  }" { (expression_statement "str_append(&s_accum,line.active + (int)&regsize->text,line.length - (int)regsize);" (call_expression "str_append(&s_accum,line.active + (int)&regsize->text,line.length - (int)regsize)" identifier (argument_list "(&s_accum,line.active + (int)&regsize->text,line.length - (int)regsize)" ( (pointer_expression "&s_accum" & identifier) , (binary_expression "line.active + (int)&regsize->text" (field_expression "line.active" identifier . field_identifier) + (cast_expression "(int)&regsize->text" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&regsize->text" & (field_expression "regsize->text" identifier -> field_identifier)))) , (binary_expression "line.length - (int)regsize" (field_expression "line.length" identifier . field_identifier) - (cast_expression "(int)regsize" ( (type_descriptor "int" primitive_type) ) identifier)) ))) ;) (expression_statement "plVar26 = extraout_ECX_31;" (assignment_expression "plVar26 = extraout_ECX_31" identifier = identifier) ;) (expression_statement "plVar28 = extraout_EDX_04;" (assignment_expression "plVar28 = extraout_EDX_04" identifier = identifier) ;) (expression_statement "local_1060 = sVar16;" (assignment_expression "local_1060 = sVar16" identifier = identifier) ;) })) (labeled_statement "LAB_00018bcb:\n  s_accum.chomped = line.chomped;" statement_identifier : (expression_statement "s_accum.chomped = line.chomped;" (assignment_expression "s_accum.chomped = line.chomped" (field_expression "s_accum.chomped" identifier . field_identifier) = (field_expression "line.chomped" identifier . field_identifier)) ;)) (expression_statement "line_exchange(&s_accum,plVar28,(int)plVar26);" (call_expression "line_exchange(&s_accum,plVar28,(int)plVar26)" identifier (argument_list "(&s_accum,plVar28,(int)plVar26)" ( (pointer_expression "&s_accum" & identifier) , identifier , (cast_expression "(int)plVar26" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "in_ECX = extraout_ECX_32;" (assignment_expression "in_ECX = extraout_ECX_32" identifier = identifier) ;) (if_statement "if ((regex->pattern).used <= local_1058) {\n    plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n    in_ECX = extraout_ECX_32;\n    plVar26 = in_stack_ffffef8c;\nLAB_00018bf8:\n    in_stack_ffffef8c = plVar26;\n    if (((uint)plVar28 & 2) != 0) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n      in_ECX = extraout_ECX_41;\n      in_stack_ffffef8c = plVar26;\n    }\n    if (((uint)plVar28 & 8) != 0) {\n      line_reset((line *)0x0,plVar28);\n      str_append(&line,"",1);\n      plVar26 = (line *)0x281e1;\n      pFVar23 = popen(line.active,"r");\n      uVar25 = extraout_ECX_39;\n      if (pFVar23 == (FILE *)0x0) {\nLAB_0001925a:\n        pcVar11 = (char *)dcgettext(0,"error in subprocess",5,uVar25);\n                    /* WARNING: Subroutine does not return */\n        panic(pcVar11);\n      }\n      bVar1 = (byte)pFVar23->_flags;\n      while ((bVar1 & 0x10) == 0) {\n        local_1060 = 0x1000;\n        plVar26 = (line *)0x1;\n        sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n        if (0 < (int)sVar14) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        in_stack_ffffef8c = sc;\n        bVar1 = (byte)pFVar23->_flags;\n      }\n      pclose(pFVar23);\n      line_exchange((line *)pFVar23,plVar26,local_1060);\n      in_ECX = extraout_ECX_40;\n      if ((line.length != 0) &&\n         (in_ECX = (addr *)(line.length - 1), line.active[line.length - 1] == buffer_delimiter)) {\n        line.length = (size_t)in_ECX;\n      }\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n    }\n    if (((uint)plVar28 >> 1 & 2) != 0) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n      in_ECX = extraout_ECX_42;\n    }\n    poVar12 = (output *)(regex->pattern).syntax;\n    if (poVar12 != (output *)0x0) {\n      output_line(line.active,line.length,(uint)line.chomped,poVar12);\n      in_ECX = extraout_ECX_33;\n    }\n  }" if (parenthesized_expression "((regex->pattern).used <= local_1058)" ( (binary_expression "(regex->pattern).used <= local_1058" (field_expression "(regex->pattern).used" (parenthesized_expression "(regex->pattern)" ( (field_expression "regex->pattern" identifier -> field_identifier) )) . field_identifier) <= identifier) )) (compound_statement "{\n    plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n    in_ECX = extraout_ECX_32;\n    plVar26 = in_stack_ffffef8c;\nLAB_00018bf8:\n    in_stack_ffffef8c = plVar26;\n    if (((uint)plVar28 & 2) != 0) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n      in_ECX = extraout_ECX_41;\n      in_stack_ffffef8c = plVar26;\n    }\n    if (((uint)plVar28 & 8) != 0) {\n      line_reset((line *)0x0,plVar28);\n      str_append(&line,"",1);\n      plVar26 = (line *)0x281e1;\n      pFVar23 = popen(line.active,"r");\n      uVar25 = extraout_ECX_39;\n      if (pFVar23 == (FILE *)0x0) {\nLAB_0001925a:\n        pcVar11 = (char *)dcgettext(0,"error in subprocess",5,uVar25);\n                    /* WARNING: Subroutine does not return */\n        panic(pcVar11);\n      }\n      bVar1 = (byte)pFVar23->_flags;\n      while ((bVar1 & 0x10) == 0) {\n        local_1060 = 0x1000;\n        plVar26 = (line *)0x1;\n        sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n        if (0 < (int)sVar14) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        in_stack_ffffef8c = sc;\n        bVar1 = (byte)pFVar23->_flags;\n      }\n      pclose(pFVar23);\n      line_exchange((line *)pFVar23,plVar26,local_1060);\n      in_ECX = extraout_ECX_40;\n      if ((line.length != 0) &&\n         (in_ECX = (addr *)(line.length - 1), line.active[line.length - 1] == buffer_delimiter)) {\n        line.length = (size_t)in_ECX;\n      }\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n    }\n    if (((uint)plVar28 >> 1 & 2) != 0) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n      in_ECX = extraout_ECX_42;\n    }\n    poVar12 = (output *)(regex->pattern).syntax;\n    if (poVar12 != (output *)0x0) {\n      output_line(line.active,line.length,(uint)line.chomped,poVar12);\n      in_ECX = extraout_ECX_33;\n    }\n  }" { (expression_statement "plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;" (assignment_expression "plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap" identifier = (binary_expression "(line *)(uint)*(byte *)&(regex->pattern).fastmap" (cast_expression "(line *)(uint)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)&(regex->pattern).fastmap" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(regex->pattern).fastmap" & (field_expression "(regex->pattern).fastmap" (parenthesized_expression "(regex->pattern)" ( (field_expression "regex->pattern" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "in_ECX = extraout_ECX_32;" (assignment_expression "in_ECX = extraout_ECX_32" identifier = identifier) ;) (expression_statement "plVar26 = in_stack_ffffef8c;" (assignment_expression "plVar26 = in_stack_ffffef8c" identifier = identifier) ;) (labeled_statement "LAB_00018bf8:\n    in_stack_ffffef8c = plVar26;" statement_identifier : (expression_statement "in_stack_ffffef8c = plVar26;" (assignment_expression "in_stack_ffffef8c = plVar26" identifier = identifier) ;)) (if_statement "if (((uint)plVar28 & 2) != 0) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n      in_ECX = extraout_ECX_41;\n      in_stack_ffffef8c = plVar26;\n    }" if (parenthesized_expression "(((uint)plVar28 & 2) != 0)" ( (binary_expression "((uint)plVar28 & 2) != 0" (parenthesized_expression "((uint)plVar28 & 2)" ( (binary_expression "(uint)plVar28 & 2" (cast_expression "(uint)plVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n      in_ECX = extraout_ECX_41;\n      in_stack_ffffef8c = plVar26;\n    }" { (expression_statement "output_line(line.active,line.length,(uint)line.chomped,&output_file);" (call_expression "output_line(line.active,line.length,(uint)line.chomped,&output_file)" identifier (argument_list "(line.active,line.length,(uint)line.chomped,&output_file)" ( (field_expression "line.active" identifier . field_identifier) , (field_expression "line.length" identifier . field_identifier) , (cast_expression "(uint)line.chomped" ( (type_descriptor "uint" type_identifier) ) (field_expression "line.chomped" identifier . field_identifier)) , (pointer_expression "&output_file" & identifier) ))) ;) (expression_statement "plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;" (assignment_expression "plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap" identifier = (binary_expression "(line *)(uint)*(byte *)&(regex->pattern).fastmap" (cast_expression "(line *)(uint)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)&(regex->pattern).fastmap" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(regex->pattern).fastmap" & (field_expression "(regex->pattern).fastmap" (parenthesized_expression "(regex->pattern)" ( (field_expression "regex->pattern" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "in_ECX = extraout_ECX_41;" (assignment_expression "in_ECX = extraout_ECX_41" identifier = identifier) ;) (expression_statement "in_stack_ffffef8c = plVar26;" (assignment_expression "in_stack_ffffef8c = plVar26" identifier = identifier) ;) })) (if_statement "if (((uint)plVar28 & 8) != 0) {\n      line_reset((line *)0x0,plVar28);\n      str_append(&line,"",1);\n      plVar26 = (line *)0x281e1;\n      pFVar23 = popen(line.active,"r");\n      uVar25 = extraout_ECX_39;\n      if (pFVar23 == (FILE *)0x0) {\nLAB_0001925a:\n        pcVar11 = (char *)dcgettext(0,"error in subprocess",5,uVar25);\n                    /* WARNING: Subroutine does not return */\n        panic(pcVar11);\n      }\n      bVar1 = (byte)pFVar23->_flags;\n      while ((bVar1 & 0x10) == 0) {\n        local_1060 = 0x1000;\n        plVar26 = (line *)0x1;\n        sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n        if (0 < (int)sVar14) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        in_stack_ffffef8c = sc;\n        bVar1 = (byte)pFVar23->_flags;\n      }\n      pclose(pFVar23);\n      line_exchange((line *)pFVar23,plVar26,local_1060);\n      in_ECX = extraout_ECX_40;\n      if ((line.length != 0) &&\n         (in_ECX = (addr *)(line.length - 1), line.active[line.length - 1] == buffer_delimiter)) {\n        line.length = (size_t)in_ECX;\n      }\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n    }" if (parenthesized_expression "(((uint)plVar28 & 8) != 0)" ( (binary_expression "((uint)plVar28 & 8) != 0" (parenthesized_expression "((uint)plVar28 & 8)" ( (binary_expression "(uint)plVar28 & 8" (cast_expression "(uint)plVar28" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      line_reset((line *)0x0,plVar28);\n      str_append(&line,"",1);\n      plVar26 = (line *)0x281e1;\n      pFVar23 = popen(line.active,"r");\n      uVar25 = extraout_ECX_39;\n      if (pFVar23 == (FILE *)0x0) {\nLAB_0001925a:\n        pcVar11 = (char *)dcgettext(0,"error in subprocess",5,uVar25);\n                    /* WARNING: Subroutine does not return */\n        panic(pcVar11);\n      }\n      bVar1 = (byte)pFVar23->_flags;\n      while ((bVar1 & 0x10) == 0) {\n        local_1060 = 0x1000;\n        plVar26 = (line *)0x1;\n        sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n        if (0 < (int)sVar14) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        in_stack_ffffef8c = sc;\n        bVar1 = (byte)pFVar23->_flags;\n      }\n      pclose(pFVar23);\n      line_exchange((line *)pFVar23,plVar26,local_1060);\n      in_ECX = extraout_ECX_40;\n      if ((line.length != 0) &&\n         (in_ECX = (addr *)(line.length - 1), line.active[line.length - 1] == buffer_delimiter)) {\n        line.length = (size_t)in_ECX;\n      }\n      plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;\n    }" { (expression_statement "line_reset((line *)0x0,plVar28);" (call_expression "line_reset((line *)0x0,plVar28)" identifier (argument_list "((line *)0x0,plVar28)" ( (cast_expression "(line *)0x0" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;) (expression_statement "str_append(&line,"",1);" (call_expression "str_append(&line,"",1)" identifier (argument_list "(&line,"",1)" ( (pointer_expression "&line" & identifier) , (string_literal """" " ") , number_literal ))) ;) (expression_statement "plVar26 = (line *)0x281e1;" (assignment_expression "plVar26 = (line *)0x281e1" identifier = (cast_expression "(line *)0x281e1" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pFVar23 = popen(line.active,"r");" (assignment_expression "pFVar23 = popen(line.active,"r")" identifier = (call_expression "popen(line.active,"r")" identifier (argument_list "(line.active,"r")" ( (field_expression "line.active" identifier . field_identifier) , (string_literal ""r"" " string_content ") )))) ;) (expression_statement "uVar25 = extraout_ECX_39;" (assignment_expression "uVar25 = extraout_ECX_39" identifier = identifier) ;) (if_statement "if (pFVar23 == (FILE *)0x0) {\nLAB_0001925a:\n        pcVar11 = (char *)dcgettext(0,"error in subprocess",5,uVar25);\n                    /* WARNING: Subroutine does not return */\n        panic(pcVar11);\n      }" if (parenthesized_expression "(pFVar23 == (FILE *)0x0)" ( (binary_expression "pFVar23 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0001925a:\n        pcVar11 = (char *)dcgettext(0,"error in subprocess",5,uVar25);\n                    /* WARNING: Subroutine does not return */\n        panic(pcVar11);\n      }" { (labeled_statement "LAB_0001925a:\n        pcVar11 = (char *)dcgettext(0,"error in subprocess",5,uVar25);" statement_identifier : (expression_statement "pcVar11 = (char *)dcgettext(0,"error in subprocess",5,uVar25);" (assignment_expression "pcVar11 = (char *)dcgettext(0,"error in subprocess",5,uVar25)" identifier = (cast_expression "(char *)dcgettext(0,"error in subprocess",5,uVar25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"error in subprocess",5,uVar25)" identifier (argument_list "(0,"error in subprocess",5,uVar25)" ( number_literal , (string_literal ""error in subprocess"" " string_content ") , number_literal , identifier ))))) ;)) comment (expression_statement "panic(pcVar11);" (call_expression "panic(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) })) (expression_statement "bVar1 = (byte)pFVar23->_flags;" (assignment_expression "bVar1 = (byte)pFVar23->_flags" identifier = (cast_expression "(byte)pFVar23->_flags" ( (type_descriptor "byte" type_identifier) ) (field_expression "pFVar23->_flags" identifier -> field_identifier))) ;) (while_statement "while ((bVar1 & 0x10) == 0) {\n        local_1060 = 0x1000;\n        plVar26 = (line *)0x1;\n        sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n        if (0 < (int)sVar14) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        in_stack_ffffef8c = sc;\n        bVar1 = (byte)pFVar23->_flags;\n      }" while (parenthesized_expression "((bVar1 & 0x10) == 0)" ( (binary_expression "(bVar1 & 0x10) == 0" (parenthesized_expression "(bVar1 & 0x10)" ( (binary_expression "bVar1 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        local_1060 = 0x1000;\n        plVar26 = (line *)0x1;\n        sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);\n        if (0 < (int)sVar14) {\n          str_append(&s_accum,buf,sVar14);\n        }\n        in_stack_ffffef8c = sc;\n        bVar1 = (byte)pFVar23->_flags;\n      }" { (expression_statement "local_1060 = 0x1000;" (assignment_expression "local_1060 = 0x1000" identifier = number_literal) ;) (expression_statement "plVar26 = (line *)0x1;" (assignment_expression "plVar26 = (line *)0x1" identifier = (cast_expression "(line *)0x1" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "sVar14 = fread_unlocked(buf,1,0x1000,pFVar23);" (assignment_expression "sVar14 = fread_unlocked(buf,1,0x1000,pFVar23)" identifier = (call_expression "fread_unlocked(buf,1,0x1000,pFVar23)" identifier (argument_list "(buf,1,0x1000,pFVar23)" ( identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (0 < (int)sVar14) {\n          str_append(&s_accum,buf,sVar14);\n        }" if (parenthesized_expression "(0 < (int)sVar14)" ( (binary_expression "0 < (int)sVar14" number_literal < (cast_expression "(int)sVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          str_append(&s_accum,buf,sVar14);\n        }" { (expression_statement "str_append(&s_accum,buf,sVar14);" (call_expression "str_append(&s_accum,buf,sVar14)" identifier (argument_list "(&s_accum,buf,sVar14)" ( (pointer_expression "&s_accum" & identifier) , identifier , identifier ))) ;) })) (expression_statement "in_stack_ffffef8c = sc;" (assignment_expression "in_stack_ffffef8c = sc" identifier = identifier) ;) (expression_statement "bVar1 = (byte)pFVar23->_flags;" (assignment_expression "bVar1 = (byte)pFVar23->_flags" identifier = (cast_expression "(byte)pFVar23->_flags" ( (type_descriptor "byte" type_identifier) ) (field_expression "pFVar23->_flags" identifier -> field_identifier))) ;) })) (expression_statement "pclose(pFVar23);" (call_expression "pclose(pFVar23)" identifier (argument_list "(pFVar23)" ( identifier ))) ;) (expression_statement "line_exchange((line *)pFVar23,plVar26,local_1060);" (call_expression "line_exchange((line *)pFVar23,plVar26,local_1060)" identifier (argument_list "((line *)pFVar23,plVar26,local_1060)" ( (cast_expression "(line *)pFVar23" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))) ;) (expression_statement "in_ECX = extraout_ECX_40;" (assignment_expression "in_ECX = extraout_ECX_40" identifier = identifier) ;) (if_statement "if ((line.length != 0) &&\n         (in_ECX = (addr *)(line.length - 1), line.active[line.length - 1] == buffer_delimiter)) {\n        line.length = (size_t)in_ECX;\n      }" if (parenthesized_expression "((line.length != 0) &&\n         (in_ECX = (addr *)(line.length - 1), line.active[line.length - 1] == buffer_delimiter))" ( (binary_expression "(line.length != 0) &&\n         (in_ECX = (addr *)(line.length - 1), line.active[line.length - 1] == buffer_delimiter)" (parenthesized_expression "(line.length != 0)" ( (binary_expression "line.length != 0" (field_expression "line.length" identifier . field_identifier) != number_literal) )) && (parenthesized_expression "(in_ECX = (addr *)(line.length - 1), line.active[line.length - 1] == buffer_delimiter)" ( (comma_expression "in_ECX = (addr *)(line.length - 1), line.active[line.length - 1] == buffer_delimiter" (assignment_expression "in_ECX = (addr *)(line.length - 1)" identifier = (cast_expression "(addr *)(line.length - 1)" ( (type_descriptor "addr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(line.length - 1)" ( (binary_expression "line.length - 1" (field_expression "line.length" identifier . field_identifier) - number_literal) )))) , (binary_expression "line.active[line.length - 1] == buffer_delimiter" (subscript_expression "line.active[line.length - 1]" (field_expression "line.active" identifier . field_identifier) [ (binary_expression "line.length - 1" (field_expression "line.length" identifier . field_identifier) - number_literal) ]) == identifier)) ))) )) (compound_statement "{\n        line.length = (size_t)in_ECX;\n      }" { (expression_statement "line.length = (size_t)in_ECX;" (assignment_expression "line.length = (size_t)in_ECX" (field_expression "line.length" identifier . field_identifier) = (cast_expression "(size_t)in_ECX" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) })) (expression_statement "plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap;" (assignment_expression "plVar28 = (line *)(uint)*(byte *)&(regex->pattern).fastmap" identifier = (binary_expression "(line *)(uint)*(byte *)&(regex->pattern).fastmap" (cast_expression "(line *)(uint)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)&(regex->pattern).fastmap" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(regex->pattern).fastmap" & (field_expression "(regex->pattern).fastmap" (parenthesized_expression "(regex->pattern)" ( (field_expression "regex->pattern" identifier -> field_identifier) )) . field_identifier))))) ;) })) (if_statement "if (((uint)plVar28 >> 1 & 2) != 0) {\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n      in_ECX = extraout_ECX_42;\n    }" if (parenthesized_expression "(((uint)plVar28 >> 1 & 2) != 0)" ( (binary_expression "((uint)plVar28 >> 1 & 2) != 0" (parenthesized_expression "((uint)plVar28 >> 1 & 2)" ( (binary_expression "(uint)plVar28 >> 1 & 2" (binary_expression "(uint)plVar28 >> 1" (cast_expression "(uint)plVar28" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n      output_line(line.active,line.length,(uint)line.chomped,&output_file);\n      in_ECX = extraout_ECX_42;\n    }" { (expression_statement "output_line(line.active,line.length,(uint)line.chomped,&output_file);" (call_expression "output_line(line.active,line.length,(uint)line.chomped,&output_file)" identifier (argument_list "(line.active,line.length,(uint)line.chomped,&output_file)" ( (field_expression "line.active" identifier . field_identifier) , (field_expression "line.length" identifier . field_identifier) , (cast_expression "(uint)line.chomped" ( (type_descriptor "uint" type_identifier) ) (field_expression "line.chomped" identifier . field_identifier)) , (pointer_expression "&output_file" & identifier) ))) ;) (expression_statement "in_ECX = extraout_ECX_42;" (assignment_expression "in_ECX = extraout_ECX_42" identifier = identifier) ;) })) (expression_statement "poVar12 = (output *)(regex->pattern).syntax;" (assignment_expression "poVar12 = (output *)(regex->pattern).syntax" identifier = (cast_expression "(output *)(regex->pattern).syntax" ( (type_descriptor "output *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(regex->pattern).syntax" (parenthesized_expression "(regex->pattern)" ( (field_expression "regex->pattern" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (poVar12 != (output *)0x0) {\n      output_line(line.active,line.length,(uint)line.chomped,poVar12);\n      in_ECX = extraout_ECX_33;\n    }" if (parenthesized_expression "(poVar12 != (output *)0x0)" ( (binary_expression "poVar12 != (output *)0x0" identifier != (cast_expression "(output *)0x0" ( (type_descriptor "output *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      output_line(line.active,line.length,(uint)line.chomped,poVar12);\n      in_ECX = extraout_ECX_33;\n    }" { (expression_statement "output_line(line.active,line.length,(uint)line.chomped,poVar12);" (call_expression "output_line(line.active,line.length,(uint)line.chomped,poVar12)" identifier (argument_list "(line.active,line.length,(uint)line.chomped,poVar12)" ( (field_expression "line.active" identifier . field_identifier) , (field_expression "line.length" identifier . field_identifier) , (cast_expression "(uint)line.chomped" ( (type_descriptor "uint" type_identifier) ) (field_expression "line.chomped" identifier . field_identifier)) , identifier ))) ;) (expression_statement "in_ECX = extraout_ECX_33;" (assignment_expression "in_ECX = extraout_ECX_33" identifier = identifier) ;) })) })) (labeled_statement "LAB_000188c9:\n  if (*(_Bool *)&((line *)b)->text != false) {\nLAB_00017dd0:\n    debug_print_line(&line);\n    in_ECX = extraout_ECX_01;\n    goto _L604;\n  }" statement_identifier : (if_statement "if (*(_Bool *)&((line *)b)->text != false) {\nLAB_00017dd0:\n    debug_print_line(&line);\n    in_ECX = extraout_ECX_01;\n    goto _L604;\n  }" if (parenthesized_expression "(*(_Bool *)&((line *)b)->text != false)" ( (binary_expression "*(_Bool *)&((line *)b)->text != false" (pointer_expression "*(_Bool *)&((line *)b)->text" * (cast_expression "(_Bool *)&((line *)b)->text" ( (type_descriptor "_Bool *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier)))) != false) )) (compound_statement "{\nLAB_00017dd0:\n    debug_print_line(&line);\n    in_ECX = extraout_ECX_01;\n    goto _L604;\n  }" { (labeled_statement "LAB_00017dd0:\n    debug_print_line(&line);" statement_identifier : (expression_statement "debug_print_line(&line);" (call_expression "debug_print_line(&line)" identifier (argument_list "(&line)" ( (pointer_expression "&line" & identifier) ))) ;)) (expression_statement "in_ECX = extraout_ECX_01;" (assignment_expression "in_ECX = extraout_ECX_01" identifier = identifier) ;) (goto_statement "goto _L604;" goto statement_identifier ;) }))) (labeled_statement "LAB_000182c0:\n  sc = (line *)&(sc->mbstate).__value;" statement_identifier : (expression_statement "sc = (line *)&(sc->mbstate).__value;" (assignment_expression "sc = (line *)&(sc->mbstate).__value" identifier = (cast_expression "(line *)&(sc->mbstate).__value" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(sc->mbstate).__value" & (field_expression "(sc->mbstate).__value" (parenthesized_expression "(sc->mbstate)" ( (field_expression "sc->mbstate" identifier -> field_identifier) )) . field_identifier)))) ;)) (labeled_statement "joined_r0x00018523:\n  if ((line *)(ppaVar6 + sVar2 * 6) <= sc) goto LAB_00017e10;" statement_identifier : (if_statement "if ((line *)(ppaVar6 + sVar2 * 6) <= sc) goto LAB_00017e10;" if (parenthesized_expression "((line *)(ppaVar6 + sVar2 * 6) <= sc)" ( (binary_expression "(line *)(ppaVar6 + sVar2 * 6) <= sc" (cast_expression "(line *)(ppaVar6 + sVar2 * 6)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppaVar6 + sVar2 * 6)" ( (binary_expression "ppaVar6 + sVar2 * 6" identifier + (binary_expression "sVar2 * 6" identifier * number_literal)) ))) <= identifier) )) (goto_statement "goto LAB_00017e10;" goto statement_identifier ;))) (goto_statement "goto LAB_00017cfb;" goto statement_identifier ;) (labeled_statement "_L336:\n  sc = (line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg);" statement_identifier : (expression_statement "sc = (line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg);" (assignment_expression "sc = (line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg)" identifier = (cast_expression "(line *)(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg)" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg)" ( (binary_expression "vec->v + ((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg" (field_expression "vec->v" identifier -> field_identifier) + (field_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)->int_arg" (parenthesized_expression "((anon_union_8_10_aa281450_for_x *)&sc->chomped)" ( (cast_expression "(anon_union_8_10_aa281450_for_x *)&sc->chomped" ( (type_descriptor "anon_union_8_10_aa281450_for_x *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&sc->chomped" & (field_expression "sc->chomped" identifier -> field_identifier))) )) -> field_identifier)) )))) ;)) (expression_statement "cVar9 = *(char *)&((line *)b)->text;" (assignment_expression "cVar9 = *(char *)&((line *)b)->text" identifier = (pointer_expression "*(char *)&((line *)b)->text" * (cast_expression "(char *)&((line *)b)->text" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((line *)b)->text" & (field_expression "((line *)b)->text" (parenthesized_expression "((line *)b)" ( (cast_expression "(line *)b" ( (type_descriptor "line *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier))))) ;) (goto_statement "goto joined_r0x00017cbb;" goto statement_identifier ;) })))
(translation_unit "int __regparm3 FUN_00017c70(int *param_1,int param_2)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  undefined *puVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  int *piVar8;\n  uint uVar9;\n  int iVar10;\n  ushort **ppuVar11;\n  char *pcVar12;\n  byte *pbVar13;\n  FILE *pFVar14;\n  size_t sVar15;\n  undefined4 uVar16;\n  uint *puVar17;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar18;\n  byte *pbVar19;\n  int *piVar20;\n  uint uVar21;\n  uint uVar22;\n  byte *pbVar23;\n  char *pcVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  char *pcVar26;\n  char *pcStack_106c;\n  uint uStack_1068;\n  uint uStack_1060;\n  byte *pbStack_105c;\n  uint uStack_1058;\n  undefined1 auStack_1030 [4];\n  void *pvStack_102c;\n  undefined4 uStack_1028;\n  undefined4 uStack_1024;\n  byte bStack_1020;\n  char acStack_101f [4095];\n  int local_20;\n  undefined4 uStack_14;\n  \n  puVar3 = PTR_stdout_00030fdc;\n  uStack_14 = 0x17c79;\n  piVar20 = (int *)*param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  piVar2 = piVar20 + param_1[2] * 6;\n  pcVar26 = &DAT_00031414;\n  cVar4 = DAT_00031414;\njoined_r0x00017cbb:\n  if (piVar2 <= piVar20) {\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_00025de0();\n    }\n    return iVar6;\n  }\n  if (cVar4 != '\0') {\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    FUN_00015bb0(param_1,piVar20);\n  }\nLAB_00017cfb:\n  piVar8 = (int *)*piVar20;\n  if (piVar8 == (int *)0x0) {\nLAB_00017e6b:\n    uVar5 = 1;\n  }\n  else {\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }\n  uVar16 = DAT_00031400;\n  uVar9 = DAT_000313e4;\n  pbVar23 = DAT_000313e0;\n  if ((int)(char)piVar20[3] == uVar5) goto LAB_00017de0;\n  switch((int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff) {\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto LAB_00017de0;\n  default:\n                    \n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));\n  case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;\n  case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;\n  case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;\n  case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;\n  case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;\n  case 0x2e:\n    goto code_r0x00017f94;\n  case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;\n  case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;\n  case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3f:\n  case 0x58:\n    goto code_r0x00018860;\n  case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n  case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;\n  case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;\n  case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;\n  case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;\n  case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;\n  case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;\n  case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;\n  case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;\n  case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;\n  }\n  if (cVar4 == '\0') goto code_r0x000182c0;\ncode_r0x0001861e:\n  FUN_00016620();\n  cVar4 = *pcVar26;\n  goto code_r0x00017de7;\ncode_r0x00018ba8:\n  if (uVar22 < DAT_000313e4) {\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }\ncode_r0x00018bcb:\n  DAT_000313d0._0_1_ = (undefined1)DAT_000313ec;\n  FUN_00017220();\n  if ((uint)puVar1[2] <= uStack_1058) {\n    bVar18 = *(byte *)(puVar1 + 4);\ncode_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }\n  }\ncode_r0x000188c9:\n  if (*pcVar26 != '\0') {\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }\ncode_r0x000182c0:\n  piVar20 = piVar20 + 6;\njoined_r0x00018523:\n  if (piVar2 <= piVar20) goto LAB_00017e10;\n  goto LAB_00017cfb;\ncode_r0x00018860:\n  piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n  cVar4 = *pcVar26;\n  goto joined_r0x00017cbb;\n}\n\n" (function_definition "int __regparm3 FUN_00017c70(int *param_1,int param_2)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  undefined *puVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  int *piVar8;\n  uint uVar9;\n  int iVar10;\n  ushort **ppuVar11;\n  char *pcVar12;\n  byte *pbVar13;\n  FILE *pFVar14;\n  size_t sVar15;\n  undefined4 uVar16;\n  uint *puVar17;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar18;\n  byte *pbVar19;\n  int *piVar20;\n  uint uVar21;\n  uint uVar22;\n  byte *pbVar23;\n  char *pcVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  char *pcVar26;\n  char *pcStack_106c;\n  uint uStack_1068;\n  uint uStack_1060;\n  byte *pbStack_105c;\n  uint uStack_1058;\n  undefined1 auStack_1030 [4];\n  void *pvStack_102c;\n  undefined4 uStack_1028;\n  undefined4 uStack_1024;\n  byte bStack_1020;\n  char acStack_101f [4095];\n  int local_20;\n  undefined4 uStack_14;\n  \n  puVar3 = PTR_stdout_00030fdc;\n  uStack_14 = 0x17c79;\n  piVar20 = (int *)*param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  piVar2 = piVar20 + param_1[2] * 6;\n  pcVar26 = &DAT_00031414;\n  cVar4 = DAT_00031414;\njoined_r0x00017cbb:\n  if (piVar2 <= piVar20) {\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_00025de0();\n    }\n    return iVar6;\n  }\n  if (cVar4 != '\0') {\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    FUN_00015bb0(param_1,piVar20);\n  }\nLAB_00017cfb:\n  piVar8 = (int *)*piVar20;\n  if (piVar8 == (int *)0x0) {\nLAB_00017e6b:\n    uVar5 = 1;\n  }\n  else {\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }\n  uVar16 = DAT_00031400;\n  uVar9 = DAT_000313e4;\n  pbVar23 = DAT_000313e0;\n  if ((int)(char)piVar20[3] == uVar5) goto LAB_00017de0;\n  switch((int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff) {\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto LAB_00017de0;\n  default:\n                    \n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));\n  case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;\n  case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;\n  case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;\n  case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;\n  case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;\n  case 0x2e:\n    goto code_r0x00017f94;\n  case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;\n  case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;\n  case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3f:\n  case 0x58:\n    goto code_r0x00018860;\n  case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n  case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;\n  case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;\n  case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;\n  case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;\n  case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;\n  case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;\n  case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;\n  case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;\n  case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;\n  }\n  if (cVar4 == '\0') goto code_r0x000182c0;\ncode_r0x0001861e:\n  FUN_00016620();\n  cVar4 = *pcVar26;\n  goto code_r0x00017de7;\ncode_r0x00018ba8:\n  if (uVar22 < DAT_000313e4) {\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }\ncode_r0x00018bcb:\n  DAT_000313d0._0_1_ = (undefined1)DAT_000313ec;\n  FUN_00017220();\n  if ((uint)puVar1[2] <= uStack_1058) {\n    bVar18 = *(byte *)(puVar1 + 4);\ncode_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }\n  }\ncode_r0x000188c9:\n  if (*pcVar26 != '\0') {\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }\ncode_r0x000182c0:\n  piVar20 = piVar20 + 6;\njoined_r0x00018523:\n  if (piVar2 <= piVar20) goto LAB_00017e10;\n  goto LAB_00017cfb;\ncode_r0x00018860:\n  piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n  cVar4 = *pcVar26;\n  goto joined_r0x00017cbb;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00017c70(int *param_1,int param_2)" identifier (parameter_list "(int *param_1,int param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int *piVar2;\n  undefined *puVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  int *piVar8;\n  uint uVar9;\n  int iVar10;\n  ushort **ppuVar11;\n  char *pcVar12;\n  byte *pbVar13;\n  FILE *pFVar14;\n  size_t sVar15;\n  undefined4 uVar16;\n  uint *puVar17;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar18;\n  byte *pbVar19;\n  int *piVar20;\n  uint uVar21;\n  uint uVar22;\n  byte *pbVar23;\n  char *pcVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  char *pcVar26;\n  char *pcStack_106c;\n  uint uStack_1068;\n  uint uStack_1060;\n  byte *pbStack_105c;\n  uint uStack_1058;\n  undefined1 auStack_1030 [4];\n  void *pvStack_102c;\n  undefined4 uStack_1028;\n  undefined4 uStack_1024;\n  byte bStack_1020;\n  char acStack_101f [4095];\n  int local_20;\n  undefined4 uStack_14;\n  \n  puVar3 = PTR_stdout_00030fdc;\n  uStack_14 = 0x17c79;\n  piVar20 = (int *)*param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  piVar2 = piVar20 + param_1[2] * 6;\n  pcVar26 = &DAT_00031414;\n  cVar4 = DAT_00031414;\njoined_r0x00017cbb:\n  if (piVar2 <= piVar20) {\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_00025de0();\n    }\n    return iVar6;\n  }\n  if (cVar4 != '\0') {\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    FUN_00015bb0(param_1,piVar20);\n  }\nLAB_00017cfb:\n  piVar8 = (int *)*piVar20;\n  if (piVar8 == (int *)0x0) {\nLAB_00017e6b:\n    uVar5 = 1;\n  }\n  else {\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }\n  uVar16 = DAT_00031400;\n  uVar9 = DAT_000313e4;\n  pbVar23 = DAT_000313e0;\n  if ((int)(char)piVar20[3] == uVar5) goto LAB_00017de0;\n  switch((int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff) {\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto LAB_00017de0;\n  default:\n                    \n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));\n  case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;\n  case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;\n  case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;\n  case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;\n  case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;\n  case 0x2e:\n    goto code_r0x00017f94;\n  case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;\n  case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;\n  case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3f:\n  case 0x58:\n    goto code_r0x00018860;\n  case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n  case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;\n  case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;\n  case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;\n  case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;\n  case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;\n  case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;\n  case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;\n  case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;\n  case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;\n  }\n  if (cVar4 == '\0') goto code_r0x000182c0;\ncode_r0x0001861e:\n  FUN_00016620();\n  cVar4 = *pcVar26;\n  goto code_r0x00017de7;\ncode_r0x00018ba8:\n  if (uVar22 < DAT_000313e4) {\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }\ncode_r0x00018bcb:\n  DAT_000313d0._0_1_ = (undefined1)DAT_000313ec;\n  FUN_00017220();\n  if ((uint)puVar1[2] <= uStack_1058) {\n    bVar18 = *(byte *)(puVar1 + 4);\ncode_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }\n  }\ncode_r0x000188c9:\n  if (*pcVar26 != '\0') {\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }\ncode_r0x000182c0:\n  piVar20 = piVar20 + 6;\njoined_r0x00018523:\n  if (piVar2 <= piVar20) goto LAB_00017e10;\n  goto LAB_00017cfb;\ncode_r0x00018860:\n  piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n  cVar4 = *pcVar26;\n  goto joined_r0x00017cbb;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "ushort **ppuVar11;" type_identifier (pointer_declarator "**ppuVar11" * (pointer_declarator "*ppuVar11" * identifier)) ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "FILE *pFVar14;" type_identifier (pointer_declarator "*pFVar14" * identifier) ;) (declaration "size_t sVar15;" primitive_type identifier ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_01;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_02;" type_identifier identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "char *pcVar26;" primitive_type (pointer_declarator "*pcVar26" * identifier) ;) (declaration "char *pcStack_106c;" primitive_type (pointer_declarator "*pcStack_106c" * identifier) ;) (declaration "uint uStack_1068;" type_identifier identifier ;) (declaration "uint uStack_1060;" type_identifier identifier ;) (declaration "byte *pbStack_105c;" type_identifier (pointer_declarator "*pbStack_105c" * identifier) ;) (declaration "uint uStack_1058;" type_identifier identifier ;) (declaration "undefined1 auStack_1030 [4];" type_identifier (array_declarator "auStack_1030 [4]" identifier [ number_literal ]) ;) (declaration "void *pvStack_102c;" primitive_type (pointer_declarator "*pvStack_102c" * identifier) ;) (declaration "undefined4 uStack_1028;" type_identifier identifier ;) (declaration "undefined4 uStack_1024;" type_identifier identifier ;) (declaration "byte bStack_1020;" type_identifier identifier ;) (declaration "char acStack_101f [4095];" primitive_type (array_declarator "acStack_101f [4095]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "puVar3 = PTR_stdout_00030fdc;" (assignment_expression "puVar3 = PTR_stdout_00030fdc" identifier = identifier) ;) (expression_statement "uStack_14 = 0x17c79;" (assignment_expression "uStack_14 = 0x17c79" identifier = number_literal) ;) (expression_statement "piVar20 = (int *)*param_1;" (assignment_expression "piVar20 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (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 "piVar2 = piVar20 + param_1[2] * 6;" (assignment_expression "piVar2 = piVar20 + param_1[2] * 6" identifier = (binary_expression "piVar20 + param_1[2] * 6" identifier + (binary_expression "param_1[2] * 6" (subscript_expression "param_1[2]" identifier [ number_literal ]) * number_literal))) ;) (expression_statement "pcVar26 = &DAT_00031414;" (assignment_expression "pcVar26 = &DAT_00031414" identifier = (pointer_expression "&DAT_00031414" & identifier)) ;) (expression_statement "cVar4 = DAT_00031414;" (assignment_expression "cVar4 = DAT_00031414" identifier = identifier) ;) (labeled_statement "joined_r0x00017cbb:\n  if (piVar2 <= piVar20) {\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_00025de0();\n    }\n    return iVar6;\n  }" statement_identifier : (if_statement "if (piVar2 <= piVar20) {\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_00025de0();\n    }\n    return iVar6;\n  }" if (parenthesized_expression "(piVar2 <= piVar20)" ( (binary_expression "piVar2 <= piVar20" identifier <= identifier) )) (compound_statement "{\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_00025de0();\n    }\n    return iVar6;\n  }" { (if_statement "if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      puts("END-OF-CYCLE:");\n    }" { (expression_statement "puts("END-OF-CYCLE:");" (call_expression "puts("END-OF-CYCLE:")" identifier (argument_list "("END-OF-CYCLE:")" ( (string_literal ""END-OF-CYCLE:"" " string_content ") ))) ;) })) (labeled_statement "LAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }" statement_identifier : (if_statement "if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }" if (parenthesized_expression "(DAT_00031418 == '\0')" ( (binary_expression "DAT_00031418 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }" { (labeled_statement "code_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);" statement_identifier : (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" identifier (argument_list "(&DAT_000313f8)" ( (pointer_expression "&DAT_000313f8" & identifier) ))) ;)) }))) (labeled_statement "LAB_00017f53:\n    iVar6 = -1;" statement_identifier : (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;)) (labeled_statement "code_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_00025de0();\n    }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_00025de0();\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_00025de0();\n    }" { (expression_statement "FUN_00025de0();" (call_expression "FUN_00025de0()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar6;" return identifier ;) }))) (if_statement "if (cVar4 != '\0') {\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    FUN_00015bb0(param_1,piVar20);\n  }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    FUN_00015bb0(param_1,piVar20);\n  }" { (expression_statement "fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);" (call_expression "fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc)" identifier (argument_list "("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc)" ( (string_literal ""COMMAND: "" " string_content ") , number_literal , number_literal , (pointer_expression "*(FILE **)PTR_stdout_00030fdc" * (cast_expression "(FILE **)PTR_stdout_00030fdc" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_00015bb0(param_1,piVar20);" (call_expression "FUN_00015bb0(param_1,piVar20)" identifier (argument_list "(param_1,piVar20)" ( identifier , identifier ))) ;) })) (labeled_statement "LAB_00017cfb:\n  piVar8 = (int *)*piVar20;" statement_identifier : (expression_statement "piVar8 = (int *)*piVar20;" (assignment_expression "piVar8 = (int *)*piVar20" identifier = (cast_expression "(int *)*piVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar20" * identifier))) ;)) (if_statement "if (piVar8 == (int *)0x0) {\nLAB_00017e6b:\n    uVar5 = 1;\n  }\n  else {\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00017e6b:\n    uVar5 = 1;\n  }" { (labeled_statement "LAB_00017e6b:\n    uVar5 = 1;" statement_identifier : (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;)) }) (else_clause "else {\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }" else (compound_statement "{\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }" { (expression_statement "puVar17 = (uint *)piVar20[1];" (assignment_expression "puVar17 = (uint *)piVar20[1]" identifier = (cast_expression "(uint *)piVar20[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar20[1]" identifier [ number_literal ]))) ;) (if_statement "if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" if (parenthesized_expression "(piVar20[2] == 1)" ( (binary_expression "piVar20[2] == 1" (subscript_expression "piVar20[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }" { (if_statement "if (*puVar17 != 2) goto LAB_00017e56;" if (parenthesized_expression "(*puVar17 != 2)" ( (binary_expression "*puVar17 != 2" (pointer_expression "*puVar17" * identifier) != number_literal) )) (goto_statement "goto LAB_00017e56;" goto statement_identifier ;)) (expression_statement "uVar5 = *(uint *)(param_2 + 8);" (assignment_expression "uVar5 = *(uint *)(param_2 + 8)" identifier = (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = puVar17[1];" (assignment_expression "uVar9 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;) (if_statement "if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }" if (parenthesized_expression "(uVar9 <= uVar5)" ( (binary_expression "uVar9 <= uVar5" identifier <= identifier) )) (compound_statement "{\n        piVar20[2] = 2;\n      }" { (expression_statement "piVar20[2] = 2;" (assignment_expression "piVar20[2] = 2" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "uVar5 = (uint)(uVar5 <= uVar9);" (assignment_expression "uVar5 = (uint)(uVar5 <= uVar9)" identifier = (call_expression "(uint)(uVar5 <= uVar9)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar5 <= uVar9)" ( (binary_expression "uVar5 <= uVar9" identifier <= identifier) )))) ;) }) (else_clause "else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" else (if_statement "if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" if (parenthesized_expression "(puVar17 == (uint *)0x0)" ( (binary_expression "puVar17 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" { (expression_statement "uVar5 = FUN_00017130();" (assignment_expression "uVar5 = FUN_00017130()" identifier = (call_expression "FUN_00017130()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = uVar5 & 0xff;" (assignment_expression "uVar5 = uVar5 & 0xff" identifier = (binary_expression "uVar5 & 0xff" identifier & number_literal)) ;) }) (else_clause "else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" else (if_statement "if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" if (parenthesized_expression "(*piVar8 == 2)" ( (binary_expression "*piVar8 == 2" (pointer_expression "*piVar8" * identifier) == number_literal) )) (compound_statement "{\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }" { (if_statement "if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }" if (parenthesized_expression "((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1]))" ( (binary_expression "(piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])" (parenthesized_expression "(piVar20[2] == 2)" ( (binary_expression "piVar20[2] == 2" (subscript_expression "piVar20[2]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "(*(uint *)(param_2 + 8) < (uint)piVar8[1])" ( (binary_expression "*(uint *)(param_2 + 8) < (uint)piVar8[1]" (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) < (cast_expression "(uint)piVar8[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar8[1]" identifier [ number_literal ]))) ))) )) (compound_statement "{\nLAB_00017ef0:\n        uVar5 = 0;\n      }" { (labeled_statement "LAB_00017ef0:\n        uVar5 = 0;" statement_identifier : (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }" else (compound_statement "{\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }" { (expression_statement "uVar9 = *puVar17;" (assignment_expression "uVar9 = *puVar17" identifier = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "piVar20[2] = 1;" (assignment_expression "piVar20[2] = 1" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "bVar25 = uVar9 == 2;" (assignment_expression "bVar25 = uVar9 == 2" identifier = (binary_expression "uVar9 == 2" identifier == number_literal)) ;) (if_statement "if (bVar25) goto LAB_00017ec1;" if (parenthesized_expression "(bVar25)" ( identifier )) (goto_statement "goto LAB_00017ec1;" goto statement_identifier ;)) (labeled_statement "LAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" statement_identifier : (if_statement "if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" if (parenthesized_expression "(uVar9 < 2 || bVar25)" ( (binary_expression "uVar9 < 2 || bVar25" (binary_expression "uVar9 < 2" identifier < number_literal) || identifier) )) (compound_statement "{\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }" if (parenthesized_expression "(uVar9 != 1)" ( (binary_expression "uVar9 != 1" identifier != number_literal) )) (compound_statement "{\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }" { (labeled_statement "LAB_00017e56:\n            cVar4 = FUN_00017130();" statement_identifier : (expression_statement "cVar4 = FUN_00017130();" (assignment_expression "cVar4 = FUN_00017130()" identifier = (call_expression "FUN_00017130()" identifier (argument_list "()" ( )))) ;)) (if_statement "if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              piVar20[2] = 2;\n            }" { (expression_statement "piVar20[2] = 2;" (assignment_expression "piVar20[2] = 2" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = number_literal) ;) })) (goto_statement "goto LAB_00017e6b;" goto statement_identifier ;) })) }) (else_clause "else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" else (if_statement "if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" if (parenthesized_expression "(uVar9 == 4)" ( (binary_expression "uVar9 == 4" identifier == number_literal) )) (compound_statement "{\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }" { (expression_statement "puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);" (assignment_expression "puVar17[1] = puVar17[2] + *(int *)(param_2 + 8)" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = (binary_expression "puVar17[2] + *(int *)(param_2 + 8)" (subscript_expression "puVar17[2]" identifier [ number_literal ]) + (pointer_expression "*(int *)(param_2 + 8)" * (cast_expression "(int *)(param_2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))))) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" else (compound_statement "{\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" { (if_statement "if (uVar9 != 5) goto LAB_00017e56;" if (parenthesized_expression "(uVar9 != 5)" ( (binary_expression "uVar9 != 5" identifier != number_literal) )) (goto_statement "goto LAB_00017e56;" goto statement_identifier ;)) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (expression_statement "puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];" (assignment_expression "puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2]" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = (binary_expression "(*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2]" (parenthesized_expression "(*(uint *)(param_2 + 8) + puVar17[2])" ( (binary_expression "*(uint *)(param_2 + 8) + puVar17[2]" (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) + (subscript_expression "puVar17[2]" identifier [ number_literal ])) )) - (binary_expression "*(uint *)(param_2 + 8) % puVar17[2]" (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) )))) % (subscript_expression "puVar17[2]" identifier [ number_literal ])))) ;) })))))) }))) }) (else_clause "else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" else (compound_statement "{\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" { (expression_statement "cVar4 = FUN_00017130();" (assignment_expression "cVar4 = FUN_00017130()" identifier = (call_expression "FUN_00017130()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar4 == '\0') goto LAB_00017ef0;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00017ef0;" goto statement_identifier ;)) (expression_statement "puVar17 = (uint *)piVar20[1];" (assignment_expression "puVar17 = (uint *)piVar20[1]" identifier = (cast_expression "(uint *)piVar20[1]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar20[1]" identifier [ number_literal ]))) ;) (expression_statement "piVar20[2] = 1;" (assignment_expression "piVar20[2] = 1" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar9 = *puVar17;" (assignment_expression "uVar9 = *puVar17" identifier = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "bVar25 = uVar9 == 2;" (assignment_expression "bVar25 = uVar9 == 2" identifier = (binary_expression "uVar9 == 2" identifier == number_literal)) ;) (if_statement "if (!bVar25) goto LAB_00017d50;" if (parenthesized_expression "(!bVar25)" ( (unary_expression "!bVar25" ! identifier) )) (goto_statement "goto LAB_00017d50;" goto statement_identifier ;)) (labeled_statement "LAB_00017ec1:\n      uVar5 = puVar17[1];" statement_identifier : (expression_statement "uVar5 = puVar17[1];" (assignment_expression "uVar5 = puVar17[1]" identifier = (subscript_expression "puVar17[1]" identifier [ number_literal ])) ;)) (expression_statement "uVar9 = *(uint *)(param_2 + 8);" (assignment_expression "uVar9 = *(uint *)(param_2 + 8)" identifier = (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;" if (parenthesized_expression "((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5))" ( (binary_expression "(uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)" (parenthesized_expression "(uVar9 < uVar5)" ( (binary_expression "uVar9 < uVar5" identifier < identifier) )) || (parenthesized_expression "(piVar20[2] = 2, uVar9 == uVar5)" ( (comma_expression "piVar20[2] = 2, uVar9 == uVar5" (assignment_expression "piVar20[2] = 2" (subscript_expression "piVar20[2]" identifier [ number_literal ]) = number_literal) , (binary_expression "uVar9 == uVar5" identifier == identifier)) ))) )) (goto_statement "goto LAB_00017e6b;" goto statement_identifier ;)) (expression_statement "uVar5 = FUN_00017130();" (assignment_expression "uVar5 = FUN_00017130()" identifier = (call_expression "FUN_00017130()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = uVar5 & 0xff;" (assignment_expression "uVar5 = uVar5 & 0xff" identifier = (binary_expression "uVar5 & 0xff" identifier & number_literal)) ;) }))))))) }))) (expression_statement "uVar16 = DAT_00031400;" (assignment_expression "uVar16 = DAT_00031400" identifier = identifier) ;) (expression_statement "uVar9 = DAT_000313e4;" (assignment_expression "uVar9 = DAT_000313e4" identifier = identifier) ;) (expression_statement "pbVar23 = DAT_000313e0;" (assignment_expression "pbVar23 = DAT_000313e0" identifier = identifier) ;) (if_statement "if ((int)(char)piVar20[3] == uVar5) goto LAB_00017de0;" if (parenthesized_expression "((int)(char)piVar20[3] == uVar5)" ( (binary_expression "(int)(char)piVar20[3] == uVar5" (cast_expression "(int)(char)piVar20[3]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)piVar20[3]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar20[3]" identifier [ number_literal ]))) == identifier) )) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (switch_statement "switch((int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff) {\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto LAB_00017de0;\n  default:\n                    \n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));\n  case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;\n  case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;\n  case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;\n  case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;\n  case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;\n  case 0x2e:\n    goto code_r0x00017f94;\n  case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;\n  case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;\n  case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3f:\n  case 0x58:\n    goto code_r0x00018860;\n  case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n  case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;\n  case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;\n  case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;\n  case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;\n  case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;\n  case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;\n  case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;\n  case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;\n  case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;\n  }" switch (parenthesized_expression "((int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff)" ( (binary_expression "(int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff" (binary_expression "(int)*(char *)((int)piVar20 + 0xd) - 0x23U" (cast_expression "(int)*(char *)((int)piVar20 + 0xd)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)((int)piVar20 + 0xd)" * (cast_expression "(char *)((int)piVar20 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 0xd)" ( (binary_expression "(int)piVar20 + 0xd" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) - number_literal) & number_literal) )) (compound_statement "{\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto LAB_00017de0;\n  default:\n                    \n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));\n  case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;\n  case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;\n  case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;\n  case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;\n  case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;\n  case 0x2e:\n    goto code_r0x00017f94;\n  case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;\n  case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;\n  case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3f:\n  case 0x58:\n    goto code_r0x00018860;\n  case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n  case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;\n  case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;\n  case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;\n  case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;\n  case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;\n  case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;\n  case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;\n  case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;\n  case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;\n  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x5a:\n    goto LAB_00017de0;" case number_literal : (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (case_statement "default:\n                    \n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));" default : (expression_statement "FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));" (call_expression "FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd))" identifier (argument_list "("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd))" ( (string_literal ""INTERNAL ERROR: Bad cmd %c"" " string_content ") , (cast_expression "(int)*(char *)((int)piVar20 + 0xd)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)((int)piVar20 + 0xd)" * (cast_expression "(char *)((int)piVar20 + 0xd)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 0xd)" ( (binary_expression "(int)piVar20 + 0xd" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ))) ;)) (case_statement "case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;" case number_literal : (if_statement "if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" if (parenthesized_expression "(DAT_000313fc != '\0')" ( (binary_expression "DAT_000313fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" { (expression_statement "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);" (call_expression "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400)" identifier (argument_list "(&DAT_00031240,1,1,DAT_00031400)" ( (pointer_expression "&DAT_00031240" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "DAT_000313fc = '\0';" (assignment_expression "DAT_000313fc = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "puVar7 = &UNK_00026fb0;" (assignment_expression "puVar7 = &UNK_00026fb0" identifier = (pointer_expression "&UNK_00026fb0" & identifier)) ;) (expression_statement "uVar16 = *(undefined4 *)(param_2 + 8);" (assignment_expression "uVar16 = *(undefined4 *)(param_2 + 8)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 8)" * (cast_expression "(undefined4 *)(param_2 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (goto_statement "goto code_r0x00018a05;" goto statement_identifier ;)) (case_statement "case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;" case number_literal : (expression_statement "iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);" (assignment_expression "iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" identifier = (call_expression "FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" identifier (argument_list "(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" ( identifier , (cast_expression "(int)(char)DAT_00031240" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)DAT_00031240" ( (type_descriptor "char" primitive_type) ) identifier)) , identifier )))) ;) (if_statement "if (iVar6 == 0) goto LAB_00017f53;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00017f53;" goto statement_identifier ;)) (expression_statement "DAT_000313e0 = (byte *)(iVar6 + 1);" (assignment_expression "DAT_000313e0 = (byte *)(iVar6 + 1)" identifier = (cast_expression "(byte *)(iVar6 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 1)" ( (binary_expression "iVar6 + 1" identifier + number_literal) )))) ;) (expression_statement "DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);" (assignment_expression "DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23)" identifier = (binary_expression "DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23)" identifier - (parenthesized_expression "((int)DAT_000313e0 - (int)pbVar23)" ( (binary_expression "(int)DAT_000313e0 - (int)pbVar23" (cast_expression "(int)DAT_000313e0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "piVar20 = (int *)*param_1;" (assignment_expression "piVar20 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);" (assignment_expression "DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23)" identifier = (binary_expression "uVar9 - ((int)DAT_000313e0 - (int)pbVar23)" identifier - (parenthesized_expression "((int)DAT_000313e0 - (int)pbVar23)" ( (binary_expression "(int)DAT_000313e0 - (int)pbVar23" (cast_expression "(int)DAT_000313e0" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (*pcVar26 == '\0') goto joined_r0x00018523;" if (parenthesized_expression "(*pcVar26 == '\0')" ( (binary_expression "*pcVar26 == '\0'" (pointer_expression "*pcVar26" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto joined_r0x00018523;" goto statement_identifier ;)) (expression_statement "FUN_00016620();" (call_expression "FUN_00016620()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto joined_r0x00017cbb;" goto statement_identifier ;)) (case_statement "case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" case number_literal : (if_statement "if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" if (parenthesized_expression "(DAT_000313fc != '\0')" ( (binary_expression "DAT_000313fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" { (expression_statement "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);" (call_expression "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400)" identifier (argument_list "(&DAT_00031240,1,1,DAT_00031400)" ( (pointer_expression "&DAT_00031240" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "DAT_000313fc = '\0';" (assignment_expression "DAT_000313fc = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "puVar7 = &UNK_00026fb6;" (assignment_expression "puVar7 = &UNK_00026fb6" identifier = (pointer_expression "&UNK_00026fb6" & identifier)) ;) (expression_statement "uVar16 = *(undefined4 *)(param_2 + 0x18);" (assignment_expression "uVar16 = *(undefined4 *)(param_2 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 0x18)" * (cast_expression "(undefined4 *)(param_2 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);" statement_identifier : (expression_statement "__fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);" (call_expression "__fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240)" identifier (argument_list "(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240)" ( identifier , number_literal , identifier , identifier , (cast_expression "(int)(char)DAT_00031240" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)DAT_00031240" ( (type_descriptor "char" primitive_type) ) identifier)) ))) ;)) (if_statement "if (DAT_00031419 == '\0') goto LAB_00017de0;" if (parenthesized_expression "(DAT_00031419 == '\0')" ( (binary_expression "DAT_00031419 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (expression_statement "FUN_0001a7e0(DAT_00031400);" (call_expression "FUN_0001a7e0(DAT_00031400)" identifier (argument_list "(DAT_00031400)" ( identifier ))) ;) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;)) (case_statement "case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;" case number_literal : (expression_statement "FUN_000172d0();" (call_expression "FUN_000172d0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*pcVar26 == '\0') goto code_r0x000182c0;" if (parenthesized_expression "(*pcVar26 == '\0')" ( (binary_expression "*pcVar26 == '\0'" (pointer_expression "*pcVar26" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000182c0;" goto statement_identifier ;)) (goto_statement "goto code_r0x00017dd0;" goto statement_identifier ;)) (case_statement "case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;" case number_literal : (expression_statement "FUN_000172d0();" (call_expression "FUN_000172d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;" case number_literal : (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" identifier (argument_list "()" ( ))) ;) (if_statement "if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;" if (parenthesized_expression "(((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0'))" ( (binary_expression "((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')" (parenthesized_expression "((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0'))" ( (binary_expression "(DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')" (parenthesized_expression "(DAT_00031390 != 0)" ( (binary_expression "DAT_00031390 != 0" identifier != number_literal) )) || (parenthesized_expression "(cVar4 = FUN_00017090(), cVar4 == '\0')" ( (comma_expression "cVar4 = FUN_00017090(), cVar4 == '\0'" (assignment_expression "cVar4 = FUN_00017090()" identifier = (call_expression "FUN_00017090()" identifier (argument_list "()" ( )))) , (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) && (parenthesized_expression "(cVar4 = FUN_00017b40(), cVar4 != '\0')" ( (comma_expression "cVar4 = FUN_00017b40(), cVar4 != '\0'" (assignment_expression "cVar4 = FUN_00017b40()" identifier = (call_expression "FUN_00017b40()" identifier (argument_list "()" ( )))) , (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto code_r0x000188c9;" goto statement_identifier ;)) (if_statement "if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }" if (parenthesized_expression "(*pcVar26 != '\0')" ( (binary_expression "*pcVar26 != '\0'" (pointer_expression "*pcVar26" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      puts("END-OF-CYCLE:");\n    }" { (expression_statement "puts("END-OF-CYCLE:");" (call_expression "puts("END-OF-CYCLE:")" identifier (argument_list "("END-OF-CYCLE:")" ( (string_literal ""END-OF-CYCLE:"" " string_content ") ))) ;) })) (expression_statement "DAT_000313e4 = DAT_000313e4 - 1;" (assignment_expression "DAT_000313e4 = DAT_000313e4 - 1" identifier = (binary_expression "DAT_000313e4 - 1" identifier - number_literal)) ;) (if_statement "if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;" if (parenthesized_expression "((DAT_000316e0 != 0) || (DAT_00031418 != '\0'))" ( (binary_expression "(DAT_000316e0 != 0) || (DAT_00031418 != '\0')" (parenthesized_expression "(DAT_000316e0 != 0)" ( (binary_expression "DAT_000316e0 != 0" identifier != number_literal) )) || (parenthesized_expression "(DAT_00031418 != '\0')" ( (binary_expression "DAT_00031418 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_00017f53;" goto statement_identifier ;)) (goto_statement "goto code_r0x00017e26;" goto statement_identifier ;)) (case_statement "case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;" case number_literal : (expression_statement "FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);" (call_expression "FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" identifier (argument_list "(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" ( identifier , (cast_expression "(int)(char)DAT_00031240" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)DAT_00031240" ( (type_descriptor "char" primitive_type) ) identifier)) , identifier ))) ;) (expression_statement "puVar7 = &DAT_000313f8;" (assignment_expression "puVar7 = &DAT_000313f8" identifier = (pointer_expression "&DAT_000313f8" & identifier)) ;) (goto_statement "goto code_r0x0001881e;" goto statement_identifier ;)) (case_statement "case 0x2e:\n    goto code_r0x00017f94;" case number_literal : (goto_statement "goto code_r0x00017f94;" goto statement_identifier ;)) (case_statement "case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;" case number_literal : (expression_statement "pbVar23 = *(byte **)(piVar20[4] + 8);" (assignment_expression "pbVar23 = *(byte **)(piVar20[4] + 8)" identifier = (pointer_expression "*(byte **)(piVar20[4] + 8)" * (cast_expression "(byte **)(piVar20[4] + 8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar20[4] + 8)" ( (binary_expression "piVar20[4] + 8" (subscript_expression "piVar20[4]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }" if (parenthesized_expression "((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0))" ( (binary_expression "(pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)" (parenthesized_expression "(pbVar23 != (byte *)0x0)" ( (binary_expression "pbVar23 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((*pbVar23 & 0x10) == 0)" ( (binary_expression "(*pbVar23 & 0x10) == 0" (parenthesized_expression "(*pbVar23 & 0x10)" ( (binary_expression "*pbVar23 & 0x10" (pointer_expression "*pbVar23" * identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }" { (expression_statement "pvStack_102c = (void *)0x0;" (assignment_expression "pvStack_102c = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);" (assignment_expression "iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23)" identifier = (call_expression "FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23)" identifier (argument_list "(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23)" ( (pointer_expression "&pvStack_102c" & identifier) , identifier , (cast_expression "(int)(char)DAT_00031240" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)DAT_00031240" ( (type_descriptor "char" primitive_type) ) identifier)) , identifier )))) ;) (if_statement "if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n        free(pvStack_102c);\n      }" { (expression_statement "free(pvStack_102c);" (call_expression "free(pvStack_102c)" identifier (argument_list "(pvStack_102c)" ( identifier ))) ;) }) (else_clause "else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }" else (compound_statement "{\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }" { (expression_statement "iVar10 = FUN_00016790();" (assignment_expression "iVar10 = FUN_00016790()" identifier = (call_expression "FUN_00016790()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined1 *)(iVar10 + 0x10) = 1;" (assignment_expression "*(undefined1 *)(iVar10 + 0x10) = 1" (pointer_expression "*(undefined1 *)(iVar10 + 0x10)" * (cast_expression "(undefined1 *)(iVar10 + 0x10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(void **)(iVar10 + 4) = pvStack_102c;" (assignment_expression "*(void **)(iVar10 + 4) = pvStack_102c" (pointer_expression "*(void **)(iVar10 + 4)" * (cast_expression "(void **)(iVar10 + 4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar10 + 4)" ( (binary_expression "iVar10 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar10 + 8) = iVar6;" (assignment_expression "*(int *)(iVar10 + 8) = iVar6" (pointer_expression "*(int *)(iVar10 + 8)" * (cast_expression "(int *)(iVar10 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 8)" ( (binary_expression "iVar10 + 8" identifier + number_literal) )))) = identifier) ;) }))) })) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (case_statement "case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;" case number_literal : (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (if_statement "if (DAT_00031408 == '\0') goto code_r0x00018263;" if (parenthesized_expression "(DAT_00031408 == '\0')" ( (binary_expression "DAT_00031408 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00018263;" goto statement_identifier ;)) (expression_statement "DAT_00031408 = '\0';" (assignment_expression "DAT_00031408 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;)) (case_statement "case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" case number_literal : (expression_statement "puVar7 = (undefined *)piVar20[4];" (assignment_expression "puVar7 = (undefined *)piVar20[4]" identifier = (cast_expression "(undefined *)piVar20[4]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar20[4]" identifier [ number_literal ]))) ;) (if_statement "if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;" if (parenthesized_expression "(*(int *)(puVar7 + 8) == 0)" ( (binary_expression "*(int *)(puVar7 + 8) == 0" (pointer_expression "*(int *)(puVar7 + 8)" * (cast_expression "(int *)(puVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (expression_statement "FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);" (call_expression "FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" identifier (argument_list "(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" ( identifier , (cast_expression "(int)(char)DAT_00031240" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)DAT_00031240" ( (type_descriptor "char" primitive_type) ) identifier)) , identifier ))) ;) (labeled_statement "code_r0x0001881e:\n    FUN_000178c0(puVar7);" statement_identifier : (expression_statement "FUN_000178c0(puVar7);" (call_expression "FUN_000178c0(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;)) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;)) (case_statement "case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" case number_literal : (expression_statement "iVar6 = FUN_00016790();" (assignment_expression "iVar6 = FUN_00016790()" identifier = (call_expression "FUN_00016790()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(iVar6 + 4) = piVar20[4];" (assignment_expression "*(int *)(iVar6 + 4) = piVar20[4]" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) = (subscript_expression "piVar20[4]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar6 + 8) = piVar20[5];" (assignment_expression "*(int *)(iVar6 + 8) = piVar20[5]" (pointer_expression "*(int *)(iVar6 + 8)" * (cast_expression "(int *)(iVar6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) )))) = (subscript_expression "piVar20[5]" identifier [ number_literal ])) ;) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;)) (case_statement "case 0x3f:" case number_literal :) (case_statement "case 0x58:\n    goto code_r0x00018860;" case number_literal : (goto_statement "goto code_r0x00018860;" goto statement_identifier ;)) (case_statement "case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }" case number_literal : (if_statement "if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }" if (parenthesized_expression "(piVar20[2] != 1)" ( (binary_expression "piVar20[2] != 1" (subscript_expression "piVar20[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_000178c0(&DAT_000313f8);\n    }" { (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" identifier (argument_list "(&DAT_000313f8)" ( (pointer_expression "&DAT_000313f8" & identifier) ))) ;) }))) (case_statement "case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;" case number_literal : (labeled_statement "code_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;" statement_identifier : (if_statement "if (*pcVar26 == '\0') goto LAB_00017f53;" if (parenthesized_expression "(*pcVar26 == '\0')" ( (binary_expression "*pcVar26 == '\0'" (pointer_expression "*pcVar26" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00017f53;" goto statement_identifier ;))) (expression_statement "puts("END-OF-CYCLE:");" (call_expression "puts("END-OF-CYCLE:")" identifier (argument_list "("END-OF-CYCLE:")" ( (string_literal ""END-OF-CYCLE:"" " string_content ") ))) ;) (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" identifier = number_literal) ;) (goto_statement "goto code_r0x00017f58;" goto statement_identifier ;)) (case_statement "case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;" case number_literal : (expression_statement "iVar6 = piVar20[5];" (assignment_expression "iVar6 = piVar20[5]" identifier = (subscript_expression "piVar20[5]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = iVar6;" (assignment_expression "iVar10 = iVar6" identifier = identifier) ;) (expression_statement "FUN_00017840();" (call_expression "FUN_00017840()" identifier (argument_list "()" ( ))) ;) (if_statement "if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }" { (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" identifier (argument_list "()" ( ))) ;) (expression_statement "pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");" (assignment_expression "pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r")" identifier = (cast_expression "(FILE *)func_0x00012160(DAT_000313e0,"r")" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "func_0x00012160(DAT_000313e0,"r")" identifier (argument_list "(DAT_000313e0,"r")" ( identifier , (string_literal ""r"" " string_content ") ))))) ;) (expression_statement "uVar16 = extraout_ECX;" (assignment_expression "uVar16 = extraout_ECX" identifier = identifier) ;) }) (else_clause "else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }" else (compound_statement "{\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }" { (expression_statement "*(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;" (assignment_expression "*(undefined1 *)(piVar20[4] + -1 + iVar10) = 0" (pointer_expression "*(undefined1 *)(piVar20[4] + -1 + iVar10)" * (cast_expression "(undefined1 *)(piVar20[4] + -1 + iVar10)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20[4] + -1 + iVar10)" ( (binary_expression "piVar20[4] + -1 + iVar10" (binary_expression "piVar20[4] + -1" (subscript_expression "piVar20[4]" identifier [ number_literal ]) + number_literal) + identifier) )))) = number_literal) ;) (expression_statement "pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");" (assignment_expression "pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r")" identifier = (cast_expression "(FILE *)func_0x00012160(piVar20[4],"r")" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "func_0x00012160(piVar20[4],"r")" identifier (argument_list "(piVar20[4],"r")" ( (subscript_expression "piVar20[4]" identifier [ number_literal ]) , (string_literal ""r"" " string_content ") ))))) ;) (expression_statement "uVar16 = extraout_ECX_00;" (assignment_expression "uVar16 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }" if (parenthesized_expression "(DAT_000313fc != '\0')" ( (binary_expression "DAT_000313fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }" { (expression_statement "FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);" (call_expression "FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400)" identifier (argument_list "(PTR_DAT_00030fd8,1,1,DAT_00031400)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "DAT_000313fc = '\0';" (assignment_expression "DAT_000313fc = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar16 = extraout_ECX_01;" (assignment_expression "uVar16 = extraout_ECX_01" identifier = identifier) ;) })) }))) (if_statement "if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;" if (parenthesized_expression "(pFVar14 == (FILE *)0x0)" ( (binary_expression "pFVar14 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto code_r0x0001925a;" goto statement_identifier ;)) (while_statement "while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }" while (parenthesized_expression "((pFVar14->_flags & 0x10) == 0)" ( (binary_expression "(pFVar14->_flags & 0x10) == 0" (parenthesized_expression "(pFVar14->_flags & 0x10)" ( (binary_expression "pFVar14->_flags & 0x10" (field_expression "pFVar14->_flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }" { (expression_statement "sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);" (assignment_expression "sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14)" identifier = (call_expression "fread_unlocked(&bStack_1020,1,0x1000,pFVar14)" identifier (argument_list "(&bStack_1020,1,0x1000,pFVar14)" ( (pointer_expression "&bStack_1020" & identifier) , number_literal , number_literal , identifier )))) ;) (if_statement "if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }" if (parenthesized_expression "(0 < (int)sVar15)" ( (binary_expression "0 < (int)sVar15" number_literal < (cast_expression "(int)sVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }" { (if_statement "if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_00016f30();\n        }" { (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }" else (compound_statement "{\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }" { (expression_statement "FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);" (call_expression "FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400)" identifier (argument_list "(&bStack_1020,1,sVar15,DAT_00031400)" ( (pointer_expression "&bStack_1020" & identifier) , number_literal , identifier , identifier ))) ;) }))) })) })) (expression_statement "func_0x00012380(pFVar14);" (call_expression "func_0x00012380(pFVar14)" identifier (argument_list "(pFVar14)" ( identifier ))) ;) (if_statement "if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }" { (if_statement "if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }" if (parenthesized_expression "((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240))" ( (binary_expression "(DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)" (parenthesized_expression "(DAT_000313c8 != 0)" ( (binary_expression "DAT_000313c8 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)" ( (binary_expression "*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240" (pointer_expression "*(byte *)(DAT_000313c4 + -1 + DAT_000313c8)" * (cast_expression "(byte *)(DAT_000313c4 + -1 + DAT_000313c8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000313c4 + -1 + DAT_000313c8)" ( (binary_expression "DAT_000313c4 + -1 + DAT_000313c8" (binary_expression "DAT_000313c4 + -1" identifier + number_literal) + identifier) )))) == identifier) ))) )) (compound_statement "{\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }" { (expression_statement "DAT_000313c8 = DAT_000313c8 + -1;" (assignment_expression "DAT_000313c8 = DAT_000313c8 + -1" identifier = (binary_expression "DAT_000313c8 + -1" identifier + number_literal)) ;) })) (expression_statement "FUN_000176c0();" (call_expression "FUN_000176c0()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }" else (if_statement "if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }" if (parenthesized_expression "(DAT_00031419 != '\0')" ( (binary_expression "DAT_00031419 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001a7e0(DAT_00031400);\n    }" { (expression_statement "FUN_0001a7e0(DAT_00031400);" (call_expression "FUN_0001a7e0(DAT_00031400)" identifier (argument_list "(DAT_00031400)" ( identifier ))) ;) })))) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (case_statement "case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;" case number_literal : (expression_statement "FUN_00017320();" (call_expression "FUN_00017320()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;" case number_literal : (expression_statement "FUN_00017320();" (call_expression "FUN_00017320()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" case number_literal : (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" identifier (argument_list "(&DAT_000313f8)" ( (pointer_expression "&DAT_000313f8" & identifier) ))) ;) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;)) (case_statement "case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;" case number_literal : (expression_statement "pcStack_106c = (char *)piVar20[4];" (assignment_expression "pcStack_106c = (char *)piVar20[4]" identifier = (cast_expression "(char *)piVar20[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar20[4]" identifier [ number_literal ]))) ;) (if_statement "if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }" if (parenthesized_expression "(pcStack_106c == (char *)0xffffffff)" ( (binary_expression "pcStack_106c == (char *)0xffffffff" identifier == (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcStack_106c = DAT_0003123c;\n    }" { (expression_statement "pcStack_106c = DAT_0003123c;" (assignment_expression "pcStack_106c = DAT_0003123c" identifier = identifier) ;) })) (if_statement "if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" if (parenthesized_expression "(DAT_000313fc != '\0')" ( (binary_expression "DAT_000313fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" { (expression_statement "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);" (call_expression "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400)" identifier (argument_list "(&DAT_00031240,1,1,DAT_00031400)" ( (pointer_expression "&DAT_00031240" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "DAT_000313fc = '\0';" (assignment_expression "DAT_000313fc = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (if_statement "if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }" { (expression_statement "pbVar13 = pbVar23 + uVar9;" (assignment_expression "pbVar13 = pbVar23 + uVar9" identifier = (binary_expression "pbVar23 + uVar9" identifier + identifier)) ;) (expression_statement "pcVar24 = (char *)0x0;" (assignment_expression "pcVar24 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);" do (compound_statement "{\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      }" { (expression_statement "bVar18 = *pbVar23;" (assignment_expression "bVar18 = *pbVar23" identifier = (pointer_expression "*pbVar23" * identifier)) ;) (expression_statement "uVar5 = (uint)bVar18;" (assignment_expression "uVar5 = (uint)bVar18" identifier = (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }" if (parenthesized_expression "(((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0))" ( (binary_expression "((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)" (parenthesized_expression "((bVar18 & 0x80) == 0)" ( (binary_expression "(bVar18 & 0x80) == 0" (parenthesized_expression "(bVar18 & 0x80)" ( (binary_expression "bVar18 & 0x80" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)" ( (comma_expression "ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0" (assignment_expression "ppuVar11 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) , (binary_expression "(*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0" (parenthesized_expression "(*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40)" ( (binary_expression "*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40" (pointer_expression "*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1)" * (cast_expression "(byte *)((int)*ppuVar11 + uVar5 * 2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*ppuVar11 + uVar5 * 2 + 1)" ( (binary_expression "(int)*ppuVar11 + uVar5 * 2 + 1" (binary_expression "(int)*ppuVar11 + uVar5 * 2" (cast_expression "(int)*ppuVar11" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*ppuVar11" * identifier)) + (binary_expression "uVar5 * 2" identifier * number_literal)) + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }" { (expression_statement "pcVar12 = (char *)0x1;" (assignment_expression "pcVar12 = (char *)0x1" identifier = (cast_expression "(char *)0x1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bStack_1020 = bVar18;" (assignment_expression "bStack_1020 = bVar18" identifier = identifier) ;) (if_statement "if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }" if (parenthesized_expression "(*pbVar23 == 0x5c)" ( (binary_expression "*pbVar23 == 0x5c" (pointer_expression "*pbVar23" * identifier) == number_literal) )) (compound_statement "{\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }" { (expression_statement "acStack_101f[0] = '\\';" (assignment_expression "acStack_101f[0] = '\\'" (subscript_expression "acStack_101f[0]" identifier [ number_literal ]) = (char_literal "'\\'" ' escape_sequence ')) ;) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }" else (compound_statement "{\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }" { (expression_statement "bStack_1020 = 0x5c;" (assignment_expression "bStack_1020 = 0x5c" identifier = number_literal) ;) (switch_statement "switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }" switch (parenthesized_expression "(*pbVar23)" ( (pointer_expression "*pbVar23" * identifier) )) (compound_statement "{\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }" { (case_statement "case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;" case number_literal : (expression_statement "acStack_101f[0] = 'a';" (assignment_expression "acStack_101f[0] = 'a'" (subscript_expression "acStack_101f[0]" identifier [ number_literal ]) = (char_literal "'a'" ' character ')) ;) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;" case number_literal : (expression_statement "acStack_101f[0] = 'b';" (assignment_expression "acStack_101f[0] = 'b'" (subscript_expression "acStack_101f[0]" identifier [ number_literal ]) = (char_literal "'b'" ' character ')) ;) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;" case number_literal : (expression_statement "acStack_101f[0] = 't';" (assignment_expression "acStack_101f[0] = 't'" (subscript_expression "acStack_101f[0]" identifier [ number_literal ]) = (char_literal "'t'" ' character ')) ;) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;" case number_literal : (expression_statement "acStack_101f[0] = 'n';" (assignment_expression "acStack_101f[0] = 'n'" (subscript_expression "acStack_101f[0]" identifier [ number_literal ]) = (char_literal "'n'" ' character ')) ;) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;" case number_literal : (expression_statement "acStack_101f[0] = 'v';" (assignment_expression "acStack_101f[0] = 'v'" (subscript_expression "acStack_101f[0]" identifier [ number_literal ]) = (char_literal "'v'" ' character ')) ;) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;" case number_literal : (expression_statement "acStack_101f[0] = 'f';" (assignment_expression "acStack_101f[0] = 'f'" (subscript_expression "acStack_101f[0]" identifier [ number_literal ]) = (char_literal "'f'" ' character ')) ;) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;" case number_literal : (expression_statement "acStack_101f[0] = 'r';" (assignment_expression "acStack_101f[0] = 'r'" (subscript_expression "acStack_101f[0]" identifier [ number_literal ]) = (char_literal "'r'" ' character ')) ;) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" identifier = (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);" default : (expression_statement "__sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);" (call_expression "__sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23)" identifier (argument_list "(acStack_101f,1,0xb3,"%03o",*pbVar23)" ( identifier , number_literal , number_literal , (string_literal ""%03o"" " string_content ") , (pointer_expression "*pbVar23" * identifier) ))) ;) (expression_statement "sVar15 = strlen(acStack_101f);" (assignment_expression "sVar15 = strlen(acStack_101f)" identifier = (call_expression "strlen(acStack_101f)" identifier (argument_list "(acStack_101f)" ( identifier )))) ;) (expression_statement "pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);" (assignment_expression "pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020)" identifier = (binary_expression "acStack_101f + (sVar15 - (int)&bStack_1020)" identifier + (parenthesized_expression "(sVar15 - (int)&bStack_1020)" ( (binary_expression "sVar15 - (int)&bStack_1020" identifier - (cast_expression "(int)&bStack_1020" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&bStack_1020" & identifier))) )))) ;)) })) }))) (expression_statement "pcVar24 = pcVar24 + (int)pcVar12;" (assignment_expression "pcVar24 = pcVar24 + (int)pcVar12" identifier = (binary_expression "pcVar24 + (int)pcVar12" identifier + (cast_expression "(int)pcVar12" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }" if (parenthesized_expression "((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c))" ( (binary_expression "(pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)" (parenthesized_expression "(pcStack_106c <= pcVar24)" ( (binary_expression "pcStack_106c <= pcVar24" identifier <= identifier) )) && (parenthesized_expression "(0 < (int)pcStack_106c)" ( (binary_expression "0 < (int)pcStack_106c" number_literal < (cast_expression "(int)pcStack_106c" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }" { (expression_statement "FUN_0001a640(&UNK_00026f7e,1,1,uVar16);" (call_expression "FUN_0001a640(&UNK_00026f7e,1,1,uVar16)" identifier (argument_list "(&UNK_00026f7e,1,1,uVar16)" ( (pointer_expression "&UNK_00026f7e" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_0001a640(&DAT_00031240,1,1,uVar16);" (call_expression "FUN_0001a640(&DAT_00031240,1,1,uVar16)" identifier (argument_list "(&DAT_00031240,1,1,uVar16)" ( (pointer_expression "&DAT_00031240" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "pcVar24 = pcVar12;" (assignment_expression "pcVar24 = pcVar12" identifier = identifier) ;) })) (expression_statement "pbVar23 = pbVar23 + 1;" (assignment_expression "pbVar23 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);" (call_expression "FUN_0001a640(&bStack_1020,1,pcVar12,uVar16)" identifier (argument_list "(&bStack_1020,1,pcVar12,uVar16)" ( (pointer_expression "&bStack_1020" & identifier) , number_literal , identifier , identifier ))) ;) }) while (parenthesized_expression "(pbVar23 != pbVar13)" ( (binary_expression "pbVar23 != pbVar13" identifier != identifier) )) ;) })) (expression_statement "FUN_0001a640(&UNK_00026f80,1,1,uVar16);" (call_expression "FUN_0001a640(&UNK_00026f80,1,1,uVar16)" identifier (argument_list "(&UNK_00026f80,1,1,uVar16)" ( (pointer_expression "&UNK_00026f80" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_0001a640(&DAT_00031240,1,1,uVar16);" (call_expression "FUN_0001a640(&DAT_00031240,1,1,uVar16)" identifier (argument_list "(&DAT_00031240,1,1,uVar16)" ( (pointer_expression "&DAT_00031240" & identifier) , number_literal , number_literal , identifier ))) ;) (if_statement "if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }" if (parenthesized_expression "(DAT_00031419 != '\0')" ( (binary_expression "DAT_00031419 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001a7e0(uVar16);\n    }" { (expression_statement "FUN_0001a7e0(uVar16);" (call_expression "FUN_0001a7e0(uVar16)" identifier (argument_list "(uVar16)" ( identifier ))) ;) })) (labeled_statement "LAB_00017de0:\n    cVar4 = *pcVar26;" statement_identifier : (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;)) (labeled_statement "code_r0x00017de7:\n    piVar20 = piVar20 + 6;" statement_identifier : (expression_statement "piVar20 = piVar20 + 6;" (assignment_expression "piVar20 = piVar20 + 6" identifier = (binary_expression "piVar20 + 6" identifier + number_literal)) ;)) (goto_statement "goto joined_r0x00017cbb;" goto statement_identifier ;)) (case_statement "case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;" case number_literal : (if_statement "if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }" if (parenthesized_expression "(DAT_00031418 == '\0')" ( (binary_expression "DAT_00031418 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_000178c0(&DAT_000313f8);\n    }" { (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" identifier (argument_list "(&DAT_000313f8)" ( (pointer_expression "&DAT_000313f8" & identifier) ))) ;) })) (if_statement "if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;" if (parenthesized_expression "(((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0'))" ( (binary_expression "((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')" (parenthesized_expression "((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0'))" ( (binary_expression "(DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')" (parenthesized_expression "(DAT_00031390 == 0)" ( (binary_expression "DAT_00031390 == 0" identifier == number_literal) )) && (parenthesized_expression "(cVar4 = FUN_00017090(), cVar4 != '\0')" ( (comma_expression "cVar4 = FUN_00017090(), cVar4 != '\0'" (assignment_expression "cVar4 = FUN_00017090()" identifier = (call_expression "FUN_00017090()" identifier (argument_list "()" ( )))) , (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) || (parenthesized_expression "(cVar4 = FUN_00017b40(), cVar4 == '\0')" ( (comma_expression "cVar4 = FUN_00017b40(), cVar4 == '\0'" (assignment_expression "cVar4 = FUN_00017b40()" identifier = (call_expression "FUN_00017b40()" identifier (argument_list "()" ( )))) , (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) (goto_statement "goto code_r0x00017f46;" goto statement_identifier ;)) (if_statement "if (*pcVar26 != '\0') goto code_r0x00017dd0;" if (parenthesized_expression "(*pcVar26 != '\0')" ( (binary_expression "*pcVar26 != '\0'" (pointer_expression "*pcVar26" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00017dd0;" goto statement_identifier ;)) (expression_statement "piVar20 = piVar20 + 6;" (assignment_expression "piVar20 = piVar20 + 6" identifier = (binary_expression "piVar20 + 6" identifier + number_literal)) ;) (goto_statement "goto joined_r0x00018523;" goto statement_identifier ;)) (case_statement "case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;" case number_literal : (expression_statement "puVar7 = &DAT_000313f8;" (assignment_expression "puVar7 = &DAT_000313f8" identifier = (pointer_expression "&DAT_000313f8" & identifier)) ;) (goto_statement "goto code_r0x00018030;" goto statement_identifier ;)) (case_statement "case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;" case number_literal : (if_statement "if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }" if (parenthesized_expression "(DAT_00031418 == '\0')" ( (binary_expression "DAT_00031418 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_000178c0(&DAT_000313f8);\n    }" { (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" identifier (argument_list "(&DAT_000313f8)" ( (pointer_expression "&DAT_000313f8" & identifier) ))) ;) })) (expression_statement "FUN_00017990();" (call_expression "FUN_00017990()" identifier (argument_list "()" ( ))) ;) (labeled_statement "code_r0x00017f94:\n    iVar6 = piVar20[4];" statement_identifier : (expression_statement "iVar6 = piVar20[4];" (assignment_expression "iVar6 = piVar20[4]" identifier = (subscript_expression "piVar20[4]" identifier [ number_literal ])) ;)) (if_statement "if (iVar6 == -1) {\n      iVar6 = 0;\n    }" if (parenthesized_expression "(iVar6 == -1)" ( (binary_expression "iVar6 == -1" identifier == number_literal) )) (compound_statement "{\n      iVar6 = 0;\n    }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) })) (goto_statement "goto code_r0x00017f58;" goto statement_identifier ;)) (case_statement "case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" case number_literal : (if_statement "if (piVar20[4] == 0) goto LAB_00017de0;" if (parenthesized_expression "(piVar20[4] == 0)" ( (binary_expression "piVar20[4] == 0" (subscript_expression "piVar20[4]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (expression_statement "piVar8 = (int *)FUN_00016790();" (assignment_expression "piVar8 = (int *)FUN_00016790()" identifier = (cast_expression "(int *)FUN_00016790()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00016790()" identifier (argument_list "()" ( ))))) ;) (expression_statement "*piVar8 = piVar20[4];" (assignment_expression "*piVar8 = piVar20[4]" (pointer_expression "*piVar8" * identifier) = (subscript_expression "piVar20[4]" identifier [ number_literal ])) ;) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;)) (case_statement "case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;" case number_literal : (expression_statement "puVar1 = (undefined4 *)piVar20[4];" (assignment_expression "puVar1 = (undefined4 *)piVar20[4]" identifier = (cast_expression "(undefined4 *)piVar20[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar20[4]" identifier [ number_literal ]))) ;) (expression_statement "FUN_00017840();" (call_expression "FUN_00017840()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);" (assignment_expression "iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1)" identifier = (call_expression "FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1)" identifier (argument_list "(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1)" ( (pointer_expression "*puVar1" * identifier) , identifier , identifier , number_literal , number_literal , (binary_expression "(*(byte *)(puVar1 + 4) >> 4) + 1" (parenthesized_expression "(*(byte *)(puVar1 + 4) >> 4)" ( (binary_expression "*(byte *)(puVar1 + 4) >> 4" (pointer_expression "*(byte *)(puVar1 + 4)" * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) )))) >> number_literal) )) + number_literal) )))) ;) (if_statement "if (iVar6 == 0) goto code_r0x000188c9;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x000188c9;" goto statement_identifier ;)) (expression_statement "uVar5 = *puRam00031370;" (assignment_expression "uVar5 = *puRam00031370" identifier = (pointer_expression "*puRam00031370" * identifier)) ;) (if_statement "if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }" if (parenthesized_expression "(((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff))" ( (binary_expression "((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)" (parenthesized_expression "((*pcVar26 != '\0') && (uRam0003136c != 0))" ( (binary_expression "(*pcVar26 != '\0') && (uRam0003136c != 0)" (parenthesized_expression "(*pcVar26 != '\0')" ( (binary_expression "*pcVar26 != '\0'" (pointer_expression "*pcVar26" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(uRam0003136c != 0)" ( (binary_expression "uRam0003136c != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(uVar5 != 0xffffffff)" ( (binary_expression "uVar5 != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }" { (expression_statement "puts("MATCHED REGEX REGISTERS");" (call_expression "puts("MATCHED REGEX REGISTERS")" identifier (argument_list "("MATCHED REGEX REGISTERS")" ( (string_literal ""MATCHED REGEX REGISTERS"" " string_content ") ))) ;) (expression_statement "uVar5 = *puRam00031370;" (assignment_expression "uVar5 = *puRam00031370" identifier = (pointer_expression "*puRam00031370" * identifier)) ;) (if_statement "if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }" if (parenthesized_expression "((uRam0003136c != 0) && (uVar5 != 0xffffffff))" ( (binary_expression "(uRam0003136c != 0) && (uVar5 != 0xffffffff)" (parenthesized_expression "(uRam0003136c != 0)" ( (binary_expression "uRam0003136c != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar5 != 0xffffffff)" ( (binary_expression "uVar5 != 0xffffffff" identifier != number_literal) ))) )) (compound_statement "{\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);" do (compound_statement "{\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        }" { (expression_statement "__printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);" (call_expression "__printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9])" identifier (argument_list "(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9])" ( number_literal , (string_literal ""  regex[%d] = %d-%d \'"" " string_content escape_sequence ") , identifier , identifier , (subscript_expression "puRam00031374[uVar9]" identifier [ identifier ]) ))) ;) (expression_statement "uVar5 = puRam00031370[uVar9];" (assignment_expression "uVar5 = puRam00031370[uVar9]" identifier = (subscript_expression "puRam00031370[uVar9]" identifier [ identifier ])) ;) (if_statement "if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }" if (parenthesized_expression "(uVar5 != puRam00031374[uVar9])" ( (binary_expression "uVar5 != puRam00031374[uVar9]" identifier != (subscript_expression "puRam00031374[uVar9]" identifier [ identifier ])) )) (compound_statement "{\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }" { (expression_statement "fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);" (call_expression "fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3)" identifier (argument_list "(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3)" ( (binary_expression "DAT_000313e0 + uVar5" identifier + identifier) , (binary_expression "puRam00031374[uVar9] - uVar5" (subscript_expression "puRam00031374[uVar9]" identifier [ identifier ]) - identifier) , number_literal , (pointer_expression "*(FILE **)puVar3" * (cast_expression "(FILE **)puVar3" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) })) (expression_statement "puts("\'");" (call_expression "puts("\'")" identifier (argument_list "("\'")" ( (string_literal ""\'"" " escape_sequence ") ))) ;) (if_statement "if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }" if (parenthesized_expression "(uRam0003136c <= uVar9 + 1)" ( (binary_expression "uRam0003136c <= uVar9 + 1" identifier <= (binary_expression "uVar9 + 1" identifier + number_literal)) )) (compound_statement "{\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }" { (expression_statement "uVar5 = *puRam00031370;" (assignment_expression "uVar5 = *puRam00031370" identifier = (pointer_expression "*puRam00031370" * identifier)) ;) (goto_statement "goto code_r0x00018110;" goto statement_identifier ;) })) (expression_statement "uVar5 = puRam00031370[uVar9 + 1];" (assignment_expression "uVar5 = puRam00031370[uVar9 + 1]" identifier = (subscript_expression "puRam00031370[uVar9 + 1]" identifier [ (binary_expression "uVar9 + 1" identifier + number_literal) ])) ;) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 != 0xffffffff)" ( (binary_expression "uVar5 != 0xffffffff" identifier != number_literal) )) ;) (expression_statement "uVar5 = *puRam00031370;" (assignment_expression "uVar5 = *puRam00031370" identifier = (pointer_expression "*puRam00031370" * identifier)) ;) })) })) (labeled_statement "code_r0x00018110:\n    uVar9 = *puRam00031374;" statement_identifier : (expression_statement "uVar9 = *puRam00031374;" (assignment_expression "uVar9 = *puRam00031374" identifier = (pointer_expression "*puRam00031374" * identifier)) ;)) (if_statement "if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }" if (parenthesized_expression "((puVar1[1] != 0) || (1 < (uint)puVar1[2]))" ( (binary_expression "(puVar1[1] != 0) || (1 < (uint)puVar1[2])" (parenthesized_expression "(puVar1[1] != 0)" ( (binary_expression "puVar1[1] != 0" (subscript_expression "puVar1[1]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(1 < (uint)puVar1[2])" ( (binary_expression "1 < (uint)puVar1[2]" number_literal < (cast_expression "(uint)puVar1[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar1[2]" identifier [ number_literal ]))) ))) )) (compound_statement "{\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }" { (labeled_statement "code_r0x00018127:\n      uVar21 = 0;" statement_identifier : (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;)) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "uStack_1058 = 0;" (assignment_expression "uStack_1058 = 0" identifier = number_literal) ;) (do_statement "do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );" do (compound_statement "{\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      }" { (expression_statement "uStack_1060 = uVar9 - uVar5;" (assignment_expression "uStack_1060 = uVar9 - uVar5" identifier = (binary_expression "uVar9 - uVar5" identifier - identifier)) ;) (if_statement "if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }" if (parenthesized_expression "(uVar22 < uVar5)" ( (binary_expression "uVar22 < uVar5" identifier < identifier) )) (compound_statement "{\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }" { (expression_statement "uVar22 = uVar5;" (assignment_expression "uVar22 = uVar5" identifier = identifier) ;) (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar5 = uVar22;" (assignment_expression "uVar5 = uVar22" identifier = identifier) ;) })) (if_statement "if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }" if (parenthesized_expression "((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0))" ( (binary_expression "(uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)" (parenthesized_expression "(uStack_1058 == 0 || uVar21 < uVar5)" ( (binary_expression "uStack_1058 == 0 || uVar21 < uVar5" (binary_expression "uStack_1058 == 0" identifier == number_literal) || (binary_expression "uVar21 < uVar5" identifier < identifier)) )) || (parenthesized_expression "(uStack_1060 != 0)" ( (binary_expression "uStack_1060 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }" { (expression_statement "uStack_1058 = uStack_1058 + 1;" (assignment_expression "uStack_1058 = uStack_1058 + 1" identifier = (binary_expression "uStack_1058 + 1" identifier + number_literal)) ;) (if_statement "if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }" if (parenthesized_expression "(uStack_1058 < (uint)puVar1[2])" ( (binary_expression "uStack_1058 < (uint)puVar1[2]" identifier < (cast_expression "(uint)puVar1[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar1[2]" identifier [ number_literal ]))) )) (compound_statement "{\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }" { (if_statement "if (uStack_1060 == 0) goto code_r0x0001817a;" if (parenthesized_expression "(uStack_1060 == 0)" ( (binary_expression "uStack_1060 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x0001817a;" goto statement_identifier ;)) (goto_statement "goto code_r0x00018190;" goto statement_identifier ;) })) (expression_statement "iVar6 = puVar1[1];" (assignment_expression "iVar6 = puVar1[1]" identifier = (subscript_expression "puVar1[1]" identifier [ number_literal ])) ;) (expression_statement "DAT_00031408 = '\x01';" (assignment_expression "DAT_00031408 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (for_statement "for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }" for ( ; (binary_expression "iVar6 != 0" identifier != number_literal) ; (assignment_expression "iVar6 = *(int *)(iVar6 + 0x10)" identifier = (pointer_expression "*(int *)(iVar6 + 0x10)" * (cast_expression "(int *)(iVar6 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x10)" ( (binary_expression "iVar6 + 0x10" identifier + number_literal) ))))) ) (compound_statement "{\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }" { (expression_statement "uVar9 = *(uint *)(iVar6 + 8);" (assignment_expression "uVar9 = *(uint *)(iVar6 + 8)" identifier = (pointer_expression "*(uint *)(iVar6 + 8)" * (cast_expression "(uint *)(iVar6 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 8)" ( (binary_expression "iVar6 + 8" identifier + number_literal) ))))) ;) (if_statement "if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }" if (parenthesized_expression "(*(int *)(iVar6 + 4) != 0)" ( (binary_expression "*(int *)(iVar6 + 4) != 0" (pointer_expression "*(int *)(iVar6 + 4)" * (cast_expression "(int *)(iVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 4)" ( (binary_expression "iVar6 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              FUN_000173c0();\n            }" { (expression_statement "FUN_000173c0();" (call_expression "FUN_000173c0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }" if (parenthesized_expression "(((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9]))" ( (binary_expression "((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])" (parenthesized_expression "((-1 < (int)uVar9) && (uVar9 < uRam0003136c))" ( (binary_expression "(-1 < (int)uVar9) && (uVar9 < uRam0003136c)" (parenthesized_expression "(-1 < (int)uVar9)" ( (binary_expression "-1 < (int)uVar9" number_literal < (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar9 < uRam0003136c)" ( (binary_expression "uVar9 < uRam0003136c" identifier < identifier) ))) )) && (parenthesized_expression "(puRam00031374[uVar9] != puRam00031370[uVar9])" ( (binary_expression "puRam00031374[uVar9] != puRam00031370[uVar9]" (subscript_expression "puRam00031374[uVar9]" identifier [ identifier ]) != (subscript_expression "puRam00031370[uVar9]" identifier [ identifier ])) ))) )) (compound_statement "{\n              FUN_000173c0();\n            }" { (expression_statement "FUN_000173c0();" (call_expression "FUN_000173c0()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "uVar22 = uVar5 + uStack_1060;" (assignment_expression "uVar22 = uVar5 + uStack_1060" identifier = (binary_expression "uVar5 + uStack_1060" identifier + identifier)) ;) (expression_statement "uVar21 = *puRam00031374;" (assignment_expression "uVar21 = *puRam00031374" identifier = (pointer_expression "*puRam00031374" * identifier)) ;) (if_statement "if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;" if (parenthesized_expression "((*(byte *)(puVar1 + 4) & 1) == 0)" ( (binary_expression "(*(byte *)(puVar1 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(puVar1 + 4) & 1)" ( (binary_expression "*(byte *)(puVar1 + 4) & 1" (pointer_expression "*(byte *)(puVar1 + 4)" * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto code_r0x00018ba8;" goto statement_identifier ;)) }) (else_clause "else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }" else (compound_statement "{\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }" { (labeled_statement "code_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;" statement_identifier : (if_statement "if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;" if (parenthesized_expression "(DAT_000313e4 <= uVar22)" ( (binary_expression "DAT_000313e4 <= uVar22" identifier <= identifier) )) (goto_statement "goto code_r0x00018bcb;" goto statement_identifier ;))) (expression_statement "uStack_1060 = 1;" (assignment_expression "uStack_1060 = 1" identifier = number_literal) ;) (labeled_statement "code_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;" statement_identifier : (expression_statement "uVar22 = uVar5 + uStack_1060;" (assignment_expression "uVar22 = uVar5 + uStack_1060" identifier = (binary_expression "uVar5 + uStack_1060" identifier + identifier)) ;)) (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar21 = *puRam00031374;" (assignment_expression "uVar21 = *puRam00031374" identifier = (pointer_expression "*puRam00031374" * identifier)) ;) }))) (if_statement "if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;" if (parenthesized_expression "(DAT_000313e4 < uVar22)" ( (binary_expression "DAT_000313e4 < uVar22" identifier < identifier) )) (goto_statement "goto code_r0x00018bcb;" goto statement_identifier ;)) (expression_statement "uVar5 = (uint)*(byte *)(puVar1 + 4);" (assignment_expression "uVar5 = (uint)*(byte *)(puVar1 + 4)" identifier = (binary_expression "(uint)*(byte *)(puVar1 + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);" (assignment_expression "iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1)" identifier = (call_expression "FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1)" identifier (argument_list "(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1)" ( (pointer_expression "*puVar1" * identifier) , identifier , identifier , identifier , number_literal , (binary_expression "(*(byte *)(puVar1 + 4) >> 4) + 1" (parenthesized_expression "(*(byte *)(puVar1 + 4) >> 4)" ( (binary_expression "*(byte *)(puVar1 + 4) >> 4" (pointer_expression "*(byte *)(puVar1 + 4)" * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) )))) >> number_literal) )) + number_literal) )))) ;) (if_statement "if (iVar6 == 0) goto code_r0x00018ba8;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto code_r0x00018ba8;" goto statement_identifier ;)) (expression_statement "uVar5 = *puRam00031370;" (assignment_expression "uVar5 = *puRam00031370" identifier = (pointer_expression "*puRam00031370" * identifier)) ;) (expression_statement "uVar9 = *puRam00031374;" (assignment_expression "uVar9 = *puRam00031374" identifier = (pointer_expression "*puRam00031374" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (if_statement "if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }" if (parenthesized_expression "((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0))" ( (binary_expression "(uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)" (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)" ( (comma_expression "bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0" (assignment_expression "bVar18 = *(byte *)(puVar1 + 4)" identifier = (pointer_expression "*(byte *)(puVar1 + 4)" * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) ))))) , (binary_expression "(bVar18 & 1) == 0" (parenthesized_expression "(bVar18 & 1)" ( (binary_expression "bVar18 & 1" identifier & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }" { (expression_statement "DAT_000313e4 = DAT_000313e4 - uVar9;" (assignment_expression "DAT_000313e4 = DAT_000313e4 - uVar9" identifier = (binary_expression "DAT_000313e4 - uVar9" identifier - identifier)) ;) (expression_statement "DAT_000313e0 = DAT_000313e0 + uVar9;" (assignment_expression "DAT_000313e0 = DAT_000313e0 + uVar9" identifier = (binary_expression "DAT_000313e0 + uVar9" identifier + identifier)) ;) (expression_statement "DAT_000313e8 = DAT_000313e8 - *puRam00031374;" (assignment_expression "DAT_000313e8 = DAT_000313e8 - *puRam00031374" identifier = (binary_expression "DAT_000313e8 - *puRam00031374" identifier - (pointer_expression "*puRam00031374" * identifier))) ;) (expression_statement "DAT_00031408 = '\x01';" (assignment_expression "DAT_00031408 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) }) (else_clause "else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }" else (compound_statement "{\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }" { (if_statement "if (uVar9 != DAT_000313e4) goto code_r0x00018127;" if (parenthesized_expression "(uVar9 != DAT_000313e4)" ( (binary_expression "uVar9 != DAT_000313e4" identifier != identifier) )) (goto_statement "goto code_r0x00018127;" goto statement_identifier ;)) (expression_statement "DAT_00031408 = '\x01';" (assignment_expression "DAT_00031408 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "bVar18 = *(byte *)(puVar1 + 4);" (assignment_expression "bVar18 = *(byte *)(puVar1 + 4)" identifier = (pointer_expression "*(byte *)(puVar1 + 4)" * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) ))))) ;) (expression_statement "DAT_000313e4 = uVar5;" (assignment_expression "DAT_000313e4 = uVar5" identifier = identifier) ;) }))) (goto_statement "goto code_r0x00018bf8;" goto statement_identifier ;)) (case_statement "case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;" case number_literal : (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (if_statement "if (DAT_00031408 == '\0') goto code_r0x00017de7;" if (parenthesized_expression "(DAT_00031408 == '\0')" ( (binary_expression "DAT_00031408 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;)) (expression_statement "DAT_00031408 = '\0';" (assignment_expression "DAT_00031408 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (labeled_statement "code_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);" statement_identifier : (expression_statement "piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);" (assignment_expression "piVar20 = (int *)(*param_1 + piVar20[4] * 0x18)" identifier = (cast_expression "(int *)(*param_1 + piVar20[4] * 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + piVar20[4] * 0x18)" ( (binary_expression "*param_1 + piVar20[4] * 0x18" (pointer_expression "*param_1" * identifier) + (binary_expression "piVar20[4] * 0x18" (subscript_expression "piVar20[4]" identifier [ number_literal ]) * number_literal)) )))) ;)) (goto_statement "goto joined_r0x00017cbb;" goto statement_identifier ;)) (case_statement "case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" case number_literal : (expression_statement "puVar7 = (undefined *)piVar20[4];" (assignment_expression "puVar7 = (undefined *)piVar20[4]" identifier = (cast_expression "(undefined *)piVar20[4]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar20[4]" identifier [ number_literal ]))) ;) (if_statement "if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;" if (parenthesized_expression "(*(int *)(puVar7 + 8) == 0)" ( (binary_expression "*(int *)(puVar7 + 8) == 0" (pointer_expression "*(int *)(puVar7 + 8)" * (cast_expression "(int *)(puVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 8)" ( (binary_expression "puVar7 + 8" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;)) (labeled_statement "code_r0x00018030:\n    FUN_000178c0(puVar7);" statement_identifier : (expression_statement "FUN_000178c0(puVar7);" (call_expression "FUN_000178c0(puVar7)" identifier (argument_list "(puVar7)" ( identifier ))) ;)) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;)) (case_statement "case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;" case number_literal : (expression_statement "FUN_00017220();" (call_expression "FUN_00017220()" identifier (argument_list "()" ( ))) ;) (if_statement "if (*pcVar26 == '\0') goto code_r0x000182c0;" if (parenthesized_expression "(*pcVar26 == '\0')" ( (binary_expression "*pcVar26 == '\0'" (pointer_expression "*pcVar26" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000182c0;" goto statement_identifier ;)) (expression_statement "FUN_00016620();" (call_expression "FUN_00016620()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x0001861e;" goto statement_identifier ;)) (case_statement "case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;" case number_literal : (if_statement "if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }" if (parenthesized_expression "(DAT_000316c4 < 2)" ( (binary_expression "DAT_000316c4 < 2" identifier < number_literal) )) (compound_statement "{\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }" { (expression_statement "pbVar13 = DAT_000313e0 + DAT_000313e4;" (assignment_expression "pbVar13 = DAT_000313e0 + DAT_000313e4" identifier = (binary_expression "DAT_000313e0 + DAT_000313e4" identifier + identifier)) ;) (if_statement "if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }" if (parenthesized_expression "(DAT_000313e0 < pbVar13)" ( (binary_expression "DAT_000313e0 < pbVar13" identifier < identifier) )) (compound_statement "{\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }" { (do_statement "do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);" do (compound_statement "{\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        }" { (expression_statement "pbVar19 = pbVar23 + 1;" (assignment_expression "pbVar19 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;) (expression_statement "*pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);" (assignment_expression "*pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23)" (pointer_expression "*pbVar23" * identifier) = (pointer_expression "*(byte *)(piVar20[4] + (uint)*pbVar23)" * (cast_expression "(byte *)(piVar20[4] + (uint)*pbVar23)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar20[4] + (uint)*pbVar23)" ( (binary_expression "piVar20[4] + (uint)*pbVar23" (subscript_expression "piVar20[4]" identifier [ number_literal ]) + (binary_expression "(uint)*pbVar23" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ))))) ;) (expression_statement "pbVar23 = pbVar19;" (assignment_expression "pbVar23 = pbVar19" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar13 != pbVar19)" ( (binary_expression "pbVar13 != pbVar19" identifier != identifier) )) ;) })) }) (else_clause "else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }" else (compound_statement "{\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }" { (expression_statement "piVar8 = (int *)piVar20[4];" (assignment_expression "piVar8 = (int *)piVar20[4]" identifier = (cast_expression "(int *)piVar20[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar20[4]" identifier [ number_literal ]))) ;) (expression_statement "uStack_1028 = 0;" (assignment_expression "uStack_1028 = 0" identifier = number_literal) ;) (expression_statement "uStack_1024 = 0;" (assignment_expression "uStack_1024 = 0" identifier = number_literal) ;) (if_statement "if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }" if (parenthesized_expression "(DAT_000313e4 != 0)" ( (binary_expression "DAT_000313e4 != 0" identifier != number_literal) )) (compound_statement "{\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }" { (expression_statement "uStack_1068 = 0;" (assignment_expression "uStack_1068 = 0" identifier = number_literal) ;) (do_statement "do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);" do (compound_statement "{\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        }" { (if_statement "if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }" if (parenthesized_expression "((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1))" ( (binary_expression "(DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)" (parenthesized_expression "(DAT_000316c4 == 1)" ( (binary_expression "DAT_000316c4 == 1" identifier == number_literal) )) || (parenthesized_expression "(uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)" ( (comma_expression "uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1" (assignment_expression "uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028)" identifier = (call_expression "FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028)" identifier (argument_list "(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028)" ( number_literal , (binary_expression "DAT_000313e0 + uStack_1068" identifier + identifier) , (binary_expression "DAT_000313e4 - uStack_1068" identifier - identifier) , (pointer_expression "&uStack_1028" & identifier) )))) , (binary_expression "0xfffffffc < uVar5 - 1" number_literal < (binary_expression "uVar5 - 1" identifier - number_literal))) ))) )) (compound_statement "{\n            uVar5 = 1;\n          }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) })) (expression_statement "pcVar24 = (char *)*piVar8;" (assignment_expression "pcVar24 = (char *)*piVar8" identifier = (cast_expression "(char *)*piVar8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar8" * identifier))) ;) (if_statement "if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }" if (parenthesized_expression "(pcVar24 != (char *)0x0)" ( (binary_expression "pcVar24 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "pbStack_105c = DAT_000313e0;" (assignment_expression "pbStack_105c = DAT_000313e0" identifier = identifier) ;) (expression_statement "pbVar23 = DAT_000313e0 + uStack_1068;" (assignment_expression "pbVar23 = DAT_000313e0 + uStack_1068" identifier = (binary_expression "DAT_000313e0 + uStack_1068" identifier + identifier)) ;) (do_statement "do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);" do (compound_statement "{\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            }" { (expression_statement "iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);" (assignment_expression "iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5)" identifier = (call_expression "strncmp((char *)pbVar23,pcVar24,uVar5)" identifier (argument_list "((char *)pbVar23,pcVar24,uVar5)" ( (cast_expression "(char *)pbVar23" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }" { (expression_statement "puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);" (assignment_expression "puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4)" identifier = (cast_expression "(undefined4 *)((int)piVar8 + iVar6 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + iVar6 + 4)" ( (binary_expression "(int)piVar8 + iVar6 + 4" (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pcVar24 = (char *)*puVar1;" (assignment_expression "pcVar24 = (char *)*puVar1" identifier = (cast_expression "(char *)*puVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (if_statement "if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }" if (parenthesized_expression "(*pcVar24 == '\0')" ( (binary_expression "*pcVar24 == '\0'" (pointer_expression "*pcVar24" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }" { (expression_statement "uStack_1060 = 1;" (assignment_expression "uStack_1060 = 1" identifier = number_literal) ;) (labeled_statement "code_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }" statement_identifier : (if_statement "if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }" if (parenthesized_expression "(uStack_1060 < uVar5)" ( (binary_expression "uStack_1060 < uVar5" identifier < identifier) )) (compound_statement "{\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }" { (expression_statement "iVar6 = DAT_000313e4 + 1;" (assignment_expression "iVar6 = DAT_000313e4 + 1" identifier = (binary_expression "DAT_000313e4 + 1" identifier + number_literal)) ;) (goto_statement "goto code_r0x0001841c;" goto statement_identifier ;) }))) }) (else_clause "else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }" else (compound_statement "{\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }" { (expression_statement "uStack_1060 = strlen(pcVar24);" (assignment_expression "uStack_1060 = strlen(pcVar24)" identifier = (call_expression "strlen(pcVar24)" identifier (argument_list "(pcVar24)" ( identifier )))) ;) (if_statement "if (uStack_1060 <= uVar5) goto code_r0x00018c70;" if (parenthesized_expression "(uStack_1060 <= uVar5)" ( (binary_expression "uStack_1060 <= uVar5" identifier <= identifier) )) (goto_statement "goto code_r0x00018c70;" goto statement_identifier ;)) (expression_statement "iVar6 = DAT_000313e4 + 1;" (assignment_expression "iVar6 = DAT_000313e4 + 1" identifier = (binary_expression "DAT_000313e4 + 1" identifier + number_literal)) ;) (if_statement "if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }" if (parenthesized_expression "(DAT_000313e8 < (iVar6 - uVar5) + uStack_1060)" ( (binary_expression "DAT_000313e8 < (iVar6 - uVar5) + uStack_1060" identifier < (binary_expression "(iVar6 - uVar5) + uStack_1060" (parenthesized_expression "(iVar6 - uVar5)" ( (binary_expression "iVar6 - uVar5" identifier - identifier) )) + identifier)) )) (compound_statement "{\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }" { (expression_statement "FUN_000166d0();" (call_expression "FUN_000166d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbStack_105c = DAT_000313e0;" (assignment_expression "pbStack_105c = DAT_000313e0" identifier = identifier) ;) (expression_statement "iVar6 = DAT_000313e4 + 1;" (assignment_expression "iVar6 = DAT_000313e4 + 1" identifier = (binary_expression "DAT_000313e4 + 1" identifier + number_literal)) ;) })) (labeled_statement "code_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));" statement_identifier : (expression_statement "memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));" (call_expression "memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068))" identifier (argument_list "(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068))" ( (binary_expression "pbStack_105c + uStack_1068 + uStack_1060" (binary_expression "pbStack_105c + uStack_1068" identifier + identifier) + identifier) , (binary_expression "pbStack_105c + uVar5 + uStack_1068" (binary_expression "pbStack_105c + uVar5" identifier + identifier) + identifier) , (binary_expression "iVar6 - (uVar5 + uStack_1068)" identifier - (parenthesized_expression "(uVar5 + uStack_1068)" ( (binary_expression "uVar5 + uStack_1068" identifier + identifier) ))) ))) ;)) (expression_statement "DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);" (assignment_expression "DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5)" identifier = (binary_expression "DAT_000313e4 + (uStack_1060 - uVar5)" identifier + (parenthesized_expression "(uStack_1060 - uVar5)" ( (binary_expression "uStack_1060 - uVar5" identifier - identifier) )))) ;) (expression_statement "pcVar24 = (char *)*puVar1;" (assignment_expression "pcVar24 = (char *)*puVar1" identifier = (cast_expression "(char *)*puVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier))) ;) (expression_statement "pbVar23 = DAT_000313e0 + uStack_1068;" (assignment_expression "pbVar23 = DAT_000313e0 + uStack_1068" identifier = (binary_expression "DAT_000313e0 + uStack_1068" identifier + identifier)) ;) (expression_statement "uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);" (assignment_expression "uStack_1068 = uStack_1068 + (uStack_1060 - uVar5)" identifier = (binary_expression "uStack_1068 + (uStack_1060 - uVar5)" identifier + (parenthesized_expression "(uStack_1060 - uVar5)" ( (binary_expression "uStack_1060 - uVar5" identifier - identifier) )))) ;) }))) (expression_statement "memcpy(pbVar23,pcVar24,uStack_1060);" (call_expression "memcpy(pbVar23,pcVar24,uStack_1060)" identifier (argument_list "(pbVar23,pcVar24,uStack_1060)" ( identifier , identifier , identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "iVar6 = iVar6 + 8;" (assignment_expression "iVar6 = iVar6 + 8" identifier = (binary_expression "iVar6 + 8" identifier + number_literal)) ;) (expression_statement "pcVar24 = *(char **)((int)piVar8 + iVar6);" (assignment_expression "pcVar24 = *(char **)((int)piVar8 + iVar6)" identifier = (pointer_expression "*(char **)((int)piVar8 + iVar6)" * (cast_expression "(char **)((int)piVar8 + iVar6)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)piVar8 + iVar6)" ( (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))))) ;) }) while (parenthesized_expression "(pcVar24 != (char *)0x0)" ( (binary_expression "pcVar24 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "uStack_1068 = uStack_1068 + uVar5;" (assignment_expression "uStack_1068 = uStack_1068 + uVar5" identifier = (binary_expression "uStack_1068 + uVar5" identifier + identifier)) ;) }) while (parenthesized_expression "(uStack_1068 < DAT_000313e4)" ( (binary_expression "uStack_1068 < DAT_000313e4" identifier < identifier) )) ;) })) }))) (goto_statement "goto code_r0x000188c9;" goto statement_identifier ;)) (case_statement "case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;" case number_literal : (expression_statement "DAT_000313e4 = 0;" (assignment_expression "DAT_000313e4 = 0" identifier = number_literal) ;) (goto_statement "goto code_r0x000188c9;" goto statement_identifier ;)) })) (if_statement "if (cVar4 == '\0') goto code_r0x000182c0;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000182c0;" goto statement_identifier ;)) (labeled_statement "code_r0x0001861e:\n  FUN_00016620();" statement_identifier : (expression_statement "FUN_00016620();" (call_expression "FUN_00016620()" identifier (argument_list "()" ( ))) ;)) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto code_r0x00017de7;" goto statement_identifier ;) (labeled_statement "code_r0x00018ba8:\n  if (uVar22 < DAT_000313e4) {\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }" statement_identifier : (if_statement "if (uVar22 < DAT_000313e4) {\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }" if (parenthesized_expression "(uVar22 < DAT_000313e4)" ( (binary_expression "uVar22 < DAT_000313e4" identifier < identifier) )) (compound_statement "{\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }" { (expression_statement "FUN_00016f30(param_2,pcVar26,uVar5);" (call_expression "FUN_00016f30(param_2,pcVar26,uVar5)" identifier (argument_list "(param_2,pcVar26,uVar5)" ( identifier , identifier , identifier ))) ;) }))) (labeled_statement "code_r0x00018bcb:\n  DAT_000313d0._0_1_ = (undefined1)DAT_000313ec;" statement_identifier : (expression_statement "DAT_000313d0._0_1_ = (undefined1)DAT_000313ec;" (assignment_expression "DAT_000313d0._0_1_ = (undefined1)DAT_000313ec" (field_expression "DAT_000313d0._0_1_" identifier . field_identifier) = (cast_expression "(undefined1)DAT_000313ec" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;)) (expression_statement "FUN_00017220();" (call_expression "FUN_00017220()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((uint)puVar1[2] <= uStack_1058) {\n    bVar18 = *(byte *)(puVar1 + 4);\ncode_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }\n  }" if (parenthesized_expression "((uint)puVar1[2] <= uStack_1058)" ( (binary_expression "(uint)puVar1[2] <= uStack_1058" (cast_expression "(uint)puVar1[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar1[2]" identifier [ number_literal ])) <= identifier) )) (compound_statement "{\n    bVar18 = *(byte *)(puVar1 + 4);\ncode_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }\n  }" { (expression_statement "bVar18 = *(byte *)(puVar1 + 4);" (assignment_expression "bVar18 = *(byte *)(puVar1 + 4)" identifier = (pointer_expression "*(byte *)(puVar1 + 4)" * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }" statement_identifier : (if_statement "if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }" if (parenthesized_expression "((bVar18 & 2) != 0)" ( (binary_expression "(bVar18 & 2) != 0" (parenthesized_expression "(bVar18 & 2)" ( (binary_expression "bVar18 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }" { (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" identifier (argument_list "(&DAT_000313f8)" ( (pointer_expression "&DAT_000313f8" & identifier) ))) ;) (expression_statement "bVar18 = *(byte *)(puVar1 + 4);" (assignment_expression "bVar18 = *(byte *)(puVar1 + 4)" identifier = (pointer_expression "*(byte *)(puVar1 + 4)" * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) ))))) ;) }))) (if_statement "if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }" if (parenthesized_expression "((bVar18 & 8) != 0)" ( (binary_expression "(bVar18 & 8) != 0" (parenthesized_expression "(bVar18 & 8)" ( (binary_expression "bVar18 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }" { (expression_statement "FUN_00017840();" (call_expression "FUN_00017840()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" identifier (argument_list "()" ( ))) ;) (expression_statement "pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");" (assignment_expression "pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r")" identifier = (cast_expression "(FILE *)func_0x00012160(DAT_000313e0,"r")" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "func_0x00012160(DAT_000313e0,"r")" identifier (argument_list "(DAT_000313e0,"r")" ( identifier , (string_literal ""r"" " string_content ") ))))) ;) (expression_statement "uVar16 = extraout_ECX_02;" (assignment_expression "uVar16 = extraout_ECX_02" identifier = identifier) ;) (if_statement "if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }" if (parenthesized_expression "(pFVar14 == (FILE *)0x0)" ( (binary_expression "pFVar14 == (FILE *)0x0" identifier == (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }" { (labeled_statement "code_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);" statement_identifier : (expression_statement "uVar16 = dcgettext(0,"error in subprocess",5,uVar16);" (assignment_expression "uVar16 = dcgettext(0,"error in subprocess",5,uVar16)" identifier = (call_expression "dcgettext(0,"error in subprocess",5,uVar16)" identifier (argument_list "(0,"error in subprocess",5,uVar16)" ( number_literal , (string_literal ""error in subprocess"" " string_content ") , number_literal , identifier )))) ;)) (expression_statement "FUN_0001a340(uVar16);" (call_expression "FUN_0001a340(uVar16)" identifier (argument_list "(uVar16)" ( identifier ))) ;) })) (expression_statement "bVar18 = (byte)pFVar14->_flags;" (assignment_expression "bVar18 = (byte)pFVar14->_flags" identifier = (cast_expression "(byte)pFVar14->_flags" ( (type_descriptor "byte" type_identifier) ) (field_expression "pFVar14->_flags" identifier -> field_identifier))) ;) (while_statement "while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }" while (parenthesized_expression "((bVar18 & 0x10) == 0)" ( (binary_expression "(bVar18 & 0x10) == 0" (parenthesized_expression "(bVar18 & 0x10)" ( (binary_expression "bVar18 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }" { (expression_statement "sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);" (assignment_expression "sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14)" identifier = (call_expression "fread_unlocked(&bStack_1020,1,0x1000,pFVar14)" identifier (argument_list "(&bStack_1020,1,0x1000,pFVar14)" ( (pointer_expression "&bStack_1020" & identifier) , number_literal , number_literal , identifier )))) ;) (if_statement "if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }" if (parenthesized_expression "(0 < (int)sVar15)" ( (binary_expression "0 < (int)sVar15" number_literal < (cast_expression "(int)sVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          FUN_00016f30();\n        }" { (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "bVar18 = (byte)pFVar14->_flags;" (assignment_expression "bVar18 = (byte)pFVar14->_flags" identifier = (cast_expression "(byte)pFVar14->_flags" ( (type_descriptor "byte" type_identifier) ) (field_expression "pFVar14->_flags" identifier -> field_identifier))) ;) })) (expression_statement "func_0x00012380(pFVar14);" (call_expression "func_0x00012380(pFVar14)" identifier (argument_list "(pFVar14)" ( identifier ))) ;) (expression_statement "FUN_000176c0();" (call_expression "FUN_000176c0()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }" if (parenthesized_expression "((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240))" ( (binary_expression "(DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)" (parenthesized_expression "(DAT_000313e4 != 0)" ( (binary_expression "DAT_000313e4 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)" ( (binary_expression "DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240" (subscript_expression "DAT_000313e0[DAT_000313e4 - 1]" identifier [ (binary_expression "DAT_000313e4 - 1" identifier - number_literal) ]) == identifier) ))) )) (compound_statement "{\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }" { (expression_statement "DAT_000313e4 = DAT_000313e4 - 1;" (assignment_expression "DAT_000313e4 = DAT_000313e4 - 1" identifier = (binary_expression "DAT_000313e4 - 1" identifier - number_literal)) ;) })) (expression_statement "bVar18 = *(byte *)(puVar1 + 4);" (assignment_expression "bVar18 = *(byte *)(puVar1 + 4)" identifier = (pointer_expression "*(byte *)(puVar1 + 4)" * (cast_expression "(byte *)(puVar1 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 4)" ( (binary_expression "puVar1 + 4" identifier + number_literal) ))))) ;) })) (if_statement "if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }" if (parenthesized_expression "((bVar18 >> 1 & 2) != 0)" ( (binary_expression "(bVar18 >> 1 & 2) != 0" (parenthesized_expression "(bVar18 >> 1 & 2)" ( (binary_expression "bVar18 >> 1 & 2" (binary_expression "bVar18 >> 1" identifier >> number_literal) & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_000178c0(&DAT_000313f8);\n    }" { (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" identifier (argument_list "(&DAT_000313f8)" ( (pointer_expression "&DAT_000313f8" & identifier) ))) ;) })) (if_statement "if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }" if (parenthesized_expression "(puVar1[3] != 0)" ( (binary_expression "puVar1[3] != 0" (subscript_expression "puVar1[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_000178c0(puVar1[3]);\n    }" { (expression_statement "FUN_000178c0(puVar1[3]);" (call_expression "FUN_000178c0(puVar1[3])" identifier (argument_list "(puVar1[3])" ( (subscript_expression "puVar1[3]" identifier [ number_literal ]) ))) ;) })) })) (labeled_statement "code_r0x000188c9:\n  if (*pcVar26 != '\0') {\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }" statement_identifier : (if_statement "if (*pcVar26 != '\0') {\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }" if (parenthesized_expression "(*pcVar26 != '\0')" ( (binary_expression "*pcVar26 != '\0'" (pointer_expression "*pcVar26" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }" { (labeled_statement "code_r0x00017dd0:\n    FUN_00016620();" statement_identifier : (expression_statement "FUN_00016620();" (call_expression "FUN_00016620()" identifier (argument_list "()" ( ))) ;)) (goto_statement "goto LAB_00017de0;" goto statement_identifier ;) }))) (labeled_statement "code_r0x000182c0:\n  piVar20 = piVar20 + 6;" statement_identifier : (expression_statement "piVar20 = piVar20 + 6;" (assignment_expression "piVar20 = piVar20 + 6" identifier = (binary_expression "piVar20 + 6" identifier + number_literal)) ;)) (labeled_statement "joined_r0x00018523:\n  if (piVar2 <= piVar20) goto LAB_00017e10;" statement_identifier : (if_statement "if (piVar2 <= piVar20) goto LAB_00017e10;" if (parenthesized_expression "(piVar2 <= piVar20)" ( (binary_expression "piVar2 <= piVar20" identifier <= identifier) )) (goto_statement "goto LAB_00017e10;" goto statement_identifier ;))) (goto_statement "goto LAB_00017cfb;" goto statement_identifier ;) (labeled_statement "code_r0x00018860:\n  piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);" statement_identifier : (expression_statement "piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);" (assignment_expression "piVar20 = (int *)(*param_1 + piVar20[4] * 0x18)" identifier = (cast_expression "(int *)(*param_1 + piVar20[4] * 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + piVar20[4] * 0x18)" ( (binary_expression "*param_1 + piVar20[4] * 0x18" (pointer_expression "*param_1" * identifier) + (binary_expression "piVar20[4] * 0x18" (subscript_expression "piVar20[4]" identifier [ number_literal ]) * number_literal)) )))) ;)) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" identifier = (pointer_expression "*pcVar26" * identifier)) ;) (goto_statement "goto joined_r0x00017cbb;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_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 ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != 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 = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT <= IDENT) )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < LIT) || IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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 ( )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (subscript_expression IDENT [ LIT ])) )) - (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) % (subscript_expression IDENT [ LIT ])))) ;) })))))) }))) }) (else_clause else (compound_statement { (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 ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) , (binary_expression IDENT == IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) }))))))) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) == IDENT) )) (goto_statement goto statement_identifier ;)) (switch_statement switch (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) - LIT) & LIT) )) (compound_statement { (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ))) ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT == (char_literal ' escape_sequence '))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != (char_literal ' escape_sequence '))) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + 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 (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (goto_statement goto statement_identifier ;)) (case_statement case 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case 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) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) }))) (case_statement case LIT : (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 ( IDENT , (string_literal " string_content ") ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (string_literal " string_content ") ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT -> field_identifier) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , IDENT , IDENT ))) ;) }))) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })))) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case 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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 = (call_expression IDENT (argument_list ( )))) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + (binary_expression IDENT * LIT)) + LIT) )))) & LIT) )) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (switch_statement switch (parenthesized_expression ( (pointer_expression * IDENT) )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (break_statement break ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (string_literal " string_content ") , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT))) )))) ;)) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , IDENT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != (char_literal ' escape_sequence '))) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT == (char_literal ' escape_sequence '))) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT , LIT , LIT , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT , (subscript_expression IDENT [ IDENT ]) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression IDENT [ IDENT ])) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (binary_expression (subscript_expression IDENT [ IDENT ]) - IDENT) , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence ") ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) || (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression IDENT < IDENT)) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (for_statement for ( ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != (subscript_expression IDENT [ IDENT ])) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT , IDENT , LIT , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) )))) ;)) (goto_statement goto statement_identifier ;)) (case_statement case 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + IDENT) , (binary_expression IDENT - IDENT) , (pointer_expression & IDENT) )))) , (binary_expression LIT < (binary_expression IDENT - LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + IDENT) + IDENT) , (binary_expression (binary_expression IDENT + IDENT) + IDENT) , (binary_expression IDENT - (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) ))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) }))) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ 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) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & 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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 ( IDENT , (string_literal " string_content ") ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT , IDENT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT -> field_identifier))) ;) (while_statement while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (field_expression IDENT -> field_identifier))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + (binary_expression (subscript_expression IDENT [ LIT ]) * LIT)) )))) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "int __regparm3 FUN_00017c70(int *param_1,int param_2)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  undefined *puVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  int *piVar8;\n  uint uVar9;\n  int iVar10;\n  ushort **ppuVar11;\n  char *pcVar12;\n  byte *pbVar13;\n  FILE *pFVar14;\n  size_t sVar15;\n  undefined4 uVar16;\n  uint *puVar17;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar18;\n  byte *pbVar19;\n  int *piVar20;\n  uint uVar21;\n  uint uVar22;\n  byte *pbVar23;\n  char *pcVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  char *pcVar26;\n  char *pcStack_106c;\n  uint uStack_1068;\n  uint uStack_1060;\n  byte *pbStack_105c;\n  uint uStack_1058;\n  undefined1 auStack_1030 [4];\n  void *pvStack_102c;\n  undefined4 uStack_1028;\n  undefined4 uStack_1024;\n  byte bStack_1020;\n  char acStack_101f [4095];\n  int local_20;\n  undefined4 uStack_14;\n  \n  puVar3 = PTR_stdout_00030fdc;\n  uStack_14 = 0x17c79;\n  piVar20 = (int *)*param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  piVar2 = piVar20 + param_1[2] * 6;\n  pcVar26 = &DAT_00031414;\n  cVar4 = DAT_00031414;\njoined_r0x00017cbb:\n  if (piVar2 <= piVar20) {\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_00025de0();\n    }\n    return iVar6;\n  }\n  if (cVar4 != '\0') {\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    FUN_00015bb0(param_1,piVar20);\n  }\nLAB_00017cfb:\n  piVar8 = (int *)*piVar20;\n  if (piVar8 == (int *)0x0) {\nLAB_00017e6b:\n    uVar5 = 1;\n  }\n  else {\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }\n  uVar16 = DAT_00031400;\n  uVar9 = DAT_000313e4;\n  pbVar23 = DAT_000313e0;\n  if ((int)(char)piVar20[3] == uVar5) goto LAB_00017de0;\n  switch((int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff) {\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto LAB_00017de0;\n  default:\n                    \n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));\n  case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;\n  case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;\n  case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;\n  case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;\n  case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;\n  case 0x2e:\n    goto code_r0x00017f94;\n  case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;\n  case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;\n  case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3f:\n  case 0x58:\n    goto code_r0x00018860;\n  case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n  case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;\n  case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;\n  case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;\n  case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;\n  case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;\n  case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;\n  case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;\n  case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;\n  case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;\n  }\n  if (cVar4 == '\0') goto code_r0x000182c0;\ncode_r0x0001861e:\n  FUN_00016620();\n  cVar4 = *pcVar26;\n  goto code_r0x00017de7;\ncode_r0x00018ba8:\n  if (uVar22 < DAT_000313e4) {\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }\ncode_r0x00018bcb:\n  DAT_000313d0._0_1_ = (undefined1)DAT_000313ec;\n  FUN_00017220();\n  if ((uint)puVar1[2] <= uStack_1058) {\n    bVar18 = *(byte *)(puVar1 + 4);\ncode_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }\n  }\ncode_r0x000188c9:\n  if (*pcVar26 != '\0') {\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }\ncode_r0x000182c0:\n  piVar20 = piVar20 + 6;\njoined_r0x00018523:\n  if (piVar2 <= piVar20) goto LAB_00017e10;\n  goto LAB_00017cfb;\ncode_r0x00018860:\n  piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n  cVar4 = *pcVar26;\n  goto joined_r0x00017cbb;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00017c70(int *param_1,int param_2)" (identifier "FUN_00017c70") (parameter_list "(int *param_1,int param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  int *piVar2;\n  undefined *puVar3;\n  char cVar4;\n  uint uVar5;\n  int iVar6;\n  undefined *puVar7;\n  int *piVar8;\n  uint uVar9;\n  int iVar10;\n  ushort **ppuVar11;\n  char *pcVar12;\n  byte *pbVar13;\n  FILE *pFVar14;\n  size_t sVar15;\n  undefined4 uVar16;\n  uint *puVar17;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  undefined4 extraout_ECX_02;\n  byte bVar18;\n  byte *pbVar19;\n  int *piVar20;\n  uint uVar21;\n  uint uVar22;\n  byte *pbVar23;\n  char *pcVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  char *pcVar26;\n  char *pcStack_106c;\n  uint uStack_1068;\n  uint uStack_1060;\n  byte *pbStack_105c;\n  uint uStack_1058;\n  undefined1 auStack_1030 [4];\n  void *pvStack_102c;\n  undefined4 uStack_1028;\n  undefined4 uStack_1024;\n  byte bStack_1020;\n  char acStack_101f [4095];\n  int local_20;\n  undefined4 uStack_14;\n  \n  puVar3 = PTR_stdout_00030fdc;\n  uStack_14 = 0x17c79;\n  piVar20 = (int *)*param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  piVar2 = piVar20 + param_1[2] * 6;\n  pcVar26 = &DAT_00031414;\n  cVar4 = DAT_00031414;\njoined_r0x00017cbb:\n  if (piVar2 <= piVar20) {\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_00025de0();\n    }\n    return iVar6;\n  }\n  if (cVar4 != '\0') {\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    FUN_00015bb0(param_1,piVar20);\n  }\nLAB_00017cfb:\n  piVar8 = (int *)*piVar20;\n  if (piVar8 == (int *)0x0) {\nLAB_00017e6b:\n    uVar5 = 1;\n  }\n  else {\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }\n  uVar16 = DAT_00031400;\n  uVar9 = DAT_000313e4;\n  pbVar23 = DAT_000313e0;\n  if ((int)(char)piVar20[3] == uVar5) goto LAB_00017de0;\n  switch((int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff) {\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto LAB_00017de0;\n  default:\n                    \n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));\n  case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;\n  case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;\n  case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;\n  case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;\n  case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;\n  case 0x2e:\n    goto code_r0x00017f94;\n  case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;\n  case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;\n  case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3f:\n  case 0x58:\n    goto code_r0x00018860;\n  case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n  case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;\n  case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;\n  case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;\n  case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;\n  case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;\n  case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;\n  case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;\n  case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;\n  case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;\n  }\n  if (cVar4 == '\0') goto code_r0x000182c0;\ncode_r0x0001861e:\n  FUN_00016620();\n  cVar4 = *pcVar26;\n  goto code_r0x00017de7;\ncode_r0x00018ba8:\n  if (uVar22 < DAT_000313e4) {\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }\ncode_r0x00018bcb:\n  DAT_000313d0._0_1_ = (undefined1)DAT_000313ec;\n  FUN_00017220();\n  if ((uint)puVar1[2] <= uStack_1058) {\n    bVar18 = *(byte *)(puVar1 + 4);\ncode_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }\n  }\ncode_r0x000188c9:\n  if (*pcVar26 != '\0') {\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }\ncode_r0x000182c0:\n  piVar20 = piVar20 + 6;\njoined_r0x00018523:\n  if (piVar2 <= piVar20) goto LAB_00017e10;\n  goto LAB_00017cfb;\ncode_r0x00018860:\n  piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n  cVar4 = *pcVar26;\n  goto joined_r0x00017cbb;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "ushort **ppuVar11;" (type_identifier "ushort") (pointer_declarator "**ppuVar11" (* "*") (pointer_declarator "*ppuVar11" (* "*") (identifier "ppuVar11"))) (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "FILE *pFVar14;" (type_identifier "FILE") (pointer_declarator "*pFVar14" (* "*") (identifier "pFVar14")) (; ";")) (declaration "size_t sVar15;" (primitive_type "size_t") (identifier "sVar15") (; ";")) (declaration "undefined4 uVar16;" (type_identifier "undefined4") (identifier "uVar16") (; ";")) (declaration "uint *puVar17;" (type_identifier "uint") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "undefined4 extraout_ECX_00;" (type_identifier "undefined4") (identifier "extraout_ECX_00") (; ";")) (declaration "undefined4 extraout_ECX_01;" (type_identifier "undefined4") (identifier "extraout_ECX_01") (; ";")) (declaration "undefined4 extraout_ECX_02;" (type_identifier "undefined4") (identifier "extraout_ECX_02") (; ";")) (declaration "byte bVar18;" (type_identifier "byte") (identifier "bVar18") (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "int *piVar20;" (primitive_type "int") (pointer_declarator "*piVar20" (* "*") (identifier "piVar20")) (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "byte *pbVar23;" (type_identifier "byte") (pointer_declarator "*pbVar23" (* "*") (identifier "pbVar23")) (; ";")) (declaration "char *pcVar24;" (primitive_type "char") (pointer_declarator "*pcVar24" (* "*") (identifier "pcVar24")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "char *pcVar26;" (primitive_type "char") (pointer_declarator "*pcVar26" (* "*") (identifier "pcVar26")) (; ";")) (declaration "char *pcStack_106c;" (primitive_type "char") (pointer_declarator "*pcStack_106c" (* "*") (identifier "pcStack_106c")) (; ";")) (declaration "uint uStack_1068;" (type_identifier "uint") (identifier "uStack_1068") (; ";")) (declaration "uint uStack_1060;" (type_identifier "uint") (identifier "uStack_1060") (; ";")) (declaration "byte *pbStack_105c;" (type_identifier "byte") (pointer_declarator "*pbStack_105c" (* "*") (identifier "pbStack_105c")) (; ";")) (declaration "uint uStack_1058;" (type_identifier "uint") (identifier "uStack_1058") (; ";")) (declaration "undefined1 auStack_1030 [4];" (type_identifier "undefined1") (array_declarator "auStack_1030 [4]" (identifier "auStack_1030") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "void *pvStack_102c;" (primitive_type "void") (pointer_declarator "*pvStack_102c" (* "*") (identifier "pvStack_102c")) (; ";")) (declaration "undefined4 uStack_1028;" (type_identifier "undefined4") (identifier "uStack_1028") (; ";")) (declaration "undefined4 uStack_1024;" (type_identifier "undefined4") (identifier "uStack_1024") (; ";")) (declaration "byte bStack_1020;" (type_identifier "byte") (identifier "bStack_1020") (; ";")) (declaration "char acStack_101f [4095];" (primitive_type "char") (array_declarator "acStack_101f [4095]" (identifier "acStack_101f") ([ "[") (number_literal "4095") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "puVar3 = PTR_stdout_00030fdc;" (assignment_expression "puVar3 = PTR_stdout_00030fdc" (identifier "puVar3") (= "=") (identifier "PTR_stdout_00030fdc")) (; ";")) (expression_statement "uStack_14 = 0x17c79;" (assignment_expression "uStack_14 = 0x17c79" (identifier "uStack_14") (= "=") (number_literal "0x17c79")) (; ";")) (expression_statement "piVar20 = (int *)*param_1;" (assignment_expression "piVar20 = (int *)*param_1" (identifier "piVar20") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (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 "piVar2 = piVar20 + param_1[2] * 6;" (assignment_expression "piVar2 = piVar20 + param_1[2] * 6" (identifier "piVar2") (= "=") (binary_expression "piVar20 + param_1[2] * 6" (identifier "piVar20") (+ "+") (binary_expression "param_1[2] * 6" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (* "*") (number_literal "6")))) (; ";")) (expression_statement "pcVar26 = &DAT_00031414;" (assignment_expression "pcVar26 = &DAT_00031414" (identifier "pcVar26") (= "=") (pointer_expression "&DAT_00031414" (& "&") (identifier "DAT_00031414"))) (; ";")) (expression_statement "cVar4 = DAT_00031414;" (assignment_expression "cVar4 = DAT_00031414" (identifier "cVar4") (= "=") (identifier "DAT_00031414")) (; ";")) (labeled_statement "joined_r0x00017cbb:\n  if (piVar2 <= piVar20) {\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_00025de0();\n    }\n    return iVar6;\n  }" (statement_identifier "joined_r0x00017cbb") (: ":") (if_statement "if (piVar2 <= piVar20) {\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_00025de0();\n    }\n    return iVar6;\n  }" (if "if") (parenthesized_expression "(piVar2 <= piVar20)" (( "(") (binary_expression "piVar2 <= piVar20" (identifier "piVar2") (<= "<=") (identifier "piVar20")) () ")")) (compound_statement "{\n    if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\nLAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }\nLAB_00017f53:\n    iVar6 = -1;\ncode_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_00025de0();\n    }\n    return iVar6;\n  }" ({ "{") (if_statement "if (cVar4 != '\0') {\n      puts("END-OF-CYCLE:");\n    }" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      puts("END-OF-CYCLE:");\n    }" ({ "{") (expression_statement "puts("END-OF-CYCLE:");" (call_expression "puts("END-OF-CYCLE:")" (identifier "puts") (argument_list "("END-OF-CYCLE:")" (( "(") (string_literal ""END-OF-CYCLE:"" (" """) (string_content "END-OF-CYCLE:") (" """)) () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00017e10:\n    if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }" (statement_identifier "LAB_00017e10") (: ":") (if_statement "if (DAT_00031418 == '\0') {\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }" (if "if") (parenthesized_expression "(DAT_00031418 == '\0')" (( "(") (binary_expression "DAT_00031418 == '\0'" (identifier "DAT_00031418") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\ncode_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);\n    }" ({ "{") (labeled_statement "code_r0x00017e26:\n      FUN_000178c0(&DAT_000313f8);" (statement_identifier "code_r0x00017e26") (: ":") (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" (identifier "FUN_000178c0") (argument_list "(&DAT_000313f8)" (( "(") (pointer_expression "&DAT_000313f8" (& "&") (identifier "DAT_000313f8")) () ")"))) (; ";"))) (} "}")))) (labeled_statement "LAB_00017f53:\n    iVar6 = -1;" (statement_identifier "LAB_00017f53") (: ":") (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";"))) (labeled_statement "code_r0x00017f58:\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_00025de0();\n    }" (statement_identifier "code_r0x00017f58") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_00025de0();\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_00025de0();\n    }" ({ "{") (expression_statement "FUN_00025de0();" (call_expression "FUN_00025de0()" (identifier "FUN_00025de0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}")))) (if_statement "if (cVar4 != '\0') {\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    FUN_00015bb0(param_1,piVar20);\n  }" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);\n    FUN_00015bb0(param_1,piVar20);\n  }" ({ "{") (expression_statement "fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);" (call_expression "fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc)" (identifier "fwrite_unlocked") (argument_list "("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc)" (( "(") (string_literal ""COMMAND: "" (" """) (string_content "COMMAND: ") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "9") (, ",") (pointer_expression "*(FILE **)PTR_stdout_00030fdc" (* "*") (cast_expression "(FILE **)PTR_stdout_00030fdc" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stdout_00030fdc"))) () ")"))) (; ";")) (expression_statement "FUN_00015bb0(param_1,piVar20);" (call_expression "FUN_00015bb0(param_1,piVar20)" (identifier "FUN_00015bb0") (argument_list "(param_1,piVar20)" (( "(") (identifier "param_1") (, ",") (identifier "piVar20") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00017cfb:\n  piVar8 = (int *)*piVar20;" (statement_identifier "LAB_00017cfb") (: ":") (expression_statement "piVar8 = (int *)*piVar20;" (assignment_expression "piVar8 = (int *)*piVar20" (identifier "piVar8") (= "=") (cast_expression "(int *)*piVar20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar20" (* "*") (identifier "piVar20")))) (; ";"))) (if_statement "if (piVar8 == (int *)0x0) {\nLAB_00017e6b:\n    uVar5 = 1;\n  }\n  else {\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }" (if "if") (parenthesized_expression "(piVar8 == (int *)0x0)" (( "(") (binary_expression "piVar8 == (int *)0x0" (identifier "piVar8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00017e6b:\n    uVar5 = 1;\n  }" ({ "{") (labeled_statement "LAB_00017e6b:\n    uVar5 = 1;" (statement_identifier "LAB_00017e6b") (: ":") (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";"))) (} "}")) (else_clause "else {\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }" (else "else") (compound_statement "{\n    puVar17 = (uint *)piVar20[1];\n    if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n  }" ({ "{") (expression_statement "puVar17 = (uint *)piVar20[1];" (assignment_expression "puVar17 = (uint *)piVar20[1]" (identifier "puVar17") (= "=") (cast_expression "(uint *)piVar20[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar20[1]" (identifier "piVar20") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (piVar20[2] == 1) {\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }\n    else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" (if "if") (parenthesized_expression "(piVar20[2] == 1)" (( "(") (binary_expression "piVar20[2] == 1" (subscript_expression "piVar20[2]" (identifier "piVar20") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      if (*puVar17 != 2) goto LAB_00017e56;\n      uVar5 = *(uint *)(param_2 + 8);\n      uVar9 = puVar17[1];\n      if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }\n      uVar5 = (uint)(uVar5 <= uVar9);\n    }" ({ "{") (if_statement "if (*puVar17 != 2) goto LAB_00017e56;" (if "if") (parenthesized_expression "(*puVar17 != 2)" (( "(") (binary_expression "*puVar17 != 2" (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_00017e56;" (goto "goto") (statement_identifier "LAB_00017e56") (; ";"))) (expression_statement "uVar5 = *(uint *)(param_2 + 8);" (assignment_expression "uVar5 = *(uint *)(param_2 + 8)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(param_2 + 8)" (* "*") (cast_expression "(uint *)(param_2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar9 = puVar17[1];" (assignment_expression "uVar9 = puVar17[1]" (identifier "uVar9") (= "=") (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (uVar9 <= uVar5) {\n        piVar20[2] = 2;\n      }" (if "if") (parenthesized_expression "(uVar9 <= uVar5)" (( "(") (binary_expression "uVar9 <= uVar5" (identifier "uVar9") (<= "<=") (identifier "uVar5")) () ")")) (compound_statement "{\n        piVar20[2] = 2;\n      }" ({ "{") (expression_statement "piVar20[2] = 2;" (assignment_expression "piVar20[2] = 2" (subscript_expression "piVar20[2]" (identifier "piVar20") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "2")) (; ";")) (} "}"))) (expression_statement "uVar5 = (uint)(uVar5 <= uVar9);" (assignment_expression "uVar5 = (uint)(uVar5 <= uVar9)" (identifier "uVar5") (= "=") (call_expression "(uint)(uVar5 <= uVar9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar5 <= uVar9)" (( "(") (binary_expression "uVar5 <= uVar9" (identifier "uVar5") (<= "<=") (identifier "uVar9")) () ")")))) (; ";")) (} "}")) (else_clause "else if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" (else "else") (if_statement "if (puVar17 == (uint *)0x0) {\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }\n    else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" (if "if") (parenthesized_expression "(puVar17 == (uint *)0x0)" (( "(") (binary_expression "puVar17 == (uint *)0x0" (identifier "puVar17") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" ({ "{") (expression_statement "uVar5 = FUN_00017130();" (assignment_expression "uVar5 = FUN_00017130()" (identifier "uVar5") (= "=") (call_expression "FUN_00017130()" (identifier "FUN_00017130") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar5 = uVar5 & 0xff;" (assignment_expression "uVar5 = uVar5 & 0xff" (identifier "uVar5") (= "=") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff"))) (; ";")) (} "}")) (else_clause "else if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" (else "else") (if_statement "if (*piVar8 == 2) {\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }\n    else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" (if "if") (parenthesized_expression "(*piVar8 == 2)" (( "(") (binary_expression "*piVar8 == 2" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }\n    }" ({ "{") (if_statement "if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {\nLAB_00017ef0:\n        uVar5 = 0;\n      }\n      else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }" (if "if") (parenthesized_expression "((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1]))" (( "(") (binary_expression "(piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])" (parenthesized_expression "(piVar20[2] == 2)" (( "(") (binary_expression "piVar20[2] == 2" (subscript_expression "piVar20[2]" (identifier "piVar20") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(*(uint *)(param_2 + 8) < (uint)piVar8[1])" (( "(") (binary_expression "*(uint *)(param_2 + 8) < (uint)piVar8[1]" (pointer_expression "*(uint *)(param_2 + 8)" (* "*") (cast_expression "(uint *)(param_2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (< "<") (cast_expression "(uint)piVar8[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")))) () ")"))) () ")")) (compound_statement "{\nLAB_00017ef0:\n        uVar5 = 0;\n      }" ({ "{") (labeled_statement "LAB_00017ef0:\n        uVar5 = 0;" (statement_identifier "LAB_00017ef0") (: ":") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }" (else "else") (compound_statement "{\n        uVar9 = *puVar17;\n        piVar20[2] = 1;\n        bVar25 = uVar9 == 2;\n        if (bVar25) goto LAB_00017ec1;\nLAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }\n      }" ({ "{") (expression_statement "uVar9 = *puVar17;" (assignment_expression "uVar9 = *puVar17" (identifier "uVar9") (= "=") (pointer_expression "*puVar17" (* "*") (identifier "puVar17"))) (; ";")) (expression_statement "piVar20[2] = 1;" (assignment_expression "piVar20[2] = 1" (subscript_expression "piVar20[2]" (identifier "piVar20") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "bVar25 = uVar9 == 2;" (assignment_expression "bVar25 = uVar9 == 2" (identifier "bVar25") (= "=") (binary_expression "uVar9 == 2" (identifier "uVar9") (== "==") (number_literal "2"))) (; ";")) (if_statement "if (bVar25) goto LAB_00017ec1;" (if "if") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (goto_statement "goto LAB_00017ec1;" (goto "goto") (statement_identifier "LAB_00017ec1") (; ";"))) (labeled_statement "LAB_00017d50:\n        if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" (statement_identifier "LAB_00017d50") (: ":") (if_statement "if (uVar9 < 2 || bVar25) {\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }\n        else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" (if "if") (parenthesized_expression "(uVar9 < 2 || bVar25)" (( "(") (binary_expression "uVar9 < 2 || bVar25" (binary_expression "uVar9 < 2" (identifier "uVar9") (< "<") (number_literal "2")) (|| "||") (identifier "bVar25")) () ")")) (compound_statement "{\n          uVar5 = 1;\n          if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }\n        }" ({ "{") (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar9 != 1) {\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }" (if "if") (parenthesized_expression "(uVar9 != 1)" (( "(") (binary_expression "uVar9 != 1" (identifier "uVar9") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\nLAB_00017e56:\n            cVar4 = FUN_00017130();\n            if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }\n            goto LAB_00017e6b;\n          }" ({ "{") (labeled_statement "LAB_00017e56:\n            cVar4 = FUN_00017130();" (statement_identifier "LAB_00017e56") (: ":") (expression_statement "cVar4 = FUN_00017130();" (assignment_expression "cVar4 = FUN_00017130()" (identifier "cVar4") (= "=") (call_expression "FUN_00017130()" (identifier "FUN_00017130") (argument_list "()" (( "(") () ")")))) (; ";"))) (if_statement "if (cVar4 != '\0') {\n              piVar20[2] = 2;\n            }" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              piVar20[2] = 2;\n            }" ({ "{") (expression_statement "piVar20[2] = 2;" (assignment_expression "piVar20[2] = 2" (subscript_expression "piVar20[2]" (identifier "piVar20") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "2")) (; ";")) (} "}"))) (goto_statement "goto LAB_00017e6b;" (goto "goto") (statement_identifier "LAB_00017e6b") (; ";")) (} "}"))) (} "}")) (else_clause "else if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" (else "else") (if_statement "if (uVar9 == 4) {\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }\n        else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" (if "if") (parenthesized_expression "(uVar9 == 4)" (( "(") (binary_expression "uVar9 == 4" (identifier "uVar9") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);\n          uVar5 = 1;\n        }" ({ "{") (expression_statement "puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);" (assignment_expression "puVar17[1] = puVar17[2] + *(int *)(param_2 + 8)" (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "puVar17[2] + *(int *)(param_2 + 8)" (subscript_expression "puVar17[2]" (identifier "puVar17") ([ "[") (number_literal "2") (] "]")) (+ "+") (pointer_expression "*(int *)(param_2 + 8)" (* "*") (cast_expression "(int *)(param_2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))))) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" (else "else") (compound_statement "{\n          if (uVar9 != 5) goto LAB_00017e56;\n          uVar5 = 1;\n          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];\n        }" ({ "{") (if_statement "if (uVar9 != 5) goto LAB_00017e56;" (if "if") (parenthesized_expression "(uVar9 != 5)" (( "(") (binary_expression "uVar9 != 5" (identifier "uVar9") (!= "!=") (number_literal "5")) () ")")) (goto_statement "goto LAB_00017e56;" (goto "goto") (statement_identifier "LAB_00017e56") (; ";"))) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];" (assignment_expression "puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2]" (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2]" (parenthesized_expression "(*(uint *)(param_2 + 8) + puVar17[2])" (( "(") (binary_expression "*(uint *)(param_2 + 8) + puVar17[2]" (pointer_expression "*(uint *)(param_2 + 8)" (* "*") (cast_expression "(uint *)(param_2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (+ "+") (subscript_expression "puVar17[2]" (identifier "puVar17") ([ "[") (number_literal "2") (] "]"))) () ")")) (- "-") (binary_expression "*(uint *)(param_2 + 8) % puVar17[2]" (pointer_expression "*(uint *)(param_2 + 8)" (* "*") (cast_expression "(uint *)(param_2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")")))) (% "%") (subscript_expression "puVar17[2]" (identifier "puVar17") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}"))))))) (} "}")))) (} "}")) (else_clause "else {\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" (else "else") (compound_statement "{\n      cVar4 = FUN_00017130();\n      if (cVar4 == '\0') goto LAB_00017ef0;\n      puVar17 = (uint *)piVar20[1];\n      piVar20[2] = 1;\n      uVar9 = *puVar17;\n      bVar25 = uVar9 == 2;\n      if (!bVar25) goto LAB_00017d50;\nLAB_00017ec1:\n      uVar5 = puVar17[1];\n      uVar9 = *(uint *)(param_2 + 8);\n      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;\n      uVar5 = FUN_00017130();\n      uVar5 = uVar5 & 0xff;\n    }" ({ "{") (expression_statement "cVar4 = FUN_00017130();" (assignment_expression "cVar4 = FUN_00017130()" (identifier "cVar4") (= "=") (call_expression "FUN_00017130()" (identifier "FUN_00017130") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar4 == '\0') goto LAB_00017ef0;" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00017ef0;" (goto "goto") (statement_identifier "LAB_00017ef0") (; ";"))) (expression_statement "puVar17 = (uint *)piVar20[1];" (assignment_expression "puVar17 = (uint *)piVar20[1]" (identifier "puVar17") (= "=") (cast_expression "(uint *)piVar20[1]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar20[1]" (identifier "piVar20") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "piVar20[2] = 1;" (assignment_expression "piVar20[2] = 1" (subscript_expression "piVar20[2]" (identifier "piVar20") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar9 = *puVar17;" (assignment_expression "uVar9 = *puVar17" (identifier "uVar9") (= "=") (pointer_expression "*puVar17" (* "*") (identifier "puVar17"))) (; ";")) (expression_statement "bVar25 = uVar9 == 2;" (assignment_expression "bVar25 = uVar9 == 2" (identifier "bVar25") (= "=") (binary_expression "uVar9 == 2" (identifier "uVar9") (== "==") (number_literal "2"))) (; ";")) (if_statement "if (!bVar25) goto LAB_00017d50;" (if "if") (parenthesized_expression "(!bVar25)" (( "(") (unary_expression "!bVar25" (! "!") (identifier "bVar25")) () ")")) (goto_statement "goto LAB_00017d50;" (goto "goto") (statement_identifier "LAB_00017d50") (; ";"))) (labeled_statement "LAB_00017ec1:\n      uVar5 = puVar17[1];" (statement_identifier "LAB_00017ec1") (: ":") (expression_statement "uVar5 = puVar17[1];" (assignment_expression "uVar5 = puVar17[1]" (identifier "uVar5") (= "=") (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (expression_statement "uVar9 = *(uint *)(param_2 + 8);" (assignment_expression "uVar9 = *(uint *)(param_2 + 8)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)(param_2 + 8)" (* "*") (cast_expression "(uint *)(param_2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;" (if "if") (parenthesized_expression "((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5))" (( "(") (binary_expression "(uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)" (parenthesized_expression "(uVar9 < uVar5)" (( "(") (binary_expression "uVar9 < uVar5" (identifier "uVar9") (< "<") (identifier "uVar5")) () ")")) (|| "||") (parenthesized_expression "(piVar20[2] = 2, uVar9 == uVar5)" (( "(") (comma_expression "piVar20[2] = 2, uVar9 == uVar5" (assignment_expression "piVar20[2] = 2" (subscript_expression "piVar20[2]" (identifier "piVar20") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "2")) (, ",") (binary_expression "uVar9 == uVar5" (identifier "uVar9") (== "==") (identifier "uVar5"))) () ")"))) () ")")) (goto_statement "goto LAB_00017e6b;" (goto "goto") (statement_identifier "LAB_00017e6b") (; ";"))) (expression_statement "uVar5 = FUN_00017130();" (assignment_expression "uVar5 = FUN_00017130()" (identifier "uVar5") (= "=") (call_expression "FUN_00017130()" (identifier "FUN_00017130") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar5 = uVar5 & 0xff;" (assignment_expression "uVar5 = uVar5 & 0xff" (identifier "uVar5") (= "=") (binary_expression "uVar5 & 0xff" (identifier "uVar5") (& "&") (number_literal "0xff"))) (; ";")) (} "}")))))))) (} "}")))) (expression_statement "uVar16 = DAT_00031400;" (assignment_expression "uVar16 = DAT_00031400" (identifier "uVar16") (= "=") (identifier "DAT_00031400")) (; ";")) (expression_statement "uVar9 = DAT_000313e4;" (assignment_expression "uVar9 = DAT_000313e4" (identifier "uVar9") (= "=") (identifier "DAT_000313e4")) (; ";")) (expression_statement "pbVar23 = DAT_000313e0;" (assignment_expression "pbVar23 = DAT_000313e0" (identifier "pbVar23") (= "=") (identifier "DAT_000313e0")) (; ";")) (if_statement "if ((int)(char)piVar20[3] == uVar5) goto LAB_00017de0;" (if "if") (parenthesized_expression "((int)(char)piVar20[3] == uVar5)" (( "(") (binary_expression "(int)(char)piVar20[3] == uVar5" (cast_expression "(int)(char)piVar20[3]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)piVar20[3]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar20[3]" (identifier "piVar20") ([ "[") (number_literal "3") (] "]")))) (== "==") (identifier "uVar5")) () ")")) (goto_statement "goto LAB_00017de0;" (goto "goto") (statement_identifier "LAB_00017de0") (; ";"))) (switch_statement "switch((int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff) {\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto LAB_00017de0;\n  default:\n                    \n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));\n  case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;\n  case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;\n  case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;\n  case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;\n  case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;\n  case 0x2e:\n    goto code_r0x00017f94;\n  case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;\n  case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;\n  case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3f:\n  case 0x58:\n    goto code_r0x00018860;\n  case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n  case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;\n  case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;\n  case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;\n  case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;\n  case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;\n  case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;\n  case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;\n  case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;\n  case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;\n  }" (switch "switch") (parenthesized_expression "((int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff)" (( "(") (binary_expression "(int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff" (binary_expression "(int)*(char *)((int)piVar20 + 0xd) - 0x23U" (cast_expression "(int)*(char *)((int)piVar20 + 0xd)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)((int)piVar20 + 0xd)" (* "*") (cast_expression "(char *)((int)piVar20 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar20 + 0xd)" (( "(") (binary_expression "(int)piVar20 + 0xd" (cast_expression "(int)piVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar20")) (+ "+") (number_literal "0xd")) () ")"))))) (- "-") (number_literal "0x23U")) (& "&") (number_literal "0xff")) () ")")) (compound_statement "{\n  case 0:\n  case 0x17:\n  case 0x5a:\n    goto LAB_00017de0;\n  default:\n                    \n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));\n  case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;\n  case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;\n  case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;\n  case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;\n  case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;\n  case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;\n  case 0x2e:\n    goto code_r0x00017f94;\n  case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;\n  case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;\n  case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x3f:\n  case 0x58:\n    goto code_r0x00018860;\n  case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n  case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;\n  case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;\n  case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;\n  case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;\n  case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;\n  case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;\n  case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;\n  case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;\n  case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;\n  case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;\n  case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;\n  case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;\n  case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;\n  }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 0x17:" (case "case") (number_literal "0x17") (: ":")) (case_statement "case 0x5a:\n    goto LAB_00017de0;" (case "case") (number_literal "0x5a") (: ":") (goto_statement "goto LAB_00017de0;" (goto "goto") (statement_identifier "LAB_00017de0") (; ";"))) (case_statement "default:\n                    \n    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));" (default "default") (: ":") (expression_statement "FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));" (call_expression "FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd))" (identifier "FUN_0001a340") (argument_list "("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd))" (( "(") (string_literal ""INTERNAL ERROR: Bad cmd %c"" (" """) (string_content "INTERNAL ERROR: Bad cmd %c") (" """)) (, ",") (cast_expression "(int)*(char *)((int)piVar20 + 0xd)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)((int)piVar20 + 0xd)" (* "*") (cast_expression "(char *)((int)piVar20 + 0xd)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar20 + 0xd)" (( "(") (binary_expression "(int)piVar20 + 0xd" (cast_expression "(int)piVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar20")) (+ "+") (number_literal "0xd")) () ")"))))) () ")"))) (; ";"))) (case_statement "case 0x1a:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb0;\n    uVar16 = *(undefined4 *)(param_2 + 8);\n    goto code_r0x00018a05;" (case "case") (number_literal "0x1a") (: ":") (if_statement "if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" (if "if") (parenthesized_expression "(DAT_000313fc != '\0')" (( "(") (binary_expression "DAT_000313fc != '\0'" (identifier "DAT_000313fc") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" ({ "{") (expression_statement "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);" (call_expression "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400)" (identifier "FUN_0001a640") (argument_list "(&DAT_00031240,1,1,DAT_00031400)" (( "(") (pointer_expression "&DAT_00031240" (& "&") (identifier "DAT_00031240")) (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (identifier "DAT_00031400") () ")"))) (; ";")) (expression_statement "DAT_000313fc = '\0';" (assignment_expression "DAT_000313fc = '\0'" (identifier "DAT_000313fc") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (expression_statement "puVar7 = &UNK_00026fb0;" (assignment_expression "puVar7 = &UNK_00026fb0" (identifier "puVar7") (= "=") (pointer_expression "&UNK_00026fb0" (& "&") (identifier "UNK_00026fb0"))) (; ";")) (expression_statement "uVar16 = *(undefined4 *)(param_2 + 8);" (assignment_expression "uVar16 = *(undefined4 *)(param_2 + 8)" (identifier "uVar16") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 8)" (* "*") (cast_expression "(undefined4 *)(param_2 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (goto_statement "goto code_r0x00018a05;" (goto "goto") (statement_identifier "code_r0x00018a05") (; ";"))) (case_statement "case 0x21:\n    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    if (iVar6 == 0) goto LAB_00017f53;\n    DAT_000313e0 = (byte *)(iVar6 + 1);\n    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);\n    piVar20 = (int *)*param_1;\n    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);\n    if (*pcVar26 == '\0') goto joined_r0x00018523;\n    FUN_00016620();\n    cVar4 = *pcVar26;\n    goto joined_r0x00017cbb;" (case "case") (number_literal "0x21") (: ":") (expression_statement "iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);" (assignment_expression "iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" (identifier "iVar6") (= "=") (call_expression "FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" (identifier "FUN_00025210") (argument_list "(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" (( "(") (identifier "DAT_000313e0") (, ",") (cast_expression "(int)(char)DAT_00031240" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)DAT_00031240" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "DAT_00031240"))) (, ",") (identifier "DAT_000313e4") () ")")))) (; ";")) (if_statement "if (iVar6 == 0) goto LAB_00017f53;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017f53;" (goto "goto") (statement_identifier "LAB_00017f53") (; ";"))) (expression_statement "DAT_000313e0 = (byte *)(iVar6 + 1);" (assignment_expression "DAT_000313e0 = (byte *)(iVar6 + 1)" (identifier "DAT_000313e0") (= "=") (cast_expression "(byte *)(iVar6 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 1)" (( "(") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);" (assignment_expression "DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23)" (identifier "DAT_000313e8") (= "=") (binary_expression "DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23)" (identifier "DAT_000313e8") (- "-") (parenthesized_expression "((int)DAT_000313e0 - (int)pbVar23)" (( "(") (binary_expression "(int)DAT_000313e0 - (int)pbVar23" (cast_expression "(int)DAT_000313e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_000313e0")) (- "-") (cast_expression "(int)pbVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar23"))) () ")")))) (; ";")) (expression_statement "piVar20 = (int *)*param_1;" (assignment_expression "piVar20 = (int *)*param_1" (identifier "piVar20") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);" (assignment_expression "DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23)" (identifier "DAT_000313e4") (= "=") (binary_expression "uVar9 - ((int)DAT_000313e0 - (int)pbVar23)" (identifier "uVar9") (- "-") (parenthesized_expression "((int)DAT_000313e0 - (int)pbVar23)" (( "(") (binary_expression "(int)DAT_000313e0 - (int)pbVar23" (cast_expression "(int)DAT_000313e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_000313e0")) (- "-") (cast_expression "(int)pbVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar23"))) () ")")))) (; ";")) (if_statement "if (*pcVar26 == '\0') goto joined_r0x00018523;" (if "if") (parenthesized_expression "(*pcVar26 == '\0')" (( "(") (binary_expression "*pcVar26 == '\0'" (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto joined_r0x00018523;" (goto "goto") (statement_identifier "joined_r0x00018523") (; ";"))) (expression_statement "FUN_00016620();" (call_expression "FUN_00016620()" (identifier "FUN_00016620") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" (identifier "cVar4") (= "=") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26"))) (; ";")) (goto_statement "goto joined_r0x00017cbb;" (goto "goto") (statement_identifier "joined_r0x00017cbb") (; ";"))) (case_statement "case 0x23:\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    puVar7 = &UNK_00026fb6;\n    uVar16 = *(undefined4 *)(param_2 + 0x18);\ncode_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);\n    if (DAT_00031419 == '\0') goto LAB_00017de0;\n    FUN_0001a7e0(DAT_00031400);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" (case "case") (number_literal "0x23") (: ":") (if_statement "if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" (if "if") (parenthesized_expression "(DAT_000313fc != '\0')" (( "(") (binary_expression "DAT_000313fc != '\0'" (identifier "DAT_000313fc") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" ({ "{") (expression_statement "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);" (call_expression "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400)" (identifier "FUN_0001a640") (argument_list "(&DAT_00031240,1,1,DAT_00031400)" (( "(") (pointer_expression "&DAT_00031240" (& "&") (identifier "DAT_00031240")) (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (identifier "DAT_00031400") () ")"))) (; ";")) (expression_statement "DAT_000313fc = '\0';" (assignment_expression "DAT_000313fc = '\0'" (identifier "DAT_000313fc") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (expression_statement "puVar7 = &UNK_00026fb6;" (assignment_expression "puVar7 = &UNK_00026fb6" (identifier "puVar7") (= "=") (pointer_expression "&UNK_00026fb6" (& "&") (identifier "UNK_00026fb6"))) (; ";")) (expression_statement "uVar16 = *(undefined4 *)(param_2 + 0x18);" (assignment_expression "uVar16 = *(undefined4 *)(param_2 + 0x18)" (identifier "uVar16") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (labeled_statement "code_r0x00018a05:\n    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);" (statement_identifier "code_r0x00018a05") (: ":") (expression_statement "__fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);" (call_expression "__fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240)" (identifier "__fprintf_chk") (argument_list "(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240)" (( "(") (identifier "DAT_00031400") (, ",") (number_literal "1") (, ",") (identifier "puVar7") (, ",") (identifier "uVar16") (, ",") (cast_expression "(int)(char)DAT_00031240" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)DAT_00031240" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "DAT_00031240"))) () ")"))) (; ";"))) (if_statement "if (DAT_00031419 == '\0') goto LAB_00017de0;" (if "if") (parenthesized_expression "(DAT_00031419 == '\0')" (( "(") (binary_expression "DAT_00031419 == '\0'" (identifier "DAT_00031419") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00017de0;" (goto "goto") (statement_identifier "LAB_00017de0") (; ";"))) (expression_statement "FUN_0001a7e0(DAT_00031400);" (call_expression "FUN_0001a7e0(DAT_00031400)" (identifier "FUN_0001a7e0") (argument_list "(DAT_00031400)" (( "(") (identifier "DAT_00031400") () ")"))) (; ";")) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" (identifier "cVar4") (= "=") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26"))) (; ";")) (goto_statement "goto code_r0x00017de7;" (goto "goto") (statement_identifier "code_r0x00017de7") (; ";"))) (case_statement "case 0x24:\n    FUN_000172d0();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    goto code_r0x00017dd0;" (case "case") (number_literal "0x24") (: ":") (expression_statement "FUN_000172d0();" (call_expression "FUN_000172d0()" (identifier "FUN_000172d0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*pcVar26 == '\0') goto code_r0x000182c0;" (if "if") (parenthesized_expression "(*pcVar26 == '\0')" (( "(") (binary_expression "*pcVar26 == '\0'" (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x000182c0;" (goto "goto") (statement_identifier "code_r0x000182c0") (; ";"))) (goto_statement "goto code_r0x00017dd0;" (goto "goto") (statement_identifier "code_r0x00017dd0") (; ";"))) (case_statement "case 0x25:\n    FUN_000172d0();\n    cVar4 = *pcVar26;\n    break;" (case "case") (number_literal "0x25") (: ":") (expression_statement "FUN_000172d0();" (call_expression "FUN_000172d0()" (identifier "FUN_000172d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" (identifier "cVar4") (= "=") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x2b:\n    FUN_00016f30();\n    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;\n    if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }\n    DAT_000313e4 = DAT_000313e4 - 1;\n    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;\n    goto code_r0x00017e26;" (case "case") (number_literal "0x2b") (: ":") (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" (identifier "FUN_00016f30") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;" (if "if") (parenthesized_expression "(((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0'))" (( "(") (binary_expression "((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&\n       (cVar4 = FUN_00017b40(), cVar4 != '\0')" (parenthesized_expression "((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0'))" (( "(") (binary_expression "(DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')" (parenthesized_expression "(DAT_00031390 != 0)" (( "(") (binary_expression "DAT_00031390 != 0" (identifier "DAT_00031390") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(cVar4 = FUN_00017090(), cVar4 == '\0')" (( "(") (comma_expression "cVar4 = FUN_00017090(), cVar4 == '\0'" (assignment_expression "cVar4 = FUN_00017090()" (identifier "cVar4") (= "=") (call_expression "FUN_00017090()" (identifier "FUN_00017090") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(cVar4 = FUN_00017b40(), cVar4 != '\0')" (( "(") (comma_expression "cVar4 = FUN_00017b40(), cVar4 != '\0'" (assignment_expression "cVar4 = FUN_00017b40()" (identifier "cVar4") (= "=") (call_expression "FUN_00017b40()" (identifier "FUN_00017b40") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (goto_statement "goto code_r0x000188c9;" (goto "goto") (statement_identifier "code_r0x000188c9") (; ";"))) (if_statement "if (*pcVar26 != '\0') {\n      puts("END-OF-CYCLE:");\n    }" (if "if") (parenthesized_expression "(*pcVar26 != '\0')" (( "(") (binary_expression "*pcVar26 != '\0'" (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      puts("END-OF-CYCLE:");\n    }" ({ "{") (expression_statement "puts("END-OF-CYCLE:");" (call_expression "puts("END-OF-CYCLE:")" (identifier "puts") (argument_list "("END-OF-CYCLE:")" (( "(") (string_literal ""END-OF-CYCLE:"" (" """) (string_content "END-OF-CYCLE:") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_000313e4 = DAT_000313e4 - 1;" (assignment_expression "DAT_000313e4 = DAT_000313e4 - 1" (identifier "DAT_000313e4") (= "=") (binary_expression "DAT_000313e4 - 1" (identifier "DAT_000313e4") (- "-") (number_literal "1"))) (; ";")) (if_statement "if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;" (if "if") (parenthesized_expression "((DAT_000316e0 != 0) || (DAT_00031418 != '\0'))" (( "(") (binary_expression "(DAT_000316e0 != 0) || (DAT_00031418 != '\0')" (parenthesized_expression "(DAT_000316e0 != 0)" (( "(") (binary_expression "DAT_000316e0 != 0" (identifier "DAT_000316e0") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(DAT_00031418 != '\0')" (( "(") (binary_expression "DAT_00031418 != '\0'" (identifier "DAT_00031418") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_00017f53;" (goto "goto") (statement_identifier "LAB_00017f53") (; ";"))) (goto_statement "goto code_r0x00017e26;" (goto "goto") (statement_identifier "code_r0x00017e26") (; ";"))) (case_statement "case 0x2d:\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\n    puVar7 = &DAT_000313f8;\n    goto code_r0x0001881e;" (case "case") (number_literal "0x2d") (: ":") (expression_statement "FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);" (call_expression "FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" (identifier "FUN_00025210") (argument_list "(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" (( "(") (identifier "DAT_000313e0") (, ",") (cast_expression "(int)(char)DAT_00031240" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)DAT_00031240" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "DAT_00031240"))) (, ",") (identifier "DAT_000313e4") () ")"))) (; ";")) (expression_statement "puVar7 = &DAT_000313f8;" (assignment_expression "puVar7 = &DAT_000313f8" (identifier "puVar7") (= "=") (pointer_expression "&DAT_000313f8" (& "&") (identifier "DAT_000313f8"))) (; ";")) (goto_statement "goto code_r0x0001881e;" (goto "goto") (statement_identifier "code_r0x0001881e") (; ";"))) (case_statement "case 0x2e:\n    goto code_r0x00017f94;" (case "case") (number_literal "0x2e") (: ":") (goto_statement "goto code_r0x00017f94;" (goto "goto") (statement_identifier "code_r0x00017f94") (; ";"))) (case_statement "case 0x2f:\n    pbVar23 = *(byte **)(piVar20[4] + 8);\n    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }\n    goto LAB_00017de0;" (case "case") (number_literal "0x2f") (: ":") (expression_statement "pbVar23 = *(byte **)(piVar20[4] + 8);" (assignment_expression "pbVar23 = *(byte **)(piVar20[4] + 8)" (identifier "pbVar23") (= "=") (pointer_expression "*(byte **)(piVar20[4] + 8)" (* "*") (cast_expression "(byte **)(piVar20[4] + 8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar20[4] + 8)" (( "(") (binary_expression "piVar20[4] + 8" (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }" (if "if") (parenthesized_expression "((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0))" (( "(") (binary_expression "(pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)" (parenthesized_expression "(pbVar23 != (byte *)0x0)" (( "(") (binary_expression "pbVar23 != (byte *)0x0" (identifier "pbVar23") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "((*pbVar23 & 0x10) == 0)" (( "(") (binary_expression "(*pbVar23 & 0x10) == 0" (parenthesized_expression "(*pbVar23 & 0x10)" (( "(") (binary_expression "*pbVar23 & 0x10" (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      pvStack_102c = (void *)0x0;\n      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);\n      if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }\n    }" ({ "{") (expression_statement "pvStack_102c = (void *)0x0;" (assignment_expression "pvStack_102c = (void *)0x0" (identifier "pvStack_102c") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);" (assignment_expression "iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23)" (identifier "iVar6") (= "=") (call_expression "FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23)" (identifier "FUN_0001a760") (argument_list "(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23)" (( "(") (pointer_expression "&pvStack_102c" (& "&") (identifier "pvStack_102c")) (, ",") (identifier "auStack_1030") (, ",") (cast_expression "(int)(char)DAT_00031240" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)DAT_00031240" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "DAT_00031240"))) (, ",") (identifier "pbVar23") () ")")))) (; ";")) (if_statement "if (iVar6 == -1) {\n        free(pvStack_102c);\n      }\n      else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }" (if "if") (parenthesized_expression "(iVar6 == -1)" (( "(") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        free(pvStack_102c);\n      }" ({ "{") (expression_statement "free(pvStack_102c);" (call_expression "free(pvStack_102c)" (identifier "free") (argument_list "(pvStack_102c)" (( "(") (identifier "pvStack_102c") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }" (else "else") (compound_statement "{\n        iVar10 = FUN_00016790();\n        *(undefined1 *)(iVar10 + 0x10) = 1;\n        *(void **)(iVar10 + 4) = pvStack_102c;\n        *(int *)(iVar10 + 8) = iVar6;\n      }" ({ "{") (expression_statement "iVar10 = FUN_00016790();" (assignment_expression "iVar10 = FUN_00016790()" (identifier "iVar10") (= "=") (call_expression "FUN_00016790()" (identifier "FUN_00016790") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined1 *)(iVar10 + 0x10) = 1;" (assignment_expression "*(undefined1 *)(iVar10 + 0x10) = 1" (pointer_expression "*(undefined1 *)(iVar10 + 0x10)" (* "*") (cast_expression "(undefined1 *)(iVar10 + 0x10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(void **)(iVar10 + 4) = pvStack_102c;" (assignment_expression "*(void **)(iVar10 + 4) = pvStack_102c" (pointer_expression "*(void **)(iVar10 + 4)" (* "*") (cast_expression "(void **)(iVar10 + 4)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar10 + 4)" (( "(") (binary_expression "iVar10 + 4" (identifier "iVar10") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "pvStack_102c")) (; ";")) (expression_statement "*(int *)(iVar10 + 8) = iVar6;" (assignment_expression "*(int *)(iVar10 + 8) = iVar6" (pointer_expression "*(int *)(iVar10 + 8)" (* "*") (cast_expression "(int *)(iVar10 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 8)" (( "(") (binary_expression "iVar10 + 8" (identifier "iVar10") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (} "}")))) (} "}"))) (goto_statement "goto LAB_00017de0;" (goto "goto") (statement_identifier "LAB_00017de0") (; ";"))) (case_statement "case 0x31:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00018263;\n    DAT_00031408 = '\0';\n    goto code_r0x00017de7;" (case "case") (number_literal "0x31") (: ":") (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" (identifier "cVar4") (= "=") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26"))) (; ";")) (if_statement "if (DAT_00031408 == '\0') goto code_r0x00018263;" (if "if") (parenthesized_expression "(DAT_00031408 == '\0')" (( "(") (binary_expression "DAT_00031408 == '\0'" (identifier "DAT_00031408") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00018263;" (goto "goto") (statement_identifier "code_r0x00018263") (; ";"))) (expression_statement "DAT_00031408 = '\0';" (assignment_expression "DAT_00031408 = '\0'" (identifier "DAT_00031408") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (goto_statement "goto code_r0x00017de7;" (goto "goto") (statement_identifier "code_r0x00017de7") (; ";"))) (case_statement "case 0x34:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\n    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);\ncode_r0x0001881e:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" (case "case") (number_literal "0x34") (: ":") (expression_statement "puVar7 = (undefined *)piVar20[4];" (assignment_expression "puVar7 = (undefined *)piVar20[4]" (identifier "puVar7") (= "=") (cast_expression "(undefined *)piVar20[4]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;" (if "if") (parenthesized_expression "(*(int *)(puVar7 + 8) == 0)" (( "(") (binary_expression "*(int *)(puVar7 + 8) == 0" (pointer_expression "*(int *)(puVar7 + 8)" (* "*") (cast_expression "(int *)(puVar7 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 8)" (( "(") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017de0;" (goto "goto") (statement_identifier "LAB_00017de0") (; ";"))) (expression_statement "FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);" (call_expression "FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" (identifier "FUN_00025210") (argument_list "(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4)" (( "(") (identifier "DAT_000313e0") (, ",") (cast_expression "(int)(char)DAT_00031240" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)DAT_00031240" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "DAT_00031240"))) (, ",") (identifier "DAT_000313e4") () ")"))) (; ";")) (labeled_statement "code_r0x0001881e:\n    FUN_000178c0(puVar7);" (statement_identifier "code_r0x0001881e") (: ":") (expression_statement "FUN_000178c0(puVar7);" (call_expression "FUN_000178c0(puVar7)" (identifier "FUN_000178c0") (argument_list "(puVar7)" (( "(") (identifier "puVar7") () ")"))) (; ";"))) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" (identifier "cVar4") (= "=") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26"))) (; ";")) (goto_statement "goto code_r0x00017de7;" (goto "goto") (statement_identifier "code_r0x00017de7") (; ";"))) (case_statement "case 0x3e:\n    iVar6 = FUN_00016790();\n    *(int *)(iVar6 + 4) = piVar20[4];\n    *(int *)(iVar6 + 8) = piVar20[5];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" (case "case") (number_literal "0x3e") (: ":") (expression_statement "iVar6 = FUN_00016790();" (assignment_expression "iVar6 = FUN_00016790()" (identifier "iVar6") (= "=") (call_expression "FUN_00016790()" (identifier "FUN_00016790") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(int *)(iVar6 + 4) = piVar20[4];" (assignment_expression "*(int *)(iVar6 + 4) = piVar20[4]" (pointer_expression "*(int *)(iVar6 + 4)" (* "*") (cast_expression "(int *)(iVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*(int *)(iVar6 + 8) = piVar20[5];" (assignment_expression "*(int *)(iVar6 + 8) = piVar20[5]" (pointer_expression "*(int *)(iVar6 + 8)" (* "*") (cast_expression "(int *)(iVar6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")")))) (= "=") (subscript_expression "piVar20[5]" (identifier "piVar20") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" (identifier "cVar4") (= "=") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26"))) (; ";")) (goto_statement "goto code_r0x00017de7;" (goto "goto") (statement_identifier "code_r0x00017de7") (; ";"))) (case_statement "case 0x3f:" (case "case") (number_literal "0x3f") (: ":")) (case_statement "case 0x58:\n    goto code_r0x00018860;" (case "case") (number_literal "0x58") (: ":") (goto_statement "goto code_r0x00018860;" (goto "goto") (statement_identifier "code_r0x00018860") (; ";"))) (case_statement "case 0x40:\n    if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }" (case "case") (number_literal "0x40") (: ":") (if_statement "if (piVar20[2] != 1) {\n      FUN_000178c0(&DAT_000313f8);\n    }" (if "if") (parenthesized_expression "(piVar20[2] != 1)" (( "(") (binary_expression "piVar20[2] != 1" (subscript_expression "piVar20[2]" (identifier "piVar20") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      FUN_000178c0(&DAT_000313f8);\n    }" ({ "{") (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" (identifier "FUN_000178c0") (argument_list "(&DAT_000313f8)" (( "(") (pointer_expression "&DAT_000313f8" (& "&") (identifier "DAT_000313f8")) () ")"))) (; ";")) (} "}")))) (case_statement "case 0x41:\ncode_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;\n    puts("END-OF-CYCLE:");\n    iVar6 = -1;\n    goto code_r0x00017f58;" (case "case") (number_literal "0x41") (: ":") (labeled_statement "code_r0x00017f46:\n    if (*pcVar26 == '\0') goto LAB_00017f53;" (statement_identifier "code_r0x00017f46") (: ":") (if_statement "if (*pcVar26 == '\0') goto LAB_00017f53;" (if "if") (parenthesized_expression "(*pcVar26 == '\0')" (( "(") (binary_expression "*pcVar26 == '\0'" (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00017f53;" (goto "goto") (statement_identifier "LAB_00017f53") (; ";")))) (expression_statement "puts("END-OF-CYCLE:");" (call_expression "puts("END-OF-CYCLE:")" (identifier "puts") (argument_list "("END-OF-CYCLE:")" (( "(") (string_literal ""END-OF-CYCLE:"" (" """) (string_content "END-OF-CYCLE:") (" """)) () ")"))) (; ";")) (expression_statement "iVar6 = -1;" (assignment_expression "iVar6 = -1" (identifier "iVar6") (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto code_r0x00017f58;" (goto "goto") (statement_identifier "code_r0x00017f58") (; ";"))) (case_statement "case 0x42:\n    iVar6 = piVar20[5];\n    iVar10 = iVar6;\n    FUN_00017840();\n    if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }\n    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;\n    while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }\n    func_0x00012380(pFVar14);\n    if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }\n    goto LAB_00017de0;" (case "case") (number_literal "0x42") (: ":") (expression_statement "iVar6 = piVar20[5];" (assignment_expression "iVar6 = piVar20[5]" (identifier "iVar6") (= "=") (subscript_expression "piVar20[5]" (identifier "piVar20") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iVar10 = iVar6;" (assignment_expression "iVar10 = iVar6" (identifier "iVar10") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "FUN_00017840();" (call_expression "FUN_00017840()" (identifier "FUN_00017840") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (iVar6 == 0) {\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }\n    else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX;\n    }" ({ "{") (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" (identifier "FUN_00016f30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");" (assignment_expression "pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r")" (identifier "pFVar14") (= "=") (cast_expression "(FILE *)func_0x00012160(DAT_000313e0,"r")" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "func_0x00012160(DAT_000313e0,"r")" (identifier "func_0x00012160") (argument_list "(DAT_000313e0,"r")" (( "(") (identifier "DAT_000313e0") (, ",") (string_literal ""r"" (" """) (string_content "r") (" """)) () ")"))))) (; ";")) (expression_statement "uVar16 = extraout_ECX;" (assignment_expression "uVar16 = extraout_ECX" (identifier "uVar16") (= "=") (identifier "extraout_ECX")) (; ";")) (} "}")) (else_clause "else {\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }" (else "else") (compound_statement "{\n      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;\n      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");\n      uVar16 = extraout_ECX_00;\n      if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }\n    }" ({ "{") (expression_statement "*(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;" (assignment_expression "*(undefined1 *)(piVar20[4] + -1 + iVar10) = 0" (pointer_expression "*(undefined1 *)(piVar20[4] + -1 + iVar10)" (* "*") (cast_expression "(undefined1 *)(piVar20[4] + -1 + iVar10)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar20[4] + -1 + iVar10)" (( "(") (binary_expression "piVar20[4] + -1 + iVar10" (binary_expression "piVar20[4] + -1" (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "-1")) (+ "+") (identifier "iVar10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");" (assignment_expression "pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r")" (identifier "pFVar14") (= "=") (cast_expression "(FILE *)func_0x00012160(piVar20[4],"r")" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "func_0x00012160(piVar20[4],"r")" (identifier "func_0x00012160") (argument_list "(piVar20[4],"r")" (( "(") (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]")) (, ",") (string_literal ""r"" (" """) (string_content "r") (" """)) () ")"))))) (; ";")) (expression_statement "uVar16 = extraout_ECX_00;" (assignment_expression "uVar16 = extraout_ECX_00" (identifier "uVar16") (= "=") (identifier "extraout_ECX_00")) (; ";")) (if_statement "if (DAT_000313fc != '\0') {\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }" (if "if") (parenthesized_expression "(DAT_000313fc != '\0')" (( "(") (binary_expression "DAT_000313fc != '\0'" (identifier "DAT_000313fc") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);\n        DAT_000313fc = '\0';\n        uVar16 = extraout_ECX_01;\n      }" ({ "{") (expression_statement "FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);" (call_expression "FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400)" (identifier "FUN_0001a640") (argument_list "(PTR_DAT_00030fd8,1,1,DAT_00031400)" (( "(") (identifier "PTR_DAT_00030fd8") (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (identifier "DAT_00031400") () ")"))) (; ";")) (expression_statement "DAT_000313fc = '\0';" (assignment_expression "DAT_000313fc = '\0'" (identifier "DAT_000313fc") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "uVar16 = extraout_ECX_01;" (assignment_expression "uVar16 = extraout_ECX_01" (identifier "uVar16") (= "=") (identifier "extraout_ECX_01")) (; ";")) (} "}"))) (} "}")))) (if_statement "if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;" (if "if") (parenthesized_expression "(pFVar14 == (FILE *)0x0)" (( "(") (binary_expression "pFVar14 == (FILE *)0x0" (identifier "pFVar14") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto code_r0x0001925a;" (goto "goto") (statement_identifier "code_r0x0001925a") (; ";"))) (while_statement "while ((pFVar14->_flags & 0x10) == 0) {\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }" (while "while") (parenthesized_expression "((pFVar14->_flags & 0x10) == 0)" (( "(") (binary_expression "(pFVar14->_flags & 0x10) == 0" (parenthesized_expression "(pFVar14->_flags & 0x10)" (( "(") (binary_expression "pFVar14->_flags & 0x10" (field_expression "pFVar14->_flags" (identifier "pFVar14") (-> "->") (field_identifier "_flags")) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n      if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }\n    }" ({ "{") (expression_statement "sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);" (assignment_expression "sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14)" (identifier "sVar15") (= "=") (call_expression "fread_unlocked(&bStack_1020,1,0x1000,pFVar14)" (identifier "fread_unlocked") (argument_list "(&bStack_1020,1,0x1000,pFVar14)" (( "(") (pointer_expression "&bStack_1020" (& "&") (identifier "bStack_1020")) (, ",") (number_literal "1") (, ",") (number_literal "0x1000") (, ",") (identifier "pFVar14") () ")")))) (; ";")) (if_statement "if (0 < (int)sVar15) {\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }" (if "if") (parenthesized_expression "(0 < (int)sVar15)" (( "(") (binary_expression "0 < (int)sVar15" (number_literal "0") (< "<") (cast_expression "(int)sVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar15"))) () ")")) (compound_statement "{\n        if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }\n      }" ({ "{") (if_statement "if (iVar10 == 0) {\n          FUN_00016f30();\n        }\n        else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00016f30();\n        }" ({ "{") (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" (identifier "FUN_00016f30") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }" (else "else") (compound_statement "{\n          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);\n        }" ({ "{") (expression_statement "FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);" (call_expression "FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400)" (identifier "FUN_0001a640") (argument_list "(&bStack_1020,1,sVar15,DAT_00031400)" (( "(") (pointer_expression "&bStack_1020" (& "&") (identifier "bStack_1020")) (, ",") (number_literal "1") (, ",") (identifier "sVar15") (, ",") (identifier "DAT_00031400") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "func_0x00012380(pFVar14);" (call_expression "func_0x00012380(pFVar14)" (identifier "func_0x00012380") (argument_list "(pFVar14)" (( "(") (identifier "pFVar14") () ")"))) (; ";")) (if_statement "if (iVar10 == 0) {\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }\n    else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }\n      FUN_000176c0();\n    }" ({ "{") (if_statement "if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }" (if "if") (parenthesized_expression "((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240))" (( "(") (binary_expression "(DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)" (parenthesized_expression "(DAT_000313c8 != 0)" (( "(") (binary_expression "DAT_000313c8 != 0" (identifier "DAT_000313c8") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)" (( "(") (binary_expression "*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240" (pointer_expression "*(byte *)(DAT_000313c4 + -1 + DAT_000313c8)" (* "*") (cast_expression "(byte *)(DAT_000313c4 + -1 + DAT_000313c8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000313c4 + -1 + DAT_000313c8)" (( "(") (binary_expression "DAT_000313c4 + -1 + DAT_000313c8" (binary_expression "DAT_000313c4 + -1" (identifier "DAT_000313c4") (+ "+") (number_literal "-1")) (+ "+") (identifier "DAT_000313c8")) () ")")))) (== "==") (identifier "DAT_00031240")) () ")"))) () ")")) (compound_statement "{\n        DAT_000313c8 = DAT_000313c8 + -1;\n      }" ({ "{") (expression_statement "DAT_000313c8 = DAT_000313c8 + -1;" (assignment_expression "DAT_000313c8 = DAT_000313c8 + -1" (identifier "DAT_000313c8") (= "=") (binary_expression "DAT_000313c8 + -1" (identifier "DAT_000313c8") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "FUN_000176c0();" (call_expression "FUN_000176c0()" (identifier "FUN_000176c0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }" (else "else") (if_statement "if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(DAT_00031400);\n    }" (if "if") (parenthesized_expression "(DAT_00031419 != '\0')" (( "(") (binary_expression "DAT_00031419 != '\0'" (identifier "DAT_00031419") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_0001a7e0(DAT_00031400);\n    }" ({ "{") (expression_statement "FUN_0001a7e0(DAT_00031400);" (call_expression "FUN_0001a7e0(DAT_00031400)" (identifier "FUN_0001a7e0") (argument_list "(DAT_00031400)" (( "(") (identifier "DAT_00031400") () ")"))) (; ";")) (} "}"))))) (goto_statement "goto LAB_00017de0;" (goto "goto") (statement_identifier "LAB_00017de0") (; ";"))) (case_statement "case 0x44:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;" (case "case") (number_literal "0x44") (: ":") (expression_statement "FUN_00017320();" (call_expression "FUN_00017320()" (identifier "FUN_00017320") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" (identifier "cVar4") (= "=") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x45:\n    FUN_00017320();\n    cVar4 = *pcVar26;\n    break;" (case "case") (number_literal "0x45") (: ":") (expression_statement "FUN_00017320();" (call_expression "FUN_00017320()" (identifier "FUN_00017320") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" (identifier "cVar4") (= "=") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x46:\n    FUN_000178c0(&DAT_000313f8);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" (case "case") (number_literal "0x46") (: ":") (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" (identifier "FUN_000178c0") (argument_list "(&DAT_000313f8)" (( "(") (pointer_expression "&DAT_000313f8" (& "&") (identifier "DAT_000313f8")) () ")"))) (; ";")) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" (identifier "cVar4") (= "=") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26"))) (; ";")) (goto_statement "goto code_r0x00017de7;" (goto "goto") (statement_identifier "code_r0x00017de7") (; ";"))) (case_statement "case 0x49:\n    pcStack_106c = (char *)piVar20[4];\n    if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }\n    if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }\n    if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }\n    FUN_0001a640(&UNK_00026f80,1,1,uVar16);\n    FUN_0001a640(&DAT_00031240,1,1,uVar16);\n    if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }\nLAB_00017de0:\n    cVar4 = *pcVar26;\ncode_r0x00017de7:\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00017cbb;" (case "case") (number_literal "0x49") (: ":") (expression_statement "pcStack_106c = (char *)piVar20[4];" (assignment_expression "pcStack_106c = (char *)piVar20[4]" (identifier "pcStack_106c") (= "=") (cast_expression "(char *)piVar20[4]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if (pcStack_106c == (char *)0xffffffff) {\n      pcStack_106c = DAT_0003123c;\n    }" (if "if") (parenthesized_expression "(pcStack_106c == (char *)0xffffffff)" (( "(") (binary_expression "pcStack_106c == (char *)0xffffffff" (identifier "pcStack_106c") (== "==") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n      pcStack_106c = DAT_0003123c;\n    }" ({ "{") (expression_statement "pcStack_106c = DAT_0003123c;" (assignment_expression "pcStack_106c = DAT_0003123c" (identifier "pcStack_106c") (= "=") (identifier "DAT_0003123c")) (; ";")) (} "}"))) (if_statement "if (DAT_000313fc != '\0') {\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" (if "if") (parenthesized_expression "(DAT_000313fc != '\0')" (( "(") (binary_expression "DAT_000313fc != '\0'" (identifier "DAT_000313fc") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);\n      DAT_000313fc = '\0';\n    }" ({ "{") (expression_statement "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);" (call_expression "FUN_0001a640(&DAT_00031240,1,1,DAT_00031400)" (identifier "FUN_0001a640") (argument_list "(&DAT_00031240,1,1,DAT_00031400)" (( "(") (pointer_expression "&DAT_00031240" (& "&") (identifier "DAT_00031240")) (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (identifier "DAT_00031400") () ")"))) (; ";")) (expression_statement "DAT_000313fc = '\0';" (assignment_expression "DAT_000313fc = '\0'" (identifier "DAT_000313fc") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (if_statement "if (uVar9 != 0) {\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pbVar13 = pbVar23 + uVar9;\n      pcVar24 = (char *)0x0;\n      do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);\n    }" ({ "{") (expression_statement "pbVar13 = pbVar23 + uVar9;" (assignment_expression "pbVar13 = pbVar23 + uVar9" (identifier "pbVar13") (= "=") (binary_expression "pbVar23 + uVar9" (identifier "pbVar23") (+ "+") (identifier "uVar9"))) (; ";")) (expression_statement "pcVar24 = (char *)0x0;" (assignment_expression "pcVar24 = (char *)0x0" (identifier "pcVar24") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      } while (pbVar23 != pbVar13);" (do "do") (compound_statement "{\n        bVar18 = *pbVar23;\n        uVar5 = (uint)bVar18;\n        if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }\n        pcVar24 = pcVar24 + (int)pcVar12;\n        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }\n        pbVar23 = pbVar23 + 1;\n        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);\n      }" ({ "{") (expression_statement "bVar18 = *pbVar23;" (assignment_expression "bVar18 = *pbVar23" (identifier "bVar18") (= "=") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23"))) (; ";")) (expression_statement "uVar5 = (uint)bVar18;" (assignment_expression "uVar5 = (uint)bVar18" (identifier "uVar5") (= "=") (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18"))) (; ";")) (if_statement "if (((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }\n        else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }" (if "if") (parenthesized_expression "(((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0))" (( "(") (binary_expression "((bVar18 & 0x80) == 0) &&\n           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)" (parenthesized_expression "((bVar18 & 0x80) == 0)" (( "(") (binary_expression "(bVar18 & 0x80) == 0" (parenthesized_expression "(bVar18 & 0x80)" (( "(") (binary_expression "bVar18 & 0x80" (identifier "bVar18") (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)" (( "(") (comma_expression "ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0" (assignment_expression "ppuVar11 = __ctype_b_loc()" (identifier "ppuVar11") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "(*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0" (parenthesized_expression "(*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40)" (( "(") (binary_expression "*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40" (pointer_expression "*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1)" (* "*") (cast_expression "(byte *)((int)*ppuVar11 + uVar5 * 2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*ppuVar11 + uVar5 * 2 + 1)" (( "(") (binary_expression "(int)*ppuVar11 + uVar5 * 2 + 1" (binary_expression "(int)*ppuVar11 + uVar5 * 2" (cast_expression "(int)*ppuVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*ppuVar11" (* "*") (identifier "ppuVar11"))) (+ "+") (binary_expression "uVar5 * 2" (identifier "uVar5") (* "*") (number_literal "2"))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          pcVar12 = (char *)0x1;\n          bStack_1020 = bVar18;\n          if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }\n        }" ({ "{") (expression_statement "pcVar12 = (char *)0x1;" (assignment_expression "pcVar12 = (char *)0x1" (identifier "pcVar12") (= "=") (cast_expression "(char *)0x1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "bStack_1020 = bVar18;" (assignment_expression "bStack_1020 = bVar18" (identifier "bStack_1020") (= "=") (identifier "bVar18")) (; ";")) (if_statement "if (*pbVar23 == 0x5c) {\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }" (if "if") (parenthesized_expression "(*pbVar23 == 0x5c)" (( "(") (binary_expression "*pbVar23 == 0x5c" (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")) (== "==") (number_literal "0x5c")) () ")")) (compound_statement "{\n            acStack_101f[0] = '\\';\n            pcVar12 = (char *)0x2;\n          }" ({ "{") (expression_statement "acStack_101f[0] = '\\';" (assignment_expression "acStack_101f[0] = '\\'" (subscript_expression "acStack_101f[0]" (identifier "acStack_101f") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'\\'" (' "'") (escape_sequence "\\") (' "'"))) (; ";")) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" (identifier "pcVar12") (= "=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }" (else "else") (compound_statement "{\n          bStack_1020 = 0x5c;\n          switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }\n        }" ({ "{") (expression_statement "bStack_1020 = 0x5c;" (assignment_expression "bStack_1020 = 0x5c" (identifier "bStack_1020") (= "=") (number_literal "0x5c")) (; ";")) (switch_statement "switch(*pbVar23) {\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }" (switch "switch") (parenthesized_expression "(*pbVar23)" (( "(") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")) () ")")) (compound_statement "{\n          case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;\n          case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;\n          case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;\n          case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;\n          case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;\n          default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);\n          }" ({ "{") (case_statement "case 7:\n            acStack_101f[0] = 'a';\n            pcVar12 = (char *)0x2;\n            break;" (case "case") (number_literal "7") (: ":") (expression_statement "acStack_101f[0] = 'a';" (assignment_expression "acStack_101f[0] = 'a'" (subscript_expression "acStack_101f[0]" (identifier "acStack_101f") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'a'" (' "'") (character "a") (' "'"))) (; ";")) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" (identifier "pcVar12") (= "=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\n            acStack_101f[0] = 'b';\n            pcVar12 = (char *)0x2;\n            break;" (case "case") (number_literal "8") (: ":") (expression_statement "acStack_101f[0] = 'b';" (assignment_expression "acStack_101f[0] = 'b'" (subscript_expression "acStack_101f[0]" (identifier "acStack_101f") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'b'" (' "'") (character "b") (' "'"))) (; ";")) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" (identifier "pcVar12") (= "=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 9:\n            acStack_101f[0] = 't';\n            pcVar12 = (char *)0x2;\n            break;" (case "case") (number_literal "9") (: ":") (expression_statement "acStack_101f[0] = 't';" (assignment_expression "acStack_101f[0] = 't'" (subscript_expression "acStack_101f[0]" (identifier "acStack_101f") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'t'" (' "'") (character "t") (' "'"))) (; ";")) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" (identifier "pcVar12") (= "=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 10:\n            acStack_101f[0] = 'n';\n            pcVar12 = (char *)0x2;\n            break;" (case "case") (number_literal "10") (: ":") (expression_statement "acStack_101f[0] = 'n';" (assignment_expression "acStack_101f[0] = 'n'" (subscript_expression "acStack_101f[0]" (identifier "acStack_101f") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'n'" (' "'") (character "n") (' "'"))) (; ";")) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" (identifier "pcVar12") (= "=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xb:\n            acStack_101f[0] = 'v';\n            pcVar12 = (char *)0x2;\n            break;" (case "case") (number_literal "0xb") (: ":") (expression_statement "acStack_101f[0] = 'v';" (assignment_expression "acStack_101f[0] = 'v'" (subscript_expression "acStack_101f[0]" (identifier "acStack_101f") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'v'" (' "'") (character "v") (' "'"))) (; ";")) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" (identifier "pcVar12") (= "=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xc:\n            acStack_101f[0] = 'f';\n            pcVar12 = (char *)0x2;\n            break;" (case "case") (number_literal "0xc") (: ":") (expression_statement "acStack_101f[0] = 'f';" (assignment_expression "acStack_101f[0] = 'f'" (subscript_expression "acStack_101f[0]" (identifier "acStack_101f") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'f'" (' "'") (character "f") (' "'"))) (; ";")) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" (identifier "pcVar12") (= "=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xd:\n            acStack_101f[0] = 'r';\n            pcVar12 = (char *)0x2;\n            break;" (case "case") (number_literal "0xd") (: ":") (expression_statement "acStack_101f[0] = 'r';" (assignment_expression "acStack_101f[0] = 'r'" (subscript_expression "acStack_101f[0]" (identifier "acStack_101f") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'r'" (' "'") (character "r") (' "'"))) (; ";")) (expression_statement "pcVar12 = (char *)0x2;" (assignment_expression "pcVar12 = (char *)0x2" (identifier "pcVar12") (= "=") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);\n            sVar15 = strlen(acStack_101f);\n            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);" (default "default") (: ":") (expression_statement "__sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);" (call_expression "__sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23)" (identifier "__sprintf_chk") (argument_list "(acStack_101f,1,0xb3,"%03o",*pbVar23)" (( "(") (identifier "acStack_101f") (, ",") (number_literal "1") (, ",") (number_literal "0xb3") (, ",") (string_literal ""%03o"" (" """) (string_content "%03o") (" """)) (, ",") (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")) () ")"))) (; ";")) (expression_statement "sVar15 = strlen(acStack_101f);" (assignment_expression "sVar15 = strlen(acStack_101f)" (identifier "sVar15") (= "=") (call_expression "strlen(acStack_101f)" (identifier "strlen") (argument_list "(acStack_101f)" (( "(") (identifier "acStack_101f") () ")")))) (; ";")) (expression_statement "pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);" (assignment_expression "pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020)" (identifier "pcVar12") (= "=") (binary_expression "acStack_101f + (sVar15 - (int)&bStack_1020)" (identifier "acStack_101f") (+ "+") (parenthesized_expression "(sVar15 - (int)&bStack_1020)" (( "(") (binary_expression "sVar15 - (int)&bStack_1020" (identifier "sVar15") (- "-") (cast_expression "(int)&bStack_1020" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&bStack_1020" (& "&") (identifier "bStack_1020")))) () ")")))) (; ";"))) (} "}"))) (} "}")))) (expression_statement "pcVar24 = pcVar24 + (int)pcVar12;" (assignment_expression "pcVar24 = pcVar24 + (int)pcVar12" (identifier "pcVar24") (= "=") (binary_expression "pcVar24 + (int)pcVar12" (identifier "pcVar24") (+ "+") (cast_expression "(int)pcVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar12")))) (; ";")) (if_statement "if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }" (if "if") (parenthesized_expression "((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c))" (( "(") (binary_expression "(pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)" (parenthesized_expression "(pcStack_106c <= pcVar24)" (( "(") (binary_expression "pcStack_106c <= pcVar24" (identifier "pcStack_106c") (<= "<=") (identifier "pcVar24")) () ")")) (&& "&&") (parenthesized_expression "(0 < (int)pcStack_106c)" (( "(") (binary_expression "0 < (int)pcStack_106c" (number_literal "0") (< "<") (cast_expression "(int)pcStack_106c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcStack_106c"))) () ")"))) () ")")) (compound_statement "{\n          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);\n          FUN_0001a640(&DAT_00031240,1,1,uVar16);\n          pcVar24 = pcVar12;\n        }" ({ "{") (expression_statement "FUN_0001a640(&UNK_00026f7e,1,1,uVar16);" (call_expression "FUN_0001a640(&UNK_00026f7e,1,1,uVar16)" (identifier "FUN_0001a640") (argument_list "(&UNK_00026f7e,1,1,uVar16)" (( "(") (pointer_expression "&UNK_00026f7e" (& "&") (identifier "UNK_00026f7e")) (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (identifier "uVar16") () ")"))) (; ";")) (expression_statement "FUN_0001a640(&DAT_00031240,1,1,uVar16);" (call_expression "FUN_0001a640(&DAT_00031240,1,1,uVar16)" (identifier "FUN_0001a640") (argument_list "(&DAT_00031240,1,1,uVar16)" (( "(") (pointer_expression "&DAT_00031240" (& "&") (identifier "DAT_00031240")) (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (identifier "uVar16") () ")"))) (; ";")) (expression_statement "pcVar24 = pcVar12;" (assignment_expression "pcVar24 = pcVar12" (identifier "pcVar24") (= "=") (identifier "pcVar12")) (; ";")) (} "}"))) (expression_statement "pbVar23 = pbVar23 + 1;" (assignment_expression "pbVar23 = pbVar23 + 1" (identifier "pbVar23") (= "=") (binary_expression "pbVar23 + 1" (identifier "pbVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);" (call_expression "FUN_0001a640(&bStack_1020,1,pcVar12,uVar16)" (identifier "FUN_0001a640") (argument_list "(&bStack_1020,1,pcVar12,uVar16)" (( "(") (pointer_expression "&bStack_1020" (& "&") (identifier "bStack_1020")) (, ",") (number_literal "1") (, ",") (identifier "pcVar12") (, ",") (identifier "uVar16") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar23 != pbVar13)" (( "(") (binary_expression "pbVar23 != pbVar13" (identifier "pbVar23") (!= "!=") (identifier "pbVar13")) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_0001a640(&UNK_00026f80,1,1,uVar16);" (call_expression "FUN_0001a640(&UNK_00026f80,1,1,uVar16)" (identifier "FUN_0001a640") (argument_list "(&UNK_00026f80,1,1,uVar16)" (( "(") (pointer_expression "&UNK_00026f80" (& "&") (identifier "UNK_00026f80")) (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (identifier "uVar16") () ")"))) (; ";")) (expression_statement "FUN_0001a640(&DAT_00031240,1,1,uVar16);" (call_expression "FUN_0001a640(&DAT_00031240,1,1,uVar16)" (identifier "FUN_0001a640") (argument_list "(&DAT_00031240,1,1,uVar16)" (( "(") (pointer_expression "&DAT_00031240" (& "&") (identifier "DAT_00031240")) (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (identifier "uVar16") () ")"))) (; ";")) (if_statement "if (DAT_00031419 != '\0') {\n      FUN_0001a7e0(uVar16);\n    }" (if "if") (parenthesized_expression "(DAT_00031419 != '\0')" (( "(") (binary_expression "DAT_00031419 != '\0'" (identifier "DAT_00031419") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_0001a7e0(uVar16);\n    }" ({ "{") (expression_statement "FUN_0001a7e0(uVar16);" (call_expression "FUN_0001a7e0(uVar16)" (identifier "FUN_0001a7e0") (argument_list "(uVar16)" (( "(") (identifier "uVar16") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00017de0:\n    cVar4 = *pcVar26;" (statement_identifier "LAB_00017de0") (: ":") (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" (identifier "cVar4") (= "=") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26"))) (; ";"))) (labeled_statement "code_r0x00017de7:\n    piVar20 = piVar20 + 6;" (statement_identifier "code_r0x00017de7") (: ":") (expression_statement "piVar20 = piVar20 + 6;" (assignment_expression "piVar20 = piVar20 + 6" (identifier "piVar20") (= "=") (binary_expression "piVar20 + 6" (identifier "piVar20") (+ "+") (number_literal "6"))) (; ";"))) (goto_statement "goto joined_r0x00017cbb;" (goto "goto") (statement_identifier "joined_r0x00017cbb") (; ";"))) (case_statement "case 0x4b:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;\n    if (*pcVar26 != '\0') goto code_r0x00017dd0;\n    piVar20 = piVar20 + 6;\n    goto joined_r0x00018523;" (case "case") (number_literal "0x4b") (: ":") (if_statement "if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }" (if "if") (parenthesized_expression "(DAT_00031418 == '\0')" (( "(") (binary_expression "DAT_00031418 == '\0'" (identifier "DAT_00031418") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_000178c0(&DAT_000313f8);\n    }" ({ "{") (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" (identifier "FUN_000178c0") (argument_list "(&DAT_000313f8)" (( "(") (pointer_expression "&DAT_000313f8" (& "&") (identifier "DAT_000313f8")) () ")"))) (; ";")) (} "}"))) (if_statement "if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;" (if "if") (parenthesized_expression "(((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0'))" (( "(") (binary_expression "((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||\n       (cVar4 = FUN_00017b40(), cVar4 == '\0')" (parenthesized_expression "((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0'))" (( "(") (binary_expression "(DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')" (parenthesized_expression "(DAT_00031390 == 0)" (( "(") (binary_expression "DAT_00031390 == 0" (identifier "DAT_00031390") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(cVar4 = FUN_00017090(), cVar4 != '\0')" (( "(") (comma_expression "cVar4 = FUN_00017090(), cVar4 != '\0'" (assignment_expression "cVar4 = FUN_00017090()" (identifier "cVar4") (= "=") (call_expression "FUN_00017090()" (identifier "FUN_00017090") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(cVar4 = FUN_00017b40(), cVar4 == '\0')" (( "(") (comma_expression "cVar4 = FUN_00017b40(), cVar4 == '\0'" (assignment_expression "cVar4 = FUN_00017b40()" (identifier "cVar4") (= "=") (call_expression "FUN_00017b40()" (identifier "FUN_00017b40") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (goto_statement "goto code_r0x00017f46;" (goto "goto") (statement_identifier "code_r0x00017f46") (; ";"))) (if_statement "if (*pcVar26 != '\0') goto code_r0x00017dd0;" (if "if") (parenthesized_expression "(*pcVar26 != '\0')" (( "(") (binary_expression "*pcVar26 != '\0'" (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00017dd0;" (goto "goto") (statement_identifier "code_r0x00017dd0") (; ";"))) (expression_statement "piVar20 = piVar20 + 6;" (assignment_expression "piVar20 = piVar20 + 6" (identifier "piVar20") (= "=") (binary_expression "piVar20 + 6" (identifier "piVar20") (+ "+") (number_literal "6"))) (; ";")) (goto_statement "goto joined_r0x00018523;" (goto "goto") (statement_identifier "joined_r0x00018523") (; ";"))) (case_statement "case 0x4d:\n    puVar7 = &DAT_000313f8;\n    goto code_r0x00018030;" (case "case") (number_literal "0x4d") (: ":") (expression_statement "puVar7 = &DAT_000313f8;" (assignment_expression "puVar7 = &DAT_000313f8" (identifier "puVar7") (= "=") (pointer_expression "&DAT_000313f8" (& "&") (identifier "DAT_000313f8"))) (; ";")) (goto_statement "goto code_r0x00018030;" (goto "goto") (statement_identifier "code_r0x00018030") (; ";"))) (case_statement "case 0x4e:\n    if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    FUN_00017990();\ncode_r0x00017f94:\n    iVar6 = piVar20[4];\n    if (iVar6 == -1) {\n      iVar6 = 0;\n    }\n    goto code_r0x00017f58;" (case "case") (number_literal "0x4e") (: ":") (if_statement "if (DAT_00031418 == '\0') {\n      FUN_000178c0(&DAT_000313f8);\n    }" (if "if") (parenthesized_expression "(DAT_00031418 == '\0')" (( "(") (binary_expression "DAT_00031418 == '\0'" (identifier "DAT_00031418") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_000178c0(&DAT_000313f8);\n    }" ({ "{") (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" (identifier "FUN_000178c0") (argument_list "(&DAT_000313f8)" (( "(") (pointer_expression "&DAT_000313f8" (& "&") (identifier "DAT_000313f8")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00017990();" (call_expression "FUN_00017990()" (identifier "FUN_00017990") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "code_r0x00017f94:\n    iVar6 = piVar20[4];" (statement_identifier "code_r0x00017f94") (: ":") (expression_statement "iVar6 = piVar20[4];" (assignment_expression "iVar6 = piVar20[4]" (identifier "iVar6") (= "=") (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]"))) (; ";"))) (if_statement "if (iVar6 == -1) {\n      iVar6 = 0;\n    }" (if "if") (parenthesized_expression "(iVar6 == -1)" (( "(") (binary_expression "iVar6 == -1" (identifier "iVar6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      iVar6 = 0;\n    }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (} "}"))) (goto_statement "goto code_r0x00017f58;" (goto "goto") (statement_identifier "code_r0x00017f58") (; ";"))) (case_statement "case 0x4f:\n    if (piVar20[4] == 0) goto LAB_00017de0;\n    piVar8 = (int *)FUN_00016790();\n    *piVar8 = piVar20[4];\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" (case "case") (number_literal "0x4f") (: ":") (if_statement "if (piVar20[4] == 0) goto LAB_00017de0;" (if "if") (parenthesized_expression "(piVar20[4] == 0)" (( "(") (binary_expression "piVar20[4] == 0" (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017de0;" (goto "goto") (statement_identifier "LAB_00017de0") (; ";"))) (expression_statement "piVar8 = (int *)FUN_00016790();" (assignment_expression "piVar8 = (int *)FUN_00016790()" (identifier "piVar8") (= "=") (cast_expression "(int *)FUN_00016790()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00016790()" (identifier "FUN_00016790") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "*piVar8 = piVar20[4];" (assignment_expression "*piVar8 = piVar20[4]" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" (identifier "cVar4") (= "=") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26"))) (; ";")) (goto_statement "goto code_r0x00017de7;" (goto "goto") (statement_identifier "code_r0x00017de7") (; ";"))) (case_statement "case 0x50:\n    puVar1 = (undefined4 *)piVar20[4];\n    FUN_00017840();\n    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);\n    if (iVar6 == 0) goto code_r0x000188c9;\n    uVar5 = *puRam00031370;\n    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }\ncode_r0x00018110:\n    uVar9 = *puRam00031374;\n    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }\n    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }\n    goto code_r0x00018bf8;" (case "case") (number_literal "0x50") (: ":") (expression_statement "puVar1 = (undefined4 *)piVar20[4];" (assignment_expression "puVar1 = (undefined4 *)piVar20[4]" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)piVar20[4]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "FUN_00017840();" (call_expression "FUN_00017840()" (identifier "FUN_00017840") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1);" (assignment_expression "iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1)" (identifier "iVar6") (= "=") (call_expression "FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1)" (identifier "FUN_000198e0") (argument_list "(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,\n                         (*(byte *)(puVar1 + 4) >> 4) + 1)" (( "(") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (, ",") (identifier "DAT_000313e0") (, ",") (identifier "DAT_000313e4") (, ",") (number_literal "0") (, ",") (number_literal "0x3136c") (, ",") (binary_expression "(*(byte *)(puVar1 + 4) >> 4) + 1" (parenthesized_expression "(*(byte *)(puVar1 + 4) >> 4)" (( "(") (binary_expression "*(byte *)(puVar1 + 4) >> 4" (pointer_expression "*(byte *)(puVar1 + 4)" (* "*") (cast_expression "(byte *)(puVar1 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 4)" (( "(") (binary_expression "puVar1 + 4" (identifier "puVar1") (+ "+") (number_literal "4")) () ")")))) (>> ">>") (number_literal "4")) () ")")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) goto code_r0x000188c9;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x000188c9;" (goto "goto") (statement_identifier "code_r0x000188c9") (; ";"))) (expression_statement "uVar5 = *puRam00031370;" (assignment_expression "uVar5 = *puRam00031370" (identifier "uVar5") (= "=") (pointer_expression "*puRam00031370" (* "*") (identifier "puRam00031370"))) (; ";")) (if_statement "if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }" (if "if") (parenthesized_expression "(((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff))" (( "(") (binary_expression "((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)" (parenthesized_expression "((*pcVar26 != '\0') && (uRam0003136c != 0))" (( "(") (binary_expression "(*pcVar26 != '\0') && (uRam0003136c != 0)" (parenthesized_expression "(*pcVar26 != '\0')" (( "(") (binary_expression "*pcVar26 != '\0'" (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(uRam0003136c != 0)" (( "(") (binary_expression "uRam0003136c != 0" (identifier "uRam0003136c") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar5 != 0xffffffff)" (( "(") (binary_expression "uVar5 != 0xffffffff" (identifier "uVar5") (!= "!=") (number_literal "0xffffffff")) () ")"))) () ")")) (compound_statement "{\n      puts("MATCHED REGEX REGISTERS");\n      uVar5 = *puRam00031370;\n      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }\n    }" ({ "{") (expression_statement "puts("MATCHED REGEX REGISTERS");" (call_expression "puts("MATCHED REGEX REGISTERS")" (identifier "puts") (argument_list "("MATCHED REGEX REGISTERS")" (( "(") (string_literal ""MATCHED REGEX REGISTERS"" (" """) (string_content "MATCHED REGEX REGISTERS") (" """)) () ")"))) (; ";")) (expression_statement "uVar5 = *puRam00031370;" (assignment_expression "uVar5 = *puRam00031370" (identifier "uVar5") (= "=") (pointer_expression "*puRam00031370" (* "*") (identifier "puRam00031370"))) (; ";")) (if_statement "if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }" (if "if") (parenthesized_expression "((uRam0003136c != 0) && (uVar5 != 0xffffffff))" (( "(") (binary_expression "(uRam0003136c != 0) && (uVar5 != 0xffffffff)" (parenthesized_expression "(uRam0003136c != 0)" (( "(") (binary_expression "uRam0003136c != 0" (identifier "uRam0003136c") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar5 != 0xffffffff)" (( "(") (binary_expression "uVar5 != 0xffffffff" (identifier "uVar5") (!= "!=") (number_literal "0xffffffff")) () ")"))) () ")")) (compound_statement "{\n        uVar9 = 0;\n        do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);\n        uVar5 = *puRam00031370;\n      }" ({ "{") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        } while (uVar5 != 0xffffffff);" (do "do") (compound_statement "{\n          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);\n          uVar5 = puRam00031370[uVar9];\n          if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }\n          puts("\'");\n          if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }\n          uVar5 = puRam00031370[uVar9 + 1];\n          uVar9 = uVar9 + 1;\n        }" ({ "{") (expression_statement "__printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);" (call_expression "__printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9])" (identifier "__printf_chk") (argument_list "(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9])" (( "(") (number_literal "1") (, ",") (string_literal ""  regex[%d] = %d-%d \'"" (" """) (string_content "  regex[%d] = %d-%d ") (escape_sequence "\'") (" """)) (, ",") (identifier "uVar9") (, ",") (identifier "uVar5") (, ",") (subscript_expression "puRam00031374[uVar9]" (identifier "puRam00031374") ([ "[") (identifier "uVar9") (] "]")) () ")"))) (; ";")) (expression_statement "uVar5 = puRam00031370[uVar9];" (assignment_expression "uVar5 = puRam00031370[uVar9]" (identifier "uVar5") (= "=") (subscript_expression "puRam00031370[uVar9]" (identifier "puRam00031370") ([ "[") (identifier "uVar9") (] "]"))) (; ";")) (if_statement "if (uVar5 != puRam00031374[uVar9]) {\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }" (if "if") (parenthesized_expression "(uVar5 != puRam00031374[uVar9])" (( "(") (binary_expression "uVar5 != puRam00031374[uVar9]" (identifier "uVar5") (!= "!=") (subscript_expression "puRam00031374[uVar9]" (identifier "puRam00031374") ([ "[") (identifier "uVar9") (] "]"))) () ")")) (compound_statement "{\n            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);\n          }" ({ "{") (expression_statement "fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);" (call_expression "fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3)" (identifier "fwrite_unlocked") (argument_list "(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3)" (( "(") (binary_expression "DAT_000313e0 + uVar5" (identifier "DAT_000313e0") (+ "+") (identifier "uVar5")) (, ",") (binary_expression "puRam00031374[uVar9] - uVar5" (subscript_expression "puRam00031374[uVar9]" (identifier "puRam00031374") ([ "[") (identifier "uVar9") (] "]")) (- "-") (identifier "uVar5")) (, ",") (number_literal "1") (, ",") (pointer_expression "*(FILE **)puVar3" (* "*") (cast_expression "(FILE **)puVar3" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar3"))) () ")"))) (; ";")) (} "}"))) (expression_statement "puts("\'");" (call_expression "puts("\'")" (identifier "puts") (argument_list "("\'")" (( "(") (string_literal ""\'"" (" """) (escape_sequence "\'") (" """)) () ")"))) (; ";")) (if_statement "if (uRam0003136c <= uVar9 + 1) {\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }" (if "if") (parenthesized_expression "(uRam0003136c <= uVar9 + 1)" (( "(") (binary_expression "uRam0003136c <= uVar9 + 1" (identifier "uRam0003136c") (<= "<=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n            uVar5 = *puRam00031370;\n            goto code_r0x00018110;\n          }" ({ "{") (expression_statement "uVar5 = *puRam00031370;" (assignment_expression "uVar5 = *puRam00031370" (identifier "uVar5") (= "=") (pointer_expression "*puRam00031370" (* "*") (identifier "puRam00031370"))) (; ";")) (goto_statement "goto code_r0x00018110;" (goto "goto") (statement_identifier "code_r0x00018110") (; ";")) (} "}"))) (expression_statement "uVar5 = puRam00031370[uVar9 + 1];" (assignment_expression "uVar5 = puRam00031370[uVar9 + 1]" (identifier "uVar5") (= "=") (subscript_expression "puRam00031370[uVar9 + 1]" (identifier "puRam00031370") ([ "[") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1")) (] "]"))) (; ";")) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 != 0xffffffff)" (( "(") (binary_expression "uVar5 != 0xffffffff" (identifier "uVar5") (!= "!=") (number_literal "0xffffffff")) () ")")) (; ";")) (expression_statement "uVar5 = *puRam00031370;" (assignment_expression "uVar5 = *puRam00031370" (identifier "uVar5") (= "=") (pointer_expression "*puRam00031370" (* "*") (identifier "puRam00031370"))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "code_r0x00018110:\n    uVar9 = *puRam00031374;" (statement_identifier "code_r0x00018110") (: ":") (expression_statement "uVar9 = *puRam00031374;" (assignment_expression "uVar9 = *puRam00031374" (identifier "uVar9") (= "=") (pointer_expression "*puRam00031374" (* "*") (identifier "puRam00031374"))) (; ";"))) (if_statement "if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }" (if "if") (parenthesized_expression "((puVar1[1] != 0) || (1 < (uint)puVar1[2]))" (( "(") (binary_expression "(puVar1[1] != 0) || (1 < (uint)puVar1[2])" (parenthesized_expression "(puVar1[1] != 0)" (( "(") (binary_expression "puVar1[1] != 0" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(1 < (uint)puVar1[2])" (( "(") (binary_expression "1 < (uint)puVar1[2]" (number_literal "1") (< "<") (cast_expression "(uint)puVar1[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")))) () ")"))) () ")")) (compound_statement "{\ncode_r0x00018127:\n      uVar21 = 0;\n      uVar22 = 0;\n      uStack_1058 = 0;\n      do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );\n    }" ({ "{") (labeled_statement "code_r0x00018127:\n      uVar21 = 0;" (statement_identifier "code_r0x00018127") (: ":") (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" (identifier "uVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_1058 = 0;" (assignment_expression "uStack_1058 = 0" (identifier "uStack_1058") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      } while( true );" (do "do") (compound_statement "{\n        uStack_1060 = uVar9 - uVar5;\n        if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }\n        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }\n        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;\n        uVar5 = (uint)*(byte *)(puVar1 + 4);\n        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);\n        if (iVar6 == 0) goto code_r0x00018ba8;\n        uVar5 = *puRam00031370;\n        uVar9 = *puRam00031374;\n      }" ({ "{") (expression_statement "uStack_1060 = uVar9 - uVar5;" (assignment_expression "uStack_1060 = uVar9 - uVar5" (identifier "uStack_1060") (= "=") (binary_expression "uVar9 - uVar5" (identifier "uVar9") (- "-") (identifier "uVar5"))) (; ";")) (if_statement "if (uVar22 < uVar5) {\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }" (if "if") (parenthesized_expression "(uVar22 < uVar5)" (( "(") (binary_expression "uVar22 < uVar5" (identifier "uVar22") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n          uVar22 = uVar5;\n          FUN_00016f30();\n          uVar5 = uVar22;\n        }" ({ "{") (expression_statement "uVar22 = uVar5;" (assignment_expression "uVar22 = uVar5" (identifier "uVar22") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" (identifier "FUN_00016f30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar5 = uVar22;" (assignment_expression "uVar5 = uVar22" (identifier "uVar5") (= "=") (identifier "uVar22")) (; ";")) (} "}"))) (if_statement "if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }\n        else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }" (if "if") (parenthesized_expression "((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0))" (( "(") (binary_expression "(uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)" (parenthesized_expression "(uStack_1058 == 0 || uVar21 < uVar5)" (( "(") (binary_expression "uStack_1058 == 0 || uVar21 < uVar5" (binary_expression "uStack_1058 == 0" (identifier "uStack_1058") (== "==") (number_literal "0")) (|| "||") (binary_expression "uVar21 < uVar5" (identifier "uVar21") (< "<") (identifier "uVar5"))) () ")")) (|| "||") (parenthesized_expression "(uStack_1060 != 0)" (( "(") (binary_expression "uStack_1060 != 0" (identifier "uStack_1060") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          uStack_1058 = uStack_1058 + 1;\n          if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }\n          iVar6 = puVar1[1];\n          DAT_00031408 = '\x01';\n          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }\n          uVar22 = uVar5 + uStack_1060;\n          uVar21 = *puRam00031374;\n          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;\n        }" ({ "{") (expression_statement "uStack_1058 = uStack_1058 + 1;" (assignment_expression "uStack_1058 = uStack_1058 + 1" (identifier "uStack_1058") (= "=") (binary_expression "uStack_1058 + 1" (identifier "uStack_1058") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uStack_1058 < (uint)puVar1[2]) {\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }" (if "if") (parenthesized_expression "(uStack_1058 < (uint)puVar1[2])" (( "(") (binary_expression "uStack_1058 < (uint)puVar1[2]" (identifier "uStack_1058") (< "<") (cast_expression "(uint)puVar1[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n            if (uStack_1060 == 0) goto code_r0x0001817a;\n            goto code_r0x00018190;\n          }" ({ "{") (if_statement "if (uStack_1060 == 0) goto code_r0x0001817a;" (if "if") (parenthesized_expression "(uStack_1060 == 0)" (( "(") (binary_expression "uStack_1060 == 0" (identifier "uStack_1060") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0001817a;" (goto "goto") (statement_identifier "code_r0x0001817a") (; ";"))) (goto_statement "goto code_r0x00018190;" (goto "goto") (statement_identifier "code_r0x00018190") (; ";")) (} "}"))) (expression_statement "iVar6 = puVar1[1];" (assignment_expression "iVar6 = puVar1[1]" (identifier "iVar6") (= "=") (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "DAT_00031408 = '\x01';" (assignment_expression "DAT_00031408 = '\x01'" (identifier "DAT_00031408") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (for_statement "for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }" (for "for") (( "(") (; ";") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar6 = *(int *)(iVar6 + 0x10)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(iVar6 + 0x10)" (* "*") (cast_expression "(int *)(iVar6 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x10)" (( "(") (binary_expression "iVar6 + 0x10" (identifier "iVar6") (+ "+") (number_literal "0x10")) () ")"))))) () ")") (compound_statement "{\n            uVar9 = *(uint *)(iVar6 + 8);\n            if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }\n            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }\n          }" ({ "{") (expression_statement "uVar9 = *(uint *)(iVar6 + 8);" (assignment_expression "uVar9 = *(uint *)(iVar6 + 8)" (identifier "uVar9") (= "=") (pointer_expression "*(uint *)(iVar6 + 8)" (* "*") (cast_expression "(uint *)(iVar6 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 8)" (( "(") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (*(int *)(iVar6 + 4) != 0) {\n              FUN_000173c0();\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar6 + 4) != 0)" (( "(") (binary_expression "*(int *)(iVar6 + 4) != 0" (pointer_expression "*(int *)(iVar6 + 4)" (* "*") (cast_expression "(int *)(iVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 4)" (( "(") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              FUN_000173c0();\n            }" ({ "{") (expression_statement "FUN_000173c0();" (call_expression "FUN_000173c0()" (identifier "FUN_000173c0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])) {\n              FUN_000173c0();\n            }" (if "if") (parenthesized_expression "(((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9]))" (( "(") (binary_expression "((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&\n               (puRam00031374[uVar9] != puRam00031370[uVar9])" (parenthesized_expression "((-1 < (int)uVar9) && (uVar9 < uRam0003136c))" (( "(") (binary_expression "(-1 < (int)uVar9) && (uVar9 < uRam0003136c)" (parenthesized_expression "(-1 < (int)uVar9)" (( "(") (binary_expression "-1 < (int)uVar9" (number_literal "-1") (< "<") (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9"))) () ")")) (&& "&&") (parenthesized_expression "(uVar9 < uRam0003136c)" (( "(") (binary_expression "uVar9 < uRam0003136c" (identifier "uVar9") (< "<") (identifier "uRam0003136c")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(puRam00031374[uVar9] != puRam00031370[uVar9])" (( "(") (binary_expression "puRam00031374[uVar9] != puRam00031370[uVar9]" (subscript_expression "puRam00031374[uVar9]" (identifier "puRam00031374") ([ "[") (identifier "uVar9") (] "]")) (!= "!=") (subscript_expression "puRam00031370[uVar9]" (identifier "puRam00031370") ([ "[") (identifier "uVar9") (] "]"))) () ")"))) () ")")) (compound_statement "{\n              FUN_000173c0();\n            }" ({ "{") (expression_statement "FUN_000173c0();" (call_expression "FUN_000173c0()" (identifier "FUN_000173c0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar22 = uVar5 + uStack_1060;" (assignment_expression "uVar22 = uVar5 + uStack_1060" (identifier "uVar22") (= "=") (binary_expression "uVar5 + uStack_1060" (identifier "uVar5") (+ "+") (identifier "uStack_1060"))) (; ";")) (expression_statement "uVar21 = *puRam00031374;" (assignment_expression "uVar21 = *puRam00031374" (identifier "uVar21") (= "=") (pointer_expression "*puRam00031374" (* "*") (identifier "puRam00031374"))) (; ";")) (if_statement "if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;" (if "if") (parenthesized_expression "((*(byte *)(puVar1 + 4) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(puVar1 + 4) & 1) == 0" (parenthesized_expression "(*(byte *)(puVar1 + 4) & 1)" (( "(") (binary_expression "*(byte *)(puVar1 + 4) & 1" (pointer_expression "*(byte *)(puVar1 + 4)" (* "*") (cast_expression "(byte *)(puVar1 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 4)" (( "(") (binary_expression "puVar1 + 4" (identifier "puVar1") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00018ba8;" (goto "goto") (statement_identifier "code_r0x00018ba8") (; ";"))) (} "}")) (else_clause "else {\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }" (else "else") (compound_statement "{\ncode_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;\n          uStack_1060 = 1;\ncode_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;\n          FUN_00016f30();\n          uVar21 = *puRam00031374;\n        }" ({ "{") (labeled_statement "code_r0x0001817a:\n          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;" (statement_identifier "code_r0x0001817a") (: ":") (if_statement "if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;" (if "if") (parenthesized_expression "(DAT_000313e4 <= uVar22)" (( "(") (binary_expression "DAT_000313e4 <= uVar22" (identifier "DAT_000313e4") (<= "<=") (identifier "uVar22")) () ")")) (goto_statement "goto code_r0x00018bcb;" (goto "goto") (statement_identifier "code_r0x00018bcb") (; ";")))) (expression_statement "uStack_1060 = 1;" (assignment_expression "uStack_1060 = 1" (identifier "uStack_1060") (= "=") (number_literal "1")) (; ";")) (labeled_statement "code_r0x00018190:\n          uVar22 = uVar5 + uStack_1060;" (statement_identifier "code_r0x00018190") (: ":") (expression_statement "uVar22 = uVar5 + uStack_1060;" (assignment_expression "uVar22 = uVar5 + uStack_1060" (identifier "uVar22") (= "=") (binary_expression "uVar5 + uStack_1060" (identifier "uVar5") (+ "+") (identifier "uStack_1060"))) (; ";"))) (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" (identifier "FUN_00016f30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar21 = *puRam00031374;" (assignment_expression "uVar21 = *puRam00031374" (identifier "uVar21") (= "=") (pointer_expression "*puRam00031374" (* "*") (identifier "puRam00031374"))) (; ";")) (} "}")))) (if_statement "if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;" (if "if") (parenthesized_expression "(DAT_000313e4 < uVar22)" (( "(") (binary_expression "DAT_000313e4 < uVar22" (identifier "DAT_000313e4") (< "<") (identifier "uVar22")) () ")")) (goto_statement "goto code_r0x00018bcb;" (goto "goto") (statement_identifier "code_r0x00018bcb") (; ";"))) (expression_statement "uVar5 = (uint)*(byte *)(puVar1 + 4);" (assignment_expression "uVar5 = (uint)*(byte *)(puVar1 + 4)" (identifier "uVar5") (= "=") (binary_expression "(uint)*(byte *)(puVar1 + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(puVar1 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 4)" (( "(") (binary_expression "puVar1 + 4" (identifier "puVar1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1);" (assignment_expression "iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1)" (identifier "iVar6") (= "=") (call_expression "FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1)" (identifier "FUN_000198e0") (argument_list "(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,\n                             (*(byte *)(puVar1 + 4) >> 4) + 1)" (( "(") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (, ",") (identifier "DAT_000313e0") (, ",") (identifier "DAT_000313e4") (, ",") (identifier "uVar22") (, ",") (number_literal "0x3136c") (, ",") (binary_expression "(*(byte *)(puVar1 + 4) >> 4) + 1" (parenthesized_expression "(*(byte *)(puVar1 + 4) >> 4)" (( "(") (binary_expression "*(byte *)(puVar1 + 4) >> 4" (pointer_expression "*(byte *)(puVar1 + 4)" (* "*") (cast_expression "(byte *)(puVar1 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 4)" (( "(") (binary_expression "puVar1 + 4" (identifier "puVar1") (+ "+") (number_literal "4")) () ")")))) (>> ">>") (number_literal "4")) () ")")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (iVar6 == 0) goto code_r0x00018ba8;" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00018ba8;" (goto "goto") (statement_identifier "code_r0x00018ba8") (; ";"))) (expression_statement "uVar5 = *puRam00031370;" (assignment_expression "uVar5 = *puRam00031370" (identifier "uVar5") (= "=") (pointer_expression "*puRam00031370" (* "*") (identifier "puRam00031370"))) (; ";")) (expression_statement "uVar9 = *puRam00031374;" (assignment_expression "uVar9 = *puRam00031374" (identifier "uVar9") (= "=") (pointer_expression "*puRam00031374" (* "*") (identifier "puRam00031374"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (if_statement "if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }\n    else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }" (if "if") (parenthesized_expression "((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0))" (( "(") (binary_expression "(uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)" (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)" (( "(") (comma_expression "bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0" (assignment_expression "bVar18 = *(byte *)(puVar1 + 4)" (identifier "bVar18") (= "=") (pointer_expression "*(byte *)(puVar1 + 4)" (* "*") (cast_expression "(byte *)(puVar1 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 4)" (( "(") (binary_expression "puVar1 + 4" (identifier "puVar1") (+ "+") (number_literal "4")) () ")"))))) (, ",") (binary_expression "(bVar18 & 1) == 0" (parenthesized_expression "(bVar18 & 1)" (( "(") (binary_expression "bVar18 & 1" (identifier "bVar18") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      DAT_000313e4 = DAT_000313e4 - uVar9;\n      DAT_000313e0 = DAT_000313e0 + uVar9;\n      DAT_000313e8 = DAT_000313e8 - *puRam00031374;\n      DAT_00031408 = '\x01';\n    }" ({ "{") (expression_statement "DAT_000313e4 = DAT_000313e4 - uVar9;" (assignment_expression "DAT_000313e4 = DAT_000313e4 - uVar9" (identifier "DAT_000313e4") (= "=") (binary_expression "DAT_000313e4 - uVar9" (identifier "DAT_000313e4") (- "-") (identifier "uVar9"))) (; ";")) (expression_statement "DAT_000313e0 = DAT_000313e0 + uVar9;" (assignment_expression "DAT_000313e0 = DAT_000313e0 + uVar9" (identifier "DAT_000313e0") (= "=") (binary_expression "DAT_000313e0 + uVar9" (identifier "DAT_000313e0") (+ "+") (identifier "uVar9"))) (; ";")) (expression_statement "DAT_000313e8 = DAT_000313e8 - *puRam00031374;" (assignment_expression "DAT_000313e8 = DAT_000313e8 - *puRam00031374" (identifier "DAT_000313e8") (= "=") (binary_expression "DAT_000313e8 - *puRam00031374" (identifier "DAT_000313e8") (- "-") (pointer_expression "*puRam00031374" (* "*") (identifier "puRam00031374")))) (; ";")) (expression_statement "DAT_00031408 = '\x01';" (assignment_expression "DAT_00031408 = '\x01'" (identifier "DAT_00031408") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }" (else "else") (compound_statement "{\n      if (uVar9 != DAT_000313e4) goto code_r0x00018127;\n      DAT_00031408 = '\x01';\n      bVar18 = *(byte *)(puVar1 + 4);\n      DAT_000313e4 = uVar5;\n    }" ({ "{") (if_statement "if (uVar9 != DAT_000313e4) goto code_r0x00018127;" (if "if") (parenthesized_expression "(uVar9 != DAT_000313e4)" (( "(") (binary_expression "uVar9 != DAT_000313e4" (identifier "uVar9") (!= "!=") (identifier "DAT_000313e4")) () ")")) (goto_statement "goto code_r0x00018127;" (goto "goto") (statement_identifier "code_r0x00018127") (; ";"))) (expression_statement "DAT_00031408 = '\x01';" (assignment_expression "DAT_00031408 = '\x01'" (identifier "DAT_00031408") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "bVar18 = *(byte *)(puVar1 + 4);" (assignment_expression "bVar18 = *(byte *)(puVar1 + 4)" (identifier "bVar18") (= "=") (pointer_expression "*(byte *)(puVar1 + 4)" (* "*") (cast_expression "(byte *)(puVar1 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 4)" (( "(") (binary_expression "puVar1 + 4" (identifier "puVar1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "DAT_000313e4 = uVar5;" (assignment_expression "DAT_000313e4 = uVar5" (identifier "DAT_000313e4") (= "=") (identifier "uVar5")) (; ";")) (} "}")))) (goto_statement "goto code_r0x00018bf8;" (goto "goto") (statement_identifier "code_r0x00018bf8") (; ";"))) (case_statement "case 0x51:\n    cVar4 = *pcVar26;\n    if (DAT_00031408 == '\0') goto code_r0x00017de7;\n    DAT_00031408 = '\0';\ncode_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);\n    goto joined_r0x00017cbb;" (case "case") (number_literal "0x51") (: ":") (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" (identifier "cVar4") (= "=") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26"))) (; ";")) (if_statement "if (DAT_00031408 == '\0') goto code_r0x00017de7;" (if "if") (parenthesized_expression "(DAT_00031408 == '\0')" (( "(") (binary_expression "DAT_00031408 == '\0'" (identifier "DAT_00031408") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00017de7;" (goto "goto") (statement_identifier "code_r0x00017de7") (; ";"))) (expression_statement "DAT_00031408 = '\0';" (assignment_expression "DAT_00031408 = '\0'" (identifier "DAT_00031408") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (labeled_statement "code_r0x00018263:\n    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);" (statement_identifier "code_r0x00018263") (: ":") (expression_statement "piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);" (assignment_expression "piVar20 = (int *)(*param_1 + piVar20[4] * 0x18)" (identifier "piVar20") (= "=") (cast_expression "(int *)(*param_1 + piVar20[4] * 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + piVar20[4] * 0x18)" (( "(") (binary_expression "*param_1 + piVar20[4] * 0x18" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (binary_expression "piVar20[4] * 0x18" (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]")) (* "*") (number_literal "0x18"))) () ")")))) (; ";"))) (goto_statement "goto joined_r0x00017cbb;" (goto "goto") (statement_identifier "joined_r0x00017cbb") (; ";"))) (case_statement "case 0x54:\n    puVar7 = (undefined *)piVar20[4];\n    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;\ncode_r0x00018030:\n    FUN_000178c0(puVar7);\n    cVar4 = *pcVar26;\n    goto code_r0x00017de7;" (case "case") (number_literal "0x54") (: ":") (expression_statement "puVar7 = (undefined *)piVar20[4];" (assignment_expression "puVar7 = (undefined *)piVar20[4]" (identifier "puVar7") (= "=") (cast_expression "(undefined *)piVar20[4]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;" (if "if") (parenthesized_expression "(*(int *)(puVar7 + 8) == 0)" (( "(") (binary_expression "*(int *)(puVar7 + 8) == 0" (pointer_expression "*(int *)(puVar7 + 8)" (* "*") (cast_expression "(int *)(puVar7 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 8)" (( "(") (binary_expression "puVar7 + 8" (identifier "puVar7") (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00017de0;" (goto "goto") (statement_identifier "LAB_00017de0") (; ";"))) (labeled_statement "code_r0x00018030:\n    FUN_000178c0(puVar7);" (statement_identifier "code_r0x00018030") (: ":") (expression_statement "FUN_000178c0(puVar7);" (call_expression "FUN_000178c0(puVar7)" (identifier "FUN_000178c0") (argument_list "(puVar7)" (( "(") (identifier "puVar7") () ")"))) (; ";"))) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" (identifier "cVar4") (= "=") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26"))) (; ";")) (goto_statement "goto code_r0x00017de7;" (goto "goto") (statement_identifier "code_r0x00017de7") (; ";"))) (case_statement "case 0x55:\n    FUN_00017220();\n    if (*pcVar26 == '\0') goto code_r0x000182c0;\n    FUN_00016620();\n    goto code_r0x0001861e;" (case "case") (number_literal "0x55") (: ":") (expression_statement "FUN_00017220();" (call_expression "FUN_00017220()" (identifier "FUN_00017220") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*pcVar26 == '\0') goto code_r0x000182c0;" (if "if") (parenthesized_expression "(*pcVar26 == '\0')" (( "(") (binary_expression "*pcVar26 == '\0'" (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x000182c0;" (goto "goto") (statement_identifier "code_r0x000182c0") (; ";"))) (expression_statement "FUN_00016620();" (call_expression "FUN_00016620()" (identifier "FUN_00016620") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x0001861e;" (goto "goto") (statement_identifier "code_r0x0001861e") (; ";"))) (case_statement "case 0x56:\n    if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }\n    goto code_r0x000188c9;" (case "case") (number_literal "0x56") (: ":") (if_statement "if (DAT_000316c4 < 2) {\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }\n    else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }" (if "if") (parenthesized_expression "(DAT_000316c4 < 2)" (( "(") (binary_expression "DAT_000316c4 < 2" (identifier "DAT_000316c4") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      pbVar13 = DAT_000313e0 + DAT_000313e4;\n      if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }\n    }" ({ "{") (expression_statement "pbVar13 = DAT_000313e0 + DAT_000313e4;" (assignment_expression "pbVar13 = DAT_000313e0 + DAT_000313e4" (identifier "pbVar13") (= "=") (binary_expression "DAT_000313e0 + DAT_000313e4" (identifier "DAT_000313e0") (+ "+") (identifier "DAT_000313e4"))) (; ";")) (if_statement "if (DAT_000313e0 < pbVar13) {\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }" (if "if") (parenthesized_expression "(DAT_000313e0 < pbVar13)" (( "(") (binary_expression "DAT_000313e0 < pbVar13" (identifier "DAT_000313e0") (< "<") (identifier "pbVar13")) () ")")) (compound_statement "{\n        do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);\n      }" ({ "{") (do_statement "do {\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        } while (pbVar13 != pbVar19);" (do "do") (compound_statement "{\n          pbVar19 = pbVar23 + 1;\n          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);\n          pbVar23 = pbVar19;\n        }" ({ "{") (expression_statement "pbVar19 = pbVar23 + 1;" (assignment_expression "pbVar19 = pbVar23 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar23 + 1" (identifier "pbVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);" (assignment_expression "*pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23)" (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")) (= "=") (pointer_expression "*(byte *)(piVar20[4] + (uint)*pbVar23)" (* "*") (cast_expression "(byte *)(piVar20[4] + (uint)*pbVar23)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar20[4] + (uint)*pbVar23)" (( "(") (binary_expression "piVar20[4] + (uint)*pbVar23" (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]")) (+ "+") (binary_expression "(uint)*pbVar23" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar23"))) () ")"))))) (; ";")) (expression_statement "pbVar23 = pbVar19;" (assignment_expression "pbVar23 = pbVar19" (identifier "pbVar23") (= "=") (identifier "pbVar19")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar13 != pbVar19)" (( "(") (binary_expression "pbVar13 != pbVar19" (identifier "pbVar13") (!= "!=") (identifier "pbVar19")) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }" (else "else") (compound_statement "{\n      piVar8 = (int *)piVar20[4];\n      uStack_1028 = 0;\n      uStack_1024 = 0;\n      if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }\n    }" ({ "{") (expression_statement "piVar8 = (int *)piVar20[4];" (assignment_expression "piVar8 = (int *)piVar20[4]" (identifier "piVar8") (= "=") (cast_expression "(int *)piVar20[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "uStack_1028 = 0;" (assignment_expression "uStack_1028 = 0" (identifier "uStack_1028") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_1024 = 0;" (assignment_expression "uStack_1024 = 0" (identifier "uStack_1024") (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_000313e4 != 0) {\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }" (if "if") (parenthesized_expression "(DAT_000313e4 != 0)" (( "(") (binary_expression "DAT_000313e4 != 0" (identifier "DAT_000313e4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uStack_1068 = 0;\n        do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);\n      }" ({ "{") (expression_statement "uStack_1068 = 0;" (assignment_expression "uStack_1068 = 0" (identifier "uStack_1068") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        } while (uStack_1068 < DAT_000313e4);" (do "do") (compound_statement "{\n          if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }\n          pcVar24 = (char *)*piVar8;\n          if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }\n          uStack_1068 = uStack_1068 + uVar5;\n        }" ({ "{") (if_statement "if ((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {\n            uVar5 = 1;\n          }" (if "if") (parenthesized_expression "((DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1))" (( "(") (binary_expression "(DAT_000316c4 == 1) ||\n             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)" (parenthesized_expression "(DAT_000316c4 == 1)" (( "(") (binary_expression "DAT_000316c4 == 1" (identifier "DAT_000316c4") (== "==") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1)" (( "(") (comma_expression "uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028), 0xfffffffc < uVar5 - 1" (assignment_expression "uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028)" (identifier "uVar5") (= "=") (call_expression "FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028)" (identifier "FUN_00025160") (argument_list "(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,\n                                   &uStack_1028)" (( "(") (number_literal "0") (, ",") (binary_expression "DAT_000313e0 + uStack_1068" (identifier "DAT_000313e0") (+ "+") (identifier "uStack_1068")) (, ",") (binary_expression "DAT_000313e4 - uStack_1068" (identifier "DAT_000313e4") (- "-") (identifier "uStack_1068")) (, ",") (pointer_expression "&uStack_1028" (& "&") (identifier "uStack_1028")) () ")")))) (, ",") (binary_expression "0xfffffffc < uVar5 - 1" (number_literal "0xfffffffc") (< "<") (binary_expression "uVar5 - 1" (identifier "uVar5") (- "-") (number_literal "1")))) () ")"))) () ")")) (compound_statement "{\n            uVar5 = 1;\n          }" ({ "{") (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "pcVar24 = (char *)*piVar8;" (assignment_expression "pcVar24 = (char *)*piVar8" (identifier "pcVar24") (= "=") (cast_expression "(char *)*piVar8" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar8" (* "*") (identifier "piVar8")))) (; ";")) (if_statement "if (pcVar24 != (char *)0x0) {\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }" (if "if") (parenthesized_expression "(pcVar24 != (char *)0x0)" (( "(") (binary_expression "pcVar24 != (char *)0x0" (identifier "pcVar24") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar6 = 0;\n            pbStack_105c = DAT_000313e0;\n            pbVar23 = DAT_000313e0 + uStack_1068;\n            do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);\n          }" ({ "{") (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbStack_105c = DAT_000313e0;" (assignment_expression "pbStack_105c = DAT_000313e0" (identifier "pbStack_105c") (= "=") (identifier "DAT_000313e0")) (; ";")) (expression_statement "pbVar23 = DAT_000313e0 + uStack_1068;" (assignment_expression "pbVar23 = DAT_000313e0 + uStack_1068" (identifier "pbVar23") (= "=") (binary_expression "DAT_000313e0 + uStack_1068" (identifier "DAT_000313e0") (+ "+") (identifier "uStack_1068"))) (; ";")) (do_statement "do {\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            } while (pcVar24 != (char *)0x0);" (do "do") (compound_statement "{\n              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);\n              if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }\n              iVar6 = iVar6 + 8;\n              pcVar24 = *(char **)((int)piVar8 + iVar6);\n            }" ({ "{") (expression_statement "iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);" (assignment_expression "iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5)" (identifier "iVar10") (= "=") (call_expression "strncmp((char *)pbVar23,pcVar24,uVar5)" (identifier "strncmp") (argument_list "((char *)pbVar23,pcVar24,uVar5)" (( "(") (cast_expression "(char *)pbVar23" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar23")) (, ",") (identifier "pcVar24") (, ",") (identifier "uVar5") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);\n                pcVar24 = (char *)*puVar1;\n                if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }\n                memcpy(pbVar23,pcVar24,uStack_1060);\n                break;\n              }" ({ "{") (expression_statement "puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);" (assignment_expression "puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4)" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)((int)piVar8 + iVar6 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar8 + iVar6 + 4)" (( "(") (binary_expression "(int)piVar8 + iVar6 + 4" (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8")) (+ "+") (identifier "iVar6")) (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "pcVar24 = (char *)*puVar1;" (assignment_expression "pcVar24 = (char *)*puVar1" (identifier "pcVar24") (= "=") (cast_expression "(char *)*puVar1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")))) (; ";")) (if_statement "if (*pcVar24 == '\0') {\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }\n                else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }" (if "if") (parenthesized_expression "(*pcVar24 == '\0')" (( "(") (binary_expression "*pcVar24 == '\0'" (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  uStack_1060 = 1;\ncode_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }\n                }" ({ "{") (expression_statement "uStack_1060 = 1;" (assignment_expression "uStack_1060 = 1" (identifier "uStack_1060") (= "=") (number_literal "1")) (; ";")) (labeled_statement "code_r0x00018c70:\n                  if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }" (statement_identifier "code_r0x00018c70") (: ":") (if_statement "if (uStack_1060 < uVar5) {\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }" (if "if") (parenthesized_expression "(uStack_1060 < uVar5)" (( "(") (binary_expression "uStack_1060 < uVar5" (identifier "uStack_1060") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n                    iVar6 = DAT_000313e4 + 1;\n                    goto code_r0x0001841c;\n                  }" ({ "{") (expression_statement "iVar6 = DAT_000313e4 + 1;" (assignment_expression "iVar6 = DAT_000313e4 + 1" (identifier "iVar6") (= "=") (binary_expression "DAT_000313e4 + 1" (identifier "DAT_000313e4") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto code_r0x0001841c;" (goto "goto") (statement_identifier "code_r0x0001841c") (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }" (else "else") (compound_statement "{\n                  uStack_1060 = strlen(pcVar24);\n                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;\n                  iVar6 = DAT_000313e4 + 1;\n                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }\ncode_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));\n                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);\n                  pcVar24 = (char *)*puVar1;\n                  pbVar23 = DAT_000313e0 + uStack_1068;\n                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);\n                }" ({ "{") (expression_statement "uStack_1060 = strlen(pcVar24);" (assignment_expression "uStack_1060 = strlen(pcVar24)" (identifier "uStack_1060") (= "=") (call_expression "strlen(pcVar24)" (identifier "strlen") (argument_list "(pcVar24)" (( "(") (identifier "pcVar24") () ")")))) (; ";")) (if_statement "if (uStack_1060 <= uVar5) goto code_r0x00018c70;" (if "if") (parenthesized_expression "(uStack_1060 <= uVar5)" (( "(") (binary_expression "uStack_1060 <= uVar5" (identifier "uStack_1060") (<= "<=") (identifier "uVar5")) () ")")) (goto_statement "goto code_r0x00018c70;" (goto "goto") (statement_identifier "code_r0x00018c70") (; ";"))) (expression_statement "iVar6 = DAT_000313e4 + 1;" (assignment_expression "iVar6 = DAT_000313e4 + 1" (identifier "iVar6") (= "=") (binary_expression "DAT_000313e4 + 1" (identifier "DAT_000313e4") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }" (if "if") (parenthesized_expression "(DAT_000313e8 < (iVar6 - uVar5) + uStack_1060)" (( "(") (binary_expression "DAT_000313e8 < (iVar6 - uVar5) + uStack_1060" (identifier "DAT_000313e8") (< "<") (binary_expression "(iVar6 - uVar5) + uStack_1060" (parenthesized_expression "(iVar6 - uVar5)" (( "(") (binary_expression "iVar6 - uVar5" (identifier "iVar6") (- "-") (identifier "uVar5")) () ")")) (+ "+") (identifier "uStack_1060"))) () ")")) (compound_statement "{\n                    FUN_000166d0();\n                    pbStack_105c = DAT_000313e0;\n                    iVar6 = DAT_000313e4 + 1;\n                  }" ({ "{") (expression_statement "FUN_000166d0();" (call_expression "FUN_000166d0()" (identifier "FUN_000166d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbStack_105c = DAT_000313e0;" (assignment_expression "pbStack_105c = DAT_000313e0" (identifier "pbStack_105c") (= "=") (identifier "DAT_000313e0")) (; ";")) (expression_statement "iVar6 = DAT_000313e4 + 1;" (assignment_expression "iVar6 = DAT_000313e4 + 1" (identifier "iVar6") (= "=") (binary_expression "DAT_000313e4 + 1" (identifier "DAT_000313e4") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (labeled_statement "code_r0x0001841c:\n                  memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));" (statement_identifier "code_r0x0001841c") (: ":") (expression_statement "memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));" (call_expression "memmove(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068))" (identifier "memmove") (argument_list "(pbStack_105c + uStack_1068 + uStack_1060,\n                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068))" (( "(") (binary_expression "pbStack_105c + uStack_1068 + uStack_1060" (binary_expression "pbStack_105c + uStack_1068" (identifier "pbStack_105c") (+ "+") (identifier "uStack_1068")) (+ "+") (identifier "uStack_1060")) (, ",") (binary_expression "pbStack_105c + uVar5 + uStack_1068" (binary_expression "pbStack_105c + uVar5" (identifier "pbStack_105c") (+ "+") (identifier "uVar5")) (+ "+") (identifier "uStack_1068")) (, ",") (binary_expression "iVar6 - (uVar5 + uStack_1068)" (identifier "iVar6") (- "-") (parenthesized_expression "(uVar5 + uStack_1068)" (( "(") (binary_expression "uVar5 + uStack_1068" (identifier "uVar5") (+ "+") (identifier "uStack_1068")) () ")"))) () ")"))) (; ";"))) (expression_statement "DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);" (assignment_expression "DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5)" (identifier "DAT_000313e4") (= "=") (binary_expression "DAT_000313e4 + (uStack_1060 - uVar5)" (identifier "DAT_000313e4") (+ "+") (parenthesized_expression "(uStack_1060 - uVar5)" (( "(") (binary_expression "uStack_1060 - uVar5" (identifier "uStack_1060") (- "-") (identifier "uVar5")) () ")")))) (; ";")) (expression_statement "pcVar24 = (char *)*puVar1;" (assignment_expression "pcVar24 = (char *)*puVar1" (identifier "pcVar24") (= "=") (cast_expression "(char *)*puVar1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")))) (; ";")) (expression_statement "pbVar23 = DAT_000313e0 + uStack_1068;" (assignment_expression "pbVar23 = DAT_000313e0 + uStack_1068" (identifier "pbVar23") (= "=") (binary_expression "DAT_000313e0 + uStack_1068" (identifier "DAT_000313e0") (+ "+") (identifier "uStack_1068"))) (; ";")) (expression_statement "uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);" (assignment_expression "uStack_1068 = uStack_1068 + (uStack_1060 - uVar5)" (identifier "uStack_1068") (= "=") (binary_expression "uStack_1068 + (uStack_1060 - uVar5)" (identifier "uStack_1068") (+ "+") (parenthesized_expression "(uStack_1060 - uVar5)" (( "(") (binary_expression "uStack_1060 - uVar5" (identifier "uStack_1060") (- "-") (identifier "uVar5")) () ")")))) (; ";")) (} "}")))) (expression_statement "memcpy(pbVar23,pcVar24,uStack_1060);" (call_expression "memcpy(pbVar23,pcVar24,uStack_1060)" (identifier "memcpy") (argument_list "(pbVar23,pcVar24,uStack_1060)" (( "(") (identifier "pbVar23") (, ",") (identifier "pcVar24") (, ",") (identifier "uStack_1060") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar6 = iVar6 + 8;" (assignment_expression "iVar6 = iVar6 + 8" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 8" (identifier "iVar6") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "pcVar24 = *(char **)((int)piVar8 + iVar6);" (assignment_expression "pcVar24 = *(char **)((int)piVar8 + iVar6)" (identifier "pcVar24") (= "=") (pointer_expression "*(char **)((int)piVar8 + iVar6)" (* "*") (cast_expression "(char **)((int)piVar8 + iVar6)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)piVar8 + iVar6)" (( "(") (binary_expression "(int)piVar8 + iVar6" (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8")) (+ "+") (identifier "iVar6")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar24 != (char *)0x0)" (( "(") (binary_expression "pcVar24 != (char *)0x0" (identifier "pcVar24") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "uStack_1068 = uStack_1068 + uVar5;" (assignment_expression "uStack_1068 = uStack_1068 + uVar5" (identifier "uStack_1068") (= "=") (binary_expression "uStack_1068 + uVar5" (identifier "uStack_1068") (+ "+") (identifier "uVar5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uStack_1068 < DAT_000313e4)" (( "(") (binary_expression "uStack_1068 < DAT_000313e4" (identifier "uStack_1068") (< "<") (identifier "DAT_000313e4")) () ")")) (; ";")) (} "}"))) (} "}")))) (goto_statement "goto code_r0x000188c9;" (goto "goto") (statement_identifier "code_r0x000188c9") (; ";"))) (case_statement "case 0x57:\n    DAT_000313e4 = 0;\n    goto code_r0x000188c9;" (case "case") (number_literal "0x57") (: ":") (expression_statement "DAT_000313e4 = 0;" (assignment_expression "DAT_000313e4 = 0" (identifier "DAT_000313e4") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto code_r0x000188c9;" (goto "goto") (statement_identifier "code_r0x000188c9") (; ";"))) (} "}"))) (if_statement "if (cVar4 == '\0') goto code_r0x000182c0;" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x000182c0;" (goto "goto") (statement_identifier "code_r0x000182c0") (; ";"))) (labeled_statement "code_r0x0001861e:\n  FUN_00016620();" (statement_identifier "code_r0x0001861e") (: ":") (expression_statement "FUN_00016620();" (call_expression "FUN_00016620()" (identifier "FUN_00016620") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" (identifier "cVar4") (= "=") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26"))) (; ";")) (goto_statement "goto code_r0x00017de7;" (goto "goto") (statement_identifier "code_r0x00017de7") (; ";")) (labeled_statement "code_r0x00018ba8:\n  if (uVar22 < DAT_000313e4) {\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }" (statement_identifier "code_r0x00018ba8") (: ":") (if_statement "if (uVar22 < DAT_000313e4) {\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }" (if "if") (parenthesized_expression "(uVar22 < DAT_000313e4)" (( "(") (binary_expression "uVar22 < DAT_000313e4" (identifier "uVar22") (< "<") (identifier "DAT_000313e4")) () ")")) (compound_statement "{\n    FUN_00016f30(param_2,pcVar26,uVar5);\n  }" ({ "{") (expression_statement "FUN_00016f30(param_2,pcVar26,uVar5);" (call_expression "FUN_00016f30(param_2,pcVar26,uVar5)" (identifier "FUN_00016f30") (argument_list "(param_2,pcVar26,uVar5)" (( "(") (identifier "param_2") (, ",") (identifier "pcVar26") (, ",") (identifier "uVar5") () ")"))) (; ";")) (} "}")))) (labeled_statement "code_r0x00018bcb:\n  DAT_000313d0._0_1_ = (undefined1)DAT_000313ec;" (statement_identifier "code_r0x00018bcb") (: ":") (expression_statement "DAT_000313d0._0_1_ = (undefined1)DAT_000313ec;" (assignment_expression "DAT_000313d0._0_1_ = (undefined1)DAT_000313ec" (field_expression "DAT_000313d0._0_1_" (identifier "DAT_000313d0") (. ".") (field_identifier "_0_1_")) (= "=") (cast_expression "(undefined1)DAT_000313ec" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "DAT_000313ec"))) (; ";"))) (expression_statement "FUN_00017220();" (call_expression "FUN_00017220()" (identifier "FUN_00017220") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((uint)puVar1[2] <= uStack_1058) {\n    bVar18 = *(byte *)(puVar1 + 4);\ncode_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }\n  }" (if "if") (parenthesized_expression "((uint)puVar1[2] <= uStack_1058)" (( "(") (binary_expression "(uint)puVar1[2] <= uStack_1058" (cast_expression "(uint)puVar1[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]"))) (<= "<=") (identifier "uStack_1058")) () ")")) (compound_statement "{\n    bVar18 = *(byte *)(puVar1 + 4);\ncode_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }\n    if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }\n    if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }\n  }" ({ "{") (expression_statement "bVar18 = *(byte *)(puVar1 + 4);" (assignment_expression "bVar18 = *(byte *)(puVar1 + 4)" (identifier "bVar18") (= "=") (pointer_expression "*(byte *)(puVar1 + 4)" (* "*") (cast_expression "(byte *)(puVar1 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 4)" (( "(") (binary_expression "puVar1 + 4" (identifier "puVar1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (labeled_statement "code_r0x00018bf8:\n    if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }" (statement_identifier "code_r0x00018bf8") (: ":") (if_statement "if ((bVar18 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }" (if "if") (parenthesized_expression "((bVar18 & 2) != 0)" (( "(") (binary_expression "(bVar18 & 2) != 0" (parenthesized_expression "(bVar18 & 2)" (( "(") (binary_expression "bVar18 & 2" (identifier "bVar18") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_000178c0(&DAT_000313f8);\n      bVar18 = *(byte *)(puVar1 + 4);\n    }" ({ "{") (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" (identifier "FUN_000178c0") (argument_list "(&DAT_000313f8)" (( "(") (pointer_expression "&DAT_000313f8" (& "&") (identifier "DAT_000313f8")) () ")"))) (; ";")) (expression_statement "bVar18 = *(byte *)(puVar1 + 4);" (assignment_expression "bVar18 = *(byte *)(puVar1 + 4)" (identifier "bVar18") (= "=") (pointer_expression "*(byte *)(puVar1 + 4)" (* "*") (cast_expression "(byte *)(puVar1 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 4)" (( "(") (binary_expression "puVar1 + 4" (identifier "puVar1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")))) (if_statement "if ((bVar18 & 8) != 0) {\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }" (if "if") (parenthesized_expression "((bVar18 & 8) != 0)" (( "(") (binary_expression "(bVar18 & 8) != 0" (parenthesized_expression "(bVar18 & 8)" (( "(") (binary_expression "bVar18 & 8" (identifier "bVar18") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00017840();\n      FUN_00016f30();\n      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");\n      uVar16 = extraout_ECX_02;\n      if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }\n      bVar18 = (byte)pFVar14->_flags;\n      while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }\n      func_0x00012380(pFVar14);\n      FUN_000176c0();\n      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }\n      bVar18 = *(byte *)(puVar1 + 4);\n    }" ({ "{") (expression_statement "FUN_00017840();" (call_expression "FUN_00017840()" (identifier "FUN_00017840") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" (identifier "FUN_00016f30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");" (assignment_expression "pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r")" (identifier "pFVar14") (= "=") (cast_expression "(FILE *)func_0x00012160(DAT_000313e0,"r")" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "func_0x00012160(DAT_000313e0,"r")" (identifier "func_0x00012160") (argument_list "(DAT_000313e0,"r")" (( "(") (identifier "DAT_000313e0") (, ",") (string_literal ""r"" (" """) (string_content "r") (" """)) () ")"))))) (; ";")) (expression_statement "uVar16 = extraout_ECX_02;" (assignment_expression "uVar16 = extraout_ECX_02" (identifier "uVar16") (= "=") (identifier "extraout_ECX_02")) (; ";")) (if_statement "if (pFVar14 == (FILE *)0x0) {\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }" (if "if") (parenthesized_expression "(pFVar14 == (FILE *)0x0)" (( "(") (binary_expression "pFVar14 == (FILE *)0x0" (identifier "pFVar14") (== "==") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\ncode_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);\n                    \n        FUN_0001a340(uVar16);\n      }" ({ "{") (labeled_statement "code_r0x0001925a:\n        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);" (statement_identifier "code_r0x0001925a") (: ":") (expression_statement "uVar16 = dcgettext(0,"error in subprocess",5,uVar16);" (assignment_expression "uVar16 = dcgettext(0,"error in subprocess",5,uVar16)" (identifier "uVar16") (= "=") (call_expression "dcgettext(0,"error in subprocess",5,uVar16)" (identifier "dcgettext") (argument_list "(0,"error in subprocess",5,uVar16)" (( "(") (number_literal "0") (, ",") (string_literal ""error in subprocess"" (" """) (string_content "error in subprocess") (" """)) (, ",") (number_literal "5") (, ",") (identifier "uVar16") () ")")))) (; ";"))) (expression_statement "FUN_0001a340(uVar16);" (call_expression "FUN_0001a340(uVar16)" (identifier "FUN_0001a340") (argument_list "(uVar16)" (( "(") (identifier "uVar16") () ")"))) (; ";")) (} "}"))) (expression_statement "bVar18 = (byte)pFVar14->_flags;" (assignment_expression "bVar18 = (byte)pFVar14->_flags" (identifier "bVar18") (= "=") (cast_expression "(byte)pFVar14->_flags" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (field_expression "pFVar14->_flags" (identifier "pFVar14") (-> "->") (field_identifier "_flags")))) (; ";")) (while_statement "while ((bVar18 & 0x10) == 0) {\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }" (while "while") (parenthesized_expression "((bVar18 & 0x10) == 0)" (( "(") (binary_expression "(bVar18 & 0x10) == 0" (parenthesized_expression "(bVar18 & 0x10)" (( "(") (binary_expression "bVar18 & 0x10" (identifier "bVar18") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);\n        if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }\n        bVar18 = (byte)pFVar14->_flags;\n      }" ({ "{") (expression_statement "sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);" (assignment_expression "sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14)" (identifier "sVar15") (= "=") (call_expression "fread_unlocked(&bStack_1020,1,0x1000,pFVar14)" (identifier "fread_unlocked") (argument_list "(&bStack_1020,1,0x1000,pFVar14)" (( "(") (pointer_expression "&bStack_1020" (& "&") (identifier "bStack_1020")) (, ",") (number_literal "1") (, ",") (number_literal "0x1000") (, ",") (identifier "pFVar14") () ")")))) (; ";")) (if_statement "if (0 < (int)sVar15) {\n          FUN_00016f30();\n        }" (if "if") (parenthesized_expression "(0 < (int)sVar15)" (( "(") (binary_expression "0 < (int)sVar15" (number_literal "0") (< "<") (cast_expression "(int)sVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar15"))) () ")")) (compound_statement "{\n          FUN_00016f30();\n        }" ({ "{") (expression_statement "FUN_00016f30();" (call_expression "FUN_00016f30()" (identifier "FUN_00016f30") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "bVar18 = (byte)pFVar14->_flags;" (assignment_expression "bVar18 = (byte)pFVar14->_flags" (identifier "bVar18") (= "=") (cast_expression "(byte)pFVar14->_flags" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (field_expression "pFVar14->_flags" (identifier "pFVar14") (-> "->") (field_identifier "_flags")))) (; ";")) (} "}"))) (expression_statement "func_0x00012380(pFVar14);" (call_expression "func_0x00012380(pFVar14)" (identifier "func_0x00012380") (argument_list "(pFVar14)" (( "(") (identifier "pFVar14") () ")"))) (; ";")) (expression_statement "FUN_000176c0();" (call_expression "FUN_000176c0()" (identifier "FUN_000176c0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }" (if "if") (parenthesized_expression "((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240))" (( "(") (binary_expression "(DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)" (parenthesized_expression "(DAT_000313e4 != 0)" (( "(") (binary_expression "DAT_000313e4 != 0" (identifier "DAT_000313e4") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)" (( "(") (binary_expression "DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240" (subscript_expression "DAT_000313e0[DAT_000313e4 - 1]" (identifier "DAT_000313e0") ([ "[") (binary_expression "DAT_000313e4 - 1" (identifier "DAT_000313e4") (- "-") (number_literal "1")) (] "]")) (== "==") (identifier "DAT_00031240")) () ")"))) () ")")) (compound_statement "{\n        DAT_000313e4 = DAT_000313e4 - 1;\n      }" ({ "{") (expression_statement "DAT_000313e4 = DAT_000313e4 - 1;" (assignment_expression "DAT_000313e4 = DAT_000313e4 - 1" (identifier "DAT_000313e4") (= "=") (binary_expression "DAT_000313e4 - 1" (identifier "DAT_000313e4") (- "-") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "bVar18 = *(byte *)(puVar1 + 4);" (assignment_expression "bVar18 = *(byte *)(puVar1 + 4)" (identifier "bVar18") (= "=") (pointer_expression "*(byte *)(puVar1 + 4)" (* "*") (cast_expression "(byte *)(puVar1 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 4)" (( "(") (binary_expression "puVar1 + 4" (identifier "puVar1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (if_statement "if ((bVar18 >> 1 & 2) != 0) {\n      FUN_000178c0(&DAT_000313f8);\n    }" (if "if") (parenthesized_expression "((bVar18 >> 1 & 2) != 0)" (( "(") (binary_expression "(bVar18 >> 1 & 2) != 0" (parenthesized_expression "(bVar18 >> 1 & 2)" (( "(") (binary_expression "bVar18 >> 1 & 2" (binary_expression "bVar18 >> 1" (identifier "bVar18") (>> ">>") (number_literal "1")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_000178c0(&DAT_000313f8);\n    }" ({ "{") (expression_statement "FUN_000178c0(&DAT_000313f8);" (call_expression "FUN_000178c0(&DAT_000313f8)" (identifier "FUN_000178c0") (argument_list "(&DAT_000313f8)" (( "(") (pointer_expression "&DAT_000313f8" (& "&") (identifier "DAT_000313f8")) () ")"))) (; ";")) (} "}"))) (if_statement "if (puVar1[3] != 0) {\n      FUN_000178c0(puVar1[3]);\n    }" (if "if") (parenthesized_expression "(puVar1[3] != 0)" (( "(") (binary_expression "puVar1[3] != 0" (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_000178c0(puVar1[3]);\n    }" ({ "{") (expression_statement "FUN_000178c0(puVar1[3]);" (call_expression "FUN_000178c0(puVar1[3])" (identifier "FUN_000178c0") (argument_list "(puVar1[3])" (( "(") (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) () ")"))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "code_r0x000188c9:\n  if (*pcVar26 != '\0') {\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }" (statement_identifier "code_r0x000188c9") (: ":") (if_statement "if (*pcVar26 != '\0') {\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }" (if "if") (parenthesized_expression "(*pcVar26 != '\0')" (( "(") (binary_expression "*pcVar26 != '\0'" (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\ncode_r0x00017dd0:\n    FUN_00016620();\n    goto LAB_00017de0;\n  }" ({ "{") (labeled_statement "code_r0x00017dd0:\n    FUN_00016620();" (statement_identifier "code_r0x00017dd0") (: ":") (expression_statement "FUN_00016620();" (call_expression "FUN_00016620()" (identifier "FUN_00016620") (argument_list "()" (( "(") () ")"))) (; ";"))) (goto_statement "goto LAB_00017de0;" (goto "goto") (statement_identifier "LAB_00017de0") (; ";")) (} "}")))) (labeled_statement "code_r0x000182c0:\n  piVar20 = piVar20 + 6;" (statement_identifier "code_r0x000182c0") (: ":") (expression_statement "piVar20 = piVar20 + 6;" (assignment_expression "piVar20 = piVar20 + 6" (identifier "piVar20") (= "=") (binary_expression "piVar20 + 6" (identifier "piVar20") (+ "+") (number_literal "6"))) (; ";"))) (labeled_statement "joined_r0x00018523:\n  if (piVar2 <= piVar20) goto LAB_00017e10;" (statement_identifier "joined_r0x00018523") (: ":") (if_statement "if (piVar2 <= piVar20) goto LAB_00017e10;" (if "if") (parenthesized_expression "(piVar2 <= piVar20)" (( "(") (binary_expression "piVar2 <= piVar20" (identifier "piVar2") (<= "<=") (identifier "piVar20")) () ")")) (goto_statement "goto LAB_00017e10;" (goto "goto") (statement_identifier "LAB_00017e10") (; ";")))) (goto_statement "goto LAB_00017cfb;" (goto "goto") (statement_identifier "LAB_00017cfb") (; ";")) (labeled_statement "code_r0x00018860:\n  piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);" (statement_identifier "code_r0x00018860") (: ":") (expression_statement "piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);" (assignment_expression "piVar20 = (int *)(*param_1 + piVar20[4] * 0x18)" (identifier "piVar20") (= "=") (cast_expression "(int *)(*param_1 + piVar20[4] * 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + piVar20[4] * 0x18)" (( "(") (binary_expression "*param_1 + piVar20[4] * 0x18" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (binary_expression "piVar20[4] * 0x18" (subscript_expression "piVar20[4]" (identifier "piVar20") ([ "[") (number_literal "4") (] "]")) (* "*") (number_literal "0x18"))) () ")")))) (; ";"))) (expression_statement "cVar4 = *pcVar26;" (assignment_expression "cVar4 = *pcVar26" (identifier "cVar4") (= "=") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26"))) (; ";")) (goto_statement "goto joined_r0x00017cbb;" (goto "goto") (statement_identifier "joined_r0x00017cbb") (; ";")) (} "}")))

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

int __regparm3 function_1(type_1 *vec,type_2 *type_2)

{
  type_3 var_59;
  size_t var_3;
  int var_9;
  type_4 *var_41;
  type_5 *type_5;
  type_6 *var_78;
  type_7 **var_2;
  type_8 *puVar7;
  type_9 _Var8;
  char var_5;
  type_10 var_17;
  char *var_63;
  type_11 *var_92;
  type_12 *paVar13;
  size_t var_64;
  type_13 var_21;
  size_t var_30;
  type_7 *var_13;
  int var_85;
  int var_71;
  type_14 **ppuVar20;
  void *var_29;
  type_3 *var_67;
  type_4 *var_50;
  type_7 *var_18;
  type_7 *extraout_ECX;
  type_7 *extraout_ECX_00;
  type_7 *extraout_ECX_01;
  type_7 *extraout_ECX_02;
  type_7 *extraout_ECX_03;
  type_7 *extraout_ECX_04;
  type_7 *extraout_ECX_05;
  type_7 *extraout_ECX_06;
  type_7 *extraout_ECX_07;
  type_7 *extraout_ECX_08;
  type_7 *extraout_ECX_09;
  type_15 *extraout_ECX_10;
  type_7 *extraout_ECX_11;
  type_7 *extraout_ECX_12;
  type_7 *extraout_ECX_13;
  char *pcVar24;
  type_7 *extraout_ECX_14;
  type_7 *extraout_ECX_15;
  type_7 *extraout_ECX_16;
  type_6 extraout_ECX_17;
  type_7 *extraout_ECX_18;
  type_7 *extraout_ECX_19;
  type_7 *extraout_ECX_20;
  type_7 *extraout_ECX_21;
  type_7 *extraout_ECX_22;
  type_7 *extraout_ECX_23;
  type_7 *extraout_ECX_24;
  type_7 *extraout_ECX_25;
  type_7 *extraout_ECX_26;
  type_7 *extraout_ECX_27;
  type_7 *extraout_ECX_28;
  type_7 *extraout_ECX_29;
  type_7 *extraout_ECX_30;
  type_15 *extraout_ECX_31;
  type_7 *extraout_ECX_32;
  type_7 *extraout_ECX_33;
  type_7 *extraout_ECX_34;
  type_7 *extraout_ECX_35;
  type_7 *extraout_ECX_36;
  type_6 extraout_ECX_37;
  type_6 extraout_ECX_38;
  type_6 extraout_ECX_39;
  type_7 *extraout_ECX_40;
  type_7 *extraout_ECX_41;
  type_7 *extraout_ECX_42;
  type_7 *extraout_ECX_43;
  type_6 uVar25;
  type_15 *var_65;
  char *buf_00;
  type_15 *extraout_EDX;
  type_15 *extraout_EDX_00;
  type_15 *extraout_EDX_01;
  size_t var_86;
  type_15 *extraout_EDX_02;
  type_15 *extraout_EDX_03;
  type_15 *extraout_EDX_04;
  type_15 *var_48;
  type_3 *var_82;
  type_15 *extraout_EDX_05;
  type_15 *extraout_EDX_06;
  type_15 *var_4;
  type_15 *var_74;
  type_3 *var_66;
  type_15 *var_75;
  type_10 var_16;
  int var_1;
  bool var_22;
  size_t in_stack_ffffef7c;
  type_9 *b;
  type_15 *var_52;
  type_15 *var_57;
  type_10 var_79;
  size_t var_77;
  char *var_89;
  type_10 var_76;
  size_t buflen;
  char *text;
  type_16 mbstate;
  char var_58 [4096];
  
  puVar7 = PTR_stdout_00030fdc;
  var_4 = (type_15 *)vec->v;
  var_3 = vec->v_length;
  var_9 = *(int *)(var_1 + 0x14);
  var_2 = (type_7 **)&var_4->text;
  b = &debug;
  var_77 = in_stack_ffffef7c;
  var_5 = debug;
joined_r0x00017cbb:
  if ((type_15 *)(var_2 + var_3 * 6) <= var_4) {
    if (var_5 != '\0') {
      var_6("END-OF-CYCLE:");
    }
LAB_00017e10:
    if (var_7 == false) {
LAB_00017e26:
      var_8(type_15.active,type_15.length,(type_10)type_15.chomped,&output_file);
    }
LAB_00017f53:
    var_63 = (char *)0xffffffff;
LAB_00017f58:
    if (var_9 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
      var_10();
    }
    return (int)var_63;
  }
  if (var_5 != '\0') {
    var_77 = 9;
    var_11("COMMAND: ",1,9,*(type_4 **)PTR_stdout_00030fdc);
    var_12(vec,(type_17 *)var_4);
    var_18 = extraout_ECX;
  }
LAB_00017cfb:
  var_13 = (type_7 *)var_4->text;
  if (var_13 == (type_7 *)0x0) {
LAB_00017e6b:
    var_17 = 1;
  }
  else {
    var_18 = (type_7 *)var_4->active;
    if (var_4->length == var_14) {
      if (var_18->addr_type != var_15) goto LAB_00017e56;
      var_17 = type_2->line_number;
      var_16 = var_18->addr_number;
      if (var_16 <= var_17) {
        var_4->length = var_20;
      }
      var_17 = (type_10)(var_17 <= var_16);
    }
    else if (var_18 == (type_7 *)0x0) {
      _Var8 = var_19(var_13,type_2);
      var_17 = (type_10)_Var8;
      var_18 = extraout_ECX_05;
    }
    else if (var_13->addr_type == var_15) {
      if ((var_4->length == var_20) || (type_2->line_number < var_13->addr_number)) {
LAB_00017ef0:
        var_17 = 0;
      }
      else {
        var_21 = var_18->addr_type;
        var_4->length = var_14;
        var_22 = var_21 == var_15;
        if (var_22) goto LAB_00017ec1;
LAB_00017d50:
        if (var_21 < var_15 || var_22) {
          var_17 = 1;
          if (var_21 != var_23) {
LAB_00017e56:
            _Var8 = var_19(var_18,type_2);
            var_18 = extraout_ECX_02;
            if (_Var8) {
              var_4->length = var_20;
            }
            goto LAB_00017e6b;
          }
        }
        else if (var_21 == var_24) {
          var_18->addr_number = var_18->addr_step + type_2->line_number;
          var_17 = 1;
        }
        else {
          if (var_21 != var_25) goto LAB_00017e56;
          var_17 = 1;
          var_18->addr_number =
               (type_2->line_number + var_18->addr_step) - type_2->line_number % var_18->addr_step;
        }
      }
    }
    else {
      _Var8 = var_19(var_13,type_2);
      var_18 = extraout_ECX_03;
      if (!_Var8) goto LAB_00017ef0;
      var_18 = (type_7 *)var_4->active;
      var_4->length = var_14;
      var_21 = var_18->addr_type;
      var_22 = var_21 == var_15;
      if (!var_22) goto LAB_00017d50;
LAB_00017ec1:
      var_17 = var_18->addr_number;
      var_16 = type_2->line_number;
      if ((var_16 < var_17) || (var_4->length = var_20, var_16 == var_17)) goto LAB_00017e6b;
      _Var8 = var_19((type_7 *)var_4->text,type_2);
      var_17 = (type_10)_Var8;
      var_18 = extraout_ECX_04;
    }
  }
  var_41 = output_file.fp;
  var_30 = type_15.length;
  var_66 = (type_3 *)type_15.active;
  if ((int)(char)var_4->alloc == var_17) goto _L604;
  var_65 = (type_15 *)(int)*(char *)((int)&var_4->alloc + 1);
  switch((type_10)((int)&var_65[-2].mbstate.__count + 1U) & 0xff) {
  case 0:
  case 0x17:
  case 0x5a:
    goto _L604;
  default:
                    /* WARNING: Subroutine does not return */
    var_26("INTERNAL ERROR: Bad cmd %c",var_65);
  case 0x1a:
    if (output_file.missing_newline != false) {
      var_77 = 1;
      var_27(&var_54,1,1,output_file.fp);
      output_file.missing_newline = false;
    }
    var_63 = "%lu%c";
    pcVar24 = (char *)type_2->line_number;
    goto LAB_00018a05;
  case 0x21:
    var_77 = type_15.length;
    var_29 = var_28(type_15.active,(int)var_54,type_15.length);
    if (var_29 == (void *)0x0) goto LAB_00017f53;
    type_15.active = (char *)((int)var_29 + 1);
    type_15.alloc = type_15.alloc - ((int)type_15.active - (int)var_66);
    var_4 = (type_15 *)vec->v;
    type_15.length = var_30 - ((int)type_15.active - (int)var_66);
    var_18 = extraout_ECX_27;
    if (*(type_9 *)&((type_15 *)b)->text == false) goto joined_r0x00018523;
    var_31(&type_15);
    var_5 = *(char *)&((type_15 *)b)->text;
    var_18 = extraout_ECX_28;
    goto joined_r0x00017cbb;
  case 0x23:
    if (output_file.missing_newline != false) {
      var_77 = 1;
      var_27(&var_54,1,1,output_file.fp);
      output_file.missing_newline = false;
    }
    var_63 = "%s%c";
    pcVar24 = type_2->in_file_name;
LAB_00018a05:
    var_32(output_file.fp,1,var_63,pcVar24,(int)var_54);
    var_18 = extraout_ECX_29;
    if (var_33 == false) goto _L604;
    var_34(output_file.fp);
    var_5 = *(char *)&((type_15 *)b)->text;
    var_18 = extraout_ECX_30;
    goto LAB_00017de7;
  case 0x24:
    var_35((type_15 *)type_2,(type_15 *)b,(int)var_52);
    var_18 = extraout_ECX_00;
    if (*(type_9 *)&((type_15 *)b)->text == false) goto LAB_000182c0;
    goto LAB_00017dd0;
  case 0x25:
    var_35((type_15 *)type_2,(type_15 *)b,(int)var_52);
    var_5 = *(char *)&((type_15 *)b)->text;
    var_18 = extraout_ECX_22;
    break;
  case 0x2b:
    var_36(&type_15,&var_54,1);
    if (((buffer.length != 0) || (_Var8 = var_37(type_2), !_Var8)) &&
       (_Var8 = var_38(type_2,vec,1), var_18 = extraout_ECX_25, _Var8))
    goto LAB_000188c9;
    if (*(type_9 *)&((type_15 *)b)->text != false) {
      var_6("END-OF-CYCLE:");
    }
    type_15.length = type_15.length - 1;
    if ((var_39 != var_40) || (var_7 != false)) goto LAB_00017f53;
    goto LAB_00017e26;
  case 0x2d:
    var_77 = type_15.length;
    var_29 = var_28(type_15.active,(int)var_54,type_15.length);
    if (var_29 == (void *)0x0) {
      var_17 = (type_10)type_15.chomped;
    }
    else {
      var_30 = (int)var_29 - (int)var_66;
      var_17 = 1;
    }
    var_92 = &output_file;
    goto LAB_0001881e;
  case 0x2e:
    goto _L358;
  case 0x2f:
    var_41 = ((type_18 *)&var_4->chomped)->outf->fp;
    if ((var_41 != (type_4 *)0x0) && ((var_41->_flags & 0x10) == 0)) {
      text = (char *)0x0;
      var_77 = (size_t)var_54;
      var_30 = var_42(&text,&buflen,var_54,var_41);
      if (var_30 == 0xffffffff) {
        var_43(text);
        var_18 = extraout_ECX_43;
      }
      else {
        paVar13 = var_44();
        paVar13->var_43 = true;
        paVar13->text = text;
        paVar13->textlen = var_30;
        var_18 = extraout_ECX_06;
      }
    }
    goto _L604;
  case 0x31:
    var_5 = *(char *)&((type_15 *)b)->text;
    if (var_45 == false) goto LAB_00018263;
    var_45 = false;
    goto LAB_00017de7;
  case 0x34:
    var_92 = ((type_18 *)&var_4->chomped)->outf;
    var_52 = (type_15 *)var_92;
    if (((type_15 *)var_92)->length == var_46) goto _L604;
    var_77 = type_15.length;
    var_29 = var_28(type_15.active,(int)var_54,type_15.length);
    var_52 = (type_15 *)var_92;
    if (var_29 == (void *)0x0) {
      var_17 = (type_10)type_15.chomped;
    }
    else {
      var_30 = (int)var_29 - (int)var_66;
      var_17 = 1;
    }
LAB_0001881e:
    var_8((char *)var_66,var_30,var_17,var_92);
    var_5 = *(char *)&((type_15 *)b)->text;
    var_18 = extraout_ECX_23;
    goto LAB_00017de7;
  case 0x3e:
    paVar13 = var_44();
    paVar13->text = (((type_18 *)&var_4->chomped)->cmd_txt).text;
    paVar13->textlen = (var_4->mbstate).__count;
    var_5 = *(char *)&((type_15 *)b)->text;
    var_18 = extraout_ECX_24;
    goto LAB_00017de7;
  case 0x3f:
  case 0x58:
    goto _L336;
  case 0x40:
    if (var_4->length != var_14) {
      var_8((((type_18 *)&var_4->chomped)->cmd_txt).text,
                  (var_4->mbstate).__count - 1,1,&output_file);
    }
  case 0x41:
_L352:
    if (*(type_9 *)&((type_15 *)b)->text == false) goto LAB_00017f53;
    var_6("END-OF-CYCLE:");
    var_63 = (char *)0xffffffff;
    goto LAB_00017f58;
  case 0x42:
    var_48 = (type_15 *)(var_4->mbstate).__count;
    var_52 = var_48;
    var_47((type_15 *)0x0,var_65);
    if (var_48 == (type_15 *)0x0) {
      var_36(&type_15,"",1);
      var_50 = var_49(type_15.active,"r");
      uVar25 = extraout_ECX_17;
    }
    else {
      *(char *)(((type_18 *)&var_4->chomped)->int_arg + -1 +
               (int)var_52) = '\0';
      var_50 = var_49((((type_18 *)&var_4->chomped)->cmd_txt).text,"r");
      uVar25 = extraout_ECX_37;
      if (output_file.missing_newline != false) {
        var_77 = 1;
        var_27(PTR_buffer_delimiter_00030fd8,1,1,output_file.fp);
        output_file.missing_newline = false;
        uVar25 = extraout_ECX_38;
      }
    }
    if (var_50 == (type_4 *)0x0) goto LAB_0001925a;
    while ((var_50->_flags & 0x10) == 0) {
      var_77 = 0x1000;
      var_64 = var_51(var_58,1,0x1000,var_50);
      if (0 < (int)var_64) {
        if (var_52 == (type_15 *)0x0) {
          var_36(&s_accum,var_58,var_64);
        }
        else {
          var_27(var_58,1,var_64,output_file.fp);
          var_77 = var_64;
        }
      }
    }
    var_53(var_50);
    if (var_52 == (type_15 *)0x0) {
      if ((s_accum.length != 0) && (s_accum.active[s_accum.length - 1] == var_54)) {
        s_accum.length = s_accum.length - 1;
      }
      var_55((type_15 *)type_2,(type_15 *)b,0);
      var_18 = extraout_ECX_19;
    }
    else {
      var_18 = extraout_ECX_18;
      if (var_33 != false) {
        var_34(output_file.fp);
        var_18 = extraout_ECX_36;
      }
    }
    goto _L604;
  case 0x44:
    var_56(&hold,&type_15,(int)var_18);
    var_5 = *(char *)&((type_15 *)b)->text;
    var_18 = extraout_ECX_26;
    break;
  case 0x45:
    var_56(&type_15,&hold,(int)var_18);
    var_5 = *(char *)&((type_15 *)b)->text;
    var_18 = extraout_ECX_20;
    break;
  case 0x46:
    var_8((((type_18 *)&var_4->chomped)->cmd_txt).text,
                (var_4->mbstate).__count - 1,1,&output_file);
    var_5 = *(char *)&((type_15 *)b)->text;
    var_18 = extraout_ECX_15;
    goto LAB_00017de7;
  case 0x49:
    var_57 = (type_15 *)(((type_18 *)&var_4->chomped)->cmd_txt).text;
    if (var_57 == (type_15 *)0xffffffff) {
      var_57 = (type_15 *)lcmd_out_line_len;
    }
    if (output_file.missing_newline != false) {
      var_27(&var_54,1,1,output_file.fp);
      output_file.missing_newline = false;
    }
    if (var_30 != 0) {
      var_67 = (type_3 *)((char *)var_66 + var_30);
      var_63 = var_58 + 1;
      var_65 = (type_15 *)0x0;
      do {
        var_59 = *var_66;
        var_52 = (type_15 *)(type_10)var_59;
        if (((var_59 & 0x80) == 0) &&
           (ppuVar20 = var_60(),
           (*(type_3 *)((int)*ppuVar20 + (int)var_52 * 2 + 1) & 0x40) != 0)) {
          var_48 = (type_15 *)0x1;
          var_58[0] = var_59;
          if (*var_66 == 0x5c) {
            var_58[1] = '\\';
            var_48 = (type_15 *)0x2;
          }
        }
        else {
          var_58[0] = '\\';
          switch(*var_66) {
          case 7:
            var_58[1] = 'a';
            var_48 = (type_15 *)0x2;
            break;
          case 8:
            var_58[1] = 'b';
            var_48 = (type_15 *)0x2;
            break;
          case 9:
            var_58[1] = 't';
            var_48 = (type_15 *)0x2;
            break;
          case 10:
            var_58[1] = 'n';
            var_48 = (type_15 *)0x2;
            break;
          case 0xb:
            var_58[1] = 'v';
            var_48 = (type_15 *)0x2;
            break;
          case 0xc:
            var_58[1] = 'f';
            var_48 = (type_15 *)0x2;
            break;
          case 0xd:
            var_58[1] = 'r';
            var_48 = (type_15 *)0x2;
            break;
          default:
            var_61(var_63,1,0xb3,&DAT_00026d42,*var_66);
            var_64 = var_62(var_63);
            var_48 = (type_15 *)(var_63 + (var_64 - (int)var_58));
          }
        }
        var_65 = (type_15 *)((int)&var_48->text + (int)&var_65->text);
        if ((var_57 <= var_65) && (0 < (int)var_57)) {
          var_27(&DAT_00026f7e,1,1,var_41);
          var_27(&var_54,1,1,var_41);
          var_65 = var_48;
          var_52 = var_48;
        }
        var_66 = var_66 + 1;
        var_27(var_58,1,(size_t)var_48,var_41);
      } while (var_66 != var_67);
    }
    var_77 = 1;
    var_27(&DAT_00026f80,1,1,var_41);
    var_27(&var_54,1,1,var_41);
    var_18 = extraout_ECX_34;
    if (var_33 != false) {
      var_34(var_41);
      var_18 = extraout_ECX_35;
    }
_L604:
    var_5 = *(char *)&((type_15 *)b)->text;
LAB_00017de7:
    var_4 = (type_15 *)&(var_4->mbstate).__value;
    goto joined_r0x00017cbb;
  case 0x4b:
    if (var_7 == false) {
      var_8(type_15.active,type_15.length,(type_10)type_15.chomped,&output_file);
    }
    if (((buffer.length == 0) && (_Var8 = var_37(type_2), _Var8)) ||
       (_Var8 = var_38(type_2,vec,0), !_Var8)) goto _L352;
    if (*(type_9 *)&((type_15 *)b)->text != false) goto LAB_00017dd0;
    var_4 = (type_15 *)&(var_4->mbstate).__value;
    var_18 = extraout_ECX_16;
    goto joined_r0x00018523;
  case 0x4d:
    var_92 = &output_file;
    goto LAB_00018030;
  case 0x4e:
    if (var_7 == false) {
      var_8(type_15.active,type_15.length,(type_10)type_15.chomped,&output_file);
    }
    var_68();
_L358:
    var_63 = (((type_18 *)&var_4->chomped)->cmd_txt).text;
    if (var_63 == (char *)0xffffffff) {
      var_63 = (char *)0x0;
    }
    goto LAB_00017f58;
  case 0x4f:
    var_18 = (type_7 *)(((type_18 *)&var_4->chomped)->cmd_txt).text;
    if (var_18 == (type_7 *)0x0) goto _L604;
    paVar13 = var_44();
    paVar13->fname = (((type_18 *)&var_4->chomped)->cmd_txt).text;
    var_5 = *(char *)&((type_15 *)b)->text;
    var_18 = extraout_ECX_08;
    goto LAB_00017de7;
  case 0x50:
    type_5 = (type_5 *)((type_18 *)&var_4->chomped)->cmd_subst;
    var_47(&type_15,var_65);
    var_59 = *(type_3 *)&(type_5->pattern).fastmap;
    var_52 = (type_15 *)var_69((int3)((type_10)var_52 >> 8),var_59);
    var_64 = (var_59 >> 4) + 1;
    var_57 = (type_15 *)0x3dc;
    var_71 = var_70((type_5 *)0x3dc,buf_00,(size_t)(type_5->pattern).buffer,(size_t)type_15.active,
                         (type_19 *)type_15.length,0);
    var_18 = extraout_ECX_09;
    if (var_71 == 0) goto LAB_000188c9;
    var_65 = (type_15 *)*DAT_00031370;
    var_48 = extraout_EDX;
    if (((*(type_9 *)&((type_15 *)b)->text != false) && (var_48 = var_72, var_72 != (type_15 *)0x0))
       && (var_65 != (type_15 *)0xffffffff)) {
      var_6("MATCHED REGEX REGISTERS");
      var_65 = (type_15 *)*DAT_00031370;
      var_48 = extraout_EDX_05;
      if ((var_72 != (type_15 *)0x0) && (var_48 = extraout_EDX_05, var_65 != (type_15 *)0xffffffff))
      {
        var_48 = (type_15 *)0x0;
        do {
          var_73(1,"  regex[%d] = %d-%d \'",var_48,var_65,
                       (&DAT_00031374->addr_type)[(int)var_48],var_64);
          var_21 = DAT_00031370[(int)var_48];
          if (var_21 != (&DAT_00031374->addr_type)[(int)var_48]) {
            var_64 = (&DAT_00031374->addr_type)[(int)var_48] - var_21;
            var_77 = 1;
            var_11(type_15.active + var_21,var_64,1,*(type_4 **)puVar7);
          }
          var_74 = (type_15 *)((int)&var_48->text + 1);
          var_6("\'");
          if (var_72 <= var_74) {
            var_65 = (type_15 *)*DAT_00031370;
            var_48 = extraout_EDX_06;
            goto LAB_00018110;
          }
          var_65 = (type_15 *)DAT_00031370[(int)((int)&var_48->text + 1)];
          var_48 = var_74;
        } while (var_65 != (type_15 *)0xffffffff);
        var_65 = (type_15 *)*DAT_00031370;
        var_48 = extraout_EDX_06;
      }
    }
LAB_00018110:
    var_21 = DAT_00031374->addr_type;
    if (((type_5->pattern).allocated != 0) || (1 < (type_5->pattern).used)) {
LAB_00018127:
      var_74 = (type_15 *)0x0;
      var_75 = (type_15 *)0x0;
      var_76 = 0;
      var_30 = var_77;
      do {
        var_77 = var_21 - (int)var_65;
        var_52 = var_65;
        if (var_75 < var_65) {
          var_86 = (int)var_65 - (int)var_75;
          var_63 = type_15.active + (int)var_75;
          var_75 = var_65;
          var_36(&s_accum,var_63,var_86);
          var_65 = extraout_ECX_10;
          var_48 = extraout_EDX_01;
          var_52 = var_75;
        }
        var_48 = (type_15 *)var_69((int3)((type_10)var_48 >> 8),
                                   var_76 == 0 || var_74 < var_52);
        if ((var_76 == 0 || var_74 < var_52) || (var_77 != 0)) {
          var_76 = var_76 + 1;
          if (var_76 < (type_5->pattern).used) {
            if (var_77 == 0) goto LAB_0001817a;
            goto LAB_00018190;
          }
          var_78 = (type_6 *)(type_5->pattern).allocated;
          var_45 = true;
          var_79 = 0;
          for (; var_78 != (type_6 *)0x0; var_78 = (type_6 *)var_78[4]) {
            var_17 = var_78[3];
            var_48 = (type_15 *)var_78[1];
            var_65 = (type_15 *)var_78[2];
            if ((var_17 & 0xc) == 0) {
              var_17 = var_79 | var_17;
            }
            var_16 = var_17;
            if (var_48 != (type_15 *)0x0) {
              var_16 = var_17 & 0xfffffff3;
              var_80((type_15 *)*var_78,(char *)var_48,var_17,(type_20)type_2);
              var_48 = extraout_EDX_03;
            }
            var_79 = 0;
            if ((-1 < (int)var_65) && (var_65 < var_72)) {
              var_48 = (type_15 *)(&DAT_00031374->addr_type)[(int)var_65];
              var_65 = (type_15 *)DAT_00031370[(int)var_65];
              if (var_48 == var_65) {
                var_79 = var_16 & 0xc;
                if ((var_78[3] & 0xc) == 0) {
                  var_79 = 0;
                }
              }
              else {
                var_80((type_15 *)(type_15.active + (int)&var_65->text),
                                    (char *)((int)var_48 - (int)var_65),var_16,
                                    (type_20)type_2);
                var_48 = extraout_EDX_02;
              }
            }
          }
          var_75 = (type_15 *)((int)var_52 + var_77);
          var_74 = (type_15 *)DAT_00031374->addr_type;
          if (((type_10)(type_5->pattern).fastmap & 1) == 0) goto LAB_00018ba8;
        }
        else {
LAB_0001817a:
          var_77 = var_30;
          if (type_15.length <= var_75) goto LAB_00018bcb;
          var_77 = 1;
LAB_00018190:
          var_75 = (type_15 *)((int)&var_52->text + var_77);
          var_36(&s_accum,type_15.active + (int)var_52,var_77);
          var_74 = (type_15 *)DAT_00031374->addr_type;
        }
        var_65 = var_57;
        var_48 = (type_15 *)type_15.length;
        var_77 = var_30;
        if (type_15.length < var_75) goto LAB_00018bcb;
        var_52 =
             (type_15 *)var_69((int3)((type_10)var_52 >> 8),
                              *(type_21 *)&(type_5->pattern).fastmap);
        var_71 = var_70(type_5,(char *)type_15.length,(size_t)(type_5->pattern).buffer,
                             (size_t)type_15.active,(type_19 *)type_15.length,(int)var_75);
        var_48 = extraout_EDX_00;
        if (var_71 == 0) goto LAB_00018ba8;
        var_65 = (type_15 *)*DAT_00031370;
        var_21 = DAT_00031374->addr_type;
      } while( true );
    }
    var_48 = var_65;
    var_18 = DAT_00031374;
    if ((var_65 == (type_15 *)0x0) &&
       (var_59 = *(type_3 *)&(type_5->pattern).fastmap, var_48 = (type_15 *)(type_10)var_59, (var_59 & 1) == 0)
       ) {
      type_15.length = type_15.length - var_21;
      type_15.active = type_15.active + var_21;
      type_15.alloc = type_15.alloc - DAT_00031374->addr_type;
      var_45 = true;
    }
    else {
      if (var_21 != type_15.length) goto LAB_00018127;
      var_45 = true;
      var_48 = (type_15 *)(type_10)*(type_3 *)&(type_5->pattern).fastmap;
      type_15.length = (size_t)var_65;
    }
    goto LAB_00018bf8;
  case 0x51:
    var_5 = *(char *)&((type_15 *)b)->text;
    if (var_45 == false) goto LAB_00017de7;
    var_45 = false;
LAB_00018263:
    var_18 = (type_7 *)(((type_18 *)&var_4->chomped)->int_arg * 3);
    var_4 = (type_15 *)(vec->v + ((type_18 *)&var_4->chomped)->int_arg);
    goto joined_r0x00017cbb;
  case 0x54:
    var_92 = ((type_18 *)&var_4->chomped)->outf;
    if (var_92->fp == (type_4 *)0x0) goto _L604;
LAB_00018030:
    var_8(type_15.active,type_15.length,(type_10)type_15.chomped,var_92);
    var_5 = *(char *)&((type_15 *)b)->text;
    var_18 = extraout_ECX_07;
    goto LAB_00017de7;
  case 0x55:
    var_55(&hold,var_65,(int)var_18);
    var_18 = extraout_ECX_11;
    if (*(type_9 *)&((type_15 *)b)->text == false) goto LAB_000182c0;
    var_31(&type_15);
    goto LAB_0001861e;
  case 0x56:
    if (var_81 < 2) {
      var_67 = (type_3 *)(type_15.active + type_15.length);
      if (type_15.active < var_67) {
        do {
          var_82 = var_66 + 1;
          var_59 = (((type_18 *)&var_4->chomped)->cmd_txt).text[*var_66];
          var_18 = (type_7 *)(type_10)var_59;
          *var_66 = var_59;
          var_66 = var_82;
        } while (var_67 != var_82);
      }
    }
    else {
      var_52 = (type_15 *)((type_18 *)&var_4->chomped)->cmd_subst;
      mbstate.__count = 0;
      mbstate.__value.__wch = 0;
      if (type_15.length != 0) {
        var_79 = 0;
        do {
          if (var_81 == 1) {
LAB_0001836f:
            var_30 = 1;
          }
          else {
            var_77 = type_15.length - var_79;
            var_30 = var_83((type_22 *)0x0,type_15.active + var_79,var_77,&mbstate);
            var_18 = extraout_ECX_12;
            if (0xfffffffc < var_30 - 1) goto LAB_0001836f;
          }
          var_13 = (type_7 *)var_52->text;
          if (var_13 != (type_7 *)0x0) {
            var_89 = type_15.active;
            var_63 = type_15.active + var_79;
            var_71 = 0;
            do {
              var_77 = var_30;
              var_85 = var_84(var_63,(char *)var_13,var_30);
              if (var_85 == 0) {
                var_78 = (type_6 *)((int)&var_52->active + var_71);
                pcVar24 = (char *)*var_78;
                if (*pcVar24 == '\0') {
                  var_77 = 1;
LAB_00018c70:
                  if (var_77 < var_30) {
                    var_71 = type_15.length + 1;
                    goto LAB_0001841c;
                  }
                }
                else {
                  var_77 = var_62(pcVar24);
                  if (var_77 <= var_30) goto LAB_00018c70;
                  var_71 = type_15.length + 1;
                  var_86 = (var_71 - var_30) + var_77;
                  if (type_15.alloc < var_86) {
                    var_87(&type_15,var_86);
                    var_89 = type_15.active;
                    var_71 = type_15.length + 1;
                  }
LAB_0001841c:
                  var_88(var_89 + var_79 + var_77,var_89 + var_30 + var_79,
                          var_71 - (var_30 + var_79));
                  type_15.length = type_15.length + (var_77 - var_30);
                  pcVar24 = (char *)*var_78;
                  var_63 = type_15.active + var_79;
                  var_79 = var_79 + (var_77 - var_30);
                }
                var_90(var_63,pcVar24,var_77);
                var_18 = extraout_ECX_14;
                break;
              }
              var_13 = *(type_7 **)((int)&var_52->length + var_71);
              var_18 = extraout_ECX_13;
              var_71 = var_71 + 8;
            } while (var_13 != (type_7 *)0x0);
          }
          var_79 = var_79 + var_30;
        } while (var_79 < type_15.length);
      }
    }
    goto LAB_000188c9;
  case 0x57:
    type_15.length = 0;
    goto LAB_000188c9;
  }
  if (var_5 == '\0') goto LAB_000182c0;
LAB_0001861e:
  var_31(&hold);
  var_5 = *(char *)&((type_15 *)b)->text;
  var_18 = extraout_ECX_21;
  goto LAB_00017de7;
LAB_00018ba8:
  var_65 = (type_15 *)type_15.length;
  var_77 = var_30;
  if (var_75 < type_15.length) {
    var_36(&s_accum,type_15.active + (int)&var_75->text,type_15.length - (int)var_75);
    var_65 = extraout_ECX_31;
    var_48 = extraout_EDX_04;
    var_77 = var_30;
  }
LAB_00018bcb:
  s_accum.chomped = type_15.chomped;
  var_55(&s_accum,var_48,(int)var_65);
  var_18 = extraout_ECX_32;
  if ((type_5->pattern).used <= var_76) {
    var_48 = (type_15 *)(type_10)*(type_3 *)&(type_5->pattern).fastmap;
    var_18 = extraout_ECX_32;
    var_65 = var_52;
LAB_00018bf8:
    var_52 = var_65;
    if (((type_10)var_48 & 2) != 0) {
      var_8(type_15.active,type_15.length,(type_10)type_15.chomped,&output_file);
      var_48 = (type_15 *)(type_10)*(type_3 *)&(type_5->pattern).fastmap;
      var_18 = extraout_ECX_41;
      var_52 = var_65;
    }
    if (((type_10)var_48 & 8) != 0) {
      var_47((type_15 *)0x0,var_48);
      var_36(&type_15,"",1);
      var_65 = (type_15 *)0x281e1;
      var_50 = var_49(type_15.active,"r");
      uVar25 = extraout_ECX_39;
      if (var_50 == (type_4 *)0x0) {
LAB_0001925a:
        var_63 = (char *)var_91(0,"error in subprocess",5,uVar25);
                    /* WARNING: Subroutine does not return */
        var_26(var_63);
      }
      var_59 = (type_3)var_50->_flags;
      while ((var_59 & 0x10) == 0) {
        var_77 = 0x1000;
        var_65 = (type_15 *)0x1;
        var_64 = var_51(var_58,1,0x1000,var_50);
        if (0 < (int)var_64) {
          var_36(&s_accum,var_58,var_64);
        }
        var_52 = var_4;
        var_59 = (type_3)var_50->_flags;
      }
      var_53(var_50);
      var_55((type_15 *)var_50,var_65,var_77);
      var_18 = extraout_ECX_40;
      if ((type_15.length != 0) &&
         (var_18 = (type_7 *)(type_15.length - 1), type_15.active[type_15.length - 1] == var_54)) {
        type_15.length = (size_t)var_18;
      }
      var_48 = (type_15 *)(type_10)*(type_3 *)&(type_5->pattern).fastmap;
    }
    if (((type_10)var_48 >> 1 & 2) != 0) {
      var_8(type_15.active,type_15.length,(type_10)type_15.chomped,&output_file);
      var_18 = extraout_ECX_42;
    }
    var_92 = (type_11 *)(type_5->pattern).syntax;
    if (var_92 != (type_11 *)0x0) {
      var_8(type_15.active,type_15.length,(type_10)type_15.chomped,var_92);
      var_18 = extraout_ECX_33;
    }
  }
LAB_000188c9:
  if (*(type_9 *)&((type_15 *)b)->text != false) {
LAB_00017dd0:
    var_31(&type_15);
    var_18 = extraout_ECX_01;
    goto _L604;
  }
LAB_000182c0:
  var_4 = (type_15 *)&(var_4->mbstate).__value;
joined_r0x00018523:
  if ((type_15 *)(var_2 + var_3 * 6) <= var_4) goto LAB_00017e10;
  goto LAB_00017cfb;
_L336:
  var_4 = (type_15 *)(vec->v + ((type_18 *)&var_4->chomped)->int_arg);
  var_5 = *(char *)&((type_15 *)b)->text;
  goto joined_r0x00017cbb;
}


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

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

int __regparm3 MASKED(int *param_1,int param_2)

{
  undefined4 *puVar1;
  int *piVar2;
  undefined *puVar3;
  char cVar4;
  uint uVar5;
  int iVar6;
  undefined *puVar7;
  int *piVar8;
  uint uVar9;
  int iVar10;
  ushort **ppuVar11;
  char *pcVar12;
  byte *pbVar13;
  FILE *pFVar14;
  size_t sVar15;
  undefined4 uVar16;
  uint *puVar17;
  undefined4 extraout_ECX;
  undefined4 extraout_ECX_00;
  undefined4 extraout_ECX_01;
  undefined4 extraout_ECX_02;
  byte bVar18;
  byte *pbVar19;
  int *piVar20;
  uint uVar21;
  uint uVar22;
  byte *pbVar23;
  char *pcVar24;
  int in_GS_OFFSET;
  bool bVar25;
  char *pcVar26;
  char *pcStack_106c;
  uint uStack_1068;
  uint uStack_1060;
  byte *pbStack_105c;
  uint uStack_1058;
  undefined1 auStack_1030 [4];
  void *pvStack_102c;
  undefined4 uStack_1028;
  undefined4 uStack_1024;
  byte bStack_1020;
  char acStack_101f [4095];
  int local_20;
  undefined4 uStack_14;
  
  puVar3 = PTR_stdout_00030fdc;
  uStack_14 = 0x17c79;
  piVar20 = (int *)*param_1;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  piVar2 = piVar20 + param_1[2] * 6;
  pcVar26 = &DAT_00031414;
  cVar4 = DAT_00031414;
joined_r0x00017cbb:
  if (piVar2 <= piVar20) {
    if (cVar4 != '\0') {
      puts("END-OF-CYCLE:");
    }
LAB_00017e10:
    if (DAT_00031418 == '\0') {
code_r0x00017e26:
      FUN_000178c0(&DAT_000313f8);
    }
LAB_00017f53:
    iVar6 = -1;
code_r0x00017f58:
    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
      FUN_00025de0();
    }
    return iVar6;
  }
  if (cVar4 != '\0') {
    fwrite_unlocked("COMMAND: ",1,9,*(FILE **)PTR_stdout_00030fdc);
    FUN_00015bb0(param_1,piVar20);
  }
LAB_00017cfb:
  piVar8 = (int *)*piVar20;
  if (piVar8 == (int *)0x0) {
LAB_00017e6b:
    uVar5 = 1;
  }
  else {
    puVar17 = (uint *)piVar20[1];
    if (piVar20[2] == 1) {
      if (*puVar17 != 2) goto LAB_00017e56;
      uVar5 = *(uint *)(param_2 + 8);
      uVar9 = puVar17[1];
      if (uVar9 <= uVar5) {
        piVar20[2] = 2;
      }
      uVar5 = (uint)(uVar5 <= uVar9);
    }
    else if (puVar17 == (uint *)0x0) {
      uVar5 = FUN_00017130();
      uVar5 = uVar5 & 0xff;
    }
    else if (*piVar8 == 2) {
      if ((piVar20[2] == 2) || (*(uint *)(param_2 + 8) < (uint)piVar8[1])) {
LAB_00017ef0:
        uVar5 = 0;
      }
      else {
        uVar9 = *puVar17;
        piVar20[2] = 1;
        bVar25 = uVar9 == 2;
        if (bVar25) goto LAB_00017ec1;
LAB_00017d50:
        if (uVar9 < 2 || bVar25) {
          uVar5 = 1;
          if (uVar9 != 1) {
LAB_00017e56:
            cVar4 = FUN_00017130();
            if (cVar4 != '\0') {
              piVar20[2] = 2;
            }
            goto LAB_00017e6b;
          }
        }
        else if (uVar9 == 4) {
          puVar17[1] = puVar17[2] + *(int *)(param_2 + 8);
          uVar5 = 1;
        }
        else {
          if (uVar9 != 5) goto LAB_00017e56;
          uVar5 = 1;
          puVar17[1] = (*(uint *)(param_2 + 8) + puVar17[2]) - *(uint *)(param_2 + 8) % puVar17[2];
        }
      }
    }
    else {
      cVar4 = FUN_00017130();
      if (cVar4 == '\0') goto LAB_00017ef0;
      puVar17 = (uint *)piVar20[1];
      piVar20[2] = 1;
      uVar9 = *puVar17;
      bVar25 = uVar9 == 2;
      if (!bVar25) goto LAB_00017d50;
LAB_00017ec1:
      uVar5 = puVar17[1];
      uVar9 = *(uint *)(param_2 + 8);
      if ((uVar9 < uVar5) || (piVar20[2] = 2, uVar9 == uVar5)) goto LAB_00017e6b;
      uVar5 = FUN_00017130();
      uVar5 = uVar5 & 0xff;
    }
  }
  uVar16 = DAT_00031400;
  uVar9 = DAT_000313e4;
  pbVar23 = DAT_000313e0;
  if ((int)(char)piVar20[3] == uVar5) goto LAB_00017de0;
  switch((int)*(char *)((int)piVar20 + 0xd) - 0x23U & 0xff) {
  case 0:
  case 0x17:
  case 0x5a:
    goto LAB_00017de0;
  default:
                    /* WARNING: Subroutine does not return */
    FUN_0001a340("INTERNAL ERROR: Bad cmd %c",(int)*(char *)((int)piVar20 + 0xd));
  case 0x1a:
    if (DAT_000313fc != '\0') {
      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);
      DAT_000313fc = '\0';
    }
    puVar7 = &UNK_00026fb0;
    uVar16 = *(undefined4 *)(param_2 + 8);
    goto code_r0x00018a05;
  case 0x21:
    iVar6 = FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);
    if (iVar6 == 0) goto LAB_00017f53;
    DAT_000313e0 = (byte *)(iVar6 + 1);
    DAT_000313e8 = DAT_000313e8 - ((int)DAT_000313e0 - (int)pbVar23);
    piVar20 = (int *)*param_1;
    DAT_000313e4 = uVar9 - ((int)DAT_000313e0 - (int)pbVar23);
    if (*pcVar26 == '\0') goto joined_r0x00018523;
    FUN_00016620();
    cVar4 = *pcVar26;
    goto joined_r0x00017cbb;
  case 0x23:
    if (DAT_000313fc != '\0') {
      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);
      DAT_000313fc = '\0';
    }
    puVar7 = &UNK_00026fb6;
    uVar16 = *(undefined4 *)(param_2 + 0x18);
code_r0x00018a05:
    __fprintf_chk(DAT_00031400,1,puVar7,uVar16,(int)(char)DAT_00031240);
    if (DAT_00031419 == '\0') goto LAB_00017de0;
    FUN_0001a7e0(DAT_00031400);
    cVar4 = *pcVar26;
    goto code_r0x00017de7;
  case 0x24:
    FUN_000172d0();
    if (*pcVar26 == '\0') goto code_r0x000182c0;
    goto code_r0x00017dd0;
  case 0x25:
    FUN_000172d0();
    cVar4 = *pcVar26;
    break;
  case 0x2b:
    FUN_00016f30();
    if (((DAT_00031390 != 0) || (cVar4 = FUN_00017090(), cVar4 == '\0')) &&
       (cVar4 = FUN_00017b40(), cVar4 != '\0')) goto code_r0x000188c9;
    if (*pcVar26 != '\0') {
      puts("END-OF-CYCLE:");
    }
    DAT_000313e4 = DAT_000313e4 - 1;
    if ((DAT_000316e0 != 0) || (DAT_00031418 != '\0')) goto LAB_00017f53;
    goto code_r0x00017e26;
  case 0x2d:
    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);
    puVar7 = &DAT_000313f8;
    goto code_r0x0001881e;
  case 0x2e:
    goto code_r0x00017f94;
  case 0x2f:
    pbVar23 = *(byte **)(piVar20[4] + 8);
    if ((pbVar23 != (byte *)0x0) && ((*pbVar23 & 0x10) == 0)) {
      pvStack_102c = (void *)0x0;
      iVar6 = FUN_0001a760(&pvStack_102c,auStack_1030,(int)(char)DAT_00031240,pbVar23);
      if (iVar6 == -1) {
        free(pvStack_102c);
      }
      else {
        iVar10 = FUN_00016790();
        *(undefined1 *)(iVar10 + 0x10) = 1;
        *(void **)(iVar10 + 4) = pvStack_102c;
        *(int *)(iVar10 + 8) = iVar6;
      }
    }
    goto LAB_00017de0;
  case 0x31:
    cVar4 = *pcVar26;
    if (DAT_00031408 == '\0') goto code_r0x00018263;
    DAT_00031408 = '\0';
    goto code_r0x00017de7;
  case 0x34:
    puVar7 = (undefined *)piVar20[4];
    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;
    FUN_00025210(DAT_000313e0,(int)(char)DAT_00031240,DAT_000313e4);
code_r0x0001881e:
    FUN_000178c0(puVar7);
    cVar4 = *pcVar26;
    goto code_r0x00017de7;
  case 0x3e:
    iVar6 = FUN_00016790();
    *(int *)(iVar6 + 4) = piVar20[4];
    *(int *)(iVar6 + 8) = piVar20[5];
    cVar4 = *pcVar26;
    goto code_r0x00017de7;
  case 0x3f:
  case 0x58:
    goto code_r0x00018860;
  case 0x40:
    if (piVar20[2] != 1) {
      FUN_000178c0(&DAT_000313f8);
    }
  case 0x41:
code_r0x00017f46:
    if (*pcVar26 == '\0') goto LAB_00017f53;
    puts("END-OF-CYCLE:");
    iVar6 = -1;
    goto code_r0x00017f58;
  case 0x42:
    iVar6 = piVar20[5];
    iVar10 = iVar6;
    FUN_00017840();
    if (iVar6 == 0) {
      FUN_00016f30();
      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");
      uVar16 = extraout_ECX;
    }
    else {
      *(undefined1 *)(piVar20[4] + -1 + iVar10) = 0;
      pFVar14 = (FILE *)func_0x00012160(piVar20[4],"r");
      uVar16 = extraout_ECX_00;
      if (DAT_000313fc != '\0') {
        FUN_0001a640(PTR_DAT_00030fd8,1,1,DAT_00031400);
        DAT_000313fc = '\0';
        uVar16 = extraout_ECX_01;
      }
    }
    if (pFVar14 == (FILE *)0x0) goto code_r0x0001925a;
    while ((pFVar14->_flags & 0x10) == 0) {
      sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);
      if (0 < (int)sVar15) {
        if (iVar10 == 0) {
          FUN_00016f30();
        }
        else {
          FUN_0001a640(&bStack_1020,1,sVar15,DAT_00031400);
        }
      }
    }
    func_0x00012380(pFVar14);
    if (iVar10 == 0) {
      if ((DAT_000313c8 != 0) && (*(byte *)(DAT_000313c4 + -1 + DAT_000313c8) == DAT_00031240)) {
        DAT_000313c8 = DAT_000313c8 + -1;
      }
      FUN_000176c0();
    }
    else if (DAT_00031419 != '\0') {
      FUN_0001a7e0(DAT_00031400);
    }
    goto LAB_00017de0;
  case 0x44:
    FUN_00017320();
    cVar4 = *pcVar26;
    break;
  case 0x45:
    FUN_00017320();
    cVar4 = *pcVar26;
    break;
  case 0x46:
    FUN_000178c0(&DAT_000313f8);
    cVar4 = *pcVar26;
    goto code_r0x00017de7;
  case 0x49:
    pcStack_106c = (char *)piVar20[4];
    if (pcStack_106c == (char *)0xffffffff) {
      pcStack_106c = DAT_0003123c;
    }
    if (DAT_000313fc != '\0') {
      FUN_0001a640(&DAT_00031240,1,1,DAT_00031400);
      DAT_000313fc = '\0';
    }
    if (uVar9 != 0) {
      pbVar13 = pbVar23 + uVar9;
      pcVar24 = (char *)0x0;
      do {
        bVar18 = *pbVar23;
        uVar5 = (uint)bVar18;
        if (((bVar18 & 0x80) == 0) &&
           (ppuVar11 = __ctype_b_loc(), (*(byte *)((int)*ppuVar11 + uVar5 * 2 + 1) & 0x40) != 0)) {
          pcVar12 = (char *)0x1;
          bStack_1020 = bVar18;
          if (*pbVar23 == 0x5c) {
            acStack_101f[0] = '\\';
            pcVar12 = (char *)0x2;
          }
        }
        else {
          bStack_1020 = 0x5c;
          switch(*pbVar23) {
          case 7:
            acStack_101f[0] = 'a';
            pcVar12 = (char *)0x2;
            break;
          case 8:
            acStack_101f[0] = 'b';
            pcVar12 = (char *)0x2;
            break;
          case 9:
            acStack_101f[0] = 't';
            pcVar12 = (char *)0x2;
            break;
          case 10:
            acStack_101f[0] = 'n';
            pcVar12 = (char *)0x2;
            break;
          case 0xb:
            acStack_101f[0] = 'v';
            pcVar12 = (char *)0x2;
            break;
          case 0xc:
            acStack_101f[0] = 'f';
            pcVar12 = (char *)0x2;
            break;
          case 0xd:
            acStack_101f[0] = 'r';
            pcVar12 = (char *)0x2;
            break;
          default:
            __sprintf_chk(acStack_101f,1,0xb3,"%03o",*pbVar23);
            sVar15 = strlen(acStack_101f);
            pcVar12 = acStack_101f + (sVar15 - (int)&bStack_1020);
          }
        }
        pcVar24 = pcVar24 + (int)pcVar12;
        if ((pcStack_106c <= pcVar24) && (0 < (int)pcStack_106c)) {
          FUN_0001a640(&UNK_00026f7e,1,1,uVar16);
          FUN_0001a640(&DAT_00031240,1,1,uVar16);
          pcVar24 = pcVar12;
        }
        pbVar23 = pbVar23 + 1;
        FUN_0001a640(&bStack_1020,1,pcVar12,uVar16);
      } while (pbVar23 != pbVar13);
    }
    FUN_0001a640(&UNK_00026f80,1,1,uVar16);
    FUN_0001a640(&DAT_00031240,1,1,uVar16);
    if (DAT_00031419 != '\0') {
      FUN_0001a7e0(uVar16);
    }
LAB_00017de0:
    cVar4 = *pcVar26;
code_r0x00017de7:
    piVar20 = piVar20 + 6;
    goto joined_r0x00017cbb;
  case 0x4b:
    if (DAT_00031418 == '\0') {
      FUN_000178c0(&DAT_000313f8);
    }
    if (((DAT_00031390 == 0) && (cVar4 = FUN_00017090(), cVar4 != '\0')) ||
       (cVar4 = FUN_00017b40(), cVar4 == '\0')) goto code_r0x00017f46;
    if (*pcVar26 != '\0') goto code_r0x00017dd0;
    piVar20 = piVar20 + 6;
    goto joined_r0x00018523;
  case 0x4d:
    puVar7 = &DAT_000313f8;
    goto code_r0x00018030;
  case 0x4e:
    if (DAT_00031418 == '\0') {
      FUN_000178c0(&DAT_000313f8);
    }
    FUN_00017990();
code_r0x00017f94:
    iVar6 = piVar20[4];
    if (iVar6 == -1) {
      iVar6 = 0;
    }
    goto code_r0x00017f58;
  case 0x4f:
    if (piVar20[4] == 0) goto LAB_00017de0;
    piVar8 = (int *)FUN_00016790();
    *piVar8 = piVar20[4];
    cVar4 = *pcVar26;
    goto code_r0x00017de7;
  case 0x50:
    puVar1 = (undefined4 *)piVar20[4];
    FUN_00017840();
    iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,0,0x3136c,
                         (*(byte *)(puVar1 + 4) >> 4) + 1);
    if (iVar6 == 0) goto code_r0x000188c9;
    uVar5 = *puRam00031370;
    if (((*pcVar26 != '\0') && (uRam0003136c != 0)) && (uVar5 != 0xffffffff)) {
      puts("MATCHED REGEX REGISTERS");
      uVar5 = *puRam00031370;
      if ((uRam0003136c != 0) && (uVar5 != 0xffffffff)) {
        uVar9 = 0;
        do {
          __printf_chk(1,"  regex[%d] = %d-%d \'",uVar9,uVar5,puRam00031374[uVar9]);
          uVar5 = puRam00031370[uVar9];
          if (uVar5 != puRam00031374[uVar9]) {
            fwrite_unlocked(DAT_000313e0 + uVar5,puRam00031374[uVar9] - uVar5,1,*(FILE **)puVar3);
          }
          puts("\'");
          if (uRam0003136c <= uVar9 + 1) {
            uVar5 = *puRam00031370;
            goto code_r0x00018110;
          }
          uVar5 = puRam00031370[uVar9 + 1];
          uVar9 = uVar9 + 1;
        } while (uVar5 != 0xffffffff);
        uVar5 = *puRam00031370;
      }
    }
code_r0x00018110:
    uVar9 = *puRam00031374;
    if ((puVar1[1] != 0) || (1 < (uint)puVar1[2])) {
code_r0x00018127:
      uVar21 = 0;
      uVar22 = 0;
      uStack_1058 = 0;
      do {
        uStack_1060 = uVar9 - uVar5;
        if (uVar22 < uVar5) {
          uVar22 = uVar5;
          FUN_00016f30();
          uVar5 = uVar22;
        }
        if ((uStack_1058 == 0 || uVar21 < uVar5) || (uStack_1060 != 0)) {
          uStack_1058 = uStack_1058 + 1;
          if (uStack_1058 < (uint)puVar1[2]) {
            if (uStack_1060 == 0) goto code_r0x0001817a;
            goto code_r0x00018190;
          }
          iVar6 = puVar1[1];
          DAT_00031408 = '\x01';
          for (; iVar6 != 0; iVar6 = *(int *)(iVar6 + 0x10)) {
            uVar9 = *(uint *)(iVar6 + 8);
            if (*(int *)(iVar6 + 4) != 0) {
              FUN_000173c0();
            }
            if (((-1 < (int)uVar9) && (uVar9 < uRam0003136c)) &&
               (puRam00031374[uVar9] != puRam00031370[uVar9])) {
              FUN_000173c0();
            }
          }
          uVar22 = uVar5 + uStack_1060;
          uVar21 = *puRam00031374;
          if ((*(byte *)(puVar1 + 4) & 1) == 0) goto code_r0x00018ba8;
        }
        else {
code_r0x0001817a:
          if (DAT_000313e4 <= uVar22) goto code_r0x00018bcb;
          uStack_1060 = 1;
code_r0x00018190:
          uVar22 = uVar5 + uStack_1060;
          FUN_00016f30();
          uVar21 = *puRam00031374;
        }
        if (DAT_000313e4 < uVar22) goto code_r0x00018bcb;
        uVar5 = (uint)*(byte *)(puVar1 + 4);
        iVar6 = FUN_000198e0(*puVar1,DAT_000313e0,DAT_000313e4,uVar22,0x3136c,
                             (*(byte *)(puVar1 + 4) >> 4) + 1);
        if (iVar6 == 0) goto code_r0x00018ba8;
        uVar5 = *puRam00031370;
        uVar9 = *puRam00031374;
      } while( true );
    }
    if ((uVar5 == 0) && (bVar18 = *(byte *)(puVar1 + 4), (bVar18 & 1) == 0)) {
      DAT_000313e4 = DAT_000313e4 - uVar9;
      DAT_000313e0 = DAT_000313e0 + uVar9;
      DAT_000313e8 = DAT_000313e8 - *puRam00031374;
      DAT_00031408 = '\x01';
    }
    else {
      if (uVar9 != DAT_000313e4) goto code_r0x00018127;
      DAT_00031408 = '\x01';
      bVar18 = *(byte *)(puVar1 + 4);
      DAT_000313e4 = uVar5;
    }
    goto code_r0x00018bf8;
  case 0x51:
    cVar4 = *pcVar26;
    if (DAT_00031408 == '\0') goto code_r0x00017de7;
    DAT_00031408 = '\0';
code_r0x00018263:
    piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);
    goto joined_r0x00017cbb;
  case 0x54:
    puVar7 = (undefined *)piVar20[4];
    if (*(int *)(puVar7 + 8) == 0) goto LAB_00017de0;
code_r0x00018030:
    FUN_000178c0(puVar7);
    cVar4 = *pcVar26;
    goto code_r0x00017de7;
  case 0x55:
    FUN_00017220();
    if (*pcVar26 == '\0') goto code_r0x000182c0;
    FUN_00016620();
    goto code_r0x0001861e;
  case 0x56:
    if (DAT_000316c4 < 2) {
      pbVar13 = DAT_000313e0 + DAT_000313e4;
      if (DAT_000313e0 < pbVar13) {
        do {
          pbVar19 = pbVar23 + 1;
          *pbVar23 = *(byte *)(piVar20[4] + (uint)*pbVar23);
          pbVar23 = pbVar19;
        } while (pbVar13 != pbVar19);
      }
    }
    else {
      piVar8 = (int *)piVar20[4];
      uStack_1028 = 0;
      uStack_1024 = 0;
      if (DAT_000313e4 != 0) {
        uStack_1068 = 0;
        do {
          if ((DAT_000316c4 == 1) ||
             (uVar5 = FUN_00025160(0,DAT_000313e0 + uStack_1068,DAT_000313e4 - uStack_1068,
                                   &uStack_1028), 0xfffffffc < uVar5 - 1)) {
            uVar5 = 1;
          }
          pcVar24 = (char *)*piVar8;
          if (pcVar24 != (char *)0x0) {
            iVar6 = 0;
            pbStack_105c = DAT_000313e0;
            pbVar23 = DAT_000313e0 + uStack_1068;
            do {
              iVar10 = strncmp((char *)pbVar23,pcVar24,uVar5);
              if (iVar10 == 0) {
                puVar1 = (undefined4 *)((int)piVar8 + iVar6 + 4);
                pcVar24 = (char *)*puVar1;
                if (*pcVar24 == '\0') {
                  uStack_1060 = 1;
code_r0x00018c70:
                  if (uStack_1060 < uVar5) {
                    iVar6 = DAT_000313e4 + 1;
                    goto code_r0x0001841c;
                  }
                }
                else {
                  uStack_1060 = strlen(pcVar24);
                  if (uStack_1060 <= uVar5) goto code_r0x00018c70;
                  iVar6 = DAT_000313e4 + 1;
                  if (DAT_000313e8 < (iVar6 - uVar5) + uStack_1060) {
                    FUN_000166d0();
                    pbStack_105c = DAT_000313e0;
                    iVar6 = DAT_000313e4 + 1;
                  }
code_r0x0001841c:
                  memmove(pbStack_105c + uStack_1068 + uStack_1060,
                          pbStack_105c + uVar5 + uStack_1068,iVar6 - (uVar5 + uStack_1068));
                  DAT_000313e4 = DAT_000313e4 + (uStack_1060 - uVar5);
                  pcVar24 = (char *)*puVar1;
                  pbVar23 = DAT_000313e0 + uStack_1068;
                  uStack_1068 = uStack_1068 + (uStack_1060 - uVar5);
                }
                memcpy(pbVar23,pcVar24,uStack_1060);
                break;
              }
              iVar6 = iVar6 + 8;
              pcVar24 = *(char **)((int)piVar8 + iVar6);
            } while (pcVar24 != (char *)0x0);
          }
          uStack_1068 = uStack_1068 + uVar5;
        } while (uStack_1068 < DAT_000313e4);
      }
    }
    goto code_r0x000188c9;
  case 0x57:
    DAT_000313e4 = 0;
    goto code_r0x000188c9;
  }
  if (cVar4 == '\0') goto code_r0x000182c0;
code_r0x0001861e:
  FUN_00016620();
  cVar4 = *pcVar26;
  goto code_r0x00017de7;
code_r0x00018ba8:
  if (uVar22 < DAT_000313e4) {
    FUN_00016f30(param_2,pcVar26,uVar5);
  }
code_r0x00018bcb:
  DAT_000313d0._0_1_ = (undefined1)DAT_000313ec;
  FUN_00017220();
  if ((uint)puVar1[2] <= uStack_1058) {
    bVar18 = *(byte *)(puVar1 + 4);
code_r0x00018bf8:
    if ((bVar18 & 2) != 0) {
      FUN_000178c0(&DAT_000313f8);
      bVar18 = *(byte *)(puVar1 + 4);
    }
    if ((bVar18 & 8) != 0) {
      FUN_00017840();
      FUN_00016f30();
      pFVar14 = (FILE *)func_0x00012160(DAT_000313e0,"r");
      uVar16 = extraout_ECX_02;
      if (pFVar14 == (FILE *)0x0) {
code_r0x0001925a:
        uVar16 = dcgettext(0,"error in subprocess",5,uVar16);
                    /* WARNING: Subroutine does not return */
        FUN_0001a340(uVar16);
      }
      bVar18 = (byte)pFVar14->_flags;
      while ((bVar18 & 0x10) == 0) {
        sVar15 = fread_unlocked(&bStack_1020,1,0x1000,pFVar14);
        if (0 < (int)sVar15) {
          FUN_00016f30();
        }
        bVar18 = (byte)pFVar14->_flags;
      }
      func_0x00012380(pFVar14);
      FUN_000176c0();
      if ((DAT_000313e4 != 0) && (DAT_000313e0[DAT_000313e4 - 1] == DAT_00031240)) {
        DAT_000313e4 = DAT_000313e4 - 1;
      }
      bVar18 = *(byte *)(puVar1 + 4);
    }
    if ((bVar18 >> 1 & 2) != 0) {
      FUN_000178c0(&DAT_000313f8);
    }
    if (puVar1[3] != 0) {
      FUN_000178c0(puVar1[3]);
    }
  }
code_r0x000188c9:
  if (*pcVar26 != '\0') {
code_r0x00017dd0:
    FUN_00016620();
    goto LAB_00017de0;
  }
code_r0x000182c0:
  piVar20 = piVar20 + 6;
joined_r0x00018523:
  if (piVar2 <= piVar20) goto LAB_00017e10;
  goto LAB_00017cfb;
code_r0x00018860:
  piVar20 = (int *)(*param_1 + piVar20[4] * 0x18);
  cVar4 = *pcVar26;
  goto joined_r0x00017cbb;
}

