
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void execute(void)

{
  estack_rec **ppeVar1;
  byte bVar2;
  bc_num_conflict pbVar3;
  arg_list *paVar4;
  undefined *puVar5;
  undefined *puVar6;
  estack_rec *peVar7;
  char cVar8;
  char cVar9;
  bc_function *pbVar10;
  bc_num pbVar11;
  uint uVar12;
  int iVar13;
  char *pcVar14;
  long val;
  int iVar15;
  int iVar16;
  bc_label_group *pbVar17;
  bc_function *pbVar18;
  uint uVar19;
  uint uVar20;
  int in_GS_OFFSET;
  bool bVar21;
  bc_function *local_7c;
  bc_num *local_78;
  char *local_70;
  bc_num *local_60;
  int local_5c;
  int local_58;
  bc_num *local_44;
  bc_num temp_num;
  bc_num build;
  bc_num temp;
  bc_num result;
  bc_num mult;
  bc_num divisor;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x165e9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  runtime_error = '\0';
  pc.pc_func = 0;
  pc.pc_addr = 0;
  bc_init_num(&temp_num);
  if (interactive != '\0') {
    signal(2,stop_execution);
  }
  puVar5 = PTR_stdout_0002bfec;
  had_sigint = 0;
  local_78 = (bc_num *)functions[pc.pc_func].f_code_size;
  pbVar10 = (bc_function *)pc.pc_func;
  pbVar18 = functions;
_L141:
  iVar13 = i_base;
  local_7c = pbVar18 + (int)pbVar10;
  if (((local_78 <= pc.pc_addr) || (runtime_error != '\0')) || (had_sigint != 0)) {
    if (pbVar10 != (bc_function *)0x0) {
      do {
        pop_vars(pbVar18[(int)pbVar10].f_autos);
        pop_vars(functions[pc.pc_func].f_params);
        fpop();
        pc.pc_addr = fpop();
        pbVar10 = (bc_function *)fpop();
        pbVar18 = functions;
        pc.pc_func = (uint)pbVar10;
      } while (pbVar10 != (bc_function *)0x0);
      pc.pc_func = 0;
    }
    while (ex_stack != (estack_rec *)0x0) {
      pop();
    }
    if ((interactive != '\0') && (signal(2,(__sighandler_t)PTR_use_quit_0002bff4), had_sigint != 0))
    {
      puts("\ninterrupted execution.");
      checkferror_output(*(FILE **)PTR_stdout_0002bfec);
    }
    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
      return;
    }
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  uVar19 = pc.pc_addr + 1;
  local_70 = local_7c->f_body;
  cVar9 = local_70[pc.pc_addr];
  local_58 = 0;
  bVar21 = false;
  switch(cVar9) {
  case '!':
  case 'T':
    pc.pc_addr = uVar19;
    c_code = bc_is_zero(ex_stack->s_num);
    goto LAB_000167c5;
  default:
    pcVar14 = "bad instruction: inst=%c";
    pc.pc_addr = uVar19;
    goto LAB_0001732f;
  case '#':
    pc.pc_addr = uVar19;
    cVar9 = check_stack(2);
    if (cVar9 == '\0') goto LAB_00016998;
    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);
    c_code = iVar13 != 0;
    pop();
    goto LAB_000167c5;
  case '%':
    pc.pc_addr = uVar19;
    cVar9 = check_stack(2);
    if (cVar9 == '\0') goto LAB_00016998;
    cVar9 = bc_is_zero(ex_stack->s_num);
    if (cVar9 == '\0') {
      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);
      goto LAB_00016d14;
    }
    pcVar14 = "Modulo by zero";
    goto LAB_0001732f;
  case '&':
    pc.pc_addr = uVar19;
    cVar9 = check_stack(2);
    if (cVar9 == '\0') goto LAB_00016998;
    cVar9 = bc_is_zero(ex_stack->s_next->s_num);
    bVar21 = false;
    if (cVar9 == '\0') {
      cVar9 = bc_is_zero(ex_stack->s_num);
      bVar21 = cVar9 == '\0';
    }
    c_code = bVar21;
    pop();
    goto LAB_000167c5;
  case '*':
    pc.pc_addr = uVar19;
    cVar9 = check_stack(2);
    if (cVar9 == '\0') goto LAB_00016998;
    bc_multiply(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);
LAB_00016d14:
    pop();
    pop();
    push_num(temp_num);
    bc_init_num(&temp_num);
    break;
  case '+':
    pc.pc_addr = uVar19;
    cVar9 = check_stack(2);
    if (cVar9 != '\0') {
      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);
      goto LAB_00016d14;
    }
    goto LAB_00016998;
  case '-':
    pc.pc_addr = uVar19;
    cVar9 = check_stack(2);
    if (cVar9 != '\0') {
      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);
      goto LAB_00016d14;
    }
    goto LAB_00016998;
  case '/':
    pc.pc_addr = uVar19;
    cVar9 = check_stack(2);
    if (cVar9 == '\0') goto LAB_00016998;
    iVar13 = bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);
    if (iVar13 != 0) {
      pcVar14 = "Divide by zero";
      goto LAB_0001732f;
    }
    pop();
    pop();
    push_num(temp_num);
    bc_init_num(&temp_num);
    break;
  case '0':
    pc.pc_addr = uVar19;
    push_copy(_zero_);
    break;
  case '1':
    pc.pc_addr = uVar19;
    push_copy(_one_);
    break;
  case '<':
    pc.pc_addr = uVar19;
    cVar9 = check_stack(2);
    if (cVar9 == '\0') goto LAB_00016998;
    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);
    c_code = iVar13 == -1;
    pop();
    goto LAB_000167c5;
  case '=':
    pc.pc_addr = uVar19;
    cVar9 = check_stack(2);
    if (cVar9 == '\0') goto LAB_00016998;
    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);
    c_code = iVar13 == 0;
    pop();
    goto LAB_000167c5;
  case '>':
    pc.pc_addr = uVar19;
    cVar9 = check_stack(2);
    if (cVar9 == '\0') goto LAB_00016998;
    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);
    c_code = iVar13 == 1;
    pop();
    goto LAB_000167c5;
  case 'A':
    uVar12 = (uint)(byte)local_70[uVar19];
    uVar20 = pc.pc_addr + 2;
    if (local_70[uVar19] < '\0') {
      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];
      uVar20 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar20;
    incr_array(uVar12);
    break;
  case 'B':
  case 'Z':
    pc.pc_addr = uVar19;
    cVar8 = bc_is_zero(ex_stack->s_num);
    c_code = cVar8 == '\0';
    pop();
    local_7c = functions + pc.pc_func;
    local_70 = local_7c->f_body;
    local_5c = pc.pc_addr + 1;
    cVar8 = local_70[pc.pc_addr];
    pc.pc_addr = pc.pc_addr + 2;
    pbVar10 = (bc_function *)pc.pc_func;
    pbVar18 = functions;
    if (cVar9 == 'J') goto LAB_0001740e;
    if (cVar9 == 'B') {
      if (c_code != '\0') goto LAB_0001740e;
    }
    else if ((cVar9 == 'Z') && (c_code == '\0')) goto LAB_0001740e;
    local_78 = (bc_num *)local_7c->f_code_size;
    goto _L141;
  case 'C':
    local_7c = (bc_function *)(uint)(byte)local_70[uVar19];
    uVar20 = pc.pc_addr + 2;
    if (local_70[uVar19] < '\0') {
      local_7c = (bc_function *)
                 ((uint)(byte)local_70[pc.pc_addr + 2] + ((uint)local_7c & 0x7f) * 0x100);
      uVar20 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar20;
    if (pbVar18[(int)local_7c].f_defined == '\0') {
      pcVar14 = "Function %s not defined.";
      goto LAB_0001732f;
    }
    process_params(&pc,(int)local_7c);
    for (paVar4 = functions[(int)local_7c].f_autos; paVar4 != (arg_list *)0x0; paVar4 = paVar4->next
        ) {
      auto_var(paVar4->av_name);
    }
    fpush(pc.pc_func);
    fpush(pc.pc_addr);
    fpush(i_base);
    pc.pc_addr = 0;
    pc.pc_func = (uint)local_7c;
    local_78 = (bc_num *)functions[(int)local_7c].f_code_size;
    pbVar10 = local_7c;
    pbVar18 = functions;
    goto _L141;
  case 'D':
    pc.pc_addr = uVar19;
    push_copy(ex_stack->s_num);
    break;
  case 'J':
    local_5c = pc.pc_addr + 2;
    cVar8 = local_70[uVar19];
    pc.pc_addr = pc.pc_addr + 3;
LAB_0001740e:
    uVar19 = (uint)(ushort)(CONCAT11(local_70[local_5c],cVar8) >> 6);
    pbVar17 = local_7c->f_label;
    iVar13 = uVar19 - 1;
    if (uVar19 != 0) {
      do {
        iVar13 = iVar13 + -1;
        pbVar17 = pbVar17->l_next;
      } while (iVar13 != -1);
    }
    if (pbVar17 == (bc_label_group *)0x0) {
      pcVar14 = "Internal error.";
      goto LAB_0001732f;
    }
    pc.pc_addr = pbVar17->l_adrs[CONCAT11(local_70[local_5c],cVar8) & 0x3f];
    local_78 = (bc_num *)local_7c->f_code_size;
    goto _L141;
  case 'K':
    if (pbVar10 == (bc_function *)0x0) {
      local_70 = (char *)i_base;
    }
    else {
      local_70 = (char *)fn_stack->s_val;
    }
    if (local_70 == (char *)0xa) {
      pc.pc_addr = uVar19;
      push_b10_const(&pc);
      break;
    }
    pc.pc_addr = uVar19;
    bc_init_num(&temp);
    bc_init_num(&result);
    bc_init_num(&mult);
    build = bc_copy_num(_zero_);
    bc_int2num(&mult,(int)local_70);
    pcVar14 = functions[pc.pc_func].f_body;
    uVar19 = pc.pc_addr + 1;
    uVar20 = (uint)(byte)pcVar14[pc.pc_addr];
    if (uVar20 == 0x7e) {
      uVar12 = pc.pc_addr + 2;
      do {
        uVar19 = uVar12;
        uVar20 = (uint)(byte)pcVar14[uVar19 - 1];
        uVar12 = uVar19 + 1;
      } while (uVar20 == 0x7e);
    }
    if (uVar20 == 0x2b) {
      pc.pc_addr = uVar19 + 1;
      uVar20 = (uint)(byte)pcVar14[uVar19];
    }
    else {
      pc.pc_addr = uVar19;
      if (uVar20 == 0x2d) {
        bVar21 = true;
        pc.pc_addr = uVar19 + 1;
        uVar20 = (uint)(byte)pcVar14[uVar19];
      }
    }
    uVar19 = uVar20;
    if (uVar20 < 0x24) {
      uVar19 = (uint)(byte)pcVar14[pc.pc_addr];
      if ((uVar19 < 0x24) && ((int)local_70 <= (int)uVar20)) {
        pc.pc_addr = pc.pc_addr + 1;
        bc_int2num(&build,(int)local_70 + -1);
      }
      else {
        pc.pc_addr = pc.pc_addr + 1;
        bc_int2num(&build,uVar20);
        if (0x23 < uVar19) goto LAB_00017202;
      }
      local_60 = &build;
      do {
        if ((int)local_70 <= (int)uVar19) {
          uVar19 = (int)local_70 - 1;
        }
        bc_multiply(build,mult,&result,0);
        bc_int2num(&temp,uVar19);
        bc_add(result,temp,local_60,0);
        uVar20 = pc.pc_addr + 1;
        uVar19 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];
        pc.pc_addr = uVar20;
      } while (uVar19 < 0x24);
    }
LAB_00017202:
    if (uVar19 == 0x2e) {
      uVar19 = (int)local_70 - 1;
      uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];
      if ((int)local_70 <= (int)(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]) {
        uVar20 = uVar19;
      }
      pc.pc_addr = pc.pc_addr + 1;
      bc_free_num(&result);
      bc_free_num(&temp);
      divisor = bc_copy_num(_one_);
      result = bc_copy_num(_zero_);
      iVar13 = 0;
      if ((int)uVar20 < 0x24) {
        do {
          while( true ) {
            local_58 = iVar13;
            bc_multiply(result,mult,&result,0);
            bc_int2num(&temp,uVar20);
            bc_add(result,temp,&result,0);
            bc_multiply(divisor,mult,&divisor,0);
            local_58 = local_58 + 1;
            uVar12 = pc.pc_addr + 1;
            uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];
            pc.pc_addr = uVar12;
            iVar13 = local_58;
            if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;
            uVar20 = uVar19;
            if (0x23 < (int)uVar19) goto LAB_00017a9d;
          }
        } while (uVar20 < 0x24);
      }
      goto LAB_00017a9d;
    }
    goto LAB_0001720b;
  case 'L':
    uVar12 = (uint)(byte)local_70[uVar19];
    uVar20 = pc.pc_addr + 2;
    if (local_70[uVar19] < '\0') {
      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];
      uVar20 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar20;
    load_array(uVar12);
    break;
  case 'M':
    uVar12 = (uint)(byte)local_70[uVar19];
    uVar20 = pc.pc_addr + 2;
    if (local_70[uVar19] < '\0') {
      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];
      uVar20 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar20;
    decr_array(uVar12);
    break;
  case 'O':
    pc.pc_addr = uVar19;
_L163:
    uVar19 = pc.pc_addr + 1;
    bVar2 = local_70[pc.pc_addr];
    uVar12 = (uint)bVar2;
    uVar20 = uVar19;
    if (bVar2 != 0x22) {
      if (bVar2 != 0x5c) goto LAB_000172c4;
      pc.pc_addr = pc.pc_addr + 2;
      uVar20 = pc.pc_addr;
      if (local_70[uVar19] != '\"') goto code_r0x0001730b;
    }
    pc.pc_addr = uVar20;
    fflush(*(FILE **)puVar5);
    checkferror_output(*(FILE **)puVar5);
    break;
  case 'P':
  case 'W':
    pc.pc_addr = uVar19;
    bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_0002bffc,std_only);
    if (cVar9 == 'W') {
      out_char(10);
    }
    store_var(4);
    puVar6 = PTR_stdout_0002bfec;
    fflush(*(FILE **)PTR_stdout_0002bfec);
    checkferror_output(*(FILE **)puVar6);
    pop();
    break;
  case 'R':
    if (pbVar10 == (bc_function *)0x0) {
      pcVar14 = "Return from main program.";
      pc.pc_addr = uVar19;
      goto LAB_0001732f;
    }
    pc.pc_addr = uVar19;
    pop_vars(local_7c->f_autos);
    pop_vars(functions[pc.pc_func].f_params);
    fpop();
    pc.pc_addr = fpop();
    pbVar10 = (bc_function *)fpop();
    local_78 = (bc_num *)functions[(int)pbVar10].f_code_size;
    pbVar18 = functions;
    pc.pc_func = (uint)pbVar10;
    goto _L141;
  case 'S':
    uVar12 = (uint)(byte)local_70[uVar19];
    uVar20 = pc.pc_addr + 2;
    if (local_70[uVar19] < '\0') {
      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];
      uVar20 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar20;
    store_array(uVar12);
    break;
  case '^':
    pc.pc_addr = uVar19;
    cVar9 = check_stack(2);
    if (cVar9 == '\0') goto LAB_00016998;
    bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);
    cVar9 = bc_is_zero(ex_stack->s_next->s_num);
    if ((cVar9 != '\0') && (cVar9 = bc_is_neg(ex_stack->s_num), cVar9 != '\0')) {
      rt_error("divide by zero");
    }
    pop();
    pop();
    push_num(temp_num);
    bc_init_num(&temp_num);
    break;
  case 'c':
    goto _L156;
  case 'd':
    uVar12 = (uint)(byte)local_70[uVar19];
    uVar20 = pc.pc_addr + 2;
    if (local_70[uVar19] < '\0') {
      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];
      uVar20 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar20;
    decr_var(uVar12);
    break;
  case 'h':
    pc.pc_addr = uVar19;
    bc_exit(0);
    break;
  case 'i':
    uVar12 = (uint)(byte)local_70[uVar19];
    uVar20 = pc.pc_addr + 2;
    if (local_70[uVar19] < '\0') {
      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];
      uVar20 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar20;
    incr_var(uVar12);
    break;
  case 'l':
    uVar12 = (uint)(byte)local_70[uVar19];
    uVar20 = pc.pc_addr + 2;
    if (local_70[uVar19] < '\0') {
      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];
      uVar20 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar20;
    load_var(uVar12);
    break;
  case 'n':
    pc.pc_addr = uVar19;
    bc_sub(_zero_,ex_stack->s_num,&ex_stack->s_num,0);
    break;
  case 'p':
    pc.pc_addr = uVar19;
    pop();
    goto LAB_00016998;
  case 's':
    uVar12 = (uint)(byte)local_70[uVar19];
    uVar20 = pc.pc_addr + 2;
    if (local_70[uVar19] < '\0') {
      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];
      uVar20 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar20;
    store_var(uVar12);
    break;
  case 'w':
    bVar2 = local_70[uVar19];
    pc.pc_addr = pc.pc_addr + 2;
    while (puVar6 = PTR_stdout_0002bfec, bVar2 != 0x22) {
      out_schar((uint)bVar2);
      bVar2 = functions[pc.pc_func].f_body[pc.pc_addr];
      pc.pc_addr = pc.pc_addr + 1;
    }
    fflush(*(FILE **)PTR_stdout_0002bfec);
    checkferror_output(*(FILE **)puVar6);
    break;
  case 'x':
    pc.pc_addr = uVar19;
    cVar9 = check_stack(2);
    if (cVar9 != '\0') {
      ppeVar1 = &ex_stack->s_next;
      pbVar3 = ex_stack->s_num;
      ex_stack->s_num = (*ppeVar1)->s_num;
      (*ppeVar1)->s_num = pbVar3;
    }
    goto LAB_00016998;
  case '{':
    pc.pc_addr = uVar19;
    cVar9 = check_stack(2);
    if (cVar9 == '\0') goto LAB_00016998;
    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);
    c_code = iVar13 < 1;
    pop();
    goto LAB_000167c5;
  case '|':
    pc.pc_addr = uVar19;
    cVar9 = check_stack(2);
    if (cVar9 == '\0') goto LAB_00016998;
    cVar9 = bc_is_zero(ex_stack->s_next->s_num);
    bVar21 = true;
    if (cVar9 != '\0') {
      cVar9 = bc_is_zero(ex_stack->s_num);
      bVar21 = cVar9 == '\0';
    }
    c_code = bVar21;
    pop();
    goto LAB_000167c5;
  case '}':
    pc.pc_addr = uVar19;
    cVar9 = check_stack(2);
    if (cVar9 == '\0') goto LAB_00016998;
    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);
    c_code = (byte)~(byte)((uint)iVar13 >> 0x18) >> 7;
    pop();
LAB_000167c5:
    cVar9 = c_code;
    bc_free_num(&ex_stack->s_num);
    peVar7 = ex_stack;
    if (cVar9 == '\0') {
      pbVar11 = bc_copy_num(_zero_);
      peVar7->s_num = pbVar11;
    }
    else {
      pbVar11 = bc_copy_num(_one_);
      peVar7->s_num = pbVar11;
    }
  }
  goto LAB_000167f0;
_L156:
  pc.pc_addr = pc.pc_addr + 2;
  switch(local_70[uVar19]) {
  case 'I':
    bc_init_num(&temp);
    bc_init_num(&result);
    bc_init_num(&mult);
    build = bc_copy_num(_zero_);
    bc_int2num(&mult,iVar13);
    iVar15 = input_char();
    while (iVar15 == 0x7e) {
      iVar15 = input_char();
    }
    if (iVar15 == 0x2b) {
      iVar15 = input_char();
    }
    else if (iVar15 == 0x2d) {
      iVar15 = input_char();
      bVar21 = true;
    }
    local_78 = &temp;
    local_7c = (bc_function *)&result;
    iVar16 = iVar15;
    if (iVar15 < 0x24) {
      iVar16 = input_char();
      if ((iVar16 < 0x24) && (iVar13 <= iVar15)) {
        bc_int2num(&build,iVar13 + -1);
      }
      else {
        bc_int2num(&build,iVar15);
        if (0x23 < iVar16) goto LAB_00017b03;
      }
      local_60 = &build;
      do {
        if (iVar16 < iVar13) {
          bc_multiply(build,mult,(bc_num *)local_7c,0);
        }
        else {
          bc_multiply(build,mult,(bc_num *)local_7c,0);
          iVar16 = iVar13 + -1;
        }
        bc_int2num(local_78,iVar16);
        bc_add(result,temp,local_60,0);
        iVar16 = input_char();
      } while (iVar16 < 0x24);
    }
LAB_00017b03:
    if (iVar16 == 0x2e) {
      iVar16 = input_char();
      iVar15 = iVar13 + -1;
      if (iVar13 <= iVar16) {
        iVar16 = iVar15;
      }
      bc_free_num((bc_num *)local_7c);
      bc_free_num(local_78);
      divisor = bc_copy_num(_one_);
      result = bc_copy_num(_zero_);
      if (iVar16 < 0x24) {
        local_58 = 0;
        do {
          while( true ) {
            bc_multiply(result,mult,(bc_num *)local_7c,0);
            bc_int2num(local_78,iVar16);
            bc_add(result,temp,(bc_num *)local_7c,0);
            bc_multiply(divisor,mult,&divisor,0);
            local_58 = local_58 + 1;
            iVar16 = input_char();
            if ((0x23 < iVar16) || (iVar16 < iVar13)) break;
            iVar16 = iVar15;
            if (0x23 < iVar15) goto LAB_00017a9d;
          }
        } while (iVar16 < 0x24);
      }
LAB_00017a9d:
      local_7c = (bc_function *)&result;
      bc_divide(result,divisor,(bc_num *)local_7c,local_58);
      bc_add(build,result,&build,0);
    }
LAB_0001720b:
    local_44 = &mult;
    local_78 = &temp;
    local_7c = (bc_function *)&result;
    if (bVar21) {
      bc_sub(_zero_,build,&build,0);
    }
    push_num(build);
    bc_free_num(local_78);
    bc_free_num((bc_num *)local_7c);
    bc_free_num(local_44);
    break;
  default:
    goto _L141;
  case 'L':
    pbVar3 = ex_stack->s_num;
    iVar13 = pbVar3->n_scale;
    if (((pbVar3->n_len == 1) && (iVar13 != 0)) && (*pbVar3->n_value == '\0')) {
      bc_int2num(&ex_stack->s_num,iVar13);
    }
    else {
      bc_int2num(&ex_stack->s_num,pbVar3->n_len + iVar13);
    }
    break;
  case 'R':
    iVar13 = bc_sqrt(&ex_stack->s_num,scale);
    if (iVar13 != 0) {
LAB_00016998:
      local_78 = (bc_num *)functions[pc.pc_func].f_code_size;
      pbVar10 = (bc_function *)pc.pc_func;
      pbVar18 = functions;
      goto _L141;
    }
    pcVar14 = "Square root of a negative number";
LAB_0001732f:
    rt_error(pcVar14);
    break;
  case 'S':
    bc_int2num(&ex_stack->s_num,ex_stack->s_num->n_scale);
    break;
  case 'X':
    push_copy(_zero_);
    val = random();
    bc_int2num(&ex_stack->s_num,val);
  }
LAB_000167f0:
  local_78 = (bc_num *)functions[pc.pc_func].f_code_size;
  pbVar10 = (bc_function *)pc.pc_func;
  pbVar18 = functions;
  goto _L141;
code_r0x0001730b:
  switch(local_70[uVar19]) {
  case '\\':
    uVar12 = 0x5c;
    uVar19 = pc.pc_addr;
    break;
  default:
    goto _L163;
  case 'a':
    uVar12 = 7;
    uVar19 = pc.pc_addr;
    break;
  case 'b':
    uVar12 = 8;
    uVar19 = pc.pc_addr;
    break;
  case 'f':
    uVar12 = 0xc;
    uVar19 = pc.pc_addr;
    break;
  case 'n':
    uVar12 = 10;
    uVar19 = pc.pc_addr;
    break;
  case 'q':
    uVar12 = 0x22;
    uVar19 = pc.pc_addr;
    break;
  case 'r':
    uVar12 = 0xd;
    uVar19 = pc.pc_addr;
    break;
  case 't':
    uVar12 = 9;
    uVar19 = pc.pc_addr;
  }
LAB_000172c4:
  pc.pc_addr = uVar19;
  out_schar(uVar12);
  local_70 = functions[pc.pc_func].f_body;
  goto _L163;
}



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

void FUN_000165e0(void)

{
  int *piVar1;
  ushort uVar2;
  undefined *puVar3;
  undefined *puVar4;
  byte bVar5;
  char cVar6;
  char cVar7;
  undefined4 *puVar8;
  int iVar9;
  uint uVar10;
  byte extraout_var;
  char *pcVar11;
  int iVar12;
  undefined4 uVar13;
  int iVar14;
  undefined1 uVar15;
  uint uVar16;
  uint uVar17;
  int in_GS_OFFSET;
  bool bVar18;
  undefined4 *local_7c;
  undefined4 *local_78;
  int local_70;
  undefined4 *local_60;
  int local_5c;
  int local_58;
  undefined4 *puStack_44;
  undefined4 local_38;
  undefined4 uStack_34;
  undefined4 uStack_30;
  undefined4 uStack_2c;
  undefined4 uStack_28;
  undefined4 uStack_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x165e9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  DAT_0002c28c = '\0';
  DAT_0002c2ac = 0;
  DAT_0002c2b0 = 0;
  FUN_0001c550(&local_38);
  if (DAT_0002c1fc != '\0') {
    signal(2,FUN_00015ea0);
  }
  puVar3 = PTR_stdout_0002bfec;
  DAT_0002c220 = 0;
  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);
  puVar8 = (undefined4 *)DAT_0002c2ac;
  iVar9 = DAT_0002c278;
LAB_000166a0:
  iVar12 = DAT_0002c2a4;
  local_7c = (undefined4 *)(iVar9 + (int)puVar8 * 0x1c);
  if (((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0)) {
    if (puVar8 != (undefined4 *)0x0) {
      do {
        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));
        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));
        FUN_00018ee0();
        DAT_0002c2b0 = FUN_00018ee0();
        puVar8 = (undefined4 *)FUN_00018ee0();
        iVar9 = DAT_0002c278;
        DAT_0002c2ac = (uint)puVar8;
      } while (puVar8 != (undefined4 *)0x0);
      DAT_0002c2ac = 0;
    }
    while (DAT_0002c2bc != (int *)0x0) {
      FUN_00018f70();
    }
    if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {
      puts("\ninterrupted execution.");
      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);
    }
    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
      return;
    }
                    /* WARNING: Subroutine does not return */
    FUN_00020960();
  }
  uVar16 = DAT_0002c2b0 + 1;
  local_70 = *(int *)((int)local_7c + 4);
  cVar7 = *(char *)(local_70 + DAT_0002c2b0);
  local_58 = 0;
  bVar18 = false;
  switch(cVar7) {
  case '!':
  case 'T':
    DAT_0002c2b0 = uVar16;
    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);
    goto code_r0x000167c5;
  default:
    pcVar11 = "bad instruction: inst=%c";
    DAT_0002c2b0 = uVar16;
    goto code_r0x0001732f;
  case '#':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);
    DAT_0002c294 = iVar9 != 0;
    FUN_00018f70();
    goto code_r0x000167c5;
  case '%':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);
    if (cVar7 == '\0') {
      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);
      goto code_r0x00016d14;
    }
    pcVar11 = "Modulo by zero";
    goto code_r0x0001732f;
  case '&':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);
    bVar18 = false;
    if (cVar7 == '\0') {
      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);
      bVar18 = cVar7 == '\0';
    }
    DAT_0002c294 = bVar18;
    FUN_00018f70();
    goto code_r0x000167c5;
  case '*':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);
code_r0x00016d14:
    FUN_00018f70();
    FUN_00018f70();
    FUN_00018ff0(local_38);
    FUN_0001c550(&local_38);
    break;
  case '+':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 != '\0') {
      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);
      goto code_r0x00016d14;
    }
    goto code_r0x00016998;
  case '-':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 != '\0') {
      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);
      goto code_r0x00016d14;
    }
    goto code_r0x00016998;
  case '/':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);
    if (iVar9 != 0) {
      pcVar11 = "Divide by zero";
      goto code_r0x0001732f;
    }
    FUN_00018f70();
    FUN_00018f70();
    FUN_00018ff0(local_38);
    FUN_0001c550(&local_38);
    break;
  case '0':
    DAT_0002c2b0 = uVar16;
    FUN_00018fb0(DAT_0002c2c8);
    break;
  case '1':
    DAT_0002c2b0 = uVar16;
    FUN_00018fb0(DAT_0002c2c0);
    break;
  case '<':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);
    DAT_0002c294 = iVar9 == -1;
    FUN_00018f70();
    goto code_r0x000167c5;
  case '=':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);
    DAT_0002c294 = iVar9 == 0;
    FUN_00018f70();
    goto code_r0x000167c5;
  case '>':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);
    DAT_0002c294 = iVar9 == 1;
    FUN_00018f70();
    goto code_r0x000167c5;
  case 'A':
    uVar10 = (uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    FUN_00019f00(uVar10);
    break;
  case 'B':
  case 'Z':
    DAT_0002c2b0 = uVar16;
    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);
    DAT_0002c294 = cVar6 == '\0';
    FUN_00018f70();
    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);
    local_70 = *(int *)((int)local_7c + 4);
    local_5c = DAT_0002c2b0 + 1;
    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);
    DAT_0002c2b0 = DAT_0002c2b0 + 2;
    puVar8 = (undefined4 *)DAT_0002c2ac;
    iVar9 = DAT_0002c278;
    if (cVar7 == 'J') goto code_r0x0001740e;
    if (cVar7 == 'B') {
      if (DAT_0002c294 != 0) goto code_r0x0001740e;
    }
    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;
    local_78 = *(undefined4 **)((int)local_7c + 0xc);
    goto LAB_000166a0;
  case 'C':
    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      local_7c = (undefined4 *)
                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    iVar12 = (int)local_7c * 0x1c;
    if (*(char *)(iVar9 + iVar12) == '\0') {
      pcVar11 = "Function %s not defined.";
      goto code_r0x0001732f;
    }
    FUN_0001a270(&DAT_0002c2ac,local_7c);
    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;
        puVar8 = (undefined4 *)puVar8[2]) {
      FUN_00019ff0(*puVar8);
    }
    FUN_00018f40(DAT_0002c2ac);
    FUN_00018f40(DAT_0002c2b0);
    FUN_00018f40(DAT_0002c2a4);
    DAT_0002c2b0 = 0;
    DAT_0002c2ac = (uint)local_7c;
    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);
    puVar8 = local_7c;
    iVar9 = DAT_0002c278;
    goto LAB_000166a0;
  case 'D':
    DAT_0002c2b0 = uVar16;
    FUN_00018fb0(*DAT_0002c2bc);
    break;
  case 'J':
    local_5c = DAT_0002c2b0 + 2;
    uVar15 = *(undefined1 *)(local_70 + uVar16);
    DAT_0002c2b0 = DAT_0002c2b0 + 3;
code_r0x0001740e:
    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);
    uVar16 = (uint)(uVar2 >> 6);
    iVar14 = *(int *)((int)local_7c + 0x10);
    iVar12 = uVar16 - 1;
    if (uVar16 != 0) {
      do {
        iVar12 = iVar12 + -1;
        iVar14 = *(int *)(iVar14 + 0x100);
      } while (iVar12 != -1);
    }
    if (iVar14 == 0) {
      pcVar11 = "Internal error.";
      goto code_r0x0001732f;
    }
    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);
    local_78 = *(undefined4 **)((int)local_7c + 0xc);
    goto LAB_000166a0;
  case 'K':
    if (puVar8 == (undefined4 *)0x0) {
      local_70 = DAT_0002c2a4;
    }
    else {
      local_70 = *DAT_0002c250;
    }
    if (local_70 == 10) {
      DAT_0002c2b0 = uVar16;
      FUN_00016360(&DAT_0002c2ac);
      break;
    }
    DAT_0002c2b0 = uVar16;
    FUN_0001c550(&uStack_30);
    FUN_0001c550(&uStack_2c);
    FUN_0001c550(&uStack_28);
    uStack_34 = FUN_0001c540(DAT_0002c2c8);
    FUN_0001f070(&uStack_28,local_70);
    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);
    uVar16 = DAT_0002c2b0 + 1;
    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);
    if (uVar17 == 0x7e) {
      uVar10 = DAT_0002c2b0 + 2;
      do {
        uVar16 = uVar10;
        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);
        uVar10 = uVar16 + 1;
      } while (uVar17 == 0x7e);
    }
    if (uVar17 == 0x2b) {
      DAT_0002c2b0 = uVar16 + 1;
      uVar17 = (uint)*(byte *)(iVar9 + uVar16);
    }
    else {
      DAT_0002c2b0 = uVar16;
      if (uVar17 == 0x2d) {
        bVar18 = true;
        DAT_0002c2b0 = uVar16 + 1;
        uVar17 = (uint)*(byte *)(iVar9 + uVar16);
      }
    }
    uVar16 = uVar17;
    if (uVar17 < 0x24) {
      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);
      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {
        DAT_0002c2b0 = DAT_0002c2b0 + 1;
        FUN_0001f070(&uStack_34,local_70 + -1);
      }
      else {
        DAT_0002c2b0 = DAT_0002c2b0 + 1;
        FUN_0001f070(&uStack_34,uVar17);
        if (0x23 < uVar16) goto code_r0x00017202;
      }
      local_60 = &uStack_34;
      do {
        if (local_70 <= (int)uVar16) {
          uVar16 = local_70 - 1;
        }
        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);
        FUN_0001f070(&uStack_30,uVar16);
        FUN_0001d720(uStack_2c,uStack_30,local_60,0);
        uVar17 = DAT_0002c2b0 + 1;
        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);
        DAT_0002c2b0 = uVar17;
      } while (uVar16 < 0x24);
    }
code_r0x00017202:
    if (uVar16 == 0x2e) {
      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);
      uVar16 = local_70 - 1;
      if (local_70 <= (int)uVar17) {
        uVar17 = uVar16;
      }
      DAT_0002c2b0 = DAT_0002c2b0 + 1;
      FUN_0001c2e0(&uStack_2c);
      FUN_0001c2e0(&uStack_30);
      uStack_24 = FUN_0001c540(DAT_0002c2c0);
      uStack_2c = FUN_0001c540(DAT_0002c2c8);
      iVar9 = 0;
      if ((int)uVar17 < 0x24) {
        do {
          while( true ) {
            local_58 = iVar9;
            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);
            FUN_0001f070(&uStack_30,uVar17);
            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);
            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);
            local_58 = local_58 + 1;
            uVar10 = DAT_0002c2b0 + 1;
            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0
                                    );
            DAT_0002c2b0 = uVar10;
            iVar9 = local_58;
            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;
            uVar17 = uVar16;
            if (0x23 < (int)uVar16) goto code_r0x00017a9d;
          }
        } while (uVar17 < 0x24);
      }
      goto code_r0x00017a9d;
    }
    goto code_r0x0001720b;
  case 'L':
    uVar10 = (uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    FUN_00019a30(uVar10);
    break;
  case 'M':
    uVar10 = (uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    FUN_00019ca0(uVar10);
    break;
  case 'O':
    DAT_0002c2b0 = uVar16;
code_r0x000172dc:
    uVar16 = DAT_0002c2b0 + 1;
    cVar7 = *(char *)(local_70 + DAT_0002c2b0);
    uVar17 = uVar16;
    if (cVar7 != '\"') {
      if (cVar7 != '\\') goto code_r0x000172c4;
      DAT_0002c2b0 = DAT_0002c2b0 + 2;
      uVar17 = DAT_0002c2b0;
      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;
    }
    DAT_0002c2b0 = uVar17;
    fflush(*(FILE **)puVar3);
    FUN_000208a0(*(undefined4 *)puVar3);
    break;
  case 'P':
  case 'W':
    DAT_0002c2b0 = uVar16;
    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);
    if (cVar7 == 'W') {
      FUN_0001a680(10);
    }
    FUN_00019410(4);
    puVar4 = PTR_stdout_0002bfec;
    fflush(*(FILE **)PTR_stdout_0002bfec);
    FUN_000208a0(*(undefined4 *)puVar4);
    FUN_00018f70();
    break;
  case 'R':
    if (puVar8 == (undefined4 *)0x0) {
      pcVar11 = "Return from main program.";
      DAT_0002c2b0 = uVar16;
      goto code_r0x0001732f;
    }
    DAT_0002c2b0 = uVar16;
    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));
    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));
    FUN_00018ee0();
    DAT_0002c2b0 = FUN_00018ee0();
    puVar8 = (undefined4 *)FUN_00018ee0();
    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);
    iVar9 = DAT_0002c278;
    DAT_0002c2ac = (uint)puVar8;
    goto LAB_000166a0;
  case 'S':
    uVar10 = (uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    FUN_00019770(uVar10);
    break;
  case '^':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);
    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);
    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {
      FUN_0001b7b0("divide by zero");
    }
    FUN_00018f70();
    FUN_00018f70();
    FUN_00018ff0(local_38);
    FUN_0001c550(&local_38);
    break;
  case 'c':
    goto code_r0x00016f20;
  case 'd':
    uVar10 = (uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    FUN_00019b30(uVar10);
    break;
  case 'h':
    DAT_0002c2b0 = uVar16;
    FUN_0001b8a0(0);
    break;
  case 'i':
    uVar10 = (uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    FUN_00019d90(uVar10);
    break;
  case 'l':
    uVar10 = (uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    FUN_00019880(uVar10);
    break;
  case 'n':
    DAT_0002c2b0 = uVar16;
    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);
    break;
  case 'p':
    DAT_0002c2b0 = uVar16;
    FUN_00018f70();
    goto code_r0x00016998;
  case 's':
    uVar10 = (uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    FUN_00019410(uVar10);
    break;
  case 'w':
    cVar7 = *(char *)(local_70 + uVar16);
    DAT_0002c2b0 = DAT_0002c2b0 + 2;
    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {
      FUN_0001a730(cVar7);
      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);
      DAT_0002c2b0 = DAT_0002c2b0 + 1;
    }
    fflush(*(FILE **)PTR_stdout_0002bfec);
    FUN_000208a0(*(undefined4 *)puVar4);
    break;
  case 'x':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 != '\0') {
      piVar1 = DAT_0002c2bc + 1;
      iVar9 = *DAT_0002c2bc;
      *DAT_0002c2bc = *(int *)*piVar1;
      *(int *)*piVar1 = iVar9;
    }
    goto code_r0x00016998;
  case '{':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);
    DAT_0002c294 = iVar9 < 1;
    FUN_00018f70();
    goto code_r0x000167c5;
  case '|':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);
    bVar18 = true;
    if (cVar7 != '\0') {
      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);
      bVar18 = cVar7 == '\0';
    }
    DAT_0002c294 = bVar18;
    FUN_00018f70();
    goto code_r0x000167c5;
  case '}':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);
    DAT_0002c294 = (byte)~extraout_var >> 7;
    FUN_00018f70();
code_r0x000167c5:
    bVar5 = DAT_0002c294;
    FUN_0001c2e0(DAT_0002c2bc);
    piVar1 = DAT_0002c2bc;
    if (bVar5 == 0) {
      iVar9 = FUN_0001c540(DAT_0002c2c8);
      *piVar1 = iVar9;
    }
    else {
      iVar9 = FUN_0001c540(DAT_0002c2c0);
      *piVar1 = iVar9;
    }
  }
  goto LAB_000167f0;
code_r0x00016f20:
  DAT_0002c2b0 = DAT_0002c2b0 + 2;
  switch(*(undefined1 *)(local_70 + uVar16)) {
  case 0x49:
    FUN_0001c550(&uStack_30);
    FUN_0001c550(&uStack_2c);
    FUN_0001c550(&uStack_28);
    uStack_34 = FUN_0001c540(DAT_0002c2c8);
    FUN_0001f070(&uStack_28,iVar12);
    iVar9 = FUN_00015f20();
    while (iVar9 == 0x7e) {
      iVar9 = FUN_00015f20();
    }
    if (iVar9 == 0x2b) {
      iVar9 = FUN_00015f20();
    }
    else if (iVar9 == 0x2d) {
      iVar9 = FUN_00015f20();
      bVar18 = true;
    }
    local_78 = &uStack_30;
    local_7c = &uStack_2c;
    iVar14 = iVar9;
    if (iVar9 < 0x24) {
      iVar14 = FUN_00015f20();
      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {
        FUN_0001f070(&uStack_34,iVar12 + -1);
      }
      else {
        FUN_0001f070(&uStack_34,iVar9);
        if (0x23 < iVar14) goto code_r0x00017b03;
      }
      local_60 = &uStack_34;
      do {
        if (iVar14 < iVar12) {
          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);
        }
        else {
          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);
          iVar14 = iVar12 + -1;
        }
        FUN_0001f070(local_78,iVar14);
        FUN_0001d720(uStack_2c,uStack_30,local_60,0);
        iVar14 = FUN_00015f20();
      } while (iVar14 < 0x24);
    }
code_r0x00017b03:
    if (iVar14 == 0x2e) {
      iVar14 = FUN_00015f20();
      iVar9 = iVar12 + -1;
      if (iVar12 <= iVar14) {
        iVar14 = iVar9;
      }
      FUN_0001c2e0(local_7c);
      FUN_0001c2e0(local_78);
      uStack_24 = FUN_0001c540(DAT_0002c2c0);
      uStack_2c = FUN_0001c540(DAT_0002c2c8);
      if (iVar14 < 0x24) {
        local_58 = 0;
        do {
          while( true ) {
            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);
            FUN_0001f070(local_78,iVar14);
            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);
            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);
            local_58 = local_58 + 1;
            iVar14 = FUN_00015f20();
            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;
            iVar14 = iVar9;
            if (0x23 < iVar9) goto code_r0x00017a9d;
          }
        } while (iVar14 < 0x24);
      }
code_r0x00017a9d:
      local_7c = &uStack_2c;
      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);
      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);
    }
code_r0x0001720b:
    puStack_44 = &uStack_28;
    local_78 = &uStack_30;
    local_7c = &uStack_2c;
    if (bVar18) {
      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);
    }
    FUN_00018ff0(uStack_34);
    FUN_0001c2e0(local_78);
    FUN_0001c2e0(local_7c);
    FUN_0001c2e0(puStack_44);
    break;
  default:
    goto LAB_000166a0;
  case 0x4c:
    iVar9 = *DAT_0002c2bc;
    iVar12 = *(int *)(iVar9 + 8);
    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {
      FUN_0001f070(DAT_0002c2bc,iVar12);
    }
    else {
      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);
    }
    break;
  case 0x52:
    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);
    if (iVar9 != 0) {
code_r0x00016998:
      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);
      puVar8 = (undefined4 *)DAT_0002c2ac;
      iVar9 = DAT_0002c278;
      goto LAB_000166a0;
    }
    pcVar11 = "Square root of a negative number";
code_r0x0001732f:
    FUN_0001b7b0(pcVar11);
    break;
  case 0x53:
    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));
    break;
  case 0x58:
    FUN_00018fb0(DAT_0002c2c8);
    uVar13 = func_0x000112e0();
    FUN_0001f070(DAT_0002c2bc,uVar13);
  }
LAB_000167f0:
  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);
  puVar8 = (undefined4 *)DAT_0002c2ac;
  iVar9 = DAT_0002c278;
  goto LAB_000166a0;
code_r0x0001730b:
  switch(*(char *)(local_70 + uVar16)) {
  case '\\':
    cVar7 = '\\';
    uVar16 = DAT_0002c2b0;
    break;
  default:
    goto code_r0x000172dc;
  case 'a':
    cVar7 = '\a';
    uVar16 = DAT_0002c2b0;
    break;
  case 'b':
    cVar7 = '\b';
    uVar16 = DAT_0002c2b0;
    break;
  case 'f':
    cVar7 = '\f';
    uVar16 = DAT_0002c2b0;
    break;
  case 'n':
    cVar7 = '\n';
    uVar16 = DAT_0002c2b0;
    break;
  case 'q':
    cVar7 = '\"';
    uVar16 = DAT_0002c2b0;
    break;
  case 'r':
    cVar7 = '\r';
    uVar16 = DAT_0002c2b0;
    break;
  case 't':
    cVar7 = '\t';
    uVar16 = DAT_0002c2b0;
  }
code_r0x000172c4:
  DAT_0002c2b0 = uVar16;
  FUN_0001a730(cVar7);
  local_70 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);
  goto code_r0x000172dc;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000117c0
ADD EBX,0x1591b
SUB ESP,0x88
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x78],EAX
XOR EAX,EAX
LEA EAX,[EBX + 0x388]
LEA EBP,[EBX + 0x3a8]
MOV dword ptr [ESP + 0x30],EAX
MOV byte ptr [EAX],0x0
LEA EAX,[ESP + 0x60]
MOV dword ptr [ESP + 0x48],EAX
PUSH EAX
MOV dword ptr [EBP],0x0
MOV dword ptr [EBP + 0x4],0x0
CALL 0x0001c550
LEA EAX,[EBX + 0x2f8]
MOV dword ptr [ESP + 0x48],EAX
ADD ESP,0x10
CMP byte ptr [EAX],0x0
JNZ 0x000173b0
LEA EAX,[EBX + 0x31c]
MOV EDI,dword ptr [EBP]
MOV ESI,dword ptr [EBP + 0x4]
MOV dword ptr [EAX],0x0
MOV dword ptr [ESP + 0x28],EAX
LEA EAX,[EBX + 0x374]
MOV ECX,ESI
MOV ESI,EDI
MOV EDX,dword ptr [EAX]
MOV dword ptr [ESP + 0xc],EAX
IMUL EAX,EDI,0x1c
MOV EDI,EDX
MOV EAX,dword ptr [EDX + EAX*0x1 + 0xc]
MOV dword ptr [ESP + 0x14],EAX
LEA EAX,[EBX + 0x3b8]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [EBX + 0xe8]
MOV dword ptr [ESP + 0x40],EAX
LEA EAX,[EBX + 0x390]
MOV dword ptr [ESP + 0x44],EAX
LEA ESI,[ESI]
NOP
IMUL EDX,ESI,0x1c
LEA EAX,[EDI + EDX*0x1]
MOV dword ptr [ESP + 0x10],EAX
CMP ECX,dword ptr [ESP + 0x14]
JNC 0x00016708
MOV EAX,dword ptr [ESP + 0x24]
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [ESP + 0x30],AL
TEST AL,AL
JNZ 0x00016708
MOV EAX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x34],EAX
TEST EAX,EAX
JNZ 0x00016708
MOV EAX,dword ptr [ESP + 0x10]
LEA EDX,[ECX + 0x1]
MOV dword ptr [ESP + 0x20],EDX
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [EBP + 0x4],EDX
MOV dword ptr [ESP + 0x1c],EAX
MOVZX EAX,byte ptr [EAX + ECX*0x1]
MOV byte ptr [ESP + 0x2c],AL
SUB EAX,0x21
CMP AL,0x5c
JA 0x00017320
MOVZX EAX,AL
MOV EDX,dword ptr [EBX + EAX*0x4 + 0xffff861c]
ADD EDX,EBX
JMP EDX
MOV EDX,EDI
MOV EAX,ESI
TEST ESI,ESI
JNZ 0x0001671e
JMP 0x00016775
MOV ESI,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [ESI]
IMUL EAX,EAX,0x1c
SUB ESP,0xc
PUSH dword ptr [EDX + EAX*0x1 + 0x18]
CALL 0x0001a120
POP ESI
MOV EDI,dword ptr [ESP + 0x18]
IMUL EAX,dword ptr [EBP],0x1c
ADD EAX,dword ptr [EDI]
PUSH dword ptr [EAX + 0x14]
CALL 0x0001a120
CALL 0x00018ee0
CALL 0x00018ee0
MOV dword ptr [EBP + 0x4],EAX
CALL 0x00018ee0
ADD ESP,0x10
MOV dword ptr [EBP],EAX
TEST EAX,EAX
JNZ 0x00016718
MOV EAX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [EAX]
TEST ECX,ECX
JZ 0x0001677f
LEA ESI,[ESI]
LEA ESI,[ESI]
CALL 0x00018f70
MOV EAX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [EAX]
TEST ECX,ECX
JNZ 0x00016770
MOV EAX,dword ptr [ESP + 0x38]
CMP byte ptr [EAX],0x0
JNZ 0x00017360
MOV EAX,dword ptr [ESP + 0x6c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x00017c1c
ADD ESP,0x7c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x1c]
MOV ESI,dword ptr [EBP]
MOV ECX,dword ptr [EBP + 0x4]
MOV EDI,dword ptr [EAX]
IMUL EAX,ESI,0x1c
MOV EAX,dword ptr [EDI + EAX*0x1 + 0xc]
MOV dword ptr [ESP + 0x24],EAX
ADD ESP,0x10
JMP 0x000166a0
SUB ESP,0x8
LEA EAX,[EBX + 0xffff85c4]
MOVZX ESI,byte ptr [ESP + 0x34]
PUSH ESI
PUSH EAX
CALL 0x0001b7b0
JMP 0x000167f0
SUB ESP,0x8
PUSH dword ptr [EBX + 0xf0]
PUSH 0x2
CALL 0x00011100
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
JZ 0x0001678c
SUB ESP,0xc
LEA EAX,[EBX + 0xffff85dd]
PUSH EAX
CALL 0x00011190
POP EAX
MOV EAX,dword ptr [EBX + 0xe8]
PUSH dword ptr [EAX]
CALL 0x000208a0
ADD ESP,0x10
JMP 0x0001678c
SUB ESP,0x8
LEA EAX,[EBX + 0xfffe9f9c]
PUSH EAX
PUSH 0x2
CALL 0x00011100
ADD ESP,0x10
JMP 0x00016646
CALL 0x00020960
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000165e0(void)\n\n{\n  int *piVar1;\n  ushort uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  byte bVar5;\n  char cVar6;\n  char cVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  uint uVar10;\n  byte extraout_var;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  bool bVar18;\n  undefined4 *local_7c;\n  undefined4 *local_78;\n  int local_70;\n  undefined4 *local_60;\n  int local_5c;\n  int local_58;\n  undefined4 *puStack_44;\n  undefined4 local_38;\n  undefined4 uStack_34;\n  undefined4 uStack_30;\n  undefined4 uStack_2c;\n  undefined4 uStack_28;\n  undefined4 uStack_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x165e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  DAT_0002c28c = '\0';\n  DAT_0002c2ac = 0;\n  DAT_0002c2b0 = 0;\n  FUN_0001c550(&local_38);\n  if (DAT_0002c1fc != '\0') {\n    signal(2,FUN_00015ea0);\n  }\n  puVar3 = PTR_stdout_0002bfec;\n  DAT_0002c220 = 0;\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n  puVar8 = (undefined4 *)DAT_0002c2ac;\n  iVar9 = DAT_0002c278;\nLAB_000166a0:\n  iVar12 = DAT_0002c2a4;\n  local_7c = (undefined4 *)(iVar9 + (int)puVar8 * 0x1c);\n  if (((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0)) {\n    if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }\n    while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }\n    if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_00020960();\n  }\n  uVar16 = DAT_0002c2b0 + 1;\n  local_70 = *(int *)((int)local_7c + 4);\n  cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n  local_58 = 0;\n  bVar18 = false;\n  switch(cVar7) {\n  case '!':\n  case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;\n  case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;\n  case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;\n  case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;\n  case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;\n  case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;\n  case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;\n  case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;\n  case 'P':\n  case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;\n  case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;\n  case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case 'c':\n    goto code_r0x00016f20;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;\n  case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;\n  case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;\n  case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;\n  case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;\n  case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;\n  case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }\n  }\n  goto LAB_000167f0;\ncode_r0x00016f20:\n  DAT_0002c2b0 = DAT_0002c2b0 + 2;\n  switch(*(undefined1 *)(local_70 + uVar16)) {\n  case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;\n  default:\n    goto LAB_000166a0;\n  case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;\n  case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;\n  case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;\n  case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);\n  }\nLAB_000167f0:\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n  puVar8 = (undefined4 *)DAT_0002c2ac;\n  iVar9 = DAT_0002c278;\n  goto LAB_000166a0;\ncode_r0x0001730b:\n  switch(*(char *)(local_70 + uVar16)) {\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }\ncode_r0x000172c4:\n  DAT_0002c2b0 = uVar16;\n  FUN_0001a730(cVar7);\n  local_70 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n  goto code_r0x000172dc;\n}\n\n" comment (function_definition "void FUN_000165e0(void)\n\n{\n  int *piVar1;\n  ushort uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  byte bVar5;\n  char cVar6;\n  char cVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  uint uVar10;\n  byte extraout_var;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  bool bVar18;\n  undefined4 *local_7c;\n  undefined4 *local_78;\n  int local_70;\n  undefined4 *local_60;\n  int local_5c;\n  int local_58;\n  undefined4 *puStack_44;\n  undefined4 local_38;\n  undefined4 uStack_34;\n  undefined4 uStack_30;\n  undefined4 uStack_2c;\n  undefined4 uStack_28;\n  undefined4 uStack_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x165e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  DAT_0002c28c = '\0';\n  DAT_0002c2ac = 0;\n  DAT_0002c2b0 = 0;\n  FUN_0001c550(&local_38);\n  if (DAT_0002c1fc != '\0') {\n    signal(2,FUN_00015ea0);\n  }\n  puVar3 = PTR_stdout_0002bfec;\n  DAT_0002c220 = 0;\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n  puVar8 = (undefined4 *)DAT_0002c2ac;\n  iVar9 = DAT_0002c278;\nLAB_000166a0:\n  iVar12 = DAT_0002c2a4;\n  local_7c = (undefined4 *)(iVar9 + (int)puVar8 * 0x1c);\n  if (((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0)) {\n    if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }\n    while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }\n    if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_00020960();\n  }\n  uVar16 = DAT_0002c2b0 + 1;\n  local_70 = *(int *)((int)local_7c + 4);\n  cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n  local_58 = 0;\n  bVar18 = false;\n  switch(cVar7) {\n  case '!':\n  case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;\n  case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;\n  case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;\n  case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;\n  case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;\n  case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;\n  case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;\n  case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;\n  case 'P':\n  case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;\n  case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;\n  case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case 'c':\n    goto code_r0x00016f20;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;\n  case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;\n  case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;\n  case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;\n  case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;\n  case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;\n  case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }\n  }\n  goto LAB_000167f0;\ncode_r0x00016f20:\n  DAT_0002c2b0 = DAT_0002c2b0 + 2;\n  switch(*(undefined1 *)(local_70 + uVar16)) {\n  case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;\n  default:\n    goto LAB_000166a0;\n  case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;\n  case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;\n  case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;\n  case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);\n  }\nLAB_000167f0:\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n  puVar8 = (undefined4 *)DAT_0002c2ac;\n  iVar9 = DAT_0002c278;\n  goto LAB_000166a0;\ncode_r0x0001730b:\n  switch(*(char *)(local_70 + uVar16)) {\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }\ncode_r0x000172c4:\n  DAT_0002c2b0 = uVar16;\n  FUN_0001a730(cVar7);\n  local_70 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n  goto code_r0x000172dc;\n}" primitive_type (function_declarator "FUN_000165e0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  ushort uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  byte bVar5;\n  char cVar6;\n  char cVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  uint uVar10;\n  byte extraout_var;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  bool bVar18;\n  undefined4 *local_7c;\n  undefined4 *local_78;\n  int local_70;\n  undefined4 *local_60;\n  int local_5c;\n  int local_58;\n  undefined4 *puStack_44;\n  undefined4 local_38;\n  undefined4 uStack_34;\n  undefined4 uStack_30;\n  undefined4 uStack_2c;\n  undefined4 uStack_28;\n  undefined4 uStack_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x165e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  DAT_0002c28c = '\0';\n  DAT_0002c2ac = 0;\n  DAT_0002c2b0 = 0;\n  FUN_0001c550(&local_38);\n  if (DAT_0002c1fc != '\0') {\n    signal(2,FUN_00015ea0);\n  }\n  puVar3 = PTR_stdout_0002bfec;\n  DAT_0002c220 = 0;\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n  puVar8 = (undefined4 *)DAT_0002c2ac;\n  iVar9 = DAT_0002c278;\nLAB_000166a0:\n  iVar12 = DAT_0002c2a4;\n  local_7c = (undefined4 *)(iVar9 + (int)puVar8 * 0x1c);\n  if (((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0)) {\n    if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }\n    while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }\n    if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_00020960();\n  }\n  uVar16 = DAT_0002c2b0 + 1;\n  local_70 = *(int *)((int)local_7c + 4);\n  cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n  local_58 = 0;\n  bVar18 = false;\n  switch(cVar7) {\n  case '!':\n  case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;\n  case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;\n  case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;\n  case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;\n  case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;\n  case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;\n  case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;\n  case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;\n  case 'P':\n  case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;\n  case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;\n  case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case 'c':\n    goto code_r0x00016f20;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;\n  case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;\n  case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;\n  case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;\n  case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;\n  case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;\n  case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }\n  }\n  goto LAB_000167f0;\ncode_r0x00016f20:\n  DAT_0002c2b0 = DAT_0002c2b0 + 2;\n  switch(*(undefined1 *)(local_70 + uVar16)) {\n  case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;\n  default:\n    goto LAB_000166a0;\n  case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;\n  case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;\n  case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;\n  case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);\n  }\nLAB_000167f0:\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n  puVar8 = (undefined4 *)DAT_0002c2ac;\n  iVar9 = DAT_0002c278;\n  goto LAB_000166a0;\ncode_r0x0001730b:\n  switch(*(char *)(local_70 + uVar16)) {\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }\ncode_r0x000172c4:\n  DAT_0002c2b0 = uVar16;\n  FUN_0001a730(cVar7);\n  local_70 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n  goto code_r0x000172dc;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "byte extraout_var;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "undefined4 *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "undefined4 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "undefined4 *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "undefined4 *puStack_44;" type_identifier (pointer_declarator "*puStack_44" * identifier) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 uStack_34;" type_identifier identifier ;) (declaration "undefined4 uStack_30;" type_identifier identifier ;) (declaration "undefined4 uStack_2c;" type_identifier identifier ;) (declaration "undefined4 uStack_28;" type_identifier identifier ;) (declaration "undefined4 uStack_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x165e9;" (assignment_expression "uStack_14 = 0x165e9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "DAT_0002c28c = '\0';" (assignment_expression "DAT_0002c28c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "DAT_0002c2ac = 0;" (assignment_expression "DAT_0002c2ac = 0" identifier = number_literal) ;) (expression_statement "DAT_0002c2b0 = 0;" (assignment_expression "DAT_0002c2b0 = 0" identifier = number_literal) ;) (expression_statement "FUN_0001c550(&local_38);" (call_expression "FUN_0001c550(&local_38)" identifier (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) ))) ;) (if_statement "if (DAT_0002c1fc != '\0') {\n    signal(2,FUN_00015ea0);\n  }" if (parenthesized_expression "(DAT_0002c1fc != '\0')" ( (binary_expression "DAT_0002c1fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    signal(2,FUN_00015ea0);\n  }" { (expression_statement "signal(2,FUN_00015ea0);" (call_expression "signal(2,FUN_00015ea0)" identifier (argument_list "(2,FUN_00015ea0)" ( number_literal , identifier ))) ;) })) (expression_statement "puVar3 = PTR_stdout_0002bfec;" (assignment_expression "puVar3 = PTR_stdout_0002bfec" identifier = identifier) ;) (expression_statement "DAT_0002c220 = 0;" (assignment_expression "DAT_0002c220 = 0" identifier = number_literal) ;) (expression_statement "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);" (assignment_expression "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" identifier = (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" * (cast_expression "(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" ( (binary_expression "DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c" (binary_expression "DAT_0002c278 + 0xc" identifier + number_literal) + (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal)) ))))) ;) (expression_statement "puVar8 = (undefined4 *)DAT_0002c2ac;" (assignment_expression "puVar8 = (undefined4 *)DAT_0002c2ac" identifier = (cast_expression "(undefined4 *)DAT_0002c2ac" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" identifier = identifier) ;) (labeled_statement "LAB_000166a0:\n  iVar12 = DAT_0002c2a4;" statement_identifier : (expression_statement "iVar12 = DAT_0002c2a4;" (assignment_expression "iVar12 = DAT_0002c2a4" identifier = identifier) ;)) (expression_statement "local_7c = (undefined4 *)(iVar9 + (int)puVar8 * 0x1c);" (assignment_expression "local_7c = (undefined4 *)(iVar9 + (int)puVar8 * 0x1c)" identifier = (cast_expression "(undefined4 *)(iVar9 + (int)puVar8 * 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + (int)puVar8 * 0x1c)" ( (binary_expression "iVar9 + (int)puVar8 * 0x1c" identifier + (binary_expression "(int)puVar8 * 0x1c" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (if_statement "if (((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0)) {\n    if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }\n    while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }\n    if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_00020960();\n  }" if (parenthesized_expression "(((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0))" ( (binary_expression "((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0)" (parenthesized_expression "((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0'))" ( (binary_expression "(local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')" (parenthesized_expression "(local_78 <= DAT_0002c2b0)" ( (binary_expression "local_78 <= DAT_0002c2b0" identifier <= identifier) )) || (parenthesized_expression "(DAT_0002c28c != '\0')" ( (binary_expression "DAT_0002c28c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(DAT_0002c220 != 0)" ( (binary_expression "DAT_0002c220 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }\n    while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }\n    if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    FUN_00020960();\n  }" { (if_statement "if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }" if (parenthesized_expression "(puVar8 != (undefined4 *)0x0)" ( (binary_expression "puVar8 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }" { (do_statement "do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);" do (compound_statement "{\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      }" { (expression_statement "FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));" (call_expression "FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c))" identifier (argument_list "(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c)" * (cast_expression "(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18 + (int)puVar8 * 0x1c)" ( (binary_expression "iVar9 + 0x18 + (int)puVar8 * 0x1c" (binary_expression "iVar9 + 0x18" identifier + number_literal) + (binary_expression "(int)puVar8 * 0x1c" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ))) ;) (expression_statement "FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));" (call_expression "FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14))" identifier (argument_list "(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14))" ( (pointer_expression "*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" * (cast_expression "(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" ( (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) ))) ;) (expression_statement "FUN_00018ee0();" (call_expression "FUN_00018ee0()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_0002c2b0 = FUN_00018ee0();" (assignment_expression "DAT_0002c2b0 = FUN_00018ee0()" identifier = (call_expression "FUN_00018ee0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar8 = (undefined4 *)FUN_00018ee0();" (assignment_expression "puVar8 = (undefined4 *)FUN_00018ee0()" identifier = (cast_expression "(undefined4 *)FUN_00018ee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00018ee0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" identifier = identifier) ;) (expression_statement "DAT_0002c2ac = (uint)puVar8;" (assignment_expression "DAT_0002c2ac = (uint)puVar8" identifier = (cast_expression "(uint)puVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(puVar8 != (undefined4 *)0x0)" ( (binary_expression "puVar8 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "DAT_0002c2ac = 0;" (assignment_expression "DAT_0002c2ac = 0" identifier = number_literal) ;) })) (while_statement "while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }" while (parenthesized_expression "(DAT_0002c2bc != (int *)0x0)" ( (binary_expression "DAT_0002c2bc != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00018f70();\n    }" { (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }" if (parenthesized_expression "((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0))" ( (binary_expression "(DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)" (parenthesized_expression "(DAT_0002c1fc != '\0')" ( (binary_expression "DAT_0002c1fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)" ( (comma_expression "signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0" (call_expression "signal(2,(__sighandler_t)PTR_FUN_0002bff4)" identifier (argument_list "(2,(__sighandler_t)PTR_FUN_0002bff4)" ( number_literal , (cast_expression "(__sighandler_t)PTR_FUN_0002bff4" ( (type_descriptor "__sighandler_t" type_identifier) ) identifier) ))) , (binary_expression "DAT_0002c220 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }" { (expression_statement "puts("\ninterrupted execution.");" (call_expression "puts("\ninterrupted execution.")" identifier (argument_list "("\ninterrupted execution.")" ( (string_literal ""\ninterrupted execution."" " escape_sequence string_content ") ))) ;) (expression_statement "FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);" (call_expression "FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec)" identifier (argument_list "(*(undefined4 *)PTR_stdout_0002bfec)" ( (pointer_expression "*(undefined4 *)PTR_stdout_0002bfec" * (cast_expression "(undefined4 *)PTR_stdout_0002bfec" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\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      return;\n    }" { (return_statement "return;" return ;) })) comment (expression_statement "FUN_00020960();" (call_expression "FUN_00020960()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar16 = DAT_0002c2b0 + 1;" (assignment_expression "uVar16 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) (expression_statement "local_70 = *(int *)((int)local_7c + 4);" (assignment_expression "local_70 = *(int *)((int)local_7c + 4)" identifier = (pointer_expression "*(int *)((int)local_7c + 4)" * (cast_expression "(int *)((int)local_7c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 4)" ( (binary_expression "(int)local_7c + 4" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "cVar7 = *(char *)(local_70 + DAT_0002c2b0);" (assignment_expression "cVar7 = *(char *)(local_70 + DAT_0002c2b0)" identifier = (pointer_expression "*(char *)(local_70 + DAT_0002c2b0)" * (cast_expression "(char *)(local_70 + DAT_0002c2b0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + DAT_0002c2b0)" ( (binary_expression "local_70 + DAT_0002c2b0" identifier + identifier) ))))) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (switch_statement "switch(cVar7) {\n  case '!':\n  case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;\n  case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;\n  case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;\n  case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;\n  case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;\n  case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;\n  case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;\n  case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;\n  case 'P':\n  case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;\n  case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;\n  case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case 'c':\n    goto code_r0x00016f20;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;\n  case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;\n  case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;\n  case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;\n  case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;\n  case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;\n  case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }\n  }" switch (parenthesized_expression "(cVar7)" ( identifier )) (compound_statement "{\n  case '!':\n  case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;\n  case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;\n  case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;\n  case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;\n  case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;\n  case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;\n  case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;\n  case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;\n  case 'P':\n  case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;\n  case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;\n  case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case 'c':\n    goto code_r0x00016f20;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;\n  case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;\n  case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;\n  case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;\n  case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;\n  case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;\n  case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }\n  }" { (case_statement "case '!':" case (char_literal "'!'" ' character ') :) (case_statement "case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;" case (char_literal "'T'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);" (assignment_expression "DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c6d0(*DAT_0002c2bc)" identifier (argument_list "(*DAT_0002c2bc)" ( (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (goto_statement "goto code_r0x000167c5;" goto statement_identifier ;)) (case_statement "default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;" default : (expression_statement "pcVar11 = "bad instruction: inst=%c";" (assignment_expression "pcVar11 = "bad instruction: inst=%c"" identifier = (string_literal ""bad instruction: inst=%c"" " string_content ")) ;) (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (goto_statement "goto code_r0x0001732f;" goto statement_identifier ;)) (case_statement "case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;" case (char_literal "'#'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (assignment_expression "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (expression_statement "DAT_0002c294 = iVar9 != 0;" (assignment_expression "DAT_0002c294 = iVar9 != 0" identifier = (binary_expression "iVar9 != 0" identifier != number_literal)) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x000167c5;" goto statement_identifier ;)) (case_statement "case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;" case (char_literal "'%'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "cVar7 = FUN_0001c6d0(*DAT_0002c2bc);" (assignment_expression "cVar7 = FUN_0001c6d0(*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c6d0(*DAT_0002c2bc)" identifier (argument_list "(*DAT_0002c2bc)" ( (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (if_statement "if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }" { (expression_statement "FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);" (call_expression "FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) , (pointer_expression "&local_38" & identifier) , identifier ))) ;) (goto_statement "goto code_r0x00016d14;" goto statement_identifier ;) })) (expression_statement "pcVar11 = "Modulo by zero";" (assignment_expression "pcVar11 = "Modulo by zero"" identifier = (string_literal ""Modulo by zero"" " string_content ")) ;) (goto_statement "goto code_r0x0001732f;" goto statement_identifier ;)) (case_statement "case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;" case (char_literal "'&'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);" (assignment_expression "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" identifier = (call_expression "FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1])" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) )))) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (if_statement "if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }" { (expression_statement "cVar7 = FUN_0001c6d0(*DAT_0002c2bc);" (assignment_expression "cVar7 = FUN_0001c6d0(*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c6d0(*DAT_0002c2bc)" identifier (argument_list "(*DAT_0002c2bc)" ( (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (expression_statement "bVar18 = cVar7 == '\0';" (assignment_expression "bVar18 = cVar7 == '\0'" identifier = (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) })) (expression_statement "DAT_0002c294 = bVar18;" (assignment_expression "DAT_0002c294 = bVar18" identifier = identifier) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x000167c5;" goto statement_identifier ;)) (case_statement "case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;" case (char_literal "'*'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);" (call_expression "FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) , (pointer_expression "&local_38" & identifier) , identifier ))) ;) (labeled_statement "code_r0x00016d14:\n    FUN_00018f70();" statement_identifier : (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018ff0(local_38);" (call_expression "FUN_00018ff0(local_38)" identifier (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "FUN_0001c550(&local_38);" (call_expression "FUN_0001c550(&local_38)" identifier (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;" case (char_literal "'+'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }" { (expression_statement "FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);" (call_expression "FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) , (pointer_expression "&local_38" & identifier) , number_literal ))) ;) (goto_statement "goto code_r0x00016d14;" goto statement_identifier ;) })) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (case_statement "case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;" case (char_literal "'-'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }" { (expression_statement "FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);" (call_expression "FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) , (pointer_expression "&local_38" & identifier) , number_literal ))) ;) (goto_statement "goto code_r0x00016d14;" goto statement_identifier ;) })) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (case_statement "case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;" case (char_literal "'/'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);" (assignment_expression "iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" identifier = (call_expression "FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) , (pointer_expression "&local_38" & identifier) , identifier )))) ;) (if_statement "if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }" { (expression_statement "pcVar11 = "Divide by zero";" (assignment_expression "pcVar11 = "Divide by zero"" identifier = (string_literal ""Divide by zero"" " string_content ")) ;) (goto_statement "goto code_r0x0001732f;" goto statement_identifier ;) })) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018ff0(local_38);" (call_expression "FUN_00018ff0(local_38)" identifier (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "FUN_0001c550(&local_38);" (call_expression "FUN_0001c550(&local_38)" identifier (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;" case (char_literal "'0'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_00018fb0(DAT_0002c2c8);" (call_expression "FUN_00018fb0(DAT_0002c2c8)" identifier (argument_list "(DAT_0002c2c8)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;" case (char_literal "'1'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_00018fb0(DAT_0002c2c0);" (call_expression "FUN_00018fb0(DAT_0002c2c0)" identifier (argument_list "(DAT_0002c2c0)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;" case (char_literal "'<'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (assignment_expression "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (expression_statement "DAT_0002c294 = iVar9 == -1;" (assignment_expression "DAT_0002c294 = iVar9 == -1" identifier = (binary_expression "iVar9 == -1" identifier == number_literal)) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x000167c5;" goto statement_identifier ;)) (case_statement "case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;" case (char_literal "'='" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (assignment_expression "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (expression_statement "DAT_0002c294 = iVar9 == 0;" (assignment_expression "DAT_0002c294 = iVar9 == 0" identifier = (binary_expression "iVar9 == 0" identifier == number_literal)) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x000167c5;" goto statement_identifier ;)) (case_statement "case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;" case (char_literal "'>'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (assignment_expression "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (expression_statement "DAT_0002c294 = iVar9 == 1;" (assignment_expression "DAT_0002c294 = iVar9 == 1" identifier = (binary_expression "iVar9 == 1" identifier == number_literal)) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x000167c5;" goto statement_identifier ;)) (case_statement "case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;" case (char_literal "'A'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "FUN_00019f00(uVar10);" (call_expression "FUN_00019f00(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'B':" case (char_literal "'B'" ' character ') :) (case_statement "case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;" case (char_literal "'Z'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar6 = FUN_0001c6d0(*DAT_0002c2bc);" (assignment_expression "cVar6 = FUN_0001c6d0(*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c6d0(*DAT_0002c2bc)" identifier (argument_list "(*DAT_0002c2bc)" ( (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (expression_statement "DAT_0002c294 = cVar6 == '\0';" (assignment_expression "DAT_0002c294 = cVar6 == '\0'" identifier = (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);" (assignment_expression "local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c)" identifier = (cast_expression "(undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c278 + DAT_0002c2ac * 0x1c)" ( (binary_expression "DAT_0002c278 + DAT_0002c2ac * 0x1c" identifier + (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal)) )))) ;) (expression_statement "local_70 = *(int *)((int)local_7c + 4);" (assignment_expression "local_70 = *(int *)((int)local_7c + 4)" identifier = (pointer_expression "*(int *)((int)local_7c + 4)" * (cast_expression "(int *)((int)local_7c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 4)" ( (binary_expression "(int)local_7c + 4" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_5c = DAT_0002c2b0 + 1;" (assignment_expression "local_5c = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) (expression_statement "uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);" (assignment_expression "uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0)" identifier = (pointer_expression "*(undefined1 *)(local_70 + DAT_0002c2b0)" * (cast_expression "(undefined1 *)(local_70 + DAT_0002c2b0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + DAT_0002c2b0)" ( (binary_expression "local_70 + DAT_0002c2b0" identifier + identifier) ))))) ;) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 2;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (expression_statement "puVar8 = (undefined4 *)DAT_0002c2ac;" (assignment_expression "puVar8 = (undefined4 *)DAT_0002c2ac" identifier = (cast_expression "(undefined4 *)DAT_0002c2ac" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" identifier = identifier) ;) (if_statement "if (cVar7 == 'J') goto code_r0x0001740e;" if (parenthesized_expression "(cVar7 == 'J')" ( (binary_expression "cVar7 == 'J'" identifier == (char_literal "'J'" ' character ')) )) (goto_statement "goto code_r0x0001740e;" goto statement_identifier ;)) (if_statement "if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;" if (parenthesized_expression "(cVar7 == 'B')" ( (binary_expression "cVar7 == 'B'" identifier == (char_literal "'B'" ' character ')) )) (compound_statement "{\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }" { (if_statement "if (DAT_0002c294 != 0) goto code_r0x0001740e;" if (parenthesized_expression "(DAT_0002c294 != 0)" ( (binary_expression "DAT_0002c294 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x0001740e;" goto statement_identifier ;)) }) (else_clause "else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;" else (if_statement "if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;" if (parenthesized_expression "((cVar7 == 'Z') && (DAT_0002c294 == 0))" ( (binary_expression "(cVar7 == 'Z') && (DAT_0002c294 == 0)" (parenthesized_expression "(cVar7 == 'Z')" ( (binary_expression "cVar7 == 'Z'" identifier == (char_literal "'Z'" ' character ')) )) && (parenthesized_expression "(DAT_0002c294 == 0)" ( (binary_expression "DAT_0002c294 == 0" identifier == number_literal) ))) )) (goto_statement "goto code_r0x0001740e;" goto statement_identifier ;)))) (expression_statement "local_78 = *(undefined4 **)((int)local_7c + 0xc);" (assignment_expression "local_78 = *(undefined4 **)((int)local_7c + 0xc)" identifier = (pointer_expression "*(undefined4 **)((int)local_7c + 0xc)" * (cast_expression "(undefined4 **)((int)local_7c + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_7c + 0xc)" ( (binary_expression "(int)local_7c + 0xc" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_000166a0;" goto statement_identifier ;)) (case_statement "case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;" case (char_literal "'C'" ' character ') : (expression_statement "local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);" (assignment_expression "local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(undefined4 *)(uint)*(byte *)(local_70 + uVar16)" (cast_expression "(undefined4 *)(uint)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);" (assignment_expression "local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100)" identifier = (cast_expression "(undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100)" ( (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100" (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))) + (binary_expression "((uint)local_7c & 0x7f) * 0x100" (parenthesized_expression "((uint)local_7c & 0x7f)" ( (binary_expression "(uint)local_7c & 0x7f" (cast_expression "(uint)local_7c" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) * number_literal)) )))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "iVar12 = (int)local_7c * 0x1c;" (assignment_expression "iVar12 = (int)local_7c * 0x1c" identifier = (binary_expression "(int)local_7c * 0x1c" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }" if (parenthesized_expression "(*(char *)(iVar9 + iVar12) == '\0')" ( (binary_expression "*(char *)(iVar9 + iVar12) == '\0'" (pointer_expression "*(char *)(iVar9 + iVar12)" * (cast_expression "(char *)(iVar9 + iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar12)" ( (binary_expression "iVar9 + iVar12" identifier + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }" { (expression_statement "pcVar11 = "Function %s not defined.";" (assignment_expression "pcVar11 = "Function %s not defined."" identifier = (string_literal ""Function %s not defined."" " string_content ")) ;) (goto_statement "goto code_r0x0001732f;" goto statement_identifier ;) })) (expression_statement "FUN_0001a270(&DAT_0002c2ac,local_7c);" (call_expression "FUN_0001a270(&DAT_0002c2ac,local_7c)" identifier (argument_list "(&DAT_0002c2ac,local_7c)" ( (pointer_expression "&DAT_0002c2ac" & identifier) , identifier ))) ;) (for_statement "for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }" for ( (assignment_expression "puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12)" identifier = (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0x18 + iVar12)" * (cast_expression "(undefined4 **)(DAT_0002c278 + 0x18 + iVar12)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0002c278 + 0x18 + iVar12)" ( (binary_expression "DAT_0002c278 + 0x18 + iVar12" (binary_expression "DAT_0002c278 + 0x18" identifier + number_literal) + identifier) ))))) ; (binary_expression "puVar8 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar8 = (undefined4 *)puVar8[2]" identifier = (cast_expression "(undefined4 *)puVar8[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[2]" identifier [ number_literal ]))) ) (compound_statement "{\n      FUN_00019ff0(*puVar8);\n    }" { (expression_statement "FUN_00019ff0(*puVar8);" (call_expression "FUN_00019ff0(*puVar8)" identifier (argument_list "(*puVar8)" ( (pointer_expression "*puVar8" * identifier) ))) ;) })) (expression_statement "FUN_00018f40(DAT_0002c2ac);" (call_expression "FUN_00018f40(DAT_0002c2ac)" identifier (argument_list "(DAT_0002c2ac)" ( identifier ))) ;) (expression_statement "FUN_00018f40(DAT_0002c2b0);" (call_expression "FUN_00018f40(DAT_0002c2b0)" identifier (argument_list "(DAT_0002c2b0)" ( identifier ))) ;) (expression_statement "FUN_00018f40(DAT_0002c2a4);" (call_expression "FUN_00018f40(DAT_0002c2a4)" identifier (argument_list "(DAT_0002c2a4)" ( identifier ))) ;) (expression_statement "DAT_0002c2b0 = 0;" (assignment_expression "DAT_0002c2b0 = 0" identifier = number_literal) ;) (expression_statement "DAT_0002c2ac = (uint)local_7c;" (assignment_expression "DAT_0002c2ac = (uint)local_7c" identifier = (cast_expression "(uint)local_7c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);" (assignment_expression "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12)" identifier = (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0xc + iVar12)" * (cast_expression "(undefined4 **)(DAT_0002c278 + 0xc + iVar12)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0002c278 + 0xc + iVar12)" ( (binary_expression "DAT_0002c278 + 0xc + iVar12" (binary_expression "DAT_0002c278 + 0xc" identifier + number_literal) + identifier) ))))) ;) (expression_statement "puVar8 = local_7c;" (assignment_expression "puVar8 = local_7c" identifier = identifier) ;) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" identifier = identifier) ;) (goto_statement "goto LAB_000166a0;" goto statement_identifier ;)) (case_statement "case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;" case (char_literal "'D'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_00018fb0(*DAT_0002c2bc);" (call_expression "FUN_00018fb0(*DAT_0002c2bc)" identifier (argument_list "(*DAT_0002c2bc)" ( (pointer_expression "*DAT_0002c2bc" * identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;" case (char_literal "'J'" ' character ') : (expression_statement "local_5c = DAT_0002c2b0 + 2;" (assignment_expression "local_5c = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (expression_statement "uVar15 = *(undefined1 *)(local_70 + uVar16);" (assignment_expression "uVar15 = *(undefined1 *)(local_70 + uVar16)" identifier = (pointer_expression "*(undefined1 *)(local_70 + uVar16)" * (cast_expression "(undefined1 *)(local_70 + uVar16)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 3;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) (labeled_statement "code_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);" statement_identifier : (expression_statement "uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);" (assignment_expression "uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15)" identifier = (call_expression "CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15)" identifier (argument_list "(*(undefined1 *)(local_70 + local_5c),uVar15)" ( (pointer_expression "*(undefined1 *)(local_70 + local_5c)" * (cast_expression "(undefined1 *)(local_70 + local_5c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + local_5c)" ( (binary_expression "local_70 + local_5c" identifier + identifier) )))) , identifier )))) ;)) (expression_statement "uVar16 = (uint)(uVar2 >> 6);" (assignment_expression "uVar16 = (uint)(uVar2 >> 6)" identifier = (call_expression "(uint)(uVar2 >> 6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 >> 6)" ( (binary_expression "uVar2 >> 6" identifier >> number_literal) )))) ;) (expression_statement "iVar14 = *(int *)((int)local_7c + 0x10);" (assignment_expression "iVar14 = *(int *)((int)local_7c + 0x10)" identifier = (pointer_expression "*(int *)((int)local_7c + 0x10)" * (cast_expression "(int *)((int)local_7c + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 0x10)" ( (binary_expression "(int)local_7c + 0x10" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar12 = uVar16 - 1;" (assignment_expression "iVar12 = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ;) (if_statement "if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }" { (do_statement "do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);" do (compound_statement "{\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      }" { (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "iVar14 = *(int *)(iVar14 + 0x100);" (assignment_expression "iVar14 = *(int *)(iVar14 + 0x100)" identifier = (pointer_expression "*(int *)(iVar14 + 0x100)" * (cast_expression "(int *)(iVar14 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x100)" ( (binary_expression "iVar14 + 0x100" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar12 != -1)" ( (binary_expression "iVar12 != -1" identifier != number_literal) )) ;) })) (if_statement "if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }" { (expression_statement "pcVar11 = "Internal error.";" (assignment_expression "pcVar11 = "Internal error."" identifier = (string_literal ""Internal error."" " string_content ")) ;) (goto_statement "goto code_r0x0001732f;" goto statement_identifier ;) })) (expression_statement "DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);" (assignment_expression "DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4)" identifier = (pointer_expression "*(uint *)(iVar14 + (uVar2 & 0x3f) * 4)" * (cast_expression "(uint *)(iVar14 + (uVar2 & 0x3f) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + (uVar2 & 0x3f) * 4)" ( (binary_expression "iVar14 + (uVar2 & 0x3f) * 4" identifier + (binary_expression "(uVar2 & 0x3f) * 4" (parenthesized_expression "(uVar2 & 0x3f)" ( (binary_expression "uVar2 & 0x3f" identifier & number_literal) )) * number_literal)) ))))) ;) (expression_statement "local_78 = *(undefined4 **)((int)local_7c + 0xc);" (assignment_expression "local_78 = *(undefined4 **)((int)local_7c + 0xc)" identifier = (pointer_expression "*(undefined4 **)((int)local_7c + 0xc)" * (cast_expression "(undefined4 **)((int)local_7c + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_7c + 0xc)" ( (binary_expression "(int)local_7c + 0xc" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_000166a0;" goto statement_identifier ;)) (case_statement "case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;" case (char_literal "'K'" ' character ') : (if_statement "if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }" if (parenthesized_expression "(puVar8 == (undefined4 *)0x0)" ( (binary_expression "puVar8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_70 = DAT_0002c2a4;\n    }" { (expression_statement "local_70 = DAT_0002c2a4;" (assignment_expression "local_70 = DAT_0002c2a4" identifier = identifier) ;) }) (else_clause "else {\n      local_70 = *DAT_0002c250;\n    }" else (compound_statement "{\n      local_70 = *DAT_0002c250;\n    }" { (expression_statement "local_70 = *DAT_0002c250;" (assignment_expression "local_70 = *DAT_0002c250" identifier = (pointer_expression "*DAT_0002c250" * identifier)) ;) }))) (if_statement "if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }" if (parenthesized_expression "(local_70 == 10)" ( (binary_expression "local_70 == 10" identifier == number_literal) )) (compound_statement "{\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }" { (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_00016360(&DAT_0002c2ac);" (call_expression "FUN_00016360(&DAT_0002c2ac)" identifier (argument_list "(&DAT_0002c2ac)" ( (pointer_expression "&DAT_0002c2ac" & identifier) ))) ;) (break_statement "break;" break ;) })) (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_0001c550(&uStack_30);" (call_expression "FUN_0001c550(&uStack_30)" identifier (argument_list "(&uStack_30)" ( (pointer_expression "&uStack_30" & identifier) ))) ;) (expression_statement "FUN_0001c550(&uStack_2c);" (call_expression "FUN_0001c550(&uStack_2c)" identifier (argument_list "(&uStack_2c)" ( (pointer_expression "&uStack_2c" & identifier) ))) ;) (expression_statement "FUN_0001c550(&uStack_28);" (call_expression "FUN_0001c550(&uStack_28)" identifier (argument_list "(&uStack_28)" ( (pointer_expression "&uStack_28" & identifier) ))) ;) (expression_statement "uStack_34 = FUN_0001c540(DAT_0002c2c8);" (assignment_expression "uStack_34 = FUN_0001c540(DAT_0002c2c8)" identifier = (call_expression "FUN_0001c540(DAT_0002c2c8)" identifier (argument_list "(DAT_0002c2c8)" ( identifier )))) ;) (expression_statement "FUN_0001f070(&uStack_28,local_70);" (call_expression "FUN_0001f070(&uStack_28,local_70)" identifier (argument_list "(&uStack_28,local_70)" ( (pointer_expression "&uStack_28" & identifier) , identifier ))) ;) (expression_statement "iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);" (assignment_expression "iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" identifier = (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" * (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal) + identifier) + number_literal) ))))) ;) (expression_statement "uVar16 = DAT_0002c2b0 + 1;" (assignment_expression "uVar16 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0)" identifier = (binary_expression "(uint)*(byte *)(iVar9 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar9 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + DAT_0002c2b0)" ( (binary_expression "iVar9 + DAT_0002c2b0" identifier + identifier) ))))) ;) (if_statement "if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }" if (parenthesized_expression "(uVar17 == 0x7e)" ( (binary_expression "uVar17 == 0x7e" identifier == number_literal) )) (compound_statement "{\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }" { (expression_statement "uVar10 = DAT_0002c2b0 + 2;" (assignment_expression "uVar10 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (do_statement "do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);" do (compound_statement "{\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      }" { (expression_statement "uVar16 = uVar10;" (assignment_expression "uVar16 = uVar10" identifier = identifier) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(iVar9 + -1 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar9 + -1 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -1 + uVar16)" ( (binary_expression "iVar9 + -1 + uVar16" (binary_expression "iVar9 + -1" identifier + number_literal) + identifier) ))))) ;) (expression_statement "uVar10 = uVar16 + 1;" (assignment_expression "uVar10 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar17 == 0x7e)" ( (binary_expression "uVar17 == 0x7e" identifier == number_literal) )) ;) })) (if_statement "if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }" if (parenthesized_expression "(uVar17 == 0x2b)" ( (binary_expression "uVar17 == 0x2b" identifier == number_literal) )) (compound_statement "{\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }" { (expression_statement "DAT_0002c2b0 = uVar16 + 1;" (assignment_expression "DAT_0002c2b0 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar9 + uVar16);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar9 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(iVar9 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar9 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + uVar16)" ( (binary_expression "iVar9 + uVar16" identifier + identifier) ))))) ;) }) (else_clause "else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }" else (compound_statement "{\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }" { (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (if_statement "if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }" if (parenthesized_expression "(uVar17 == 0x2d)" ( (binary_expression "uVar17 == 0x2d" identifier == number_literal) )) (compound_statement "{\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }" { (expression_statement "bVar18 = true;" (assignment_expression "bVar18 = true" identifier = true) ;) (expression_statement "DAT_0002c2b0 = uVar16 + 1;" (assignment_expression "DAT_0002c2b0 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar9 + uVar16);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar9 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(iVar9 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar9 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + uVar16)" ( (binary_expression "iVar9 + uVar16" identifier + identifier) ))))) ;) })) }))) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" identifier = identifier) ;) (if_statement "if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }" if (parenthesized_expression "(uVar17 < 0x24)" ( (binary_expression "uVar17 < 0x24" identifier < number_literal) )) (compound_statement "{\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }" { (expression_statement "uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);" (assignment_expression "uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0)" identifier = (binary_expression "(uint)*(byte *)(iVar9 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar9 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + DAT_0002c2b0)" ( (binary_expression "iVar9 + DAT_0002c2b0" identifier + identifier) ))))) ;) (if_statement "if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }" if (parenthesized_expression "((uVar16 < 0x24) && (local_70 <= (int)uVar17))" ( (binary_expression "(uVar16 < 0x24) && (local_70 <= (int)uVar17)" (parenthesized_expression "(uVar16 < 0x24)" ( (binary_expression "uVar16 < 0x24" identifier < number_literal) )) && (parenthesized_expression "(local_70 <= (int)uVar17)" ( (binary_expression "local_70 <= (int)uVar17" identifier <= (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }" { (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 1;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0001f070(&uStack_34,local_70 + -1);" (call_expression "FUN_0001f070(&uStack_34,local_70 + -1)" identifier (argument_list "(&uStack_34,local_70 + -1)" ( (pointer_expression "&uStack_34" & identifier) , (binary_expression "local_70 + -1" identifier + number_literal) ))) ;) }) (else_clause "else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }" else (compound_statement "{\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }" { (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 1;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0001f070(&uStack_34,uVar17);" (call_expression "FUN_0001f070(&uStack_34,uVar17)" identifier (argument_list "(&uStack_34,uVar17)" ( (pointer_expression "&uStack_34" & identifier) , identifier ))) ;) (if_statement "if (0x23 < uVar16) goto code_r0x00017202;" if (parenthesized_expression "(0x23 < uVar16)" ( (binary_expression "0x23 < uVar16" number_literal < identifier) )) (goto_statement "goto code_r0x00017202;" goto statement_identifier ;)) }))) (expression_statement "local_60 = &uStack_34;" (assignment_expression "local_60 = &uStack_34" identifier = (pointer_expression "&uStack_34" & identifier)) ;) (do_statement "do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);" do (compound_statement "{\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      }" { (if_statement "if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }" if (parenthesized_expression "(local_70 <= (int)uVar16)" ( (binary_expression "local_70 <= (int)uVar16" identifier <= (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar16 = local_70 - 1;\n        }" { (expression_statement "uVar16 = local_70 - 1;" (assignment_expression "uVar16 = local_70 - 1" identifier = (binary_expression "local_70 - 1" identifier - number_literal)) ;) })) (expression_statement "FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);" (call_expression "FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0)" identifier (argument_list "(uStack_34,uStack_28,&uStack_2c,0)" ( identifier , identifier , (pointer_expression "&uStack_2c" & identifier) , number_literal ))) ;) (expression_statement "FUN_0001f070(&uStack_30,uVar16);" (call_expression "FUN_0001f070(&uStack_30,uVar16)" identifier (argument_list "(&uStack_30,uVar16)" ( (pointer_expression "&uStack_30" & identifier) , identifier ))) ;) (expression_statement "FUN_0001d720(uStack_2c,uStack_30,local_60,0);" (call_expression "FUN_0001d720(uStack_2c,uStack_30,local_60,0)" identifier (argument_list "(uStack_2c,uStack_30,local_60,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 1;" (assignment_expression "uVar17 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);" (assignment_expression "uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" identifier = (binary_expression "(uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" ( (binary_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0" (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" * (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) + identifier) ))))) ;) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) }) while (parenthesized_expression "(uVar16 < 0x24)" ( (binary_expression "uVar16 < 0x24" identifier < number_literal) )) ;) })) (labeled_statement "code_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }" statement_identifier : (if_statement "if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }" if (parenthesized_expression "(uVar16 == 0x2e)" ( (binary_expression "uVar16 == 0x2e" identifier == number_literal) )) (compound_statement "{\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }" { (expression_statement "uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);" (assignment_expression "uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" identifier = (binary_expression "(uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" ( (binary_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0" (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" * (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) + identifier) ))))) ;) (expression_statement "uVar16 = local_70 - 1;" (assignment_expression "uVar16 = local_70 - 1" identifier = (binary_expression "local_70 - 1" identifier - number_literal)) ;) (if_statement "if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }" if (parenthesized_expression "(local_70 <= (int)uVar17)" ( (binary_expression "local_70 <= (int)uVar17" identifier <= (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar17 = uVar16;\n      }" { (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) })) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 1;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0001c2e0(&uStack_2c);" (call_expression "FUN_0001c2e0(&uStack_2c)" identifier (argument_list "(&uStack_2c)" ( (pointer_expression "&uStack_2c" & identifier) ))) ;) (expression_statement "FUN_0001c2e0(&uStack_30);" (call_expression "FUN_0001c2e0(&uStack_30)" identifier (argument_list "(&uStack_30)" ( (pointer_expression "&uStack_30" & identifier) ))) ;) (expression_statement "uStack_24 = FUN_0001c540(DAT_0002c2c0);" (assignment_expression "uStack_24 = FUN_0001c540(DAT_0002c2c0)" identifier = (call_expression "FUN_0001c540(DAT_0002c2c0)" identifier (argument_list "(DAT_0002c2c0)" ( identifier )))) ;) (expression_statement "uStack_2c = FUN_0001c540(DAT_0002c2c8);" (assignment_expression "uStack_2c = FUN_0001c540(DAT_0002c2c8)" identifier = (call_expression "FUN_0001c540(DAT_0002c2c8)" identifier (argument_list "(DAT_0002c2c8)" ( identifier )))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }" if (parenthesized_expression "((int)uVar17 < 0x24)" ( (binary_expression "(int)uVar17 < 0x24" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }" { (do_statement "do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);" do (compound_statement "{\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        }" { (while_statement "while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }" { (expression_statement "local_58 = iVar9;" (assignment_expression "local_58 = iVar9" identifier = identifier) ;) (expression_statement "FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);" (call_expression "FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0)" identifier (argument_list "(uStack_2c,uStack_28,&uStack_2c,0)" ( identifier , identifier , (pointer_expression "&uStack_2c" & identifier) , number_literal ))) ;) (expression_statement "FUN_0001f070(&uStack_30,uVar17);" (call_expression "FUN_0001f070(&uStack_30,uVar17)" identifier (argument_list "(&uStack_30,uVar17)" ( (pointer_expression "&uStack_30" & identifier) , identifier ))) ;) (expression_statement "FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);" (call_expression "FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0)" identifier (argument_list "(uStack_2c,uStack_30,&uStack_2c,0)" ( identifier , identifier , (pointer_expression "&uStack_2c" & identifier) , number_literal ))) ;) (expression_statement "FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);" (call_expression "FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0)" identifier (argument_list "(uStack_24,uStack_28,&uStack_24,0)" ( identifier , identifier , (pointer_expression "&uStack_24" & identifier) , number_literal ))) ;) (expression_statement "local_58 = local_58 + 1;" (assignment_expression "local_58 = local_58 + 1" identifier = (binary_expression "local_58 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = DAT_0002c2b0 + 1;" (assignment_expression "uVar10 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );" (assignment_expression "uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    )" identifier = (binary_expression "(uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    )" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    )" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    )" ( (binary_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0" (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" * (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) + identifier) ))))) ;) (expression_statement "DAT_0002c2b0 = uVar10;" (assignment_expression "DAT_0002c2b0 = uVar10" identifier = identifier) ;) (expression_statement "iVar9 = local_58;" (assignment_expression "iVar9 = local_58" identifier = identifier) ;) (if_statement "if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;" if (parenthesized_expression "((0x23 < uVar17) || ((int)uVar17 < local_70))" ( (binary_expression "(0x23 < uVar17) || ((int)uVar17 < local_70)" (parenthesized_expression "(0x23 < uVar17)" ( (binary_expression "0x23 < uVar17" number_literal < identifier) )) || (parenthesized_expression "((int)uVar17 < local_70)" ( (binary_expression "(int)uVar17 < local_70" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (if_statement "if (0x23 < (int)uVar16) goto code_r0x00017a9d;" if (parenthesized_expression "(0x23 < (int)uVar16)" ( (binary_expression "0x23 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto code_r0x00017a9d;" goto statement_identifier ;)) })) }) while (parenthesized_expression "(uVar17 < 0x24)" ( (binary_expression "uVar17 < 0x24" identifier < number_literal) )) ;) })) (goto_statement "goto code_r0x00017a9d;" goto statement_identifier ;) }))) (goto_statement "goto code_r0x0001720b;" goto statement_identifier ;)) (case_statement "case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;" case (char_literal "'L'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "FUN_00019a30(uVar10);" (call_expression "FUN_00019a30(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;" case (char_literal "'M'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "FUN_00019ca0(uVar10);" (call_expression "FUN_00019ca0(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;" case (char_literal "'O'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (labeled_statement "code_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;" statement_identifier : (expression_statement "uVar16 = DAT_0002c2b0 + 1;" (assignment_expression "uVar16 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;)) (expression_statement "cVar7 = *(char *)(local_70 + DAT_0002c2b0);" (assignment_expression "cVar7 = *(char *)(local_70 + DAT_0002c2b0)" identifier = (pointer_expression "*(char *)(local_70 + DAT_0002c2b0)" * (cast_expression "(char *)(local_70 + DAT_0002c2b0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + DAT_0002c2b0)" ( (binary_expression "local_70 + DAT_0002c2b0" identifier + identifier) ))))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (if_statement "if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }" if (parenthesized_expression "(cVar7 != '\"')" ( (binary_expression "cVar7 != '\"'" identifier != (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }" { (if_statement "if (cVar7 != '\\') goto code_r0x000172c4;" if (parenthesized_expression "(cVar7 != '\\')" ( (binary_expression "cVar7 != '\\'" identifier != (char_literal "'\\'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000172c4;" goto statement_identifier ;)) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 2;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (expression_statement "uVar17 = DAT_0002c2b0;" (assignment_expression "uVar17 = DAT_0002c2b0" identifier = identifier) ;) (if_statement "if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;" if (parenthesized_expression "(*(char *)(local_70 + uVar16) != '\"')" ( (binary_expression "*(char *)(local_70 + uVar16) != '\"'" (pointer_expression "*(char *)(local_70 + uVar16)" * (cast_expression "(char *)(local_70 + uVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) )))) != (char_literal "'\"'" ' escape_sequence ')) )) (goto_statement "goto code_r0x0001730b;" goto statement_identifier ;)) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "fflush(*(FILE **)puVar3);" (call_expression "fflush(*(FILE **)puVar3)" identifier (argument_list "(*(FILE **)puVar3)" ( (pointer_expression "*(FILE **)puVar3" * (cast_expression "(FILE **)puVar3" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_000208a0(*(undefined4 *)puVar3);" (call_expression "FUN_000208a0(*(undefined4 *)puVar3)" identifier (argument_list "(*(undefined4 *)puVar3)" ( (pointer_expression "*(undefined4 *)puVar3" * (cast_expression "(undefined4 *)puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'P':" case (char_literal "'P'" ' character ') :) (case_statement "case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;" case (char_literal "'W'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);" (call_expression "FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec)" identifier (argument_list "(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec)" ( (pointer_expression "*DAT_0002c2bc" * identifier) , identifier , identifier , identifier ))) ;) (if_statement "if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }" if (parenthesized_expression "(cVar7 == 'W')" ( (binary_expression "cVar7 == 'W'" identifier == (char_literal "'W'" ' character ')) )) (compound_statement "{\n      FUN_0001a680(10);\n    }" { (expression_statement "FUN_0001a680(10);" (call_expression "FUN_0001a680(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (expression_statement "FUN_00019410(4);" (call_expression "FUN_00019410(4)" identifier (argument_list "(4)" ( number_literal ))) ;) (expression_statement "puVar4 = PTR_stdout_0002bfec;" (assignment_expression "puVar4 = PTR_stdout_0002bfec" identifier = identifier) ;) (expression_statement "fflush(*(FILE **)PTR_stdout_0002bfec);" (call_expression "fflush(*(FILE **)PTR_stdout_0002bfec)" identifier (argument_list "(*(FILE **)PTR_stdout_0002bfec)" ( (pointer_expression "*(FILE **)PTR_stdout_0002bfec" * (cast_expression "(FILE **)PTR_stdout_0002bfec" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_000208a0(*(undefined4 *)puVar4);" (call_expression "FUN_000208a0(*(undefined4 *)puVar4)" identifier (argument_list "(*(undefined4 *)puVar4)" ( (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;" case (char_literal "'R'" ' character ') : (if_statement "if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }" if (parenthesized_expression "(puVar8 == (undefined4 *)0x0)" ( (binary_expression "puVar8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }" { (expression_statement "pcVar11 = "Return from main program.";" (assignment_expression "pcVar11 = "Return from main program."" identifier = (string_literal ""Return from main program."" " string_content ")) ;) (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (goto_statement "goto code_r0x0001732f;" goto statement_identifier ;) })) (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));" (call_expression "FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18))" identifier (argument_list "(*(undefined4 *)((int)local_7c + 0x18))" ( (pointer_expression "*(undefined4 *)((int)local_7c + 0x18)" * (cast_expression "(undefined4 *)((int)local_7c + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 0x18)" ( (binary_expression "(int)local_7c + 0x18" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));" (call_expression "FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14))" identifier (argument_list "(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14))" ( (pointer_expression "*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" * (cast_expression "(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" ( (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) ))) ;) (expression_statement "FUN_00018ee0();" (call_expression "FUN_00018ee0()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_0002c2b0 = FUN_00018ee0();" (assignment_expression "DAT_0002c2b0 = FUN_00018ee0()" identifier = (call_expression "FUN_00018ee0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar8 = (undefined4 *)FUN_00018ee0();" (assignment_expression "puVar8 = (undefined4 *)FUN_00018ee0()" identifier = (cast_expression "(undefined4 *)FUN_00018ee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00018ee0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);" (assignment_expression "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c)" identifier = (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c)" * (cast_expression "(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c)" ( (binary_expression "DAT_0002c278 + 0xc + (int)puVar8 * 0x1c" (binary_expression "DAT_0002c278 + 0xc" identifier + number_literal) + (binary_expression "(int)puVar8 * 0x1c" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" identifier = identifier) ;) (expression_statement "DAT_0002c2ac = (uint)puVar8;" (assignment_expression "DAT_0002c2ac = (uint)puVar8" identifier = (cast_expression "(uint)puVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_000166a0;" goto statement_identifier ;)) (case_statement "case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;" case (char_literal "'S'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "FUN_00019770(uVar10);" (call_expression "FUN_00019770(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;" case (char_literal "'^'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);" (call_expression "FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) , (pointer_expression "&local_38" & identifier) , identifier ))) ;) (expression_statement "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);" (assignment_expression "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" identifier = (call_expression "FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1])" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) )))) ;) (if_statement "if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }" if (parenthesized_expression "((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0'))" ( (binary_expression "(cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')" (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')" ( (comma_expression "cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0'" (assignment_expression "cVar7 = FUN_0001c6c0(*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c6c0(*DAT_0002c2bc)" identifier (argument_list "(*DAT_0002c2bc)" ( (pointer_expression "*DAT_0002c2bc" * identifier) )))) , (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      FUN_0001b7b0("divide by zero");\n    }" { (expression_statement "FUN_0001b7b0("divide by zero");" (call_expression "FUN_0001b7b0("divide by zero")" identifier (argument_list "("divide by zero")" ( (string_literal ""divide by zero"" " string_content ") ))) ;) })) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018ff0(local_38);" (call_expression "FUN_00018ff0(local_38)" identifier (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "FUN_0001c550(&local_38);" (call_expression "FUN_0001c550(&local_38)" identifier (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'c':\n    goto code_r0x00016f20;" case (char_literal "'c'" ' character ') : (goto_statement "goto code_r0x00016f20;" goto statement_identifier ;)) (case_statement "case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;" case (char_literal "'d'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "FUN_00019b30(uVar10);" (call_expression "FUN_00019b30(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;" case (char_literal "'h'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_0001b8a0(0);" (call_expression "FUN_0001b8a0(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;" case (char_literal "'i'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "FUN_00019d90(uVar10);" (call_expression "FUN_00019d90(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;" case (char_literal "'l'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "FUN_00019880(uVar10);" (call_expression "FUN_00019880(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;" case (char_literal "'n'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);" (call_expression "FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0)" identifier (argument_list "(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0)" ( identifier , (pointer_expression "*DAT_0002c2bc" * identifier) , identifier , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;" case (char_literal "'p'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (case_statement "case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;" case (char_literal "'s'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "FUN_00019410(uVar10);" (call_expression "FUN_00019410(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;" case (char_literal "'w'" ' character ') : (expression_statement "cVar7 = *(char *)(local_70 + uVar16);" (assignment_expression "cVar7 = *(char *)(local_70 + uVar16)" identifier = (pointer_expression "*(char *)(local_70 + uVar16)" * (cast_expression "(char *)(local_70 + uVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 2;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (while_statement "while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }" while (parenthesized_expression "(puVar4 = PTR_stdout_0002bfec, cVar7 != '\"')" ( (comma_expression "puVar4 = PTR_stdout_0002bfec, cVar7 != '\"'" (assignment_expression "puVar4 = PTR_stdout_0002bfec" identifier = identifier) , (binary_expression "cVar7 != '\"'" identifier != (char_literal "'\"'" ' escape_sequence '))) )) (compound_statement "{\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }" { (expression_statement "FUN_0001a730(cVar7);" (call_expression "FUN_0001a730(cVar7)" identifier (argument_list "(cVar7)" ( identifier ))) ;) (expression_statement "cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);" (assignment_expression "cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" identifier = (pointer_expression "*(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" * (cast_expression "(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" ( (binary_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0" (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" * (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) + identifier) ))))) ;) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 1;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) })) (expression_statement "fflush(*(FILE **)PTR_stdout_0002bfec);" (call_expression "fflush(*(FILE **)PTR_stdout_0002bfec)" identifier (argument_list "(*(FILE **)PTR_stdout_0002bfec)" ( (pointer_expression "*(FILE **)PTR_stdout_0002bfec" * (cast_expression "(FILE **)PTR_stdout_0002bfec" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_000208a0(*(undefined4 *)puVar4);" (call_expression "FUN_000208a0(*(undefined4 *)puVar4)" identifier (argument_list "(*(undefined4 *)puVar4)" ( (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;" case (char_literal "'x'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }" { (expression_statement "piVar1 = DAT_0002c2bc + 1;" (assignment_expression "piVar1 = DAT_0002c2bc + 1" identifier = (binary_expression "DAT_0002c2bc + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = *DAT_0002c2bc;" (assignment_expression "iVar9 = *DAT_0002c2bc" identifier = (pointer_expression "*DAT_0002c2bc" * identifier)) ;) (expression_statement "*DAT_0002c2bc = *(int *)*piVar1;" (assignment_expression "*DAT_0002c2bc = *(int *)*piVar1" (pointer_expression "*DAT_0002c2bc" * identifier) = (pointer_expression "*(int *)*piVar1" * (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier)))) ;) (expression_statement "*(int *)*piVar1 = iVar9;" (assignment_expression "*(int *)*piVar1 = iVar9" (pointer_expression "*(int *)*piVar1" * (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) = identifier) ;) })) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (case_statement "case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;" case (char_literal "'{'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (assignment_expression "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (expression_statement "DAT_0002c294 = iVar9 < 1;" (assignment_expression "DAT_0002c294 = iVar9 < 1" identifier = (binary_expression "iVar9 < 1" identifier < number_literal)) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x000167c5;" goto statement_identifier ;)) (case_statement "case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;" case (char_literal "'|'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);" (assignment_expression "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" identifier = (call_expression "FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1])" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) )))) ;) (expression_statement "bVar18 = true;" (assignment_expression "bVar18 = true" identifier = true) ;) (if_statement "if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }" { (expression_statement "cVar7 = FUN_0001c6d0(*DAT_0002c2bc);" (assignment_expression "cVar7 = FUN_0001c6d0(*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c6d0(*DAT_0002c2bc)" identifier (argument_list "(*DAT_0002c2bc)" ( (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (expression_statement "bVar18 = cVar7 == '\0';" (assignment_expression "bVar18 = cVar7 == '\0'" identifier = (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) })) (expression_statement "DAT_0002c294 = bVar18;" (assignment_expression "DAT_0002c294 = bVar18" identifier = identifier) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x000167c5;" goto statement_identifier ;)) (case_statement "case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }" case (char_literal "'}'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) ))) ;) (expression_statement "DAT_0002c294 = (byte)~extraout_var >> 7;" (assignment_expression "DAT_0002c294 = (byte)~extraout_var >> 7" identifier = (binary_expression "(byte)~extraout_var >> 7" (cast_expression "(byte)~extraout_var" ( (type_descriptor "byte" type_identifier) ) (unary_expression "~extraout_var" ~ identifier)) >> number_literal)) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (labeled_statement "code_r0x000167c5:\n    bVar5 = DAT_0002c294;" statement_identifier : (expression_statement "bVar5 = DAT_0002c294;" (assignment_expression "bVar5 = DAT_0002c294" identifier = identifier) ;)) (expression_statement "FUN_0001c2e0(DAT_0002c2bc);" (call_expression "FUN_0001c2e0(DAT_0002c2bc)" identifier (argument_list "(DAT_0002c2bc)" ( identifier ))) ;) (expression_statement "piVar1 = DAT_0002c2bc;" (assignment_expression "piVar1 = DAT_0002c2bc" identifier = identifier) ;) (if_statement "if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }" { (expression_statement "iVar9 = FUN_0001c540(DAT_0002c2c8);" (assignment_expression "iVar9 = FUN_0001c540(DAT_0002c2c8)" identifier = (call_expression "FUN_0001c540(DAT_0002c2c8)" identifier (argument_list "(DAT_0002c2c8)" ( identifier )))) ;) (expression_statement "*piVar1 = iVar9;" (assignment_expression "*piVar1 = iVar9" (pointer_expression "*piVar1" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }" else (compound_statement "{\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }" { (expression_statement "iVar9 = FUN_0001c540(DAT_0002c2c0);" (assignment_expression "iVar9 = FUN_0001c540(DAT_0002c2c0)" identifier = (call_expression "FUN_0001c540(DAT_0002c2c0)" identifier (argument_list "(DAT_0002c2c0)" ( identifier )))) ;) (expression_statement "*piVar1 = iVar9;" (assignment_expression "*piVar1 = iVar9" (pointer_expression "*piVar1" * identifier) = identifier) ;) })))) })) (goto_statement "goto LAB_000167f0;" goto statement_identifier ;) (labeled_statement "code_r0x00016f20:\n  DAT_0002c2b0 = DAT_0002c2b0 + 2;" statement_identifier : (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 2;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;)) (switch_statement "switch(*(undefined1 *)(local_70 + uVar16)) {\n  case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;\n  default:\n    goto LAB_000166a0;\n  case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;\n  case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;\n  case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;\n  case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);\n  }" switch (parenthesized_expression "(*(undefined1 *)(local_70 + uVar16))" ( (pointer_expression "*(undefined1 *)(local_70 + uVar16)" * (cast_expression "(undefined1 *)(local_70 + uVar16)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) )))) )) (compound_statement "{\n  case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;\n  default:\n    goto LAB_000166a0;\n  case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;\n  case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;\n  case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;\n  case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);\n  }" { (case_statement "case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;" case number_literal : (expression_statement "FUN_0001c550(&uStack_30);" (call_expression "FUN_0001c550(&uStack_30)" identifier (argument_list "(&uStack_30)" ( (pointer_expression "&uStack_30" & identifier) ))) ;) (expression_statement "FUN_0001c550(&uStack_2c);" (call_expression "FUN_0001c550(&uStack_2c)" identifier (argument_list "(&uStack_2c)" ( (pointer_expression "&uStack_2c" & identifier) ))) ;) (expression_statement "FUN_0001c550(&uStack_28);" (call_expression "FUN_0001c550(&uStack_28)" identifier (argument_list "(&uStack_28)" ( (pointer_expression "&uStack_28" & identifier) ))) ;) (expression_statement "uStack_34 = FUN_0001c540(DAT_0002c2c8);" (assignment_expression "uStack_34 = FUN_0001c540(DAT_0002c2c8)" identifier = (call_expression "FUN_0001c540(DAT_0002c2c8)" identifier (argument_list "(DAT_0002c2c8)" ( identifier )))) ;) (expression_statement "FUN_0001f070(&uStack_28,iVar12);" (call_expression "FUN_0001f070(&uStack_28,iVar12)" identifier (argument_list "(&uStack_28,iVar12)" ( (pointer_expression "&uStack_28" & identifier) , identifier ))) ;) (expression_statement "iVar9 = FUN_00015f20();" (assignment_expression "iVar9 = FUN_00015f20()" identifier = (call_expression "FUN_00015f20()" identifier (argument_list "()" ( )))) ;) (while_statement "while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }" while (parenthesized_expression "(iVar9 == 0x7e)" ( (binary_expression "iVar9 == 0x7e" identifier == number_literal) )) (compound_statement "{\n      iVar9 = FUN_00015f20();\n    }" { (expression_statement "iVar9 = FUN_00015f20();" (assignment_expression "iVar9 = FUN_00015f20()" identifier = (call_expression "FUN_00015f20()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }" if (parenthesized_expression "(iVar9 == 0x2b)" ( (binary_expression "iVar9 == 0x2b" identifier == number_literal) )) (compound_statement "{\n      iVar9 = FUN_00015f20();\n    }" { (expression_statement "iVar9 = FUN_00015f20();" (assignment_expression "iVar9 = FUN_00015f20()" identifier = (call_expression "FUN_00015f20()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }" else (if_statement "if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }" if (parenthesized_expression "(iVar9 == 0x2d)" ( (binary_expression "iVar9 == 0x2d" identifier == number_literal) )) (compound_statement "{\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }" { (expression_statement "iVar9 = FUN_00015f20();" (assignment_expression "iVar9 = FUN_00015f20()" identifier = (call_expression "FUN_00015f20()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar18 = true;" (assignment_expression "bVar18 = true" identifier = true) ;) })))) (expression_statement "local_78 = &uStack_30;" (assignment_expression "local_78 = &uStack_30" identifier = (pointer_expression "&uStack_30" & identifier)) ;) (expression_statement "local_7c = &uStack_2c;" (assignment_expression "local_7c = &uStack_2c" identifier = (pointer_expression "&uStack_2c" & identifier)) ;) (expression_statement "iVar14 = iVar9;" (assignment_expression "iVar14 = iVar9" identifier = identifier) ;) (if_statement "if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }" if (parenthesized_expression "(iVar9 < 0x24)" ( (binary_expression "iVar9 < 0x24" identifier < number_literal) )) (compound_statement "{\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }" { (expression_statement "iVar14 = FUN_00015f20();" (assignment_expression "iVar14 = FUN_00015f20()" identifier = (call_expression "FUN_00015f20()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }" if (parenthesized_expression "((iVar14 < 0x24) && (iVar12 <= iVar9))" ( (binary_expression "(iVar14 < 0x24) && (iVar12 <= iVar9)" (parenthesized_expression "(iVar14 < 0x24)" ( (binary_expression "iVar14 < 0x24" identifier < number_literal) )) && (parenthesized_expression "(iVar12 <= iVar9)" ( (binary_expression "iVar12 <= iVar9" identifier <= identifier) ))) )) (compound_statement "{\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }" { (expression_statement "FUN_0001f070(&uStack_34,iVar12 + -1);" (call_expression "FUN_0001f070(&uStack_34,iVar12 + -1)" identifier (argument_list "(&uStack_34,iVar12 + -1)" ( (pointer_expression "&uStack_34" & identifier) , (binary_expression "iVar12 + -1" identifier + number_literal) ))) ;) }) (else_clause "else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }" else (compound_statement "{\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }" { (expression_statement "FUN_0001f070(&uStack_34,iVar9);" (call_expression "FUN_0001f070(&uStack_34,iVar9)" identifier (argument_list "(&uStack_34,iVar9)" ( (pointer_expression "&uStack_34" & identifier) , identifier ))) ;) (if_statement "if (0x23 < iVar14) goto code_r0x00017b03;" if (parenthesized_expression "(0x23 < iVar14)" ( (binary_expression "0x23 < iVar14" number_literal < identifier) )) (goto_statement "goto code_r0x00017b03;" goto statement_identifier ;)) }))) (expression_statement "local_60 = &uStack_34;" (assignment_expression "local_60 = &uStack_34" identifier = (pointer_expression "&uStack_34" & identifier)) ;) (do_statement "do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);" do (compound_statement "{\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      }" { (if_statement "if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }" if (parenthesized_expression "(iVar14 < iVar12)" ( (binary_expression "iVar14 < iVar12" identifier < identifier) )) (compound_statement "{\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }" { (expression_statement "FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);" (call_expression "FUN_0001d9c0(uStack_34,uStack_28,local_7c,0)" identifier (argument_list "(uStack_34,uStack_28,local_7c,0)" ( identifier , identifier , identifier , number_literal ))) ;) }) (else_clause "else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }" else (compound_statement "{\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }" { (expression_statement "FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);" (call_expression "FUN_0001d9c0(uStack_34,uStack_28,local_7c,0)" identifier (argument_list "(uStack_34,uStack_28,local_7c,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "iVar14 = iVar12 + -1;" (assignment_expression "iVar14 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) }))) (expression_statement "FUN_0001f070(local_78,iVar14);" (call_expression "FUN_0001f070(local_78,iVar14)" identifier (argument_list "(local_78,iVar14)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001d720(uStack_2c,uStack_30,local_60,0);" (call_expression "FUN_0001d720(uStack_2c,uStack_30,local_60,0)" identifier (argument_list "(uStack_2c,uStack_30,local_60,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "iVar14 = FUN_00015f20();" (assignment_expression "iVar14 = FUN_00015f20()" identifier = (call_expression "FUN_00015f20()" identifier (argument_list "()" ( )))) ;) }) while (parenthesized_expression "(iVar14 < 0x24)" ( (binary_expression "iVar14 < 0x24" identifier < number_literal) )) ;) })) (labeled_statement "code_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }" statement_identifier : (if_statement "if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }" if (parenthesized_expression "(iVar14 == 0x2e)" ( (binary_expression "iVar14 == 0x2e" identifier == number_literal) )) (compound_statement "{\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }" { (expression_statement "iVar14 = FUN_00015f20();" (assignment_expression "iVar14 = FUN_00015f20()" identifier = (call_expression "FUN_00015f20()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar9 = iVar12 + -1;" (assignment_expression "iVar9 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (if_statement "if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }" if (parenthesized_expression "(iVar12 <= iVar14)" ( (binary_expression "iVar12 <= iVar14" identifier <= identifier) )) (compound_statement "{\n        iVar14 = iVar9;\n      }" { (expression_statement "iVar14 = iVar9;" (assignment_expression "iVar14 = iVar9" identifier = identifier) ;) })) (expression_statement "FUN_0001c2e0(local_7c);" (call_expression "FUN_0001c2e0(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) (expression_statement "FUN_0001c2e0(local_78);" (call_expression "FUN_0001c2e0(local_78)" identifier (argument_list "(local_78)" ( identifier ))) ;) (expression_statement "uStack_24 = FUN_0001c540(DAT_0002c2c0);" (assignment_expression "uStack_24 = FUN_0001c540(DAT_0002c2c0)" identifier = (call_expression "FUN_0001c540(DAT_0002c2c0)" identifier (argument_list "(DAT_0002c2c0)" ( identifier )))) ;) (expression_statement "uStack_2c = FUN_0001c540(DAT_0002c2c8);" (assignment_expression "uStack_2c = FUN_0001c540(DAT_0002c2c8)" identifier = (call_expression "FUN_0001c540(DAT_0002c2c8)" identifier (argument_list "(DAT_0002c2c8)" ( identifier )))) ;) (if_statement "if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }" if (parenthesized_expression "(iVar14 < 0x24)" ( (binary_expression "iVar14 < 0x24" identifier < number_literal) )) (compound_statement "{\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (do_statement "do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);" do (compound_statement "{\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        }" { (while_statement "while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }" { (expression_statement "FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);" (call_expression "FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0)" identifier (argument_list "(uStack_2c,uStack_28,local_7c,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "FUN_0001f070(local_78,iVar14);" (call_expression "FUN_0001f070(local_78,iVar14)" identifier (argument_list "(local_78,iVar14)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001d720(uStack_2c,uStack_30,local_7c,0);" (call_expression "FUN_0001d720(uStack_2c,uStack_30,local_7c,0)" identifier (argument_list "(uStack_2c,uStack_30,local_7c,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);" (call_expression "FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0)" identifier (argument_list "(uStack_24,uStack_28,&uStack_24,0)" ( identifier , identifier , (pointer_expression "&uStack_24" & identifier) , number_literal ))) ;) (expression_statement "local_58 = local_58 + 1;" (assignment_expression "local_58 = local_58 + 1" identifier = (binary_expression "local_58 + 1" identifier + number_literal)) ;) (expression_statement "iVar14 = FUN_00015f20();" (assignment_expression "iVar14 = FUN_00015f20()" identifier = (call_expression "FUN_00015f20()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((0x23 < iVar14) || (iVar14 < iVar12)) break;" if (parenthesized_expression "((0x23 < iVar14) || (iVar14 < iVar12))" ( (binary_expression "(0x23 < iVar14) || (iVar14 < iVar12)" (parenthesized_expression "(0x23 < iVar14)" ( (binary_expression "0x23 < iVar14" number_literal < identifier) )) || (parenthesized_expression "(iVar14 < iVar12)" ( (binary_expression "iVar14 < iVar12" identifier < identifier) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar9;" (assignment_expression "iVar14 = iVar9" identifier = identifier) ;) (if_statement "if (0x23 < iVar9) goto code_r0x00017a9d;" if (parenthesized_expression "(0x23 < iVar9)" ( (binary_expression "0x23 < iVar9" number_literal < identifier) )) (goto_statement "goto code_r0x00017a9d;" goto statement_identifier ;)) })) }) while (parenthesized_expression "(iVar14 < 0x24)" ( (binary_expression "iVar14 < 0x24" identifier < number_literal) )) ;) })) (labeled_statement "code_r0x00017a9d:\n      local_7c = &uStack_2c;" statement_identifier : (expression_statement "local_7c = &uStack_2c;" (assignment_expression "local_7c = &uStack_2c" identifier = (pointer_expression "&uStack_2c" & identifier)) ;)) (expression_statement "FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);" (call_expression "FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58)" identifier (argument_list "(uStack_2c,uStack_24,local_7c,local_58)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);" (call_expression "FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0)" identifier (argument_list "(uStack_34,uStack_2c,&uStack_34,0)" ( identifier , identifier , (pointer_expression "&uStack_34" & identifier) , number_literal ))) ;) }))) (labeled_statement "code_r0x0001720b:\n    puStack_44 = &uStack_28;" statement_identifier : (expression_statement "puStack_44 = &uStack_28;" (assignment_expression "puStack_44 = &uStack_28" identifier = (pointer_expression "&uStack_28" & identifier)) ;)) (expression_statement "local_78 = &uStack_30;" (assignment_expression "local_78 = &uStack_30" identifier = (pointer_expression "&uStack_30" & identifier)) ;) (expression_statement "local_7c = &uStack_2c;" (assignment_expression "local_7c = &uStack_2c" identifier = (pointer_expression "&uStack_2c" & identifier)) ;) (if_statement "if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }" { (expression_statement "FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);" (call_expression "FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0)" identifier (argument_list "(DAT_0002c2c8,uStack_34,&uStack_34,0)" ( identifier , identifier , (pointer_expression "&uStack_34" & identifier) , number_literal ))) ;) })) (expression_statement "FUN_00018ff0(uStack_34);" (call_expression "FUN_00018ff0(uStack_34)" identifier (argument_list "(uStack_34)" ( identifier ))) ;) (expression_statement "FUN_0001c2e0(local_78);" (call_expression "FUN_0001c2e0(local_78)" identifier (argument_list "(local_78)" ( identifier ))) ;) (expression_statement "FUN_0001c2e0(local_7c);" (call_expression "FUN_0001c2e0(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) (expression_statement "FUN_0001c2e0(puStack_44);" (call_expression "FUN_0001c2e0(puStack_44)" identifier (argument_list "(puStack_44)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    goto LAB_000166a0;" default : (goto_statement "goto LAB_000166a0;" goto statement_identifier ;)) (case_statement "case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;" case number_literal : (expression_statement "iVar9 = *DAT_0002c2bc;" (assignment_expression "iVar9 = *DAT_0002c2bc" identifier = (pointer_expression "*DAT_0002c2bc" * identifier)) ;) (expression_statement "iVar12 = *(int *)(iVar9 + 8);" (assignment_expression "iVar12 = *(int *)(iVar9 + 8)" identifier = (pointer_expression "*(int *)(iVar9 + 8)" * (cast_expression "(int *)(iVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (if_statement "if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }" if (parenthesized_expression "(((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0'))" ( (binary_expression "((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')" (parenthesized_expression "((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0))" ( (binary_expression "(*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)" (parenthesized_expression "(*(int *)(iVar9 + 4) == 1)" ( (binary_expression "*(int *)(iVar9 + 4) == 1" (pointer_expression "*(int *)(iVar9 + 4)" * (cast_expression "(int *)(iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(**(char **)(iVar9 + 0x18) == '\0')" ( (binary_expression "**(char **)(iVar9 + 0x18) == '\0'" (pointer_expression "**(char **)(iVar9 + 0x18)" * (pointer_expression "*(char **)(iVar9 + 0x18)" * (cast_expression "(char **)(iVar9 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) ))))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }" { (expression_statement "FUN_0001f070(DAT_0002c2bc,iVar12);" (call_expression "FUN_0001f070(DAT_0002c2bc,iVar12)" identifier (argument_list "(DAT_0002c2bc,iVar12)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }" else (compound_statement "{\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }" { (expression_statement "FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);" (call_expression "FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12)" identifier (argument_list "(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12)" ( identifier , (binary_expression "*(int *)(iVar9 + 4) + iVar12" (pointer_expression "*(int *)(iVar9 + 4)" * (cast_expression "(int *)(iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) + identifier) ))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;" case number_literal : (expression_statement "iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);" (assignment_expression "iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298)" identifier = (call_expression "FUN_0001f290(DAT_0002c2bc,DAT_0002c298)" identifier (argument_list "(DAT_0002c2bc,DAT_0002c298)" ( identifier , identifier )))) ;) (if_statement "if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }" { (labeled_statement "code_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);" statement_identifier : (expression_statement "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);" (assignment_expression "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" identifier = (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" * (cast_expression "(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" ( (binary_expression "DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c" (binary_expression "DAT_0002c278 + 0xc" identifier + number_literal) + (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal)) ))))) ;)) (expression_statement "puVar8 = (undefined4 *)DAT_0002c2ac;" (assignment_expression "puVar8 = (undefined4 *)DAT_0002c2ac" identifier = (cast_expression "(undefined4 *)DAT_0002c2ac" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" identifier = identifier) ;) (goto_statement "goto LAB_000166a0;" goto statement_identifier ;) })) (expression_statement "pcVar11 = "Square root of a negative number";" (assignment_expression "pcVar11 = "Square root of a negative number"" identifier = (string_literal ""Square root of a negative number"" " string_content ")) ;) (labeled_statement "code_r0x0001732f:\n    FUN_0001b7b0(pcVar11);" statement_identifier : (expression_statement "FUN_0001b7b0(pcVar11);" (call_expression "FUN_0001b7b0(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;)) (break_statement "break;" break ;)) (case_statement "case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;" case number_literal : (expression_statement "FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));" (call_expression "FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8))" identifier (argument_list "(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8))" ( identifier , (pointer_expression "*(undefined4 *)(*DAT_0002c2bc + 8)" * (cast_expression "(undefined4 *)(*DAT_0002c2bc + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*DAT_0002c2bc + 8)" ( (binary_expression "*DAT_0002c2bc + 8" (pointer_expression "*DAT_0002c2bc" * identifier) + number_literal) )))) ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);" case number_literal : (expression_statement "FUN_00018fb0(DAT_0002c2c8);" (call_expression "FUN_00018fb0(DAT_0002c2c8)" identifier (argument_list "(DAT_0002c2c8)" ( identifier ))) ;) (expression_statement "uVar13 = func_0x000112e0();" (assignment_expression "uVar13 = func_0x000112e0()" identifier = (call_expression "func_0x000112e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0001f070(DAT_0002c2bc,uVar13);" (call_expression "FUN_0001f070(DAT_0002c2bc,uVar13)" identifier (argument_list "(DAT_0002c2bc,uVar13)" ( identifier , identifier ))) ;)) })) (labeled_statement "LAB_000167f0:\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);" statement_identifier : (expression_statement "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);" (assignment_expression "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" identifier = (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" * (cast_expression "(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" ( (binary_expression "DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c" (binary_expression "DAT_0002c278 + 0xc" identifier + number_literal) + (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal)) ))))) ;)) (expression_statement "puVar8 = (undefined4 *)DAT_0002c2ac;" (assignment_expression "puVar8 = (undefined4 *)DAT_0002c2ac" identifier = (cast_expression "(undefined4 *)DAT_0002c2ac" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" identifier = identifier) ;) (goto_statement "goto LAB_000166a0;" goto statement_identifier ;) (labeled_statement "code_r0x0001730b:\n  switch(*(char *)(local_70 + uVar16)) {\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }" statement_identifier : (switch_statement "switch(*(char *)(local_70 + uVar16)) {\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }" switch (parenthesized_expression "(*(char *)(local_70 + uVar16))" ( (pointer_expression "*(char *)(local_70 + uVar16)" * (cast_expression "(char *)(local_70 + uVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) )))) )) (compound_statement "{\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }" { (case_statement "case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;" case (char_literal "'\\'" ' escape_sequence ') : (expression_statement "cVar7 = '\\';" (assignment_expression "cVar7 = '\\'" identifier = (char_literal "'\\'" ' escape_sequence ')) ;) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "default:\n    goto code_r0x000172dc;" default : (goto_statement "goto code_r0x000172dc;" goto statement_identifier ;)) (case_statement "case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;" case (char_literal "'a'" ' character ') : (expression_statement "cVar7 = '\a';" (assignment_expression "cVar7 = '\a'" identifier = (char_literal "'\a'" ' escape_sequence ')) ;) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;" case (char_literal "'b'" ' character ') : (expression_statement "cVar7 = '\b';" (assignment_expression "cVar7 = '\b'" identifier = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;" case (char_literal "'f'" ' character ') : (expression_statement "cVar7 = '\f';" (assignment_expression "cVar7 = '\f'" identifier = (char_literal "'\f'" ' escape_sequence ')) ;) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;" case (char_literal "'n'" ' character ') : (expression_statement "cVar7 = '\n';" (assignment_expression "cVar7 = '\n'" identifier = (char_literal "'\n'" ' escape_sequence ')) ;) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;" case (char_literal "'q'" ' character ') : (expression_statement "cVar7 = '\"';" (assignment_expression "cVar7 = '\"'" identifier = (char_literal "'\"'" ' escape_sequence ')) ;) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;" case (char_literal "'r'" ' character ') : (expression_statement "cVar7 = '\r';" (assignment_expression "cVar7 = '\r'" identifier = (char_literal "'\r'" ' escape_sequence ')) ;) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;" case (char_literal "'t'" ' character ') : (expression_statement "cVar7 = '\t';" (assignment_expression "cVar7 = '\t'" identifier = (char_literal "'\t'" ' escape_sequence ')) ;) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" identifier = identifier) ;)) }))) (labeled_statement "code_r0x000172c4:\n  DAT_0002c2b0 = uVar16;" statement_identifier : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;)) (expression_statement "FUN_0001a730(cVar7);" (call_expression "FUN_0001a730(cVar7)" identifier (argument_list "(cVar7)" ( identifier ))) ;) (expression_statement "local_70 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);" (assignment_expression "local_70 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" identifier = (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" * (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal) + identifier) + number_literal) ))))) ;) (goto_statement "goto code_r0x000172dc;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid execute(void)\n\n{\n  estack_rec **ppeVar1;\n  byte bVar2;\n  bc_num_conflict pbVar3;\n  arg_list *paVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  estack_rec *peVar7;\n  char cVar8;\n  char cVar9;\n  bc_function *pbVar10;\n  bc_num pbVar11;\n  uint uVar12;\n  int iVar13;\n  char *pcVar14;\n  long val;\n  int iVar15;\n  int iVar16;\n  bc_label_group *pbVar17;\n  bc_function *pbVar18;\n  uint uVar19;\n  uint uVar20;\n  int in_GS_OFFSET;\n  bool bVar21;\n  bc_function *local_7c;\n  bc_num *local_78;\n  char *local_70;\n  bc_num *local_60;\n  int local_5c;\n  int local_58;\n  bc_num *local_44;\n  bc_num temp_num;\n  bc_num build;\n  bc_num temp;\n  bc_num result;\n  bc_num mult;\n  bc_num divisor;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x165e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  runtime_error = '\0';\n  pc.pc_func = 0;\n  pc.pc_addr = 0;\n  bc_init_num(&temp_num);\n  if (interactive != '\0') {\n    signal(2,stop_execution);\n  }\n  puVar5 = PTR_stdout_0002bfec;\n  had_sigint = 0;\n  local_78 = (bc_num *)functions[pc.pc_func].f_code_size;\n  pbVar10 = (bc_function *)pc.pc_func;\n  pbVar18 = functions;\n_L141:\n  iVar13 = i_base;\n  local_7c = pbVar18 + (int)pbVar10;\n  if (((local_78 <= pc.pc_addr) || (runtime_error != '\0')) || (had_sigint != 0)) {\n    if (pbVar10 != (bc_function *)0x0) {\n      do {\n        pop_vars(pbVar18[(int)pbVar10].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar10 = (bc_function *)fpop();\n        pbVar18 = functions;\n        pc.pc_func = (uint)pbVar10;\n      } while (pbVar10 != (bc_function *)0x0);\n      pc.pc_func = 0;\n    }\n    while (ex_stack != (estack_rec *)0x0) {\n      pop();\n    }\n    if ((interactive != '\0') && (signal(2,(__sighandler_t)PTR_use_quit_0002bff4), had_sigint != 0))\n    {\n      puts("\ninterrupted execution.");\n      checkferror_output(*(FILE **)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  uVar19 = pc.pc_addr + 1;\n  local_70 = local_7c->f_body;\n  cVar9 = local_70[pc.pc_addr];\n  local_58 = 0;\n  bVar21 = false;\n  switch(cVar9) {\n  case '!':\n  case 'T':\n    pc.pc_addr = uVar19;\n    c_code = bc_is_zero(ex_stack->s_num);\n    goto LAB_000167c5;\n  default:\n    pcVar14 = "bad instruction: inst=%c";\n    pc.pc_addr = uVar19;\n    goto LAB_0001732f;\n  case '#':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 != 0;\n    pop();\n    goto LAB_000167c5;\n  case '%':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_num);\n    if (cVar9 == '\0') {\n      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      goto LAB_00016d14;\n    }\n    pcVar14 = "Modulo by zero";\n    goto LAB_0001732f;\n  case '&':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    bVar21 = false;\n    if (cVar9 == '\0') {\n      cVar9 = bc_is_zero(ex_stack->s_num);\n      bVar21 = cVar9 == '\0';\n    }\n    c_code = bVar21;\n    pop();\n    goto LAB_000167c5;\n  case '*':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    bc_multiply(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\nLAB_00016d14:\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case '+':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_00016d14;\n    }\n    goto LAB_00016998;\n  case '-':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_00016d14;\n    }\n    goto LAB_00016998;\n  case '/':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    if (iVar13 != 0) {\n      pcVar14 = "Divide by zero";\n      goto LAB_0001732f;\n    }\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case '0':\n    pc.pc_addr = uVar19;\n    push_copy(_zero_);\n    break;\n  case '1':\n    pc.pc_addr = uVar19;\n    push_copy(_one_);\n    break;\n  case '<':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == -1;\n    pop();\n    goto LAB_000167c5;\n  case '=':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == 0;\n    pop();\n    goto LAB_000167c5;\n  case '>':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == 1;\n    pop();\n    goto LAB_000167c5;\n  case 'A':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    incr_array(uVar12);\n    break;\n  case 'B':\n  case 'Z':\n    pc.pc_addr = uVar19;\n    cVar8 = bc_is_zero(ex_stack->s_num);\n    c_code = cVar8 == '\0';\n    pop();\n    local_7c = functions + pc.pc_func;\n    local_70 = local_7c->f_body;\n    local_5c = pc.pc_addr + 1;\n    cVar8 = local_70[pc.pc_addr];\n    pc.pc_addr = pc.pc_addr + 2;\n    pbVar10 = (bc_function *)pc.pc_func;\n    pbVar18 = functions;\n    if (cVar9 == 'J') goto LAB_0001740e;\n    if (cVar9 == 'B') {\n      if (c_code != '\0') goto LAB_0001740e;\n    }\n    else if ((cVar9 == 'Z') && (c_code == '\0')) goto LAB_0001740e;\n    local_78 = (bc_num *)local_7c->f_code_size;\n    goto _L141;\n  case 'C':\n    local_7c = (bc_function *)(uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      local_7c = (bc_function *)\n                 ((uint)(byte)local_70[pc.pc_addr + 2] + ((uint)local_7c & 0x7f) * 0x100);\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    if (pbVar18[(int)local_7c].f_defined == '\0') {\n      pcVar14 = "Function %s not defined.";\n      goto LAB_0001732f;\n    }\n    process_params(&pc,(int)local_7c);\n    for (paVar4 = functions[(int)local_7c].f_autos; paVar4 != (arg_list *)0x0; paVar4 = paVar4->next\n        ) {\n      auto_var(paVar4->av_name);\n    }\n    fpush(pc.pc_func);\n    fpush(pc.pc_addr);\n    fpush(i_base);\n    pc.pc_addr = 0;\n    pc.pc_func = (uint)local_7c;\n    local_78 = (bc_num *)functions[(int)local_7c].f_code_size;\n    pbVar10 = local_7c;\n    pbVar18 = functions;\n    goto _L141;\n  case 'D':\n    pc.pc_addr = uVar19;\n    push_copy(ex_stack->s_num);\n    break;\n  case 'J':\n    local_5c = pc.pc_addr + 2;\n    cVar8 = local_70[uVar19];\n    pc.pc_addr = pc.pc_addr + 3;\nLAB_0001740e:\n    uVar19 = (uint)(ushort)(CONCAT11(local_70[local_5c],cVar8) >> 6);\n    pbVar17 = local_7c->f_label;\n    iVar13 = uVar19 - 1;\n    if (uVar19 != 0) {\n      do {\n        iVar13 = iVar13 + -1;\n        pbVar17 = pbVar17->l_next;\n      } while (iVar13 != -1);\n    }\n    if (pbVar17 == (bc_label_group *)0x0) {\n      pcVar14 = "Internal error.";\n      goto LAB_0001732f;\n    }\n    pc.pc_addr = pbVar17->l_adrs[CONCAT11(local_70[local_5c],cVar8) & 0x3f];\n    local_78 = (bc_num *)local_7c->f_code_size;\n    goto _L141;\n  case 'K':\n    if (pbVar10 == (bc_function *)0x0) {\n      local_70 = (char *)i_base;\n    }\n    else {\n      local_70 = (char *)fn_stack->s_val;\n    }\n    if (local_70 == (char *)0xa) {\n      pc.pc_addr = uVar19;\n      push_b10_const(&pc);\n      break;\n    }\n    pc.pc_addr = uVar19;\n    bc_init_num(&temp);\n    bc_init_num(&result);\n    bc_init_num(&mult);\n    build = bc_copy_num(_zero_);\n    bc_int2num(&mult,(int)local_70);\n    pcVar14 = functions[pc.pc_func].f_body;\n    uVar19 = pc.pc_addr + 1;\n    uVar20 = (uint)(byte)pcVar14[pc.pc_addr];\n    if (uVar20 == 0x7e) {\n      uVar12 = pc.pc_addr + 2;\n      do {\n        uVar19 = uVar12;\n        uVar20 = (uint)(byte)pcVar14[uVar19 - 1];\n        uVar12 = uVar19 + 1;\n      } while (uVar20 == 0x7e);\n    }\n    if (uVar20 == 0x2b) {\n      pc.pc_addr = uVar19 + 1;\n      uVar20 = (uint)(byte)pcVar14[uVar19];\n    }\n    else {\n      pc.pc_addr = uVar19;\n      if (uVar20 == 0x2d) {\n        bVar21 = true;\n        pc.pc_addr = uVar19 + 1;\n        uVar20 = (uint)(byte)pcVar14[uVar19];\n      }\n    }\n    uVar19 = uVar20;\n    if (uVar20 < 0x24) {\n      uVar19 = (uint)(byte)pcVar14[pc.pc_addr];\n      if ((uVar19 < 0x24) && ((int)local_70 <= (int)uVar20)) {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,(int)local_70 + -1);\n      }\n      else {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,uVar20);\n        if (0x23 < uVar19) goto LAB_00017202;\n      }\n      local_60 = &build;\n      do {\n        if ((int)local_70 <= (int)uVar19) {\n          uVar19 = (int)local_70 - 1;\n        }\n        bc_multiply(build,mult,&result,0);\n        bc_int2num(&temp,uVar19);\n        bc_add(result,temp,local_60,0);\n        uVar20 = pc.pc_addr + 1;\n        uVar19 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n        pc.pc_addr = uVar20;\n      } while (uVar19 < 0x24);\n    }\nLAB_00017202:\n    if (uVar19 == 0x2e) {\n      uVar19 = (int)local_70 - 1;\n      uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n      if ((int)local_70 <= (int)(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]) {\n        uVar20 = uVar19;\n      }\n      pc.pc_addr = pc.pc_addr + 1;\n      bc_free_num(&result);\n      bc_free_num(&temp);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      iVar13 = 0;\n      if ((int)uVar20 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar13;\n            bc_multiply(result,mult,&result,0);\n            bc_int2num(&temp,uVar20);\n            bc_add(result,temp,&result,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            uVar12 = pc.pc_addr + 1;\n            uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n            pc.pc_addr = uVar12;\n            iVar13 = local_58;\n            if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;\n            uVar20 = uVar19;\n            if (0x23 < (int)uVar19) goto LAB_00017a9d;\n          }\n        } while (uVar20 < 0x24);\n      }\n      goto LAB_00017a9d;\n    }\n    goto LAB_0001720b;\n  case 'L':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    load_array(uVar12);\n    break;\n  case 'M':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    decr_array(uVar12);\n    break;\n  case 'O':\n    pc.pc_addr = uVar19;\n_L163:\n    uVar19 = pc.pc_addr + 1;\n    bVar2 = local_70[pc.pc_addr];\n    uVar12 = (uint)bVar2;\n    uVar20 = uVar19;\n    if (bVar2 != 0x22) {\n      if (bVar2 != 0x5c) goto LAB_000172c4;\n      pc.pc_addr = pc.pc_addr + 2;\n      uVar20 = pc.pc_addr;\n      if (local_70[uVar19] != '\"') goto code_r0x0001730b;\n    }\n    pc.pc_addr = uVar20;\n    fflush(*(FILE **)puVar5);\n    checkferror_output(*(FILE **)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    pc.pc_addr = uVar19;\n    bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_0002bffc,std_only);\n    if (cVar9 == 'W') {\n      out_char(10);\n    }\n    store_var(4);\n    puVar6 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    checkferror_output(*(FILE **)puVar6);\n    pop();\n    break;\n  case 'R':\n    if (pbVar10 == (bc_function *)0x0) {\n      pcVar14 = "Return from main program.";\n      pc.pc_addr = uVar19;\n      goto LAB_0001732f;\n    }\n    pc.pc_addr = uVar19;\n    pop_vars(local_7c->f_autos);\n    pop_vars(functions[pc.pc_func].f_params);\n    fpop();\n    pc.pc_addr = fpop();\n    pbVar10 = (bc_function *)fpop();\n    local_78 = (bc_num *)functions[(int)pbVar10].f_code_size;\n    pbVar18 = functions;\n    pc.pc_func = (uint)pbVar10;\n    goto _L141;\n  case 'S':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    store_array(uVar12);\n    break;\n  case '^':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    if ((cVar9 != '\0') && (cVar9 = bc_is_neg(ex_stack->s_num), cVar9 != '\0')) {\n      rt_error("divide by zero");\n    }\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case 'c':\n    goto _L156;\n  case 'd':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    decr_var(uVar12);\n    break;\n  case 'h':\n    pc.pc_addr = uVar19;\n    bc_exit(0);\n    break;\n  case 'i':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    incr_var(uVar12);\n    break;\n  case 'l':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    load_var(uVar12);\n    break;\n  case 'n':\n    pc.pc_addr = uVar19;\n    bc_sub(_zero_,ex_stack->s_num,&ex_stack->s_num,0);\n    break;\n  case 'p':\n    pc.pc_addr = uVar19;\n    pop();\n    goto LAB_00016998;\n  case 's':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    store_var(uVar12);\n    break;\n  case 'w':\n    bVar2 = local_70[uVar19];\n    pc.pc_addr = pc.pc_addr + 2;\n    while (puVar6 = PTR_stdout_0002bfec, bVar2 != 0x22) {\n      out_schar((uint)bVar2);\n      bVar2 = functions[pc.pc_func].f_body[pc.pc_addr];\n      pc.pc_addr = pc.pc_addr + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    checkferror_output(*(FILE **)puVar6);\n    break;\n  case 'x':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      ppeVar1 = &ex_stack->s_next;\n      pbVar3 = ex_stack->s_num;\n      ex_stack->s_num = (*ppeVar1)->s_num;\n      (*ppeVar1)->s_num = pbVar3;\n    }\n    goto LAB_00016998;\n  case '{':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 < 1;\n    pop();\n    goto LAB_000167c5;\n  case '|':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    bVar21 = true;\n    if (cVar9 != '\0') {\n      cVar9 = bc_is_zero(ex_stack->s_num);\n      bVar21 = cVar9 == '\0';\n    }\n    c_code = bVar21;\n    pop();\n    goto LAB_000167c5;\n  case '}':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = (byte)~(byte)((uint)iVar13 >> 0x18) >> 7;\n    pop();\nLAB_000167c5:\n    cVar9 = c_code;\n    bc_free_num(&ex_stack->s_num);\n    peVar7 = ex_stack;\n    if (cVar9 == '\0') {\n      pbVar11 = bc_copy_num(_zero_);\n      peVar7->s_num = pbVar11;\n    }\n    else {\n      pbVar11 = bc_copy_num(_one_);\n      peVar7->s_num = pbVar11;\n    }\n  }\n  goto LAB_000167f0;\n_L156:\n  pc.pc_addr = pc.pc_addr + 2;\n  switch(local_70[uVar19]) {\n  case 'I':\n    bc_init_num(&temp);\n    bc_init_num(&result);\n    bc_init_num(&mult);\n    build = bc_copy_num(_zero_);\n    bc_int2num(&mult,iVar13);\n    iVar15 = input_char();\n    while (iVar15 == 0x7e) {\n      iVar15 = input_char();\n    }\n    if (iVar15 == 0x2b) {\n      iVar15 = input_char();\n    }\n    else if (iVar15 == 0x2d) {\n      iVar15 = input_char();\n      bVar21 = true;\n    }\n    local_78 = &temp;\n    local_7c = (bc_function *)&result;\n    iVar16 = iVar15;\n    if (iVar15 < 0x24) {\n      iVar16 = input_char();\n      if ((iVar16 < 0x24) && (iVar13 <= iVar15)) {\n        bc_int2num(&build,iVar13 + -1);\n      }\n      else {\n        bc_int2num(&build,iVar15);\n        if (0x23 < iVar16) goto LAB_00017b03;\n      }\n      local_60 = &build;\n      do {\n        if (iVar16 < iVar13) {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n        }\n        else {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n          iVar16 = iVar13 + -1;\n        }\n        bc_int2num(local_78,iVar16);\n        bc_add(result,temp,local_60,0);\n        iVar16 = input_char();\n      } while (iVar16 < 0x24);\n    }\nLAB_00017b03:\n    if (iVar16 == 0x2e) {\n      iVar16 = input_char();\n      iVar15 = iVar13 + -1;\n      if (iVar13 <= iVar16) {\n        iVar16 = iVar15;\n      }\n      bc_free_num((bc_num *)local_7c);\n      bc_free_num(local_78);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      if (iVar16 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            bc_multiply(result,mult,(bc_num *)local_7c,0);\n            bc_int2num(local_78,iVar16);\n            bc_add(result,temp,(bc_num *)local_7c,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            iVar16 = input_char();\n            if ((0x23 < iVar16) || (iVar16 < iVar13)) break;\n            iVar16 = iVar15;\n            if (0x23 < iVar15) goto LAB_00017a9d;\n          }\n        } while (iVar16 < 0x24);\n      }\nLAB_00017a9d:\n      local_7c = (bc_function *)&result;\n      bc_divide(result,divisor,(bc_num *)local_7c,local_58);\n      bc_add(build,result,&build,0);\n    }\nLAB_0001720b:\n    local_44 = &mult;\n    local_78 = &temp;\n    local_7c = (bc_function *)&result;\n    if (bVar21) {\n      bc_sub(_zero_,build,&build,0);\n    }\n    push_num(build);\n    bc_free_num(local_78);\n    bc_free_num((bc_num *)local_7c);\n    bc_free_num(local_44);\n    break;\n  default:\n    goto _L141;\n  case 'L':\n    pbVar3 = ex_stack->s_num;\n    iVar13 = pbVar3->n_scale;\n    if (((pbVar3->n_len == 1) && (iVar13 != 0)) && (*pbVar3->n_value == '\0')) {\n      bc_int2num(&ex_stack->s_num,iVar13);\n    }\n    else {\n      bc_int2num(&ex_stack->s_num,pbVar3->n_len + iVar13);\n    }\n    break;\n  case 'R':\n    iVar13 = bc_sqrt(&ex_stack->s_num,scale);\n    if (iVar13 != 0) {\nLAB_00016998:\n      local_78 = (bc_num *)functions[pc.pc_func].f_code_size;\n      pbVar10 = (bc_function *)pc.pc_func;\n      pbVar18 = functions;\n      goto _L141;\n    }\n    pcVar14 = "Square root of a negative number";\nLAB_0001732f:\n    rt_error(pcVar14);\n    break;\n  case 'S':\n    bc_int2num(&ex_stack->s_num,ex_stack->s_num->n_scale);\n    break;\n  case 'X':\n    push_copy(_zero_);\n    val = random();\n    bc_int2num(&ex_stack->s_num,val);\n  }\nLAB_000167f0:\n  local_78 = (bc_num *)functions[pc.pc_func].f_code_size;\n  pbVar10 = (bc_function *)pc.pc_func;\n  pbVar18 = functions;\n  goto _L141;\ncode_r0x0001730b:\n  switch(local_70[uVar19]) {\n  case '\\':\n    uVar12 = 0x5c;\n    uVar19 = pc.pc_addr;\n    break;\n  default:\n    goto _L163;\n  case 'a':\n    uVar12 = 7;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'b':\n    uVar12 = 8;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'f':\n    uVar12 = 0xc;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'n':\n    uVar12 = 10;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'q':\n    uVar12 = 0x22;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'r':\n    uVar12 = 0xd;\n    uVar19 = pc.pc_addr;\n    break;\n  case 't':\n    uVar12 = 9;\n    uVar19 = pc.pc_addr;\n  }\nLAB_000172c4:\n  pc.pc_addr = uVar19;\n  out_schar(uVar12);\n  local_70 = functions[pc.pc_func].f_body;\n  goto _L163;\n}\n\n" comment comment (function_definition "void execute(void)\n\n{\n  estack_rec **ppeVar1;\n  byte bVar2;\n  bc_num_conflict pbVar3;\n  arg_list *paVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  estack_rec *peVar7;\n  char cVar8;\n  char cVar9;\n  bc_function *pbVar10;\n  bc_num pbVar11;\n  uint uVar12;\n  int iVar13;\n  char *pcVar14;\n  long val;\n  int iVar15;\n  int iVar16;\n  bc_label_group *pbVar17;\n  bc_function *pbVar18;\n  uint uVar19;\n  uint uVar20;\n  int in_GS_OFFSET;\n  bool bVar21;\n  bc_function *local_7c;\n  bc_num *local_78;\n  char *local_70;\n  bc_num *local_60;\n  int local_5c;\n  int local_58;\n  bc_num *local_44;\n  bc_num temp_num;\n  bc_num build;\n  bc_num temp;\n  bc_num result;\n  bc_num mult;\n  bc_num divisor;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x165e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  runtime_error = '\0';\n  pc.pc_func = 0;\n  pc.pc_addr = 0;\n  bc_init_num(&temp_num);\n  if (interactive != '\0') {\n    signal(2,stop_execution);\n  }\n  puVar5 = PTR_stdout_0002bfec;\n  had_sigint = 0;\n  local_78 = (bc_num *)functions[pc.pc_func].f_code_size;\n  pbVar10 = (bc_function *)pc.pc_func;\n  pbVar18 = functions;\n_L141:\n  iVar13 = i_base;\n  local_7c = pbVar18 + (int)pbVar10;\n  if (((local_78 <= pc.pc_addr) || (runtime_error != '\0')) || (had_sigint != 0)) {\n    if (pbVar10 != (bc_function *)0x0) {\n      do {\n        pop_vars(pbVar18[(int)pbVar10].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar10 = (bc_function *)fpop();\n        pbVar18 = functions;\n        pc.pc_func = (uint)pbVar10;\n      } while (pbVar10 != (bc_function *)0x0);\n      pc.pc_func = 0;\n    }\n    while (ex_stack != (estack_rec *)0x0) {\n      pop();\n    }\n    if ((interactive != '\0') && (signal(2,(__sighandler_t)PTR_use_quit_0002bff4), had_sigint != 0))\n    {\n      puts("\ninterrupted execution.");\n      checkferror_output(*(FILE **)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  uVar19 = pc.pc_addr + 1;\n  local_70 = local_7c->f_body;\n  cVar9 = local_70[pc.pc_addr];\n  local_58 = 0;\n  bVar21 = false;\n  switch(cVar9) {\n  case '!':\n  case 'T':\n    pc.pc_addr = uVar19;\n    c_code = bc_is_zero(ex_stack->s_num);\n    goto LAB_000167c5;\n  default:\n    pcVar14 = "bad instruction: inst=%c";\n    pc.pc_addr = uVar19;\n    goto LAB_0001732f;\n  case '#':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 != 0;\n    pop();\n    goto LAB_000167c5;\n  case '%':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_num);\n    if (cVar9 == '\0') {\n      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      goto LAB_00016d14;\n    }\n    pcVar14 = "Modulo by zero";\n    goto LAB_0001732f;\n  case '&':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    bVar21 = false;\n    if (cVar9 == '\0') {\n      cVar9 = bc_is_zero(ex_stack->s_num);\n      bVar21 = cVar9 == '\0';\n    }\n    c_code = bVar21;\n    pop();\n    goto LAB_000167c5;\n  case '*':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    bc_multiply(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\nLAB_00016d14:\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case '+':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_00016d14;\n    }\n    goto LAB_00016998;\n  case '-':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_00016d14;\n    }\n    goto LAB_00016998;\n  case '/':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    if (iVar13 != 0) {\n      pcVar14 = "Divide by zero";\n      goto LAB_0001732f;\n    }\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case '0':\n    pc.pc_addr = uVar19;\n    push_copy(_zero_);\n    break;\n  case '1':\n    pc.pc_addr = uVar19;\n    push_copy(_one_);\n    break;\n  case '<':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == -1;\n    pop();\n    goto LAB_000167c5;\n  case '=':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == 0;\n    pop();\n    goto LAB_000167c5;\n  case '>':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == 1;\n    pop();\n    goto LAB_000167c5;\n  case 'A':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    incr_array(uVar12);\n    break;\n  case 'B':\n  case 'Z':\n    pc.pc_addr = uVar19;\n    cVar8 = bc_is_zero(ex_stack->s_num);\n    c_code = cVar8 == '\0';\n    pop();\n    local_7c = functions + pc.pc_func;\n    local_70 = local_7c->f_body;\n    local_5c = pc.pc_addr + 1;\n    cVar8 = local_70[pc.pc_addr];\n    pc.pc_addr = pc.pc_addr + 2;\n    pbVar10 = (bc_function *)pc.pc_func;\n    pbVar18 = functions;\n    if (cVar9 == 'J') goto LAB_0001740e;\n    if (cVar9 == 'B') {\n      if (c_code != '\0') goto LAB_0001740e;\n    }\n    else if ((cVar9 == 'Z') && (c_code == '\0')) goto LAB_0001740e;\n    local_78 = (bc_num *)local_7c->f_code_size;\n    goto _L141;\n  case 'C':\n    local_7c = (bc_function *)(uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      local_7c = (bc_function *)\n                 ((uint)(byte)local_70[pc.pc_addr + 2] + ((uint)local_7c & 0x7f) * 0x100);\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    if (pbVar18[(int)local_7c].f_defined == '\0') {\n      pcVar14 = "Function %s not defined.";\n      goto LAB_0001732f;\n    }\n    process_params(&pc,(int)local_7c);\n    for (paVar4 = functions[(int)local_7c].f_autos; paVar4 != (arg_list *)0x0; paVar4 = paVar4->next\n        ) {\n      auto_var(paVar4->av_name);\n    }\n    fpush(pc.pc_func);\n    fpush(pc.pc_addr);\n    fpush(i_base);\n    pc.pc_addr = 0;\n    pc.pc_func = (uint)local_7c;\n    local_78 = (bc_num *)functions[(int)local_7c].f_code_size;\n    pbVar10 = local_7c;\n    pbVar18 = functions;\n    goto _L141;\n  case 'D':\n    pc.pc_addr = uVar19;\n    push_copy(ex_stack->s_num);\n    break;\n  case 'J':\n    local_5c = pc.pc_addr + 2;\n    cVar8 = local_70[uVar19];\n    pc.pc_addr = pc.pc_addr + 3;\nLAB_0001740e:\n    uVar19 = (uint)(ushort)(CONCAT11(local_70[local_5c],cVar8) >> 6);\n    pbVar17 = local_7c->f_label;\n    iVar13 = uVar19 - 1;\n    if (uVar19 != 0) {\n      do {\n        iVar13 = iVar13 + -1;\n        pbVar17 = pbVar17->l_next;\n      } while (iVar13 != -1);\n    }\n    if (pbVar17 == (bc_label_group *)0x0) {\n      pcVar14 = "Internal error.";\n      goto LAB_0001732f;\n    }\n    pc.pc_addr = pbVar17->l_adrs[CONCAT11(local_70[local_5c],cVar8) & 0x3f];\n    local_78 = (bc_num *)local_7c->f_code_size;\n    goto _L141;\n  case 'K':\n    if (pbVar10 == (bc_function *)0x0) {\n      local_70 = (char *)i_base;\n    }\n    else {\n      local_70 = (char *)fn_stack->s_val;\n    }\n    if (local_70 == (char *)0xa) {\n      pc.pc_addr = uVar19;\n      push_b10_const(&pc);\n      break;\n    }\n    pc.pc_addr = uVar19;\n    bc_init_num(&temp);\n    bc_init_num(&result);\n    bc_init_num(&mult);\n    build = bc_copy_num(_zero_);\n    bc_int2num(&mult,(int)local_70);\n    pcVar14 = functions[pc.pc_func].f_body;\n    uVar19 = pc.pc_addr + 1;\n    uVar20 = (uint)(byte)pcVar14[pc.pc_addr];\n    if (uVar20 == 0x7e) {\n      uVar12 = pc.pc_addr + 2;\n      do {\n        uVar19 = uVar12;\n        uVar20 = (uint)(byte)pcVar14[uVar19 - 1];\n        uVar12 = uVar19 + 1;\n      } while (uVar20 == 0x7e);\n    }\n    if (uVar20 == 0x2b) {\n      pc.pc_addr = uVar19 + 1;\n      uVar20 = (uint)(byte)pcVar14[uVar19];\n    }\n    else {\n      pc.pc_addr = uVar19;\n      if (uVar20 == 0x2d) {\n        bVar21 = true;\n        pc.pc_addr = uVar19 + 1;\n        uVar20 = (uint)(byte)pcVar14[uVar19];\n      }\n    }\n    uVar19 = uVar20;\n    if (uVar20 < 0x24) {\n      uVar19 = (uint)(byte)pcVar14[pc.pc_addr];\n      if ((uVar19 < 0x24) && ((int)local_70 <= (int)uVar20)) {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,(int)local_70 + -1);\n      }\n      else {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,uVar20);\n        if (0x23 < uVar19) goto LAB_00017202;\n      }\n      local_60 = &build;\n      do {\n        if ((int)local_70 <= (int)uVar19) {\n          uVar19 = (int)local_70 - 1;\n        }\n        bc_multiply(build,mult,&result,0);\n        bc_int2num(&temp,uVar19);\n        bc_add(result,temp,local_60,0);\n        uVar20 = pc.pc_addr + 1;\n        uVar19 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n        pc.pc_addr = uVar20;\n      } while (uVar19 < 0x24);\n    }\nLAB_00017202:\n    if (uVar19 == 0x2e) {\n      uVar19 = (int)local_70 - 1;\n      uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n      if ((int)local_70 <= (int)(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]) {\n        uVar20 = uVar19;\n      }\n      pc.pc_addr = pc.pc_addr + 1;\n      bc_free_num(&result);\n      bc_free_num(&temp);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      iVar13 = 0;\n      if ((int)uVar20 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar13;\n            bc_multiply(result,mult,&result,0);\n            bc_int2num(&temp,uVar20);\n            bc_add(result,temp,&result,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            uVar12 = pc.pc_addr + 1;\n            uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n            pc.pc_addr = uVar12;\n            iVar13 = local_58;\n            if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;\n            uVar20 = uVar19;\n            if (0x23 < (int)uVar19) goto LAB_00017a9d;\n          }\n        } while (uVar20 < 0x24);\n      }\n      goto LAB_00017a9d;\n    }\n    goto LAB_0001720b;\n  case 'L':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    load_array(uVar12);\n    break;\n  case 'M':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    decr_array(uVar12);\n    break;\n  case 'O':\n    pc.pc_addr = uVar19;\n_L163:\n    uVar19 = pc.pc_addr + 1;\n    bVar2 = local_70[pc.pc_addr];\n    uVar12 = (uint)bVar2;\n    uVar20 = uVar19;\n    if (bVar2 != 0x22) {\n      if (bVar2 != 0x5c) goto LAB_000172c4;\n      pc.pc_addr = pc.pc_addr + 2;\n      uVar20 = pc.pc_addr;\n      if (local_70[uVar19] != '\"') goto code_r0x0001730b;\n    }\n    pc.pc_addr = uVar20;\n    fflush(*(FILE **)puVar5);\n    checkferror_output(*(FILE **)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    pc.pc_addr = uVar19;\n    bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_0002bffc,std_only);\n    if (cVar9 == 'W') {\n      out_char(10);\n    }\n    store_var(4);\n    puVar6 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    checkferror_output(*(FILE **)puVar6);\n    pop();\n    break;\n  case 'R':\n    if (pbVar10 == (bc_function *)0x0) {\n      pcVar14 = "Return from main program.";\n      pc.pc_addr = uVar19;\n      goto LAB_0001732f;\n    }\n    pc.pc_addr = uVar19;\n    pop_vars(local_7c->f_autos);\n    pop_vars(functions[pc.pc_func].f_params);\n    fpop();\n    pc.pc_addr = fpop();\n    pbVar10 = (bc_function *)fpop();\n    local_78 = (bc_num *)functions[(int)pbVar10].f_code_size;\n    pbVar18 = functions;\n    pc.pc_func = (uint)pbVar10;\n    goto _L141;\n  case 'S':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    store_array(uVar12);\n    break;\n  case '^':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    if ((cVar9 != '\0') && (cVar9 = bc_is_neg(ex_stack->s_num), cVar9 != '\0')) {\n      rt_error("divide by zero");\n    }\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case 'c':\n    goto _L156;\n  case 'd':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    decr_var(uVar12);\n    break;\n  case 'h':\n    pc.pc_addr = uVar19;\n    bc_exit(0);\n    break;\n  case 'i':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    incr_var(uVar12);\n    break;\n  case 'l':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    load_var(uVar12);\n    break;\n  case 'n':\n    pc.pc_addr = uVar19;\n    bc_sub(_zero_,ex_stack->s_num,&ex_stack->s_num,0);\n    break;\n  case 'p':\n    pc.pc_addr = uVar19;\n    pop();\n    goto LAB_00016998;\n  case 's':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    store_var(uVar12);\n    break;\n  case 'w':\n    bVar2 = local_70[uVar19];\n    pc.pc_addr = pc.pc_addr + 2;\n    while (puVar6 = PTR_stdout_0002bfec, bVar2 != 0x22) {\n      out_schar((uint)bVar2);\n      bVar2 = functions[pc.pc_func].f_body[pc.pc_addr];\n      pc.pc_addr = pc.pc_addr + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    checkferror_output(*(FILE **)puVar6);\n    break;\n  case 'x':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      ppeVar1 = &ex_stack->s_next;\n      pbVar3 = ex_stack->s_num;\n      ex_stack->s_num = (*ppeVar1)->s_num;\n      (*ppeVar1)->s_num = pbVar3;\n    }\n    goto LAB_00016998;\n  case '{':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 < 1;\n    pop();\n    goto LAB_000167c5;\n  case '|':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    bVar21 = true;\n    if (cVar9 != '\0') {\n      cVar9 = bc_is_zero(ex_stack->s_num);\n      bVar21 = cVar9 == '\0';\n    }\n    c_code = bVar21;\n    pop();\n    goto LAB_000167c5;\n  case '}':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = (byte)~(byte)((uint)iVar13 >> 0x18) >> 7;\n    pop();\nLAB_000167c5:\n    cVar9 = c_code;\n    bc_free_num(&ex_stack->s_num);\n    peVar7 = ex_stack;\n    if (cVar9 == '\0') {\n      pbVar11 = bc_copy_num(_zero_);\n      peVar7->s_num = pbVar11;\n    }\n    else {\n      pbVar11 = bc_copy_num(_one_);\n      peVar7->s_num = pbVar11;\n    }\n  }\n  goto LAB_000167f0;\n_L156:\n  pc.pc_addr = pc.pc_addr + 2;\n  switch(local_70[uVar19]) {\n  case 'I':\n    bc_init_num(&temp);\n    bc_init_num(&result);\n    bc_init_num(&mult);\n    build = bc_copy_num(_zero_);\n    bc_int2num(&mult,iVar13);\n    iVar15 = input_char();\n    while (iVar15 == 0x7e) {\n      iVar15 = input_char();\n    }\n    if (iVar15 == 0x2b) {\n      iVar15 = input_char();\n    }\n    else if (iVar15 == 0x2d) {\n      iVar15 = input_char();\n      bVar21 = true;\n    }\n    local_78 = &temp;\n    local_7c = (bc_function *)&result;\n    iVar16 = iVar15;\n    if (iVar15 < 0x24) {\n      iVar16 = input_char();\n      if ((iVar16 < 0x24) && (iVar13 <= iVar15)) {\n        bc_int2num(&build,iVar13 + -1);\n      }\n      else {\n        bc_int2num(&build,iVar15);\n        if (0x23 < iVar16) goto LAB_00017b03;\n      }\n      local_60 = &build;\n      do {\n        if (iVar16 < iVar13) {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n        }\n        else {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n          iVar16 = iVar13 + -1;\n        }\n        bc_int2num(local_78,iVar16);\n        bc_add(result,temp,local_60,0);\n        iVar16 = input_char();\n      } while (iVar16 < 0x24);\n    }\nLAB_00017b03:\n    if (iVar16 == 0x2e) {\n      iVar16 = input_char();\n      iVar15 = iVar13 + -1;\n      if (iVar13 <= iVar16) {\n        iVar16 = iVar15;\n      }\n      bc_free_num((bc_num *)local_7c);\n      bc_free_num(local_78);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      if (iVar16 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            bc_multiply(result,mult,(bc_num *)local_7c,0);\n            bc_int2num(local_78,iVar16);\n            bc_add(result,temp,(bc_num *)local_7c,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            iVar16 = input_char();\n            if ((0x23 < iVar16) || (iVar16 < iVar13)) break;\n            iVar16 = iVar15;\n            if (0x23 < iVar15) goto LAB_00017a9d;\n          }\n        } while (iVar16 < 0x24);\n      }\nLAB_00017a9d:\n      local_7c = (bc_function *)&result;\n      bc_divide(result,divisor,(bc_num *)local_7c,local_58);\n      bc_add(build,result,&build,0);\n    }\nLAB_0001720b:\n    local_44 = &mult;\n    local_78 = &temp;\n    local_7c = (bc_function *)&result;\n    if (bVar21) {\n      bc_sub(_zero_,build,&build,0);\n    }\n    push_num(build);\n    bc_free_num(local_78);\n    bc_free_num((bc_num *)local_7c);\n    bc_free_num(local_44);\n    break;\n  default:\n    goto _L141;\n  case 'L':\n    pbVar3 = ex_stack->s_num;\n    iVar13 = pbVar3->n_scale;\n    if (((pbVar3->n_len == 1) && (iVar13 != 0)) && (*pbVar3->n_value == '\0')) {\n      bc_int2num(&ex_stack->s_num,iVar13);\n    }\n    else {\n      bc_int2num(&ex_stack->s_num,pbVar3->n_len + iVar13);\n    }\n    break;\n  case 'R':\n    iVar13 = bc_sqrt(&ex_stack->s_num,scale);\n    if (iVar13 != 0) {\nLAB_00016998:\n      local_78 = (bc_num *)functions[pc.pc_func].f_code_size;\n      pbVar10 = (bc_function *)pc.pc_func;\n      pbVar18 = functions;\n      goto _L141;\n    }\n    pcVar14 = "Square root of a negative number";\nLAB_0001732f:\n    rt_error(pcVar14);\n    break;\n  case 'S':\n    bc_int2num(&ex_stack->s_num,ex_stack->s_num->n_scale);\n    break;\n  case 'X':\n    push_copy(_zero_);\n    val = random();\n    bc_int2num(&ex_stack->s_num,val);\n  }\nLAB_000167f0:\n  local_78 = (bc_num *)functions[pc.pc_func].f_code_size;\n  pbVar10 = (bc_function *)pc.pc_func;\n  pbVar18 = functions;\n  goto _L141;\ncode_r0x0001730b:\n  switch(local_70[uVar19]) {\n  case '\\':\n    uVar12 = 0x5c;\n    uVar19 = pc.pc_addr;\n    break;\n  default:\n    goto _L163;\n  case 'a':\n    uVar12 = 7;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'b':\n    uVar12 = 8;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'f':\n    uVar12 = 0xc;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'n':\n    uVar12 = 10;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'q':\n    uVar12 = 0x22;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'r':\n    uVar12 = 0xd;\n    uVar19 = pc.pc_addr;\n    break;\n  case 't':\n    uVar12 = 9;\n    uVar19 = pc.pc_addr;\n  }\nLAB_000172c4:\n  pc.pc_addr = uVar19;\n  out_schar(uVar12);\n  local_70 = functions[pc.pc_func].f_body;\n  goto _L163;\n}" primitive_type (function_declarator "execute(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  estack_rec **ppeVar1;\n  byte bVar2;\n  bc_num_conflict pbVar3;\n  arg_list *paVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  estack_rec *peVar7;\n  char cVar8;\n  char cVar9;\n  bc_function *pbVar10;\n  bc_num pbVar11;\n  uint uVar12;\n  int iVar13;\n  char *pcVar14;\n  long val;\n  int iVar15;\n  int iVar16;\n  bc_label_group *pbVar17;\n  bc_function *pbVar18;\n  uint uVar19;\n  uint uVar20;\n  int in_GS_OFFSET;\n  bool bVar21;\n  bc_function *local_7c;\n  bc_num *local_78;\n  char *local_70;\n  bc_num *local_60;\n  int local_5c;\n  int local_58;\n  bc_num *local_44;\n  bc_num temp_num;\n  bc_num build;\n  bc_num temp;\n  bc_num result;\n  bc_num mult;\n  bc_num divisor;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x165e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  runtime_error = '\0';\n  pc.pc_func = 0;\n  pc.pc_addr = 0;\n  bc_init_num(&temp_num);\n  if (interactive != '\0') {\n    signal(2,stop_execution);\n  }\n  puVar5 = PTR_stdout_0002bfec;\n  had_sigint = 0;\n  local_78 = (bc_num *)functions[pc.pc_func].f_code_size;\n  pbVar10 = (bc_function *)pc.pc_func;\n  pbVar18 = functions;\n_L141:\n  iVar13 = i_base;\n  local_7c = pbVar18 + (int)pbVar10;\n  if (((local_78 <= pc.pc_addr) || (runtime_error != '\0')) || (had_sigint != 0)) {\n    if (pbVar10 != (bc_function *)0x0) {\n      do {\n        pop_vars(pbVar18[(int)pbVar10].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar10 = (bc_function *)fpop();\n        pbVar18 = functions;\n        pc.pc_func = (uint)pbVar10;\n      } while (pbVar10 != (bc_function *)0x0);\n      pc.pc_func = 0;\n    }\n    while (ex_stack != (estack_rec *)0x0) {\n      pop();\n    }\n    if ((interactive != '\0') && (signal(2,(__sighandler_t)PTR_use_quit_0002bff4), had_sigint != 0))\n    {\n      puts("\ninterrupted execution.");\n      checkferror_output(*(FILE **)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  uVar19 = pc.pc_addr + 1;\n  local_70 = local_7c->f_body;\n  cVar9 = local_70[pc.pc_addr];\n  local_58 = 0;\n  bVar21 = false;\n  switch(cVar9) {\n  case '!':\n  case 'T':\n    pc.pc_addr = uVar19;\n    c_code = bc_is_zero(ex_stack->s_num);\n    goto LAB_000167c5;\n  default:\n    pcVar14 = "bad instruction: inst=%c";\n    pc.pc_addr = uVar19;\n    goto LAB_0001732f;\n  case '#':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 != 0;\n    pop();\n    goto LAB_000167c5;\n  case '%':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_num);\n    if (cVar9 == '\0') {\n      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      goto LAB_00016d14;\n    }\n    pcVar14 = "Modulo by zero";\n    goto LAB_0001732f;\n  case '&':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    bVar21 = false;\n    if (cVar9 == '\0') {\n      cVar9 = bc_is_zero(ex_stack->s_num);\n      bVar21 = cVar9 == '\0';\n    }\n    c_code = bVar21;\n    pop();\n    goto LAB_000167c5;\n  case '*':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    bc_multiply(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\nLAB_00016d14:\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case '+':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_00016d14;\n    }\n    goto LAB_00016998;\n  case '-':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_00016d14;\n    }\n    goto LAB_00016998;\n  case '/':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    if (iVar13 != 0) {\n      pcVar14 = "Divide by zero";\n      goto LAB_0001732f;\n    }\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case '0':\n    pc.pc_addr = uVar19;\n    push_copy(_zero_);\n    break;\n  case '1':\n    pc.pc_addr = uVar19;\n    push_copy(_one_);\n    break;\n  case '<':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == -1;\n    pop();\n    goto LAB_000167c5;\n  case '=':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == 0;\n    pop();\n    goto LAB_000167c5;\n  case '>':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == 1;\n    pop();\n    goto LAB_000167c5;\n  case 'A':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    incr_array(uVar12);\n    break;\n  case 'B':\n  case 'Z':\n    pc.pc_addr = uVar19;\n    cVar8 = bc_is_zero(ex_stack->s_num);\n    c_code = cVar8 == '\0';\n    pop();\n    local_7c = functions + pc.pc_func;\n    local_70 = local_7c->f_body;\n    local_5c = pc.pc_addr + 1;\n    cVar8 = local_70[pc.pc_addr];\n    pc.pc_addr = pc.pc_addr + 2;\n    pbVar10 = (bc_function *)pc.pc_func;\n    pbVar18 = functions;\n    if (cVar9 == 'J') goto LAB_0001740e;\n    if (cVar9 == 'B') {\n      if (c_code != '\0') goto LAB_0001740e;\n    }\n    else if ((cVar9 == 'Z') && (c_code == '\0')) goto LAB_0001740e;\n    local_78 = (bc_num *)local_7c->f_code_size;\n    goto _L141;\n  case 'C':\n    local_7c = (bc_function *)(uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      local_7c = (bc_function *)\n                 ((uint)(byte)local_70[pc.pc_addr + 2] + ((uint)local_7c & 0x7f) * 0x100);\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    if (pbVar18[(int)local_7c].f_defined == '\0') {\n      pcVar14 = "Function %s not defined.";\n      goto LAB_0001732f;\n    }\n    process_params(&pc,(int)local_7c);\n    for (paVar4 = functions[(int)local_7c].f_autos; paVar4 != (arg_list *)0x0; paVar4 = paVar4->next\n        ) {\n      auto_var(paVar4->av_name);\n    }\n    fpush(pc.pc_func);\n    fpush(pc.pc_addr);\n    fpush(i_base);\n    pc.pc_addr = 0;\n    pc.pc_func = (uint)local_7c;\n    local_78 = (bc_num *)functions[(int)local_7c].f_code_size;\n    pbVar10 = local_7c;\n    pbVar18 = functions;\n    goto _L141;\n  case 'D':\n    pc.pc_addr = uVar19;\n    push_copy(ex_stack->s_num);\n    break;\n  case 'J':\n    local_5c = pc.pc_addr + 2;\n    cVar8 = local_70[uVar19];\n    pc.pc_addr = pc.pc_addr + 3;\nLAB_0001740e:\n    uVar19 = (uint)(ushort)(CONCAT11(local_70[local_5c],cVar8) >> 6);\n    pbVar17 = local_7c->f_label;\n    iVar13 = uVar19 - 1;\n    if (uVar19 != 0) {\n      do {\n        iVar13 = iVar13 + -1;\n        pbVar17 = pbVar17->l_next;\n      } while (iVar13 != -1);\n    }\n    if (pbVar17 == (bc_label_group *)0x0) {\n      pcVar14 = "Internal error.";\n      goto LAB_0001732f;\n    }\n    pc.pc_addr = pbVar17->l_adrs[CONCAT11(local_70[local_5c],cVar8) & 0x3f];\n    local_78 = (bc_num *)local_7c->f_code_size;\n    goto _L141;\n  case 'K':\n    if (pbVar10 == (bc_function *)0x0) {\n      local_70 = (char *)i_base;\n    }\n    else {\n      local_70 = (char *)fn_stack->s_val;\n    }\n    if (local_70 == (char *)0xa) {\n      pc.pc_addr = uVar19;\n      push_b10_const(&pc);\n      break;\n    }\n    pc.pc_addr = uVar19;\n    bc_init_num(&temp);\n    bc_init_num(&result);\n    bc_init_num(&mult);\n    build = bc_copy_num(_zero_);\n    bc_int2num(&mult,(int)local_70);\n    pcVar14 = functions[pc.pc_func].f_body;\n    uVar19 = pc.pc_addr + 1;\n    uVar20 = (uint)(byte)pcVar14[pc.pc_addr];\n    if (uVar20 == 0x7e) {\n      uVar12 = pc.pc_addr + 2;\n      do {\n        uVar19 = uVar12;\n        uVar20 = (uint)(byte)pcVar14[uVar19 - 1];\n        uVar12 = uVar19 + 1;\n      } while (uVar20 == 0x7e);\n    }\n    if (uVar20 == 0x2b) {\n      pc.pc_addr = uVar19 + 1;\n      uVar20 = (uint)(byte)pcVar14[uVar19];\n    }\n    else {\n      pc.pc_addr = uVar19;\n      if (uVar20 == 0x2d) {\n        bVar21 = true;\n        pc.pc_addr = uVar19 + 1;\n        uVar20 = (uint)(byte)pcVar14[uVar19];\n      }\n    }\n    uVar19 = uVar20;\n    if (uVar20 < 0x24) {\n      uVar19 = (uint)(byte)pcVar14[pc.pc_addr];\n      if ((uVar19 < 0x24) && ((int)local_70 <= (int)uVar20)) {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,(int)local_70 + -1);\n      }\n      else {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,uVar20);\n        if (0x23 < uVar19) goto LAB_00017202;\n      }\n      local_60 = &build;\n      do {\n        if ((int)local_70 <= (int)uVar19) {\n          uVar19 = (int)local_70 - 1;\n        }\n        bc_multiply(build,mult,&result,0);\n        bc_int2num(&temp,uVar19);\n        bc_add(result,temp,local_60,0);\n        uVar20 = pc.pc_addr + 1;\n        uVar19 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n        pc.pc_addr = uVar20;\n      } while (uVar19 < 0x24);\n    }\nLAB_00017202:\n    if (uVar19 == 0x2e) {\n      uVar19 = (int)local_70 - 1;\n      uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n      if ((int)local_70 <= (int)(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]) {\n        uVar20 = uVar19;\n      }\n      pc.pc_addr = pc.pc_addr + 1;\n      bc_free_num(&result);\n      bc_free_num(&temp);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      iVar13 = 0;\n      if ((int)uVar20 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar13;\n            bc_multiply(result,mult,&result,0);\n            bc_int2num(&temp,uVar20);\n            bc_add(result,temp,&result,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            uVar12 = pc.pc_addr + 1;\n            uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n            pc.pc_addr = uVar12;\n            iVar13 = local_58;\n            if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;\n            uVar20 = uVar19;\n            if (0x23 < (int)uVar19) goto LAB_00017a9d;\n          }\n        } while (uVar20 < 0x24);\n      }\n      goto LAB_00017a9d;\n    }\n    goto LAB_0001720b;\n  case 'L':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    load_array(uVar12);\n    break;\n  case 'M':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    decr_array(uVar12);\n    break;\n  case 'O':\n    pc.pc_addr = uVar19;\n_L163:\n    uVar19 = pc.pc_addr + 1;\n    bVar2 = local_70[pc.pc_addr];\n    uVar12 = (uint)bVar2;\n    uVar20 = uVar19;\n    if (bVar2 != 0x22) {\n      if (bVar2 != 0x5c) goto LAB_000172c4;\n      pc.pc_addr = pc.pc_addr + 2;\n      uVar20 = pc.pc_addr;\n      if (local_70[uVar19] != '\"') goto code_r0x0001730b;\n    }\n    pc.pc_addr = uVar20;\n    fflush(*(FILE **)puVar5);\n    checkferror_output(*(FILE **)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    pc.pc_addr = uVar19;\n    bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_0002bffc,std_only);\n    if (cVar9 == 'W') {\n      out_char(10);\n    }\n    store_var(4);\n    puVar6 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    checkferror_output(*(FILE **)puVar6);\n    pop();\n    break;\n  case 'R':\n    if (pbVar10 == (bc_function *)0x0) {\n      pcVar14 = "Return from main program.";\n      pc.pc_addr = uVar19;\n      goto LAB_0001732f;\n    }\n    pc.pc_addr = uVar19;\n    pop_vars(local_7c->f_autos);\n    pop_vars(functions[pc.pc_func].f_params);\n    fpop();\n    pc.pc_addr = fpop();\n    pbVar10 = (bc_function *)fpop();\n    local_78 = (bc_num *)functions[(int)pbVar10].f_code_size;\n    pbVar18 = functions;\n    pc.pc_func = (uint)pbVar10;\n    goto _L141;\n  case 'S':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    store_array(uVar12);\n    break;\n  case '^':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    if ((cVar9 != '\0') && (cVar9 = bc_is_neg(ex_stack->s_num), cVar9 != '\0')) {\n      rt_error("divide by zero");\n    }\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case 'c':\n    goto _L156;\n  case 'd':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    decr_var(uVar12);\n    break;\n  case 'h':\n    pc.pc_addr = uVar19;\n    bc_exit(0);\n    break;\n  case 'i':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    incr_var(uVar12);\n    break;\n  case 'l':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    load_var(uVar12);\n    break;\n  case 'n':\n    pc.pc_addr = uVar19;\n    bc_sub(_zero_,ex_stack->s_num,&ex_stack->s_num,0);\n    break;\n  case 'p':\n    pc.pc_addr = uVar19;\n    pop();\n    goto LAB_00016998;\n  case 's':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    store_var(uVar12);\n    break;\n  case 'w':\n    bVar2 = local_70[uVar19];\n    pc.pc_addr = pc.pc_addr + 2;\n    while (puVar6 = PTR_stdout_0002bfec, bVar2 != 0x22) {\n      out_schar((uint)bVar2);\n      bVar2 = functions[pc.pc_func].f_body[pc.pc_addr];\n      pc.pc_addr = pc.pc_addr + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    checkferror_output(*(FILE **)puVar6);\n    break;\n  case 'x':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      ppeVar1 = &ex_stack->s_next;\n      pbVar3 = ex_stack->s_num;\n      ex_stack->s_num = (*ppeVar1)->s_num;\n      (*ppeVar1)->s_num = pbVar3;\n    }\n    goto LAB_00016998;\n  case '{':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 < 1;\n    pop();\n    goto LAB_000167c5;\n  case '|':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    bVar21 = true;\n    if (cVar9 != '\0') {\n      cVar9 = bc_is_zero(ex_stack->s_num);\n      bVar21 = cVar9 == '\0';\n    }\n    c_code = bVar21;\n    pop();\n    goto LAB_000167c5;\n  case '}':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = (byte)~(byte)((uint)iVar13 >> 0x18) >> 7;\n    pop();\nLAB_000167c5:\n    cVar9 = c_code;\n    bc_free_num(&ex_stack->s_num);\n    peVar7 = ex_stack;\n    if (cVar9 == '\0') {\n      pbVar11 = bc_copy_num(_zero_);\n      peVar7->s_num = pbVar11;\n    }\n    else {\n      pbVar11 = bc_copy_num(_one_);\n      peVar7->s_num = pbVar11;\n    }\n  }\n  goto LAB_000167f0;\n_L156:\n  pc.pc_addr = pc.pc_addr + 2;\n  switch(local_70[uVar19]) {\n  case 'I':\n    bc_init_num(&temp);\n    bc_init_num(&result);\n    bc_init_num(&mult);\n    build = bc_copy_num(_zero_);\n    bc_int2num(&mult,iVar13);\n    iVar15 = input_char();\n    while (iVar15 == 0x7e) {\n      iVar15 = input_char();\n    }\n    if (iVar15 == 0x2b) {\n      iVar15 = input_char();\n    }\n    else if (iVar15 == 0x2d) {\n      iVar15 = input_char();\n      bVar21 = true;\n    }\n    local_78 = &temp;\n    local_7c = (bc_function *)&result;\n    iVar16 = iVar15;\n    if (iVar15 < 0x24) {\n      iVar16 = input_char();\n      if ((iVar16 < 0x24) && (iVar13 <= iVar15)) {\n        bc_int2num(&build,iVar13 + -1);\n      }\n      else {\n        bc_int2num(&build,iVar15);\n        if (0x23 < iVar16) goto LAB_00017b03;\n      }\n      local_60 = &build;\n      do {\n        if (iVar16 < iVar13) {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n        }\n        else {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n          iVar16 = iVar13 + -1;\n        }\n        bc_int2num(local_78,iVar16);\n        bc_add(result,temp,local_60,0);\n        iVar16 = input_char();\n      } while (iVar16 < 0x24);\n    }\nLAB_00017b03:\n    if (iVar16 == 0x2e) {\n      iVar16 = input_char();\n      iVar15 = iVar13 + -1;\n      if (iVar13 <= iVar16) {\n        iVar16 = iVar15;\n      }\n      bc_free_num((bc_num *)local_7c);\n      bc_free_num(local_78);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      if (iVar16 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            bc_multiply(result,mult,(bc_num *)local_7c,0);\n            bc_int2num(local_78,iVar16);\n            bc_add(result,temp,(bc_num *)local_7c,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            iVar16 = input_char();\n            if ((0x23 < iVar16) || (iVar16 < iVar13)) break;\n            iVar16 = iVar15;\n            if (0x23 < iVar15) goto LAB_00017a9d;\n          }\n        } while (iVar16 < 0x24);\n      }\nLAB_00017a9d:\n      local_7c = (bc_function *)&result;\n      bc_divide(result,divisor,(bc_num *)local_7c,local_58);\n      bc_add(build,result,&build,0);\n    }\nLAB_0001720b:\n    local_44 = &mult;\n    local_78 = &temp;\n    local_7c = (bc_function *)&result;\n    if (bVar21) {\n      bc_sub(_zero_,build,&build,0);\n    }\n    push_num(build);\n    bc_free_num(local_78);\n    bc_free_num((bc_num *)local_7c);\n    bc_free_num(local_44);\n    break;\n  default:\n    goto _L141;\n  case 'L':\n    pbVar3 = ex_stack->s_num;\n    iVar13 = pbVar3->n_scale;\n    if (((pbVar3->n_len == 1) && (iVar13 != 0)) && (*pbVar3->n_value == '\0')) {\n      bc_int2num(&ex_stack->s_num,iVar13);\n    }\n    else {\n      bc_int2num(&ex_stack->s_num,pbVar3->n_len + iVar13);\n    }\n    break;\n  case 'R':\n    iVar13 = bc_sqrt(&ex_stack->s_num,scale);\n    if (iVar13 != 0) {\nLAB_00016998:\n      local_78 = (bc_num *)functions[pc.pc_func].f_code_size;\n      pbVar10 = (bc_function *)pc.pc_func;\n      pbVar18 = functions;\n      goto _L141;\n    }\n    pcVar14 = "Square root of a negative number";\nLAB_0001732f:\n    rt_error(pcVar14);\n    break;\n  case 'S':\n    bc_int2num(&ex_stack->s_num,ex_stack->s_num->n_scale);\n    break;\n  case 'X':\n    push_copy(_zero_);\n    val = random();\n    bc_int2num(&ex_stack->s_num,val);\n  }\nLAB_000167f0:\n  local_78 = (bc_num *)functions[pc.pc_func].f_code_size;\n  pbVar10 = (bc_function *)pc.pc_func;\n  pbVar18 = functions;\n  goto _L141;\ncode_r0x0001730b:\n  switch(local_70[uVar19]) {\n  case '\\':\n    uVar12 = 0x5c;\n    uVar19 = pc.pc_addr;\n    break;\n  default:\n    goto _L163;\n  case 'a':\n    uVar12 = 7;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'b':\n    uVar12 = 8;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'f':\n    uVar12 = 0xc;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'n':\n    uVar12 = 10;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'q':\n    uVar12 = 0x22;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'r':\n    uVar12 = 0xd;\n    uVar19 = pc.pc_addr;\n    break;\n  case 't':\n    uVar12 = 9;\n    uVar19 = pc.pc_addr;\n  }\nLAB_000172c4:\n  pc.pc_addr = uVar19;\n  out_schar(uVar12);\n  local_70 = functions[pc.pc_func].f_body;\n  goto _L163;\n}" { (declaration "estack_rec **ppeVar1;" type_identifier (pointer_declarator "**ppeVar1" * (pointer_declarator "*ppeVar1" * identifier)) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "bc_num_conflict pbVar3;" type_identifier identifier ;) (declaration "arg_list *paVar4;" type_identifier (pointer_declarator "*paVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "estack_rec *peVar7;" type_identifier (pointer_declarator "*peVar7" * identifier) ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "bc_function *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "bc_num pbVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "long val;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "bc_label_group *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "bc_function *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar21;" primitive_type identifier ;) (declaration "bc_function *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "bc_num *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "char *local_70;" primitive_type (pointer_declarator "*local_70" * identifier) ;) (declaration "bc_num *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "bc_num *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "bc_num temp_num;" type_identifier identifier ;) (declaration "bc_num build;" type_identifier identifier ;) (declaration "bc_num temp;" type_identifier identifier ;) (declaration "bc_num result;" type_identifier identifier ;) (declaration "bc_num mult;" type_identifier identifier ;) (declaration "bc_num divisor;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x165e9;" (assignment_expression "uStack_14 = 0x165e9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "runtime_error = '\0';" (assignment_expression "runtime_error = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pc.pc_func = 0;" (assignment_expression "pc.pc_func = 0" (field_expression "pc.pc_func" identifier . field_identifier) = number_literal) ;) (expression_statement "pc.pc_addr = 0;" (assignment_expression "pc.pc_addr = 0" (field_expression "pc.pc_addr" identifier . field_identifier) = number_literal) ;) (expression_statement "bc_init_num(&temp_num);" (call_expression "bc_init_num(&temp_num)" identifier (argument_list "(&temp_num)" ( (pointer_expression "&temp_num" & identifier) ))) ;) (if_statement "if (interactive != '\0') {\n    signal(2,stop_execution);\n  }" if (parenthesized_expression "(interactive != '\0')" ( (binary_expression "interactive != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    signal(2,stop_execution);\n  }" { (expression_statement "signal(2,stop_execution);" (call_expression "signal(2,stop_execution)" identifier (argument_list "(2,stop_execution)" ( number_literal , identifier ))) ;) })) (expression_statement "puVar5 = PTR_stdout_0002bfec;" (assignment_expression "puVar5 = PTR_stdout_0002bfec" identifier = identifier) ;) (expression_statement "had_sigint = 0;" (assignment_expression "had_sigint = 0" identifier = number_literal) ;) (expression_statement "local_78 = (bc_num *)functions[pc.pc_func].f_code_size;" (assignment_expression "local_78 = (bc_num *)functions[pc.pc_func].f_code_size" identifier = (cast_expression "(bc_num *)functions[pc.pc_func].f_code_size" ( (type_descriptor "bc_num *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "functions[pc.pc_func].f_code_size" (subscript_expression "functions[pc.pc_func]" identifier [ (field_expression "pc.pc_func" identifier . field_identifier) ]) . field_identifier))) ;) (expression_statement "pbVar10 = (bc_function *)pc.pc_func;" (assignment_expression "pbVar10 = (bc_function *)pc.pc_func" identifier = (cast_expression "(bc_function *)pc.pc_func" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pc.pc_func" identifier . field_identifier))) ;) (expression_statement "pbVar18 = functions;" (assignment_expression "pbVar18 = functions" identifier = identifier) ;) (labeled_statement "_L141:\n  iVar13 = i_base;" statement_identifier : (expression_statement "iVar13 = i_base;" (assignment_expression "iVar13 = i_base" identifier = identifier) ;)) (expression_statement "local_7c = pbVar18 + (int)pbVar10;" (assignment_expression "local_7c = pbVar18 + (int)pbVar10" identifier = (binary_expression "pbVar18 + (int)pbVar10" identifier + (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (((local_78 <= pc.pc_addr) || (runtime_error != '\0')) || (had_sigint != 0)) {\n    if (pbVar10 != (bc_function *)0x0) {\n      do {\n        pop_vars(pbVar18[(int)pbVar10].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar10 = (bc_function *)fpop();\n        pbVar18 = functions;\n        pc.pc_func = (uint)pbVar10;\n      } while (pbVar10 != (bc_function *)0x0);\n      pc.pc_func = 0;\n    }\n    while (ex_stack != (estack_rec *)0x0) {\n      pop();\n    }\n    if ((interactive != '\0') && (signal(2,(__sighandler_t)PTR_use_quit_0002bff4), had_sigint != 0))\n    {\n      puts("\ninterrupted execution.");\n      checkferror_output(*(FILE **)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(((local_78 <= pc.pc_addr) || (runtime_error != '\0')) || (had_sigint != 0))" ( (binary_expression "((local_78 <= pc.pc_addr) || (runtime_error != '\0')) || (had_sigint != 0)" (parenthesized_expression "((local_78 <= pc.pc_addr) || (runtime_error != '\0'))" ( (binary_expression "(local_78 <= pc.pc_addr) || (runtime_error != '\0')" (parenthesized_expression "(local_78 <= pc.pc_addr)" ( (binary_expression "local_78 <= pc.pc_addr" identifier <= (field_expression "pc.pc_addr" identifier . field_identifier)) )) || (parenthesized_expression "(runtime_error != '\0')" ( (binary_expression "runtime_error != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(had_sigint != 0)" ( (binary_expression "had_sigint != 0" identifier != number_literal) ))) )) (compound_statement "{\n    if (pbVar10 != (bc_function *)0x0) {\n      do {\n        pop_vars(pbVar18[(int)pbVar10].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar10 = (bc_function *)fpop();\n        pbVar18 = functions;\n        pc.pc_func = (uint)pbVar10;\n      } while (pbVar10 != (bc_function *)0x0);\n      pc.pc_func = 0;\n    }\n    while (ex_stack != (estack_rec *)0x0) {\n      pop();\n    }\n    if ((interactive != '\0') && (signal(2,(__sighandler_t)PTR_use_quit_0002bff4), had_sigint != 0))\n    {\n      puts("\ninterrupted execution.");\n      checkferror_output(*(FILE **)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { (if_statement "if (pbVar10 != (bc_function *)0x0) {\n      do {\n        pop_vars(pbVar18[(int)pbVar10].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar10 = (bc_function *)fpop();\n        pbVar18 = functions;\n        pc.pc_func = (uint)pbVar10;\n      } while (pbVar10 != (bc_function *)0x0);\n      pc.pc_func = 0;\n    }" if (parenthesized_expression "(pbVar10 != (bc_function *)0x0)" ( (binary_expression "pbVar10 != (bc_function *)0x0" identifier != (cast_expression "(bc_function *)0x0" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        pop_vars(pbVar18[(int)pbVar10].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar10 = (bc_function *)fpop();\n        pbVar18 = functions;\n        pc.pc_func = (uint)pbVar10;\n      } while (pbVar10 != (bc_function *)0x0);\n      pc.pc_func = 0;\n    }" { (do_statement "do {\n        pop_vars(pbVar18[(int)pbVar10].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar10 = (bc_function *)fpop();\n        pbVar18 = functions;\n        pc.pc_func = (uint)pbVar10;\n      } while (pbVar10 != (bc_function *)0x0);" do (compound_statement "{\n        pop_vars(pbVar18[(int)pbVar10].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar10 = (bc_function *)fpop();\n        pbVar18 = functions;\n        pc.pc_func = (uint)pbVar10;\n      }" { (expression_statement "pop_vars(pbVar18[(int)pbVar10].f_autos);" (call_expression "pop_vars(pbVar18[(int)pbVar10].f_autos)" identifier (argument_list "(pbVar18[(int)pbVar10].f_autos)" ( (field_expression "pbVar18[(int)pbVar10].f_autos" (subscript_expression "pbVar18[(int)pbVar10]" identifier [ (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) ))) ;) (expression_statement "pop_vars(functions[pc.pc_func].f_params);" (call_expression "pop_vars(functions[pc.pc_func].f_params)" identifier (argument_list "(functions[pc.pc_func].f_params)" ( (field_expression "functions[pc.pc_func].f_params" (subscript_expression "functions[pc.pc_func]" identifier [ (field_expression "pc.pc_func" identifier . field_identifier) ]) . field_identifier) ))) ;) (expression_statement "fpop();" (call_expression "fpop()" identifier (argument_list "()" ( ))) ;) (expression_statement "pc.pc_addr = fpop();" (assignment_expression "pc.pc_addr = fpop()" (field_expression "pc.pc_addr" identifier . field_identifier) = (call_expression "fpop()" identifier (argument_list "()" ( )))) ;) (expression_statement "pbVar10 = (bc_function *)fpop();" (assignment_expression "pbVar10 = (bc_function *)fpop()" identifier = (cast_expression "(bc_function *)fpop()" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "fpop()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pbVar18 = functions;" (assignment_expression "pbVar18 = functions" identifier = identifier) ;) (expression_statement "pc.pc_func = (uint)pbVar10;" (assignment_expression "pc.pc_func = (uint)pbVar10" (field_expression "pc.pc_func" identifier . field_identifier) = (cast_expression "(uint)pbVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(pbVar10 != (bc_function *)0x0)" ( (binary_expression "pbVar10 != (bc_function *)0x0" identifier != (cast_expression "(bc_function *)0x0" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pc.pc_func = 0;" (assignment_expression "pc.pc_func = 0" (field_expression "pc.pc_func" identifier . field_identifier) = number_literal) ;) })) (while_statement "while (ex_stack != (estack_rec *)0x0) {\n      pop();\n    }" while (parenthesized_expression "(ex_stack != (estack_rec *)0x0)" ( (binary_expression "ex_stack != (estack_rec *)0x0" identifier != (cast_expression "(estack_rec *)0x0" ( (type_descriptor "estack_rec *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pop();\n    }" { (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((interactive != '\0') && (signal(2,(__sighandler_t)PTR_use_quit_0002bff4), had_sigint != 0))\n    {\n      puts("\ninterrupted execution.");\n      checkferror_output(*(FILE **)PTR_stdout_0002bfec);\n    }" if (parenthesized_expression "((interactive != '\0') && (signal(2,(__sighandler_t)PTR_use_quit_0002bff4), had_sigint != 0))" ( (binary_expression "(interactive != '\0') && (signal(2,(__sighandler_t)PTR_use_quit_0002bff4), had_sigint != 0)" (parenthesized_expression "(interactive != '\0')" ( (binary_expression "interactive != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(signal(2,(__sighandler_t)PTR_use_quit_0002bff4), had_sigint != 0)" ( (comma_expression "signal(2,(__sighandler_t)PTR_use_quit_0002bff4), had_sigint != 0" (call_expression "signal(2,(__sighandler_t)PTR_use_quit_0002bff4)" identifier (argument_list "(2,(__sighandler_t)PTR_use_quit_0002bff4)" ( number_literal , (cast_expression "(__sighandler_t)PTR_use_quit_0002bff4" ( (type_descriptor "__sighandler_t" type_identifier) ) identifier) ))) , (binary_expression "had_sigint != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      puts("\ninterrupted execution.");\n      checkferror_output(*(FILE **)PTR_stdout_0002bfec);\n    }" { (expression_statement "puts("\ninterrupted execution.");" (call_expression "puts("\ninterrupted execution.")" identifier (argument_list "("\ninterrupted execution.")" ( (string_literal ""\ninterrupted execution."" " escape_sequence string_content ") ))) ;) (expression_statement "checkferror_output(*(FILE **)PTR_stdout_0002bfec);" (call_expression "checkferror_output(*(FILE **)PTR_stdout_0002bfec)" identifier (argument_list "(*(FILE **)PTR_stdout_0002bfec)" ( (pointer_expression "*(FILE **)PTR_stdout_0002bfec" * (cast_expression "(FILE **)PTR_stdout_0002bfec" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) })) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\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      return;\n    }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar19 = pc.pc_addr + 1;" (assignment_expression "uVar19 = pc.pc_addr + 1" identifier = (binary_expression "pc.pc_addr + 1" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (expression_statement "local_70 = local_7c->f_body;" (assignment_expression "local_70 = local_7c->f_body" identifier = (field_expression "local_7c->f_body" identifier -> field_identifier)) ;) (expression_statement "cVar9 = local_70[pc.pc_addr];" (assignment_expression "cVar9 = local_70[pc.pc_addr]" identifier = (subscript_expression "local_70[pc.pc_addr]" identifier [ (field_expression "pc.pc_addr" identifier . field_identifier) ])) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (switch_statement "switch(cVar9) {\n  case '!':\n  case 'T':\n    pc.pc_addr = uVar19;\n    c_code = bc_is_zero(ex_stack->s_num);\n    goto LAB_000167c5;\n  default:\n    pcVar14 = "bad instruction: inst=%c";\n    pc.pc_addr = uVar19;\n    goto LAB_0001732f;\n  case '#':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 != 0;\n    pop();\n    goto LAB_000167c5;\n  case '%':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_num);\n    if (cVar9 == '\0') {\n      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      goto LAB_00016d14;\n    }\n    pcVar14 = "Modulo by zero";\n    goto LAB_0001732f;\n  case '&':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    bVar21 = false;\n    if (cVar9 == '\0') {\n      cVar9 = bc_is_zero(ex_stack->s_num);\n      bVar21 = cVar9 == '\0';\n    }\n    c_code = bVar21;\n    pop();\n    goto LAB_000167c5;\n  case '*':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    bc_multiply(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\nLAB_00016d14:\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case '+':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_00016d14;\n    }\n    goto LAB_00016998;\n  case '-':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_00016d14;\n    }\n    goto LAB_00016998;\n  case '/':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    if (iVar13 != 0) {\n      pcVar14 = "Divide by zero";\n      goto LAB_0001732f;\n    }\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case '0':\n    pc.pc_addr = uVar19;\n    push_copy(_zero_);\n    break;\n  case '1':\n    pc.pc_addr = uVar19;\n    push_copy(_one_);\n    break;\n  case '<':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == -1;\n    pop();\n    goto LAB_000167c5;\n  case '=':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == 0;\n    pop();\n    goto LAB_000167c5;\n  case '>':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == 1;\n    pop();\n    goto LAB_000167c5;\n  case 'A':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    incr_array(uVar12);\n    break;\n  case 'B':\n  case 'Z':\n    pc.pc_addr = uVar19;\n    cVar8 = bc_is_zero(ex_stack->s_num);\n    c_code = cVar8 == '\0';\n    pop();\n    local_7c = functions + pc.pc_func;\n    local_70 = local_7c->f_body;\n    local_5c = pc.pc_addr + 1;\n    cVar8 = local_70[pc.pc_addr];\n    pc.pc_addr = pc.pc_addr + 2;\n    pbVar10 = (bc_function *)pc.pc_func;\n    pbVar18 = functions;\n    if (cVar9 == 'J') goto LAB_0001740e;\n    if (cVar9 == 'B') {\n      if (c_code != '\0') goto LAB_0001740e;\n    }\n    else if ((cVar9 == 'Z') && (c_code == '\0')) goto LAB_0001740e;\n    local_78 = (bc_num *)local_7c->f_code_size;\n    goto _L141;\n  case 'C':\n    local_7c = (bc_function *)(uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      local_7c = (bc_function *)\n                 ((uint)(byte)local_70[pc.pc_addr + 2] + ((uint)local_7c & 0x7f) * 0x100);\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    if (pbVar18[(int)local_7c].f_defined == '\0') {\n      pcVar14 = "Function %s not defined.";\n      goto LAB_0001732f;\n    }\n    process_params(&pc,(int)local_7c);\n    for (paVar4 = functions[(int)local_7c].f_autos; paVar4 != (arg_list *)0x0; paVar4 = paVar4->next\n        ) {\n      auto_var(paVar4->av_name);\n    }\n    fpush(pc.pc_func);\n    fpush(pc.pc_addr);\n    fpush(i_base);\n    pc.pc_addr = 0;\n    pc.pc_func = (uint)local_7c;\n    local_78 = (bc_num *)functions[(int)local_7c].f_code_size;\n    pbVar10 = local_7c;\n    pbVar18 = functions;\n    goto _L141;\n  case 'D':\n    pc.pc_addr = uVar19;\n    push_copy(ex_stack->s_num);\n    break;\n  case 'J':\n    local_5c = pc.pc_addr + 2;\n    cVar8 = local_70[uVar19];\n    pc.pc_addr = pc.pc_addr + 3;\nLAB_0001740e:\n    uVar19 = (uint)(ushort)(CONCAT11(local_70[local_5c],cVar8) >> 6);\n    pbVar17 = local_7c->f_label;\n    iVar13 = uVar19 - 1;\n    if (uVar19 != 0) {\n      do {\n        iVar13 = iVar13 + -1;\n        pbVar17 = pbVar17->l_next;\n      } while (iVar13 != -1);\n    }\n    if (pbVar17 == (bc_label_group *)0x0) {\n      pcVar14 = "Internal error.";\n      goto LAB_0001732f;\n    }\n    pc.pc_addr = pbVar17->l_adrs[CONCAT11(local_70[local_5c],cVar8) & 0x3f];\n    local_78 = (bc_num *)local_7c->f_code_size;\n    goto _L141;\n  case 'K':\n    if (pbVar10 == (bc_function *)0x0) {\n      local_70 = (char *)i_base;\n    }\n    else {\n      local_70 = (char *)fn_stack->s_val;\n    }\n    if (local_70 == (char *)0xa) {\n      pc.pc_addr = uVar19;\n      push_b10_const(&pc);\n      break;\n    }\n    pc.pc_addr = uVar19;\n    bc_init_num(&temp);\n    bc_init_num(&result);\n    bc_init_num(&mult);\n    build = bc_copy_num(_zero_);\n    bc_int2num(&mult,(int)local_70);\n    pcVar14 = functions[pc.pc_func].f_body;\n    uVar19 = pc.pc_addr + 1;\n    uVar20 = (uint)(byte)pcVar14[pc.pc_addr];\n    if (uVar20 == 0x7e) {\n      uVar12 = pc.pc_addr + 2;\n      do {\n        uVar19 = uVar12;\n        uVar20 = (uint)(byte)pcVar14[uVar19 - 1];\n        uVar12 = uVar19 + 1;\n      } while (uVar20 == 0x7e);\n    }\n    if (uVar20 == 0x2b) {\n      pc.pc_addr = uVar19 + 1;\n      uVar20 = (uint)(byte)pcVar14[uVar19];\n    }\n    else {\n      pc.pc_addr = uVar19;\n      if (uVar20 == 0x2d) {\n        bVar21 = true;\n        pc.pc_addr = uVar19 + 1;\n        uVar20 = (uint)(byte)pcVar14[uVar19];\n      }\n    }\n    uVar19 = uVar20;\n    if (uVar20 < 0x24) {\n      uVar19 = (uint)(byte)pcVar14[pc.pc_addr];\n      if ((uVar19 < 0x24) && ((int)local_70 <= (int)uVar20)) {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,(int)local_70 + -1);\n      }\n      else {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,uVar20);\n        if (0x23 < uVar19) goto LAB_00017202;\n      }\n      local_60 = &build;\n      do {\n        if ((int)local_70 <= (int)uVar19) {\n          uVar19 = (int)local_70 - 1;\n        }\n        bc_multiply(build,mult,&result,0);\n        bc_int2num(&temp,uVar19);\n        bc_add(result,temp,local_60,0);\n        uVar20 = pc.pc_addr + 1;\n        uVar19 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n        pc.pc_addr = uVar20;\n      } while (uVar19 < 0x24);\n    }\nLAB_00017202:\n    if (uVar19 == 0x2e) {\n      uVar19 = (int)local_70 - 1;\n      uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n      if ((int)local_70 <= (int)(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]) {\n        uVar20 = uVar19;\n      }\n      pc.pc_addr = pc.pc_addr + 1;\n      bc_free_num(&result);\n      bc_free_num(&temp);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      iVar13 = 0;\n      if ((int)uVar20 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar13;\n            bc_multiply(result,mult,&result,0);\n            bc_int2num(&temp,uVar20);\n            bc_add(result,temp,&result,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            uVar12 = pc.pc_addr + 1;\n            uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n            pc.pc_addr = uVar12;\n            iVar13 = local_58;\n            if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;\n            uVar20 = uVar19;\n            if (0x23 < (int)uVar19) goto LAB_00017a9d;\n          }\n        } while (uVar20 < 0x24);\n      }\n      goto LAB_00017a9d;\n    }\n    goto LAB_0001720b;\n  case 'L':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    load_array(uVar12);\n    break;\n  case 'M':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    decr_array(uVar12);\n    break;\n  case 'O':\n    pc.pc_addr = uVar19;\n_L163:\n    uVar19 = pc.pc_addr + 1;\n    bVar2 = local_70[pc.pc_addr];\n    uVar12 = (uint)bVar2;\n    uVar20 = uVar19;\n    if (bVar2 != 0x22) {\n      if (bVar2 != 0x5c) goto LAB_000172c4;\n      pc.pc_addr = pc.pc_addr + 2;\n      uVar20 = pc.pc_addr;\n      if (local_70[uVar19] != '\"') goto code_r0x0001730b;\n    }\n    pc.pc_addr = uVar20;\n    fflush(*(FILE **)puVar5);\n    checkferror_output(*(FILE **)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    pc.pc_addr = uVar19;\n    bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_0002bffc,std_only);\n    if (cVar9 == 'W') {\n      out_char(10);\n    }\n    store_var(4);\n    puVar6 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    checkferror_output(*(FILE **)puVar6);\n    pop();\n    break;\n  case 'R':\n    if (pbVar10 == (bc_function *)0x0) {\n      pcVar14 = "Return from main program.";\n      pc.pc_addr = uVar19;\n      goto LAB_0001732f;\n    }\n    pc.pc_addr = uVar19;\n    pop_vars(local_7c->f_autos);\n    pop_vars(functions[pc.pc_func].f_params);\n    fpop();\n    pc.pc_addr = fpop();\n    pbVar10 = (bc_function *)fpop();\n    local_78 = (bc_num *)functions[(int)pbVar10].f_code_size;\n    pbVar18 = functions;\n    pc.pc_func = (uint)pbVar10;\n    goto _L141;\n  case 'S':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    store_array(uVar12);\n    break;\n  case '^':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    if ((cVar9 != '\0') && (cVar9 = bc_is_neg(ex_stack->s_num), cVar9 != '\0')) {\n      rt_error("divide by zero");\n    }\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case 'c':\n    goto _L156;\n  case 'd':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    decr_var(uVar12);\n    break;\n  case 'h':\n    pc.pc_addr = uVar19;\n    bc_exit(0);\n    break;\n  case 'i':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    incr_var(uVar12);\n    break;\n  case 'l':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    load_var(uVar12);\n    break;\n  case 'n':\n    pc.pc_addr = uVar19;\n    bc_sub(_zero_,ex_stack->s_num,&ex_stack->s_num,0);\n    break;\n  case 'p':\n    pc.pc_addr = uVar19;\n    pop();\n    goto LAB_00016998;\n  case 's':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    store_var(uVar12);\n    break;\n  case 'w':\n    bVar2 = local_70[uVar19];\n    pc.pc_addr = pc.pc_addr + 2;\n    while (puVar6 = PTR_stdout_0002bfec, bVar2 != 0x22) {\n      out_schar((uint)bVar2);\n      bVar2 = functions[pc.pc_func].f_body[pc.pc_addr];\n      pc.pc_addr = pc.pc_addr + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    checkferror_output(*(FILE **)puVar6);\n    break;\n  case 'x':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      ppeVar1 = &ex_stack->s_next;\n      pbVar3 = ex_stack->s_num;\n      ex_stack->s_num = (*ppeVar1)->s_num;\n      (*ppeVar1)->s_num = pbVar3;\n    }\n    goto LAB_00016998;\n  case '{':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 < 1;\n    pop();\n    goto LAB_000167c5;\n  case '|':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    bVar21 = true;\n    if (cVar9 != '\0') {\n      cVar9 = bc_is_zero(ex_stack->s_num);\n      bVar21 = cVar9 == '\0';\n    }\n    c_code = bVar21;\n    pop();\n    goto LAB_000167c5;\n  case '}':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = (byte)~(byte)((uint)iVar13 >> 0x18) >> 7;\n    pop();\nLAB_000167c5:\n    cVar9 = c_code;\n    bc_free_num(&ex_stack->s_num);\n    peVar7 = ex_stack;\n    if (cVar9 == '\0') {\n      pbVar11 = bc_copy_num(_zero_);\n      peVar7->s_num = pbVar11;\n    }\n    else {\n      pbVar11 = bc_copy_num(_one_);\n      peVar7->s_num = pbVar11;\n    }\n  }" switch (parenthesized_expression "(cVar9)" ( identifier )) (compound_statement "{\n  case '!':\n  case 'T':\n    pc.pc_addr = uVar19;\n    c_code = bc_is_zero(ex_stack->s_num);\n    goto LAB_000167c5;\n  default:\n    pcVar14 = "bad instruction: inst=%c";\n    pc.pc_addr = uVar19;\n    goto LAB_0001732f;\n  case '#':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 != 0;\n    pop();\n    goto LAB_000167c5;\n  case '%':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_num);\n    if (cVar9 == '\0') {\n      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      goto LAB_00016d14;\n    }\n    pcVar14 = "Modulo by zero";\n    goto LAB_0001732f;\n  case '&':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    bVar21 = false;\n    if (cVar9 == '\0') {\n      cVar9 = bc_is_zero(ex_stack->s_num);\n      bVar21 = cVar9 == '\0';\n    }\n    c_code = bVar21;\n    pop();\n    goto LAB_000167c5;\n  case '*':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    bc_multiply(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\nLAB_00016d14:\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case '+':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_00016d14;\n    }\n    goto LAB_00016998;\n  case '-':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_00016d14;\n    }\n    goto LAB_00016998;\n  case '/':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    if (iVar13 != 0) {\n      pcVar14 = "Divide by zero";\n      goto LAB_0001732f;\n    }\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case '0':\n    pc.pc_addr = uVar19;\n    push_copy(_zero_);\n    break;\n  case '1':\n    pc.pc_addr = uVar19;\n    push_copy(_one_);\n    break;\n  case '<':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == -1;\n    pop();\n    goto LAB_000167c5;\n  case '=':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == 0;\n    pop();\n    goto LAB_000167c5;\n  case '>':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == 1;\n    pop();\n    goto LAB_000167c5;\n  case 'A':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    incr_array(uVar12);\n    break;\n  case 'B':\n  case 'Z':\n    pc.pc_addr = uVar19;\n    cVar8 = bc_is_zero(ex_stack->s_num);\n    c_code = cVar8 == '\0';\n    pop();\n    local_7c = functions + pc.pc_func;\n    local_70 = local_7c->f_body;\n    local_5c = pc.pc_addr + 1;\n    cVar8 = local_70[pc.pc_addr];\n    pc.pc_addr = pc.pc_addr + 2;\n    pbVar10 = (bc_function *)pc.pc_func;\n    pbVar18 = functions;\n    if (cVar9 == 'J') goto LAB_0001740e;\n    if (cVar9 == 'B') {\n      if (c_code != '\0') goto LAB_0001740e;\n    }\n    else if ((cVar9 == 'Z') && (c_code == '\0')) goto LAB_0001740e;\n    local_78 = (bc_num *)local_7c->f_code_size;\n    goto _L141;\n  case 'C':\n    local_7c = (bc_function *)(uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      local_7c = (bc_function *)\n                 ((uint)(byte)local_70[pc.pc_addr + 2] + ((uint)local_7c & 0x7f) * 0x100);\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    if (pbVar18[(int)local_7c].f_defined == '\0') {\n      pcVar14 = "Function %s not defined.";\n      goto LAB_0001732f;\n    }\n    process_params(&pc,(int)local_7c);\n    for (paVar4 = functions[(int)local_7c].f_autos; paVar4 != (arg_list *)0x0; paVar4 = paVar4->next\n        ) {\n      auto_var(paVar4->av_name);\n    }\n    fpush(pc.pc_func);\n    fpush(pc.pc_addr);\n    fpush(i_base);\n    pc.pc_addr = 0;\n    pc.pc_func = (uint)local_7c;\n    local_78 = (bc_num *)functions[(int)local_7c].f_code_size;\n    pbVar10 = local_7c;\n    pbVar18 = functions;\n    goto _L141;\n  case 'D':\n    pc.pc_addr = uVar19;\n    push_copy(ex_stack->s_num);\n    break;\n  case 'J':\n    local_5c = pc.pc_addr + 2;\n    cVar8 = local_70[uVar19];\n    pc.pc_addr = pc.pc_addr + 3;\nLAB_0001740e:\n    uVar19 = (uint)(ushort)(CONCAT11(local_70[local_5c],cVar8) >> 6);\n    pbVar17 = local_7c->f_label;\n    iVar13 = uVar19 - 1;\n    if (uVar19 != 0) {\n      do {\n        iVar13 = iVar13 + -1;\n        pbVar17 = pbVar17->l_next;\n      } while (iVar13 != -1);\n    }\n    if (pbVar17 == (bc_label_group *)0x0) {\n      pcVar14 = "Internal error.";\n      goto LAB_0001732f;\n    }\n    pc.pc_addr = pbVar17->l_adrs[CONCAT11(local_70[local_5c],cVar8) & 0x3f];\n    local_78 = (bc_num *)local_7c->f_code_size;\n    goto _L141;\n  case 'K':\n    if (pbVar10 == (bc_function *)0x0) {\n      local_70 = (char *)i_base;\n    }\n    else {\n      local_70 = (char *)fn_stack->s_val;\n    }\n    if (local_70 == (char *)0xa) {\n      pc.pc_addr = uVar19;\n      push_b10_const(&pc);\n      break;\n    }\n    pc.pc_addr = uVar19;\n    bc_init_num(&temp);\n    bc_init_num(&result);\n    bc_init_num(&mult);\n    build = bc_copy_num(_zero_);\n    bc_int2num(&mult,(int)local_70);\n    pcVar14 = functions[pc.pc_func].f_body;\n    uVar19 = pc.pc_addr + 1;\n    uVar20 = (uint)(byte)pcVar14[pc.pc_addr];\n    if (uVar20 == 0x7e) {\n      uVar12 = pc.pc_addr + 2;\n      do {\n        uVar19 = uVar12;\n        uVar20 = (uint)(byte)pcVar14[uVar19 - 1];\n        uVar12 = uVar19 + 1;\n      } while (uVar20 == 0x7e);\n    }\n    if (uVar20 == 0x2b) {\n      pc.pc_addr = uVar19 + 1;\n      uVar20 = (uint)(byte)pcVar14[uVar19];\n    }\n    else {\n      pc.pc_addr = uVar19;\n      if (uVar20 == 0x2d) {\n        bVar21 = true;\n        pc.pc_addr = uVar19 + 1;\n        uVar20 = (uint)(byte)pcVar14[uVar19];\n      }\n    }\n    uVar19 = uVar20;\n    if (uVar20 < 0x24) {\n      uVar19 = (uint)(byte)pcVar14[pc.pc_addr];\n      if ((uVar19 < 0x24) && ((int)local_70 <= (int)uVar20)) {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,(int)local_70 + -1);\n      }\n      else {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,uVar20);\n        if (0x23 < uVar19) goto LAB_00017202;\n      }\n      local_60 = &build;\n      do {\n        if ((int)local_70 <= (int)uVar19) {\n          uVar19 = (int)local_70 - 1;\n        }\n        bc_multiply(build,mult,&result,0);\n        bc_int2num(&temp,uVar19);\n        bc_add(result,temp,local_60,0);\n        uVar20 = pc.pc_addr + 1;\n        uVar19 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n        pc.pc_addr = uVar20;\n      } while (uVar19 < 0x24);\n    }\nLAB_00017202:\n    if (uVar19 == 0x2e) {\n      uVar19 = (int)local_70 - 1;\n      uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n      if ((int)local_70 <= (int)(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]) {\n        uVar20 = uVar19;\n      }\n      pc.pc_addr = pc.pc_addr + 1;\n      bc_free_num(&result);\n      bc_free_num(&temp);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      iVar13 = 0;\n      if ((int)uVar20 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar13;\n            bc_multiply(result,mult,&result,0);\n            bc_int2num(&temp,uVar20);\n            bc_add(result,temp,&result,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            uVar12 = pc.pc_addr + 1;\n            uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n            pc.pc_addr = uVar12;\n            iVar13 = local_58;\n            if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;\n            uVar20 = uVar19;\n            if (0x23 < (int)uVar19) goto LAB_00017a9d;\n          }\n        } while (uVar20 < 0x24);\n      }\n      goto LAB_00017a9d;\n    }\n    goto LAB_0001720b;\n  case 'L':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    load_array(uVar12);\n    break;\n  case 'M':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    decr_array(uVar12);\n    break;\n  case 'O':\n    pc.pc_addr = uVar19;\n_L163:\n    uVar19 = pc.pc_addr + 1;\n    bVar2 = local_70[pc.pc_addr];\n    uVar12 = (uint)bVar2;\n    uVar20 = uVar19;\n    if (bVar2 != 0x22) {\n      if (bVar2 != 0x5c) goto LAB_000172c4;\n      pc.pc_addr = pc.pc_addr + 2;\n      uVar20 = pc.pc_addr;\n      if (local_70[uVar19] != '\"') goto code_r0x0001730b;\n    }\n    pc.pc_addr = uVar20;\n    fflush(*(FILE **)puVar5);\n    checkferror_output(*(FILE **)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    pc.pc_addr = uVar19;\n    bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_0002bffc,std_only);\n    if (cVar9 == 'W') {\n      out_char(10);\n    }\n    store_var(4);\n    puVar6 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    checkferror_output(*(FILE **)puVar6);\n    pop();\n    break;\n  case 'R':\n    if (pbVar10 == (bc_function *)0x0) {\n      pcVar14 = "Return from main program.";\n      pc.pc_addr = uVar19;\n      goto LAB_0001732f;\n    }\n    pc.pc_addr = uVar19;\n    pop_vars(local_7c->f_autos);\n    pop_vars(functions[pc.pc_func].f_params);\n    fpop();\n    pc.pc_addr = fpop();\n    pbVar10 = (bc_function *)fpop();\n    local_78 = (bc_num *)functions[(int)pbVar10].f_code_size;\n    pbVar18 = functions;\n    pc.pc_func = (uint)pbVar10;\n    goto _L141;\n  case 'S':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    store_array(uVar12);\n    break;\n  case '^':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    if ((cVar9 != '\0') && (cVar9 = bc_is_neg(ex_stack->s_num), cVar9 != '\0')) {\n      rt_error("divide by zero");\n    }\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case 'c':\n    goto _L156;\n  case 'd':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    decr_var(uVar12);\n    break;\n  case 'h':\n    pc.pc_addr = uVar19;\n    bc_exit(0);\n    break;\n  case 'i':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    incr_var(uVar12);\n    break;\n  case 'l':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    load_var(uVar12);\n    break;\n  case 'n':\n    pc.pc_addr = uVar19;\n    bc_sub(_zero_,ex_stack->s_num,&ex_stack->s_num,0);\n    break;\n  case 'p':\n    pc.pc_addr = uVar19;\n    pop();\n    goto LAB_00016998;\n  case 's':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    store_var(uVar12);\n    break;\n  case 'w':\n    bVar2 = local_70[uVar19];\n    pc.pc_addr = pc.pc_addr + 2;\n    while (puVar6 = PTR_stdout_0002bfec, bVar2 != 0x22) {\n      out_schar((uint)bVar2);\n      bVar2 = functions[pc.pc_func].f_body[pc.pc_addr];\n      pc.pc_addr = pc.pc_addr + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    checkferror_output(*(FILE **)puVar6);\n    break;\n  case 'x':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      ppeVar1 = &ex_stack->s_next;\n      pbVar3 = ex_stack->s_num;\n      ex_stack->s_num = (*ppeVar1)->s_num;\n      (*ppeVar1)->s_num = pbVar3;\n    }\n    goto LAB_00016998;\n  case '{':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 < 1;\n    pop();\n    goto LAB_000167c5;\n  case '|':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    bVar21 = true;\n    if (cVar9 != '\0') {\n      cVar9 = bc_is_zero(ex_stack->s_num);\n      bVar21 = cVar9 == '\0';\n    }\n    c_code = bVar21;\n    pop();\n    goto LAB_000167c5;\n  case '}':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = (byte)~(byte)((uint)iVar13 >> 0x18) >> 7;\n    pop();\nLAB_000167c5:\n    cVar9 = c_code;\n    bc_free_num(&ex_stack->s_num);\n    peVar7 = ex_stack;\n    if (cVar9 == '\0') {\n      pbVar11 = bc_copy_num(_zero_);\n      peVar7->s_num = pbVar11;\n    }\n    else {\n      pbVar11 = bc_copy_num(_one_);\n      peVar7->s_num = pbVar11;\n    }\n  }" { (case_statement "case '!':" case (char_literal "'!'" ' character ') :) (case_statement "case 'T':\n    pc.pc_addr = uVar19;\n    c_code = bc_is_zero(ex_stack->s_num);\n    goto LAB_000167c5;" case (char_literal "'T'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "c_code = bc_is_zero(ex_stack->s_num);" (assignment_expression "c_code = bc_is_zero(ex_stack->s_num)" identifier = (call_expression "bc_is_zero(ex_stack->s_num)" identifier (argument_list "(ex_stack->s_num)" ( (field_expression "ex_stack->s_num" identifier -> field_identifier) )))) ;) (goto_statement "goto LAB_000167c5;" goto statement_identifier ;)) (case_statement "default:\n    pcVar14 = "bad instruction: inst=%c";\n    pc.pc_addr = uVar19;\n    goto LAB_0001732f;" default : (expression_statement "pcVar14 = "bad instruction: inst=%c";" (assignment_expression "pcVar14 = "bad instruction: inst=%c"" identifier = (string_literal ""bad instruction: inst=%c"" " string_content ")) ;) (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (goto_statement "goto LAB_0001732f;" goto statement_identifier ;)) (case_statement "case '#':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 != 0;\n    pop();\n    goto LAB_000167c5;" case (char_literal "'#'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar9 = check_stack(2);" (assignment_expression "cVar9 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar9 == '\0') goto LAB_00016998;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016998;" goto statement_identifier ;)) (expression_statement "iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);" (assignment_expression "iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num)" identifier = (call_expression "bc_compare(ex_stack->s_next->s_num,ex_stack->s_num)" identifier (argument_list "(ex_stack->s_next->s_num,ex_stack->s_num)" ( (field_expression "ex_stack->s_next->s_num" (field_expression "ex_stack->s_next" identifier -> field_identifier) -> field_identifier) , (field_expression "ex_stack->s_num" identifier -> field_identifier) )))) ;) (expression_statement "c_code = iVar13 != 0;" (assignment_expression "c_code = iVar13 != 0" identifier = (binary_expression "iVar13 != 0" identifier != number_literal)) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_000167c5;" goto statement_identifier ;)) (case_statement "case '%':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_num);\n    if (cVar9 == '\0') {\n      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      goto LAB_00016d14;\n    }\n    pcVar14 = "Modulo by zero";\n    goto LAB_0001732f;" case (char_literal "'%'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar9 = check_stack(2);" (assignment_expression "cVar9 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar9 == '\0') goto LAB_00016998;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016998;" goto statement_identifier ;)) (expression_statement "cVar9 = bc_is_zero(ex_stack->s_num);" (assignment_expression "cVar9 = bc_is_zero(ex_stack->s_num)" identifier = (call_expression "bc_is_zero(ex_stack->s_num)" identifier (argument_list "(ex_stack->s_num)" ( (field_expression "ex_stack->s_num" identifier -> field_identifier) )))) ;) (if_statement "if (cVar9 == '\0') {\n      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      goto LAB_00016d14;\n    }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      goto LAB_00016d14;\n    }" { (expression_statement "bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);" (call_expression "bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale)" identifier (argument_list "(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale)" ( (field_expression "ex_stack->s_next->s_num" (field_expression "ex_stack->s_next" identifier -> field_identifier) -> field_identifier) , (field_expression "ex_stack->s_num" identifier -> field_identifier) , (pointer_expression "&temp_num" & identifier) , identifier ))) ;) (goto_statement "goto LAB_00016d14;" goto statement_identifier ;) })) (expression_statement "pcVar14 = "Modulo by zero";" (assignment_expression "pcVar14 = "Modulo by zero"" identifier = (string_literal ""Modulo by zero"" " string_content ")) ;) (goto_statement "goto LAB_0001732f;" goto statement_identifier ;)) (case_statement "case '&':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    bVar21 = false;\n    if (cVar9 == '\0') {\n      cVar9 = bc_is_zero(ex_stack->s_num);\n      bVar21 = cVar9 == '\0';\n    }\n    c_code = bVar21;\n    pop();\n    goto LAB_000167c5;" case (char_literal "'&'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar9 = check_stack(2);" (assignment_expression "cVar9 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar9 == '\0') goto LAB_00016998;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016998;" goto statement_identifier ;)) (expression_statement "cVar9 = bc_is_zero(ex_stack->s_next->s_num);" (assignment_expression "cVar9 = bc_is_zero(ex_stack->s_next->s_num)" identifier = (call_expression "bc_is_zero(ex_stack->s_next->s_num)" identifier (argument_list "(ex_stack->s_next->s_num)" ( (field_expression "ex_stack->s_next->s_num" (field_expression "ex_stack->s_next" identifier -> field_identifier) -> field_identifier) )))) ;) (expression_statement "bVar21 = false;" (assignment_expression "bVar21 = false" identifier = false) ;) (if_statement "if (cVar9 == '\0') {\n      cVar9 = bc_is_zero(ex_stack->s_num);\n      bVar21 = cVar9 == '\0';\n    }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar9 = bc_is_zero(ex_stack->s_num);\n      bVar21 = cVar9 == '\0';\n    }" { (expression_statement "cVar9 = bc_is_zero(ex_stack->s_num);" (assignment_expression "cVar9 = bc_is_zero(ex_stack->s_num)" identifier = (call_expression "bc_is_zero(ex_stack->s_num)" identifier (argument_list "(ex_stack->s_num)" ( (field_expression "ex_stack->s_num" identifier -> field_identifier) )))) ;) (expression_statement "bVar21 = cVar9 == '\0';" (assignment_expression "bVar21 = cVar9 == '\0'" identifier = (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) })) (expression_statement "c_code = bVar21;" (assignment_expression "c_code = bVar21" identifier = identifier) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_000167c5;" goto statement_identifier ;)) (case_statement "case '*':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    bc_multiply(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\nLAB_00016d14:\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;" case (char_literal "'*'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar9 = check_stack(2);" (assignment_expression "cVar9 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar9 == '\0') goto LAB_00016998;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016998;" goto statement_identifier ;)) (expression_statement "bc_multiply(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);" (call_expression "bc_multiply(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale)" identifier (argument_list "(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale)" ( (field_expression "ex_stack->s_next->s_num" (field_expression "ex_stack->s_next" identifier -> field_identifier) -> field_identifier) , (field_expression "ex_stack->s_num" identifier -> field_identifier) , (pointer_expression "&temp_num" & identifier) , identifier ))) ;) (labeled_statement "LAB_00016d14:\n    pop();" statement_identifier : (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;)) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (expression_statement "push_num(temp_num);" (call_expression "push_num(temp_num)" identifier (argument_list "(temp_num)" ( identifier ))) ;) (expression_statement "bc_init_num(&temp_num);" (call_expression "bc_init_num(&temp_num)" identifier (argument_list "(&temp_num)" ( (pointer_expression "&temp_num" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case '+':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_00016d14;\n    }\n    goto LAB_00016998;" case (char_literal "'+'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar9 = check_stack(2);" (assignment_expression "cVar9 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar9 != '\0') {\n      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_00016d14;\n    }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_00016d14;\n    }" { (expression_statement "bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);" (call_expression "bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0)" identifier (argument_list "(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0)" ( (field_expression "ex_stack->s_next->s_num" (field_expression "ex_stack->s_next" identifier -> field_identifier) -> field_identifier) , (field_expression "ex_stack->s_num" identifier -> field_identifier) , (pointer_expression "&temp_num" & identifier) , number_literal ))) ;) (goto_statement "goto LAB_00016d14;" goto statement_identifier ;) })) (goto_statement "goto LAB_00016998;" goto statement_identifier ;)) (case_statement "case '-':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_00016d14;\n    }\n    goto LAB_00016998;" case (char_literal "'-'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar9 = check_stack(2);" (assignment_expression "cVar9 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar9 != '\0') {\n      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_00016d14;\n    }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_00016d14;\n    }" { (expression_statement "bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);" (call_expression "bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0)" identifier (argument_list "(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0)" ( (field_expression "ex_stack->s_next->s_num" (field_expression "ex_stack->s_next" identifier -> field_identifier) -> field_identifier) , (field_expression "ex_stack->s_num" identifier -> field_identifier) , (pointer_expression "&temp_num" & identifier) , number_literal ))) ;) (goto_statement "goto LAB_00016d14;" goto statement_identifier ;) })) (goto_statement "goto LAB_00016998;" goto statement_identifier ;)) (case_statement "case '/':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    if (iVar13 != 0) {\n      pcVar14 = "Divide by zero";\n      goto LAB_0001732f;\n    }\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;" case (char_literal "'/'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar9 = check_stack(2);" (assignment_expression "cVar9 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar9 == '\0') goto LAB_00016998;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016998;" goto statement_identifier ;)) (expression_statement "iVar13 = bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);" (assignment_expression "iVar13 = bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale)" identifier = (call_expression "bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale)" identifier (argument_list "(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale)" ( (field_expression "ex_stack->s_next->s_num" (field_expression "ex_stack->s_next" identifier -> field_identifier) -> field_identifier) , (field_expression "ex_stack->s_num" identifier -> field_identifier) , (pointer_expression "&temp_num" & identifier) , identifier )))) ;) (if_statement "if (iVar13 != 0) {\n      pcVar14 = "Divide by zero";\n      goto LAB_0001732f;\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar14 = "Divide by zero";\n      goto LAB_0001732f;\n    }" { (expression_statement "pcVar14 = "Divide by zero";" (assignment_expression "pcVar14 = "Divide by zero"" identifier = (string_literal ""Divide by zero"" " string_content ")) ;) (goto_statement "goto LAB_0001732f;" goto statement_identifier ;) })) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (expression_statement "push_num(temp_num);" (call_expression "push_num(temp_num)" identifier (argument_list "(temp_num)" ( identifier ))) ;) (expression_statement "bc_init_num(&temp_num);" (call_expression "bc_init_num(&temp_num)" identifier (argument_list "(&temp_num)" ( (pointer_expression "&temp_num" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case '0':\n    pc.pc_addr = uVar19;\n    push_copy(_zero_);\n    break;" case (char_literal "'0'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "push_copy(_zero_);" (call_expression "push_copy(_zero_)" identifier (argument_list "(_zero_)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '1':\n    pc.pc_addr = uVar19;\n    push_copy(_one_);\n    break;" case (char_literal "'1'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "push_copy(_one_);" (call_expression "push_copy(_one_)" identifier (argument_list "(_one_)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '<':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == -1;\n    pop();\n    goto LAB_000167c5;" case (char_literal "'<'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar9 = check_stack(2);" (assignment_expression "cVar9 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar9 == '\0') goto LAB_00016998;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016998;" goto statement_identifier ;)) (expression_statement "iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);" (assignment_expression "iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num)" identifier = (call_expression "bc_compare(ex_stack->s_next->s_num,ex_stack->s_num)" identifier (argument_list "(ex_stack->s_next->s_num,ex_stack->s_num)" ( (field_expression "ex_stack->s_next->s_num" (field_expression "ex_stack->s_next" identifier -> field_identifier) -> field_identifier) , (field_expression "ex_stack->s_num" identifier -> field_identifier) )))) ;) (expression_statement "c_code = iVar13 == -1;" (assignment_expression "c_code = iVar13 == -1" identifier = (binary_expression "iVar13 == -1" identifier == number_literal)) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_000167c5;" goto statement_identifier ;)) (case_statement "case '=':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == 0;\n    pop();\n    goto LAB_000167c5;" case (char_literal "'='" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar9 = check_stack(2);" (assignment_expression "cVar9 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar9 == '\0') goto LAB_00016998;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016998;" goto statement_identifier ;)) (expression_statement "iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);" (assignment_expression "iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num)" identifier = (call_expression "bc_compare(ex_stack->s_next->s_num,ex_stack->s_num)" identifier (argument_list "(ex_stack->s_next->s_num,ex_stack->s_num)" ( (field_expression "ex_stack->s_next->s_num" (field_expression "ex_stack->s_next" identifier -> field_identifier) -> field_identifier) , (field_expression "ex_stack->s_num" identifier -> field_identifier) )))) ;) (expression_statement "c_code = iVar13 == 0;" (assignment_expression "c_code = iVar13 == 0" identifier = (binary_expression "iVar13 == 0" identifier == number_literal)) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_000167c5;" goto statement_identifier ;)) (case_statement "case '>':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == 1;\n    pop();\n    goto LAB_000167c5;" case (char_literal "'>'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar9 = check_stack(2);" (assignment_expression "cVar9 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar9 == '\0') goto LAB_00016998;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016998;" goto statement_identifier ;)) (expression_statement "iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);" (assignment_expression "iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num)" identifier = (call_expression "bc_compare(ex_stack->s_next->s_num,ex_stack->s_num)" identifier (argument_list "(ex_stack->s_next->s_num,ex_stack->s_num)" ( (field_expression "ex_stack->s_next->s_num" (field_expression "ex_stack->s_next" identifier -> field_identifier) -> field_identifier) , (field_expression "ex_stack->s_num" identifier -> field_identifier) )))) ;) (expression_statement "c_code = iVar13 == 1;" (assignment_expression "c_code = iVar13 == 1" identifier = (binary_expression "iVar13 == 1" identifier == number_literal)) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_000167c5;" goto statement_identifier ;)) (case_statement "case 'A':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    incr_array(uVar12);\n    break;" case (char_literal "'A'" ' character ') : (expression_statement "uVar12 = (uint)(byte)local_70[uVar19];" (assignment_expression "uVar12 = (uint)(byte)local_70[uVar19]" identifier = (cast_expression "(uint)(byte)local_70[uVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[uVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[uVar19]" identifier [ identifier ])))) ;) (expression_statement "uVar20 = pc.pc_addr + 2;" (assignment_expression "uVar20 = pc.pc_addr + 2" identifier = (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (if_statement "if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_70[uVar19] < '\0')" ( (binary_expression "local_70[uVar19] < '\0'" (subscript_expression "local_70[uVar19]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }" { (expression_statement "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];" (assignment_expression "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2]" identifier = (binary_expression "(uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2]" (binary_expression "(uVar12 & 0x7f) * 0x100" (parenthesized_expression "(uVar12 & 0x7f)" ( (binary_expression "uVar12 & 0x7f" identifier & number_literal) )) * number_literal) + (cast_expression "(uint)(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))))) ;) (expression_statement "uVar20 = pc.pc_addr + 3;" (assignment_expression "uVar20 = pc.pc_addr + 3" identifier = (binary_expression "pc.pc_addr + 3" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) })) (expression_statement "pc.pc_addr = uVar20;" (assignment_expression "pc.pc_addr = uVar20" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "incr_array(uVar12);" (call_expression "incr_array(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'B':" case (char_literal "'B'" ' character ') :) (case_statement "case 'Z':\n    pc.pc_addr = uVar19;\n    cVar8 = bc_is_zero(ex_stack->s_num);\n    c_code = cVar8 == '\0';\n    pop();\n    local_7c = functions + pc.pc_func;\n    local_70 = local_7c->f_body;\n    local_5c = pc.pc_addr + 1;\n    cVar8 = local_70[pc.pc_addr];\n    pc.pc_addr = pc.pc_addr + 2;\n    pbVar10 = (bc_function *)pc.pc_func;\n    pbVar18 = functions;\n    if (cVar9 == 'J') goto LAB_0001740e;\n    if (cVar9 == 'B') {\n      if (c_code != '\0') goto LAB_0001740e;\n    }\n    else if ((cVar9 == 'Z') && (c_code == '\0')) goto LAB_0001740e;\n    local_78 = (bc_num *)local_7c->f_code_size;\n    goto _L141;" case (char_literal "'Z'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar8 = bc_is_zero(ex_stack->s_num);" (assignment_expression "cVar8 = bc_is_zero(ex_stack->s_num)" identifier = (call_expression "bc_is_zero(ex_stack->s_num)" identifier (argument_list "(ex_stack->s_num)" ( (field_expression "ex_stack->s_num" identifier -> field_identifier) )))) ;) (expression_statement "c_code = cVar8 == '\0';" (assignment_expression "c_code = cVar8 == '\0'" identifier = (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_7c = functions + pc.pc_func;" (assignment_expression "local_7c = functions + pc.pc_func" identifier = (binary_expression "functions + pc.pc_func" identifier + (field_expression "pc.pc_func" identifier . field_identifier))) ;) (expression_statement "local_70 = local_7c->f_body;" (assignment_expression "local_70 = local_7c->f_body" identifier = (field_expression "local_7c->f_body" identifier -> field_identifier)) ;) (expression_statement "local_5c = pc.pc_addr + 1;" (assignment_expression "local_5c = pc.pc_addr + 1" identifier = (binary_expression "pc.pc_addr + 1" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (expression_statement "cVar8 = local_70[pc.pc_addr];" (assignment_expression "cVar8 = local_70[pc.pc_addr]" identifier = (subscript_expression "local_70[pc.pc_addr]" identifier [ (field_expression "pc.pc_addr" identifier . field_identifier) ])) ;) (expression_statement "pc.pc_addr = pc.pc_addr + 2;" (assignment_expression "pc.pc_addr = pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) = (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (expression_statement "pbVar10 = (bc_function *)pc.pc_func;" (assignment_expression "pbVar10 = (bc_function *)pc.pc_func" identifier = (cast_expression "(bc_function *)pc.pc_func" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pc.pc_func" identifier . field_identifier))) ;) (expression_statement "pbVar18 = functions;" (assignment_expression "pbVar18 = functions" identifier = identifier) ;) (if_statement "if (cVar9 == 'J') goto LAB_0001740e;" if (parenthesized_expression "(cVar9 == 'J')" ( (binary_expression "cVar9 == 'J'" identifier == (char_literal "'J'" ' character ')) )) (goto_statement "goto LAB_0001740e;" goto statement_identifier ;)) (if_statement "if (cVar9 == 'B') {\n      if (c_code != '\0') goto LAB_0001740e;\n    }\n    else if ((cVar9 == 'Z') && (c_code == '\0')) goto LAB_0001740e;" if (parenthesized_expression "(cVar9 == 'B')" ( (binary_expression "cVar9 == 'B'" identifier == (char_literal "'B'" ' character ')) )) (compound_statement "{\n      if (c_code != '\0') goto LAB_0001740e;\n    }" { (if_statement "if (c_code != '\0') goto LAB_0001740e;" if (parenthesized_expression "(c_code != '\0')" ( (binary_expression "c_code != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001740e;" goto statement_identifier ;)) }) (else_clause "else if ((cVar9 == 'Z') && (c_code == '\0')) goto LAB_0001740e;" else (if_statement "if ((cVar9 == 'Z') && (c_code == '\0')) goto LAB_0001740e;" if (parenthesized_expression "((cVar9 == 'Z') && (c_code == '\0'))" ( (binary_expression "(cVar9 == 'Z') && (c_code == '\0')" (parenthesized_expression "(cVar9 == 'Z')" ( (binary_expression "cVar9 == 'Z'" identifier == (char_literal "'Z'" ' character ')) )) && (parenthesized_expression "(c_code == '\0')" ( (binary_expression "c_code == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_0001740e;" goto statement_identifier ;)))) (expression_statement "local_78 = (bc_num *)local_7c->f_code_size;" (assignment_expression "local_78 = (bc_num *)local_7c->f_code_size" identifier = (cast_expression "(bc_num *)local_7c->f_code_size" ( (type_descriptor "bc_num *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_7c->f_code_size" identifier -> field_identifier))) ;) (goto_statement "goto _L141;" goto statement_identifier ;)) (case_statement "case 'C':\n    local_7c = (bc_function *)(uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      local_7c = (bc_function *)\n                 ((uint)(byte)local_70[pc.pc_addr + 2] + ((uint)local_7c & 0x7f) * 0x100);\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    if (pbVar18[(int)local_7c].f_defined == '\0') {\n      pcVar14 = "Function %s not defined.";\n      goto LAB_0001732f;\n    }\n    process_params(&pc,(int)local_7c);\n    for (paVar4 = functions[(int)local_7c].f_autos; paVar4 != (arg_list *)0x0; paVar4 = paVar4->next\n        ) {\n      auto_var(paVar4->av_name);\n    }\n    fpush(pc.pc_func);\n    fpush(pc.pc_addr);\n    fpush(i_base);\n    pc.pc_addr = 0;\n    pc.pc_func = (uint)local_7c;\n    local_78 = (bc_num *)functions[(int)local_7c].f_code_size;\n    pbVar10 = local_7c;\n    pbVar18 = functions;\n    goto _L141;" case (char_literal "'C'" ' character ') : (expression_statement "local_7c = (bc_function *)(uint)(byte)local_70[uVar19];" (assignment_expression "local_7c = (bc_function *)(uint)(byte)local_70[uVar19]" identifier = (cast_expression "(bc_function *)(uint)(byte)local_70[uVar19]" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)local_70[uVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[uVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[uVar19]" identifier [ identifier ]))))) ;) (expression_statement "uVar20 = pc.pc_addr + 2;" (assignment_expression "uVar20 = pc.pc_addr + 2" identifier = (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (if_statement "if (local_70[uVar19] < '\0') {\n      local_7c = (bc_function *)\n                 ((uint)(byte)local_70[pc.pc_addr + 2] + ((uint)local_7c & 0x7f) * 0x100);\n      uVar20 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_70[uVar19] < '\0')" ( (binary_expression "local_70[uVar19] < '\0'" (subscript_expression "local_70[uVar19]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_7c = (bc_function *)\n                 ((uint)(byte)local_70[pc.pc_addr + 2] + ((uint)local_7c & 0x7f) * 0x100);\n      uVar20 = pc.pc_addr + 3;\n    }" { (expression_statement "local_7c = (bc_function *)\n                 ((uint)(byte)local_70[pc.pc_addr + 2] + ((uint)local_7c & 0x7f) * 0x100);" (assignment_expression "local_7c = (bc_function *)\n                 ((uint)(byte)local_70[pc.pc_addr + 2] + ((uint)local_7c & 0x7f) * 0x100)" identifier = (cast_expression "(bc_function *)\n                 ((uint)(byte)local_70[pc.pc_addr + 2] + ((uint)local_7c & 0x7f) * 0x100)" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(byte)local_70[pc.pc_addr + 2] + ((uint)local_7c & 0x7f) * 0x100)" ( (binary_expression "(uint)(byte)local_70[pc.pc_addr + 2] + ((uint)local_7c & 0x7f) * 0x100" (cast_expression "(uint)(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))) + (binary_expression "((uint)local_7c & 0x7f) * 0x100" (parenthesized_expression "((uint)local_7c & 0x7f)" ( (binary_expression "(uint)local_7c & 0x7f" (cast_expression "(uint)local_7c" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) * number_literal)) )))) ;) (expression_statement "uVar20 = pc.pc_addr + 3;" (assignment_expression "uVar20 = pc.pc_addr + 3" identifier = (binary_expression "pc.pc_addr + 3" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) })) (expression_statement "pc.pc_addr = uVar20;" (assignment_expression "pc.pc_addr = uVar20" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (if_statement "if (pbVar18[(int)local_7c].f_defined == '\0') {\n      pcVar14 = "Function %s not defined.";\n      goto LAB_0001732f;\n    }" if (parenthesized_expression "(pbVar18[(int)local_7c].f_defined == '\0')" ( (binary_expression "pbVar18[(int)local_7c].f_defined == '\0'" (field_expression "pbVar18[(int)local_7c].f_defined" (subscript_expression "pbVar18[(int)local_7c]" identifier [ (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar14 = "Function %s not defined.";\n      goto LAB_0001732f;\n    }" { (expression_statement "pcVar14 = "Function %s not defined.";" (assignment_expression "pcVar14 = "Function %s not defined."" identifier = (string_literal ""Function %s not defined."" " string_content ")) ;) (goto_statement "goto LAB_0001732f;" goto statement_identifier ;) })) (expression_statement "process_params(&pc,(int)local_7c);" (call_expression "process_params(&pc,(int)local_7c)" identifier (argument_list "(&pc,(int)local_7c)" ( (pointer_expression "&pc" & identifier) , (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (for_statement "for (paVar4 = functions[(int)local_7c].f_autos; paVar4 != (arg_list *)0x0; paVar4 = paVar4->next\n        ) {\n      auto_var(paVar4->av_name);\n    }" for ( (assignment_expression "paVar4 = functions[(int)local_7c].f_autos" identifier = (field_expression "functions[(int)local_7c].f_autos" (subscript_expression "functions[(int)local_7c]" identifier [ (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier)) ; (binary_expression "paVar4 != (arg_list *)0x0" identifier != (cast_expression "(arg_list *)0x0" ( (type_descriptor "arg_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "paVar4 = paVar4->next" identifier = (field_expression "paVar4->next" identifier -> field_identifier)) ) (compound_statement "{\n      auto_var(paVar4->av_name);\n    }" { (expression_statement "auto_var(paVar4->av_name);" (call_expression "auto_var(paVar4->av_name)" identifier (argument_list "(paVar4->av_name)" ( (field_expression "paVar4->av_name" identifier -> field_identifier) ))) ;) })) (expression_statement "fpush(pc.pc_func);" (call_expression "fpush(pc.pc_func)" identifier (argument_list "(pc.pc_func)" ( (field_expression "pc.pc_func" identifier . field_identifier) ))) ;) (expression_statement "fpush(pc.pc_addr);" (call_expression "fpush(pc.pc_addr)" identifier (argument_list "(pc.pc_addr)" ( (field_expression "pc.pc_addr" identifier . field_identifier) ))) ;) (expression_statement "fpush(i_base);" (call_expression "fpush(i_base)" identifier (argument_list "(i_base)" ( identifier ))) ;) (expression_statement "pc.pc_addr = 0;" (assignment_expression "pc.pc_addr = 0" (field_expression "pc.pc_addr" identifier . field_identifier) = number_literal) ;) (expression_statement "pc.pc_func = (uint)local_7c;" (assignment_expression "pc.pc_func = (uint)local_7c" (field_expression "pc.pc_func" identifier . field_identifier) = (cast_expression "(uint)local_7c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_78 = (bc_num *)functions[(int)local_7c].f_code_size;" (assignment_expression "local_78 = (bc_num *)functions[(int)local_7c].f_code_size" identifier = (cast_expression "(bc_num *)functions[(int)local_7c].f_code_size" ( (type_descriptor "bc_num *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "functions[(int)local_7c].f_code_size" (subscript_expression "functions[(int)local_7c]" identifier [ (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier))) ;) (expression_statement "pbVar10 = local_7c;" (assignment_expression "pbVar10 = local_7c" identifier = identifier) ;) (expression_statement "pbVar18 = functions;" (assignment_expression "pbVar18 = functions" identifier = identifier) ;) (goto_statement "goto _L141;" goto statement_identifier ;)) (case_statement "case 'D':\n    pc.pc_addr = uVar19;\n    push_copy(ex_stack->s_num);\n    break;" case (char_literal "'D'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "push_copy(ex_stack->s_num);" (call_expression "push_copy(ex_stack->s_num)" identifier (argument_list "(ex_stack->s_num)" ( (field_expression "ex_stack->s_num" identifier -> field_identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'J':\n    local_5c = pc.pc_addr + 2;\n    cVar8 = local_70[uVar19];\n    pc.pc_addr = pc.pc_addr + 3;\nLAB_0001740e:\n    uVar19 = (uint)(ushort)(CONCAT11(local_70[local_5c],cVar8) >> 6);\n    pbVar17 = local_7c->f_label;\n    iVar13 = uVar19 - 1;\n    if (uVar19 != 0) {\n      do {\n        iVar13 = iVar13 + -1;\n        pbVar17 = pbVar17->l_next;\n      } while (iVar13 != -1);\n    }\n    if (pbVar17 == (bc_label_group *)0x0) {\n      pcVar14 = "Internal error.";\n      goto LAB_0001732f;\n    }\n    pc.pc_addr = pbVar17->l_adrs[CONCAT11(local_70[local_5c],cVar8) & 0x3f];\n    local_78 = (bc_num *)local_7c->f_code_size;\n    goto _L141;" case (char_literal "'J'" ' character ') : (expression_statement "local_5c = pc.pc_addr + 2;" (assignment_expression "local_5c = pc.pc_addr + 2" identifier = (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (expression_statement "cVar8 = local_70[uVar19];" (assignment_expression "cVar8 = local_70[uVar19]" identifier = (subscript_expression "local_70[uVar19]" identifier [ identifier ])) ;) (expression_statement "pc.pc_addr = pc.pc_addr + 3;" (assignment_expression "pc.pc_addr = pc.pc_addr + 3" (field_expression "pc.pc_addr" identifier . field_identifier) = (binary_expression "pc.pc_addr + 3" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (labeled_statement "LAB_0001740e:\n    uVar19 = (uint)(ushort)(CONCAT11(local_70[local_5c],cVar8) >> 6);" statement_identifier : (expression_statement "uVar19 = (uint)(ushort)(CONCAT11(local_70[local_5c],cVar8) >> 6);" (assignment_expression "uVar19 = (uint)(ushort)(CONCAT11(local_70[local_5c],cVar8) >> 6)" identifier = (call_expression "(uint)(ushort)(CONCAT11(local_70[local_5c],cVar8) >> 6)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(CONCAT11(local_70[local_5c],cVar8) >> 6)" ( (binary_expression "CONCAT11(local_70[local_5c],cVar8) >> 6" (call_expression "CONCAT11(local_70[local_5c],cVar8)" identifier (argument_list "(local_70[local_5c],cVar8)" ( (subscript_expression "local_70[local_5c]" identifier [ identifier ]) , identifier ))) >> number_literal) )))) ;)) (expression_statement "pbVar17 = local_7c->f_label;" (assignment_expression "pbVar17 = local_7c->f_label" identifier = (field_expression "local_7c->f_label" identifier -> field_identifier)) ;) (expression_statement "iVar13 = uVar19 - 1;" (assignment_expression "iVar13 = uVar19 - 1" identifier = (binary_expression "uVar19 - 1" identifier - number_literal)) ;) (if_statement "if (uVar19 != 0) {\n      do {\n        iVar13 = iVar13 + -1;\n        pbVar17 = pbVar17->l_next;\n      } while (iVar13 != -1);\n    }" if (parenthesized_expression "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        iVar13 = iVar13 + -1;\n        pbVar17 = pbVar17->l_next;\n      } while (iVar13 != -1);\n    }" { (do_statement "do {\n        iVar13 = iVar13 + -1;\n        pbVar17 = pbVar17->l_next;\n      } while (iVar13 != -1);" do (compound_statement "{\n        iVar13 = iVar13 + -1;\n        pbVar17 = pbVar17->l_next;\n      }" { (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "pbVar17 = pbVar17->l_next;" (assignment_expression "pbVar17 = pbVar17->l_next" identifier = (field_expression "pbVar17->l_next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(iVar13 != -1)" ( (binary_expression "iVar13 != -1" identifier != number_literal) )) ;) })) (if_statement "if (pbVar17 == (bc_label_group *)0x0) {\n      pcVar14 = "Internal error.";\n      goto LAB_0001732f;\n    }" if (parenthesized_expression "(pbVar17 == (bc_label_group *)0x0)" ( (binary_expression "pbVar17 == (bc_label_group *)0x0" identifier == (cast_expression "(bc_label_group *)0x0" ( (type_descriptor "bc_label_group *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar14 = "Internal error.";\n      goto LAB_0001732f;\n    }" { (expression_statement "pcVar14 = "Internal error.";" (assignment_expression "pcVar14 = "Internal error."" identifier = (string_literal ""Internal error."" " string_content ")) ;) (goto_statement "goto LAB_0001732f;" goto statement_identifier ;) })) (expression_statement "pc.pc_addr = pbVar17->l_adrs[CONCAT11(local_70[local_5c],cVar8) & 0x3f];" (assignment_expression "pc.pc_addr = pbVar17->l_adrs[CONCAT11(local_70[local_5c],cVar8) & 0x3f]" (field_expression "pc.pc_addr" identifier . field_identifier) = (subscript_expression "pbVar17->l_adrs[CONCAT11(local_70[local_5c],cVar8) & 0x3f]" (field_expression "pbVar17->l_adrs" identifier -> field_identifier) [ (binary_expression "CONCAT11(local_70[local_5c],cVar8) & 0x3f" (call_expression "CONCAT11(local_70[local_5c],cVar8)" identifier (argument_list "(local_70[local_5c],cVar8)" ( (subscript_expression "local_70[local_5c]" identifier [ identifier ]) , identifier ))) & number_literal) ])) ;) (expression_statement "local_78 = (bc_num *)local_7c->f_code_size;" (assignment_expression "local_78 = (bc_num *)local_7c->f_code_size" identifier = (cast_expression "(bc_num *)local_7c->f_code_size" ( (type_descriptor "bc_num *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_7c->f_code_size" identifier -> field_identifier))) ;) (goto_statement "goto _L141;" goto statement_identifier ;)) (case_statement "case 'K':\n    if (pbVar10 == (bc_function *)0x0) {\n      local_70 = (char *)i_base;\n    }\n    else {\n      local_70 = (char *)fn_stack->s_val;\n    }\n    if (local_70 == (char *)0xa) {\n      pc.pc_addr = uVar19;\n      push_b10_const(&pc);\n      break;\n    }\n    pc.pc_addr = uVar19;\n    bc_init_num(&temp);\n    bc_init_num(&result);\n    bc_init_num(&mult);\n    build = bc_copy_num(_zero_);\n    bc_int2num(&mult,(int)local_70);\n    pcVar14 = functions[pc.pc_func].f_body;\n    uVar19 = pc.pc_addr + 1;\n    uVar20 = (uint)(byte)pcVar14[pc.pc_addr];\n    if (uVar20 == 0x7e) {\n      uVar12 = pc.pc_addr + 2;\n      do {\n        uVar19 = uVar12;\n        uVar20 = (uint)(byte)pcVar14[uVar19 - 1];\n        uVar12 = uVar19 + 1;\n      } while (uVar20 == 0x7e);\n    }\n    if (uVar20 == 0x2b) {\n      pc.pc_addr = uVar19 + 1;\n      uVar20 = (uint)(byte)pcVar14[uVar19];\n    }\n    else {\n      pc.pc_addr = uVar19;\n      if (uVar20 == 0x2d) {\n        bVar21 = true;\n        pc.pc_addr = uVar19 + 1;\n        uVar20 = (uint)(byte)pcVar14[uVar19];\n      }\n    }\n    uVar19 = uVar20;\n    if (uVar20 < 0x24) {\n      uVar19 = (uint)(byte)pcVar14[pc.pc_addr];\n      if ((uVar19 < 0x24) && ((int)local_70 <= (int)uVar20)) {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,(int)local_70 + -1);\n      }\n      else {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,uVar20);\n        if (0x23 < uVar19) goto LAB_00017202;\n      }\n      local_60 = &build;\n      do {\n        if ((int)local_70 <= (int)uVar19) {\n          uVar19 = (int)local_70 - 1;\n        }\n        bc_multiply(build,mult,&result,0);\n        bc_int2num(&temp,uVar19);\n        bc_add(result,temp,local_60,0);\n        uVar20 = pc.pc_addr + 1;\n        uVar19 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n        pc.pc_addr = uVar20;\n      } while (uVar19 < 0x24);\n    }\nLAB_00017202:\n    if (uVar19 == 0x2e) {\n      uVar19 = (int)local_70 - 1;\n      uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n      if ((int)local_70 <= (int)(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]) {\n        uVar20 = uVar19;\n      }\n      pc.pc_addr = pc.pc_addr + 1;\n      bc_free_num(&result);\n      bc_free_num(&temp);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      iVar13 = 0;\n      if ((int)uVar20 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar13;\n            bc_multiply(result,mult,&result,0);\n            bc_int2num(&temp,uVar20);\n            bc_add(result,temp,&result,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            uVar12 = pc.pc_addr + 1;\n            uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n            pc.pc_addr = uVar12;\n            iVar13 = local_58;\n            if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;\n            uVar20 = uVar19;\n            if (0x23 < (int)uVar19) goto LAB_00017a9d;\n          }\n        } while (uVar20 < 0x24);\n      }\n      goto LAB_00017a9d;\n    }\n    goto LAB_0001720b;" case (char_literal "'K'" ' character ') : (if_statement "if (pbVar10 == (bc_function *)0x0) {\n      local_70 = (char *)i_base;\n    }\n    else {\n      local_70 = (char *)fn_stack->s_val;\n    }" if (parenthesized_expression "(pbVar10 == (bc_function *)0x0)" ( (binary_expression "pbVar10 == (bc_function *)0x0" identifier == (cast_expression "(bc_function *)0x0" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_70 = (char *)i_base;\n    }" { (expression_statement "local_70 = (char *)i_base;" (assignment_expression "local_70 = (char *)i_base" identifier = (cast_expression "(char *)i_base" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n      local_70 = (char *)fn_stack->s_val;\n    }" else (compound_statement "{\n      local_70 = (char *)fn_stack->s_val;\n    }" { (expression_statement "local_70 = (char *)fn_stack->s_val;" (assignment_expression "local_70 = (char *)fn_stack->s_val" identifier = (cast_expression "(char *)fn_stack->s_val" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "fn_stack->s_val" identifier -> field_identifier))) ;) }))) (if_statement "if (local_70 == (char *)0xa) {\n      pc.pc_addr = uVar19;\n      push_b10_const(&pc);\n      break;\n    }" if (parenthesized_expression "(local_70 == (char *)0xa)" ( (binary_expression "local_70 == (char *)0xa" identifier == (cast_expression "(char *)0xa" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pc.pc_addr = uVar19;\n      push_b10_const(&pc);\n      break;\n    }" { (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "push_b10_const(&pc);" (call_expression "push_b10_const(&pc)" identifier (argument_list "(&pc)" ( (pointer_expression "&pc" & identifier) ))) ;) (break_statement "break;" break ;) })) (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "bc_init_num(&temp);" (call_expression "bc_init_num(&temp)" identifier (argument_list "(&temp)" ( (pointer_expression "&temp" & identifier) ))) ;) (expression_statement "bc_init_num(&result);" (call_expression "bc_init_num(&result)" identifier (argument_list "(&result)" ( (pointer_expression "&result" & identifier) ))) ;) (expression_statement "bc_init_num(&mult);" (call_expression "bc_init_num(&mult)" identifier (argument_list "(&mult)" ( (pointer_expression "&mult" & identifier) ))) ;) (expression_statement "build = bc_copy_num(_zero_);" (assignment_expression "build = bc_copy_num(_zero_)" identifier = (call_expression "bc_copy_num(_zero_)" identifier (argument_list "(_zero_)" ( identifier )))) ;) (expression_statement "bc_int2num(&mult,(int)local_70);" (call_expression "bc_int2num(&mult,(int)local_70)" identifier (argument_list "(&mult,(int)local_70)" ( (pointer_expression "&mult" & identifier) , (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "pcVar14 = functions[pc.pc_func].f_body;" (assignment_expression "pcVar14 = functions[pc.pc_func].f_body" identifier = (field_expression "functions[pc.pc_func].f_body" (subscript_expression "functions[pc.pc_func]" identifier [ (field_expression "pc.pc_func" identifier . field_identifier) ]) . field_identifier)) ;) (expression_statement "uVar19 = pc.pc_addr + 1;" (assignment_expression "uVar19 = pc.pc_addr + 1" identifier = (binary_expression "pc.pc_addr + 1" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (expression_statement "uVar20 = (uint)(byte)pcVar14[pc.pc_addr];" (assignment_expression "uVar20 = (uint)(byte)pcVar14[pc.pc_addr]" identifier = (cast_expression "(uint)(byte)pcVar14[pc.pc_addr]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar14[pc.pc_addr]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar14[pc.pc_addr]" identifier [ (field_expression "pc.pc_addr" identifier . field_identifier) ])))) ;) (if_statement "if (uVar20 == 0x7e) {\n      uVar12 = pc.pc_addr + 2;\n      do {\n        uVar19 = uVar12;\n        uVar20 = (uint)(byte)pcVar14[uVar19 - 1];\n        uVar12 = uVar19 + 1;\n      } while (uVar20 == 0x7e);\n    }" if (parenthesized_expression "(uVar20 == 0x7e)" ( (binary_expression "uVar20 == 0x7e" identifier == number_literal) )) (compound_statement "{\n      uVar12 = pc.pc_addr + 2;\n      do {\n        uVar19 = uVar12;\n        uVar20 = (uint)(byte)pcVar14[uVar19 - 1];\n        uVar12 = uVar19 + 1;\n      } while (uVar20 == 0x7e);\n    }" { (expression_statement "uVar12 = pc.pc_addr + 2;" (assignment_expression "uVar12 = pc.pc_addr + 2" identifier = (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (do_statement "do {\n        uVar19 = uVar12;\n        uVar20 = (uint)(byte)pcVar14[uVar19 - 1];\n        uVar12 = uVar19 + 1;\n      } while (uVar20 == 0x7e);" do (compound_statement "{\n        uVar19 = uVar12;\n        uVar20 = (uint)(byte)pcVar14[uVar19 - 1];\n        uVar12 = uVar19 + 1;\n      }" { (expression_statement "uVar19 = uVar12;" (assignment_expression "uVar19 = uVar12" identifier = identifier) ;) (expression_statement "uVar20 = (uint)(byte)pcVar14[uVar19 - 1];" (assignment_expression "uVar20 = (uint)(byte)pcVar14[uVar19 - 1]" identifier = (cast_expression "(uint)(byte)pcVar14[uVar19 - 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar14[uVar19 - 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar14[uVar19 - 1]" identifier [ (binary_expression "uVar19 - 1" identifier - number_literal) ])))) ;) (expression_statement "uVar12 = uVar19 + 1;" (assignment_expression "uVar12 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar20 == 0x7e)" ( (binary_expression "uVar20 == 0x7e" identifier == number_literal) )) ;) })) (if_statement "if (uVar20 == 0x2b) {\n      pc.pc_addr = uVar19 + 1;\n      uVar20 = (uint)(byte)pcVar14[uVar19];\n    }\n    else {\n      pc.pc_addr = uVar19;\n      if (uVar20 == 0x2d) {\n        bVar21 = true;\n        pc.pc_addr = uVar19 + 1;\n        uVar20 = (uint)(byte)pcVar14[uVar19];\n      }\n    }" if (parenthesized_expression "(uVar20 == 0x2b)" ( (binary_expression "uVar20 == 0x2b" identifier == number_literal) )) (compound_statement "{\n      pc.pc_addr = uVar19 + 1;\n      uVar20 = (uint)(byte)pcVar14[uVar19];\n    }" { (expression_statement "pc.pc_addr = uVar19 + 1;" (assignment_expression "pc.pc_addr = uVar19 + 1" (field_expression "pc.pc_addr" identifier . field_identifier) = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) (expression_statement "uVar20 = (uint)(byte)pcVar14[uVar19];" (assignment_expression "uVar20 = (uint)(byte)pcVar14[uVar19]" identifier = (cast_expression "(uint)(byte)pcVar14[uVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar14[uVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar14[uVar19]" identifier [ identifier ])))) ;) }) (else_clause "else {\n      pc.pc_addr = uVar19;\n      if (uVar20 == 0x2d) {\n        bVar21 = true;\n        pc.pc_addr = uVar19 + 1;\n        uVar20 = (uint)(byte)pcVar14[uVar19];\n      }\n    }" else (compound_statement "{\n      pc.pc_addr = uVar19;\n      if (uVar20 == 0x2d) {\n        bVar21 = true;\n        pc.pc_addr = uVar19 + 1;\n        uVar20 = (uint)(byte)pcVar14[uVar19];\n      }\n    }" { (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (if_statement "if (uVar20 == 0x2d) {\n        bVar21 = true;\n        pc.pc_addr = uVar19 + 1;\n        uVar20 = (uint)(byte)pcVar14[uVar19];\n      }" if (parenthesized_expression "(uVar20 == 0x2d)" ( (binary_expression "uVar20 == 0x2d" identifier == number_literal) )) (compound_statement "{\n        bVar21 = true;\n        pc.pc_addr = uVar19 + 1;\n        uVar20 = (uint)(byte)pcVar14[uVar19];\n      }" { (expression_statement "bVar21 = true;" (assignment_expression "bVar21 = true" identifier = true) ;) (expression_statement "pc.pc_addr = uVar19 + 1;" (assignment_expression "pc.pc_addr = uVar19 + 1" (field_expression "pc.pc_addr" identifier . field_identifier) = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) (expression_statement "uVar20 = (uint)(byte)pcVar14[uVar19];" (assignment_expression "uVar20 = (uint)(byte)pcVar14[uVar19]" identifier = (cast_expression "(uint)(byte)pcVar14[uVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar14[uVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar14[uVar19]" identifier [ identifier ])))) ;) })) }))) (expression_statement "uVar19 = uVar20;" (assignment_expression "uVar19 = uVar20" identifier = identifier) ;) (if_statement "if (uVar20 < 0x24) {\n      uVar19 = (uint)(byte)pcVar14[pc.pc_addr];\n      if ((uVar19 < 0x24) && ((int)local_70 <= (int)uVar20)) {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,(int)local_70 + -1);\n      }\n      else {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,uVar20);\n        if (0x23 < uVar19) goto LAB_00017202;\n      }\n      local_60 = &build;\n      do {\n        if ((int)local_70 <= (int)uVar19) {\n          uVar19 = (int)local_70 - 1;\n        }\n        bc_multiply(build,mult,&result,0);\n        bc_int2num(&temp,uVar19);\n        bc_add(result,temp,local_60,0);\n        uVar20 = pc.pc_addr + 1;\n        uVar19 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n        pc.pc_addr = uVar20;\n      } while (uVar19 < 0x24);\n    }" if (parenthesized_expression "(uVar20 < 0x24)" ( (binary_expression "uVar20 < 0x24" identifier < number_literal) )) (compound_statement "{\n      uVar19 = (uint)(byte)pcVar14[pc.pc_addr];\n      if ((uVar19 < 0x24) && ((int)local_70 <= (int)uVar20)) {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,(int)local_70 + -1);\n      }\n      else {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,uVar20);\n        if (0x23 < uVar19) goto LAB_00017202;\n      }\n      local_60 = &build;\n      do {\n        if ((int)local_70 <= (int)uVar19) {\n          uVar19 = (int)local_70 - 1;\n        }\n        bc_multiply(build,mult,&result,0);\n        bc_int2num(&temp,uVar19);\n        bc_add(result,temp,local_60,0);\n        uVar20 = pc.pc_addr + 1;\n        uVar19 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n        pc.pc_addr = uVar20;\n      } while (uVar19 < 0x24);\n    }" { (expression_statement "uVar19 = (uint)(byte)pcVar14[pc.pc_addr];" (assignment_expression "uVar19 = (uint)(byte)pcVar14[pc.pc_addr]" identifier = (cast_expression "(uint)(byte)pcVar14[pc.pc_addr]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar14[pc.pc_addr]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar14[pc.pc_addr]" identifier [ (field_expression "pc.pc_addr" identifier . field_identifier) ])))) ;) (if_statement "if ((uVar19 < 0x24) && ((int)local_70 <= (int)uVar20)) {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,(int)local_70 + -1);\n      }\n      else {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,uVar20);\n        if (0x23 < uVar19) goto LAB_00017202;\n      }" if (parenthesized_expression "((uVar19 < 0x24) && ((int)local_70 <= (int)uVar20))" ( (binary_expression "(uVar19 < 0x24) && ((int)local_70 <= (int)uVar20)" (parenthesized_expression "(uVar19 < 0x24)" ( (binary_expression "uVar19 < 0x24" identifier < number_literal) )) && (parenthesized_expression "((int)local_70 <= (int)uVar20)" ( (binary_expression "(int)local_70 <= (int)uVar20" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,(int)local_70 + -1);\n      }" { (expression_statement "pc.pc_addr = pc.pc_addr + 1;" (assignment_expression "pc.pc_addr = pc.pc_addr + 1" (field_expression "pc.pc_addr" identifier . field_identifier) = (binary_expression "pc.pc_addr + 1" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (expression_statement "bc_int2num(&build,(int)local_70 + -1);" (call_expression "bc_int2num(&build,(int)local_70 + -1)" identifier (argument_list "(&build,(int)local_70 + -1)" ( (pointer_expression "&build" & identifier) , (binary_expression "(int)local_70 + -1" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ;) }) (else_clause "else {\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,uVar20);\n        if (0x23 < uVar19) goto LAB_00017202;\n      }" else (compound_statement "{\n        pc.pc_addr = pc.pc_addr + 1;\n        bc_int2num(&build,uVar20);\n        if (0x23 < uVar19) goto LAB_00017202;\n      }" { (expression_statement "pc.pc_addr = pc.pc_addr + 1;" (assignment_expression "pc.pc_addr = pc.pc_addr + 1" (field_expression "pc.pc_addr" identifier . field_identifier) = (binary_expression "pc.pc_addr + 1" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (expression_statement "bc_int2num(&build,uVar20);" (call_expression "bc_int2num(&build,uVar20)" identifier (argument_list "(&build,uVar20)" ( (pointer_expression "&build" & identifier) , identifier ))) ;) (if_statement "if (0x23 < uVar19) goto LAB_00017202;" if (parenthesized_expression "(0x23 < uVar19)" ( (binary_expression "0x23 < uVar19" number_literal < identifier) )) (goto_statement "goto LAB_00017202;" goto statement_identifier ;)) }))) (expression_statement "local_60 = &build;" (assignment_expression "local_60 = &build" identifier = (pointer_expression "&build" & identifier)) ;) (do_statement "do {\n        if ((int)local_70 <= (int)uVar19) {\n          uVar19 = (int)local_70 - 1;\n        }\n        bc_multiply(build,mult,&result,0);\n        bc_int2num(&temp,uVar19);\n        bc_add(result,temp,local_60,0);\n        uVar20 = pc.pc_addr + 1;\n        uVar19 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n        pc.pc_addr = uVar20;\n      } while (uVar19 < 0x24);" do (compound_statement "{\n        if ((int)local_70 <= (int)uVar19) {\n          uVar19 = (int)local_70 - 1;\n        }\n        bc_multiply(build,mult,&result,0);\n        bc_int2num(&temp,uVar19);\n        bc_add(result,temp,local_60,0);\n        uVar20 = pc.pc_addr + 1;\n        uVar19 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n        pc.pc_addr = uVar20;\n      }" { (if_statement "if ((int)local_70 <= (int)uVar19) {\n          uVar19 = (int)local_70 - 1;\n        }" if (parenthesized_expression "((int)local_70 <= (int)uVar19)" ( (binary_expression "(int)local_70 <= (int)uVar19" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar19 = (int)local_70 - 1;\n        }" { (expression_statement "uVar19 = (int)local_70 - 1;" (assignment_expression "uVar19 = (int)local_70 - 1" identifier = (binary_expression "(int)local_70 - 1" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) ;) })) (expression_statement "bc_multiply(build,mult,&result,0);" (call_expression "bc_multiply(build,mult,&result,0)" identifier (argument_list "(build,mult,&result,0)" ( identifier , identifier , (pointer_expression "&result" & identifier) , number_literal ))) ;) (expression_statement "bc_int2num(&temp,uVar19);" (call_expression "bc_int2num(&temp,uVar19)" identifier (argument_list "(&temp,uVar19)" ( (pointer_expression "&temp" & identifier) , identifier ))) ;) (expression_statement "bc_add(result,temp,local_60,0);" (call_expression "bc_add(result,temp,local_60,0)" identifier (argument_list "(result,temp,local_60,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "uVar20 = pc.pc_addr + 1;" (assignment_expression "uVar20 = pc.pc_addr + 1" identifier = (binary_expression "pc.pc_addr + 1" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (expression_statement "uVar19 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];" (assignment_expression "uVar19 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]" identifier = (cast_expression "(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)functions[pc.pc_func].f_body[pc.pc_addr]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "functions[pc.pc_func].f_body[pc.pc_addr]" (field_expression "functions[pc.pc_func].f_body" (subscript_expression "functions[pc.pc_func]" identifier [ (field_expression "pc.pc_func" identifier . field_identifier) ]) . field_identifier) [ (field_expression "pc.pc_addr" identifier . field_identifier) ])))) ;) (expression_statement "pc.pc_addr = uVar20;" (assignment_expression "pc.pc_addr = uVar20" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) }) while (parenthesized_expression "(uVar19 < 0x24)" ( (binary_expression "uVar19 < 0x24" identifier < number_literal) )) ;) })) (labeled_statement "LAB_00017202:\n    if (uVar19 == 0x2e) {\n      uVar19 = (int)local_70 - 1;\n      uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n      if ((int)local_70 <= (int)(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]) {\n        uVar20 = uVar19;\n      }\n      pc.pc_addr = pc.pc_addr + 1;\n      bc_free_num(&result);\n      bc_free_num(&temp);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      iVar13 = 0;\n      if ((int)uVar20 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar13;\n            bc_multiply(result,mult,&result,0);\n            bc_int2num(&temp,uVar20);\n            bc_add(result,temp,&result,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            uVar12 = pc.pc_addr + 1;\n            uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n            pc.pc_addr = uVar12;\n            iVar13 = local_58;\n            if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;\n            uVar20 = uVar19;\n            if (0x23 < (int)uVar19) goto LAB_00017a9d;\n          }\n        } while (uVar20 < 0x24);\n      }\n      goto LAB_00017a9d;\n    }" statement_identifier : (if_statement "if (uVar19 == 0x2e) {\n      uVar19 = (int)local_70 - 1;\n      uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n      if ((int)local_70 <= (int)(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]) {\n        uVar20 = uVar19;\n      }\n      pc.pc_addr = pc.pc_addr + 1;\n      bc_free_num(&result);\n      bc_free_num(&temp);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      iVar13 = 0;\n      if ((int)uVar20 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar13;\n            bc_multiply(result,mult,&result,0);\n            bc_int2num(&temp,uVar20);\n            bc_add(result,temp,&result,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            uVar12 = pc.pc_addr + 1;\n            uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n            pc.pc_addr = uVar12;\n            iVar13 = local_58;\n            if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;\n            uVar20 = uVar19;\n            if (0x23 < (int)uVar19) goto LAB_00017a9d;\n          }\n        } while (uVar20 < 0x24);\n      }\n      goto LAB_00017a9d;\n    }" if (parenthesized_expression "(uVar19 == 0x2e)" ( (binary_expression "uVar19 == 0x2e" identifier == number_literal) )) (compound_statement "{\n      uVar19 = (int)local_70 - 1;\n      uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n      if ((int)local_70 <= (int)(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]) {\n        uVar20 = uVar19;\n      }\n      pc.pc_addr = pc.pc_addr + 1;\n      bc_free_num(&result);\n      bc_free_num(&temp);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      iVar13 = 0;\n      if ((int)uVar20 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar13;\n            bc_multiply(result,mult,&result,0);\n            bc_int2num(&temp,uVar20);\n            bc_add(result,temp,&result,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            uVar12 = pc.pc_addr + 1;\n            uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n            pc.pc_addr = uVar12;\n            iVar13 = local_58;\n            if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;\n            uVar20 = uVar19;\n            if (0x23 < (int)uVar19) goto LAB_00017a9d;\n          }\n        } while (uVar20 < 0x24);\n      }\n      goto LAB_00017a9d;\n    }" { (expression_statement "uVar19 = (int)local_70 - 1;" (assignment_expression "uVar19 = (int)local_70 - 1" identifier = (binary_expression "(int)local_70 - 1" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal)) ;) (expression_statement "uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];" (assignment_expression "uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]" identifier = (cast_expression "(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)functions[pc.pc_func].f_body[pc.pc_addr]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "functions[pc.pc_func].f_body[pc.pc_addr]" (field_expression "functions[pc.pc_func].f_body" (subscript_expression "functions[pc.pc_func]" identifier [ (field_expression "pc.pc_func" identifier . field_identifier) ]) . field_identifier) [ (field_expression "pc.pc_addr" identifier . field_identifier) ])))) ;) (if_statement "if ((int)local_70 <= (int)(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]) {\n        uVar20 = uVar19;\n      }" if (parenthesized_expression "((int)local_70 <= (int)(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr])" ( (binary_expression "(int)local_70 <= (int)(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]" (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)functions[pc.pc_func].f_body[pc.pc_addr]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "functions[pc.pc_func].f_body[pc.pc_addr]" (field_expression "functions[pc.pc_func].f_body" (subscript_expression "functions[pc.pc_func]" identifier [ (field_expression "pc.pc_func" identifier . field_identifier) ]) . field_identifier) [ (field_expression "pc.pc_addr" identifier . field_identifier) ]))))) )) (compound_statement "{\n        uVar20 = uVar19;\n      }" { (expression_statement "uVar20 = uVar19;" (assignment_expression "uVar20 = uVar19" identifier = identifier) ;) })) (expression_statement "pc.pc_addr = pc.pc_addr + 1;" (assignment_expression "pc.pc_addr = pc.pc_addr + 1" (field_expression "pc.pc_addr" identifier . field_identifier) = (binary_expression "pc.pc_addr + 1" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (expression_statement "bc_free_num(&result);" (call_expression "bc_free_num(&result)" identifier (argument_list "(&result)" ( (pointer_expression "&result" & identifier) ))) ;) (expression_statement "bc_free_num(&temp);" (call_expression "bc_free_num(&temp)" identifier (argument_list "(&temp)" ( (pointer_expression "&temp" & identifier) ))) ;) (expression_statement "divisor = bc_copy_num(_one_);" (assignment_expression "divisor = bc_copy_num(_one_)" identifier = (call_expression "bc_copy_num(_one_)" identifier (argument_list "(_one_)" ( identifier )))) ;) (expression_statement "result = bc_copy_num(_zero_);" (assignment_expression "result = bc_copy_num(_zero_)" identifier = (call_expression "bc_copy_num(_zero_)" identifier (argument_list "(_zero_)" ( identifier )))) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (if_statement "if ((int)uVar20 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar13;\n            bc_multiply(result,mult,&result,0);\n            bc_int2num(&temp,uVar20);\n            bc_add(result,temp,&result,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            uVar12 = pc.pc_addr + 1;\n            uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n            pc.pc_addr = uVar12;\n            iVar13 = local_58;\n            if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;\n            uVar20 = uVar19;\n            if (0x23 < (int)uVar19) goto LAB_00017a9d;\n          }\n        } while (uVar20 < 0x24);\n      }" if (parenthesized_expression "((int)uVar20 < 0x24)" ( (binary_expression "(int)uVar20 < 0x24" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        do {\n          while( true ) {\n            local_58 = iVar13;\n            bc_multiply(result,mult,&result,0);\n            bc_int2num(&temp,uVar20);\n            bc_add(result,temp,&result,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            uVar12 = pc.pc_addr + 1;\n            uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n            pc.pc_addr = uVar12;\n            iVar13 = local_58;\n            if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;\n            uVar20 = uVar19;\n            if (0x23 < (int)uVar19) goto LAB_00017a9d;\n          }\n        } while (uVar20 < 0x24);\n      }" { (do_statement "do {\n          while( true ) {\n            local_58 = iVar13;\n            bc_multiply(result,mult,&result,0);\n            bc_int2num(&temp,uVar20);\n            bc_add(result,temp,&result,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            uVar12 = pc.pc_addr + 1;\n            uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n            pc.pc_addr = uVar12;\n            iVar13 = local_58;\n            if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;\n            uVar20 = uVar19;\n            if (0x23 < (int)uVar19) goto LAB_00017a9d;\n          }\n        } while (uVar20 < 0x24);" do (compound_statement "{\n          while( true ) {\n            local_58 = iVar13;\n            bc_multiply(result,mult,&result,0);\n            bc_int2num(&temp,uVar20);\n            bc_add(result,temp,&result,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            uVar12 = pc.pc_addr + 1;\n            uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n            pc.pc_addr = uVar12;\n            iVar13 = local_58;\n            if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;\n            uVar20 = uVar19;\n            if (0x23 < (int)uVar19) goto LAB_00017a9d;\n          }\n        }" { (while_statement "while( true ) {\n            local_58 = iVar13;\n            bc_multiply(result,mult,&result,0);\n            bc_int2num(&temp,uVar20);\n            bc_add(result,temp,&result,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            uVar12 = pc.pc_addr + 1;\n            uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n            pc.pc_addr = uVar12;\n            iVar13 = local_58;\n            if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;\n            uVar20 = uVar19;\n            if (0x23 < (int)uVar19) goto LAB_00017a9d;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            local_58 = iVar13;\n            bc_multiply(result,mult,&result,0);\n            bc_int2num(&temp,uVar20);\n            bc_add(result,temp,&result,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            uVar12 = pc.pc_addr + 1;\n            uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];\n            pc.pc_addr = uVar12;\n            iVar13 = local_58;\n            if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;\n            uVar20 = uVar19;\n            if (0x23 < (int)uVar19) goto LAB_00017a9d;\n          }" { (expression_statement "local_58 = iVar13;" (assignment_expression "local_58 = iVar13" identifier = identifier) ;) (expression_statement "bc_multiply(result,mult,&result,0);" (call_expression "bc_multiply(result,mult,&result,0)" identifier (argument_list "(result,mult,&result,0)" ( identifier , identifier , (pointer_expression "&result" & identifier) , number_literal ))) ;) (expression_statement "bc_int2num(&temp,uVar20);" (call_expression "bc_int2num(&temp,uVar20)" identifier (argument_list "(&temp,uVar20)" ( (pointer_expression "&temp" & identifier) , identifier ))) ;) (expression_statement "bc_add(result,temp,&result,0);" (call_expression "bc_add(result,temp,&result,0)" identifier (argument_list "(result,temp,&result,0)" ( identifier , identifier , (pointer_expression "&result" & identifier) , number_literal ))) ;) (expression_statement "bc_multiply(divisor,mult,&divisor,0);" (call_expression "bc_multiply(divisor,mult,&divisor,0)" identifier (argument_list "(divisor,mult,&divisor,0)" ( identifier , identifier , (pointer_expression "&divisor" & identifier) , number_literal ))) ;) (expression_statement "local_58 = local_58 + 1;" (assignment_expression "local_58 = local_58 + 1" identifier = (binary_expression "local_58 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = pc.pc_addr + 1;" (assignment_expression "uVar12 = pc.pc_addr + 1" identifier = (binary_expression "pc.pc_addr + 1" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (expression_statement "uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr];" (assignment_expression "uVar20 = (uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]" identifier = (cast_expression "(uint)(byte)functions[pc.pc_func].f_body[pc.pc_addr]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)functions[pc.pc_func].f_body[pc.pc_addr]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "functions[pc.pc_func].f_body[pc.pc_addr]" (field_expression "functions[pc.pc_func].f_body" (subscript_expression "functions[pc.pc_func]" identifier [ (field_expression "pc.pc_func" identifier . field_identifier) ]) . field_identifier) [ (field_expression "pc.pc_addr" identifier . field_identifier) ])))) ;) (expression_statement "pc.pc_addr = uVar12;" (assignment_expression "pc.pc_addr = uVar12" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "iVar13 = local_58;" (assignment_expression "iVar13 = local_58" identifier = identifier) ;) (if_statement "if ((0x23 < uVar20) || ((int)uVar20 < (int)local_70)) break;" if (parenthesized_expression "((0x23 < uVar20) || ((int)uVar20 < (int)local_70))" ( (binary_expression "(0x23 < uVar20) || ((int)uVar20 < (int)local_70)" (parenthesized_expression "(0x23 < uVar20)" ( (binary_expression "0x23 < uVar20" number_literal < identifier) )) || (parenthesized_expression "((int)uVar20 < (int)local_70)" ( (binary_expression "(int)uVar20 < (int)local_70" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)local_70" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar20 = uVar19;" (assignment_expression "uVar20 = uVar19" identifier = identifier) ;) (if_statement "if (0x23 < (int)uVar19) goto LAB_00017a9d;" if (parenthesized_expression "(0x23 < (int)uVar19)" ( (binary_expression "0x23 < (int)uVar19" number_literal < (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00017a9d;" goto statement_identifier ;)) })) }) while (parenthesized_expression "(uVar20 < 0x24)" ( (binary_expression "uVar20 < 0x24" identifier < number_literal) )) ;) })) (goto_statement "goto LAB_00017a9d;" goto statement_identifier ;) }))) (goto_statement "goto LAB_0001720b;" goto statement_identifier ;)) (case_statement "case 'L':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    load_array(uVar12);\n    break;" case (char_literal "'L'" ' character ') : (expression_statement "uVar12 = (uint)(byte)local_70[uVar19];" (assignment_expression "uVar12 = (uint)(byte)local_70[uVar19]" identifier = (cast_expression "(uint)(byte)local_70[uVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[uVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[uVar19]" identifier [ identifier ])))) ;) (expression_statement "uVar20 = pc.pc_addr + 2;" (assignment_expression "uVar20 = pc.pc_addr + 2" identifier = (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (if_statement "if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_70[uVar19] < '\0')" ( (binary_expression "local_70[uVar19] < '\0'" (subscript_expression "local_70[uVar19]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }" { (expression_statement "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];" (assignment_expression "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2]" identifier = (binary_expression "(uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2]" (binary_expression "(uVar12 & 0x7f) * 0x100" (parenthesized_expression "(uVar12 & 0x7f)" ( (binary_expression "uVar12 & 0x7f" identifier & number_literal) )) * number_literal) + (cast_expression "(uint)(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))))) ;) (expression_statement "uVar20 = pc.pc_addr + 3;" (assignment_expression "uVar20 = pc.pc_addr + 3" identifier = (binary_expression "pc.pc_addr + 3" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) })) (expression_statement "pc.pc_addr = uVar20;" (assignment_expression "pc.pc_addr = uVar20" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "load_array(uVar12);" (call_expression "load_array(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'M':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    decr_array(uVar12);\n    break;" case (char_literal "'M'" ' character ') : (expression_statement "uVar12 = (uint)(byte)local_70[uVar19];" (assignment_expression "uVar12 = (uint)(byte)local_70[uVar19]" identifier = (cast_expression "(uint)(byte)local_70[uVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[uVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[uVar19]" identifier [ identifier ])))) ;) (expression_statement "uVar20 = pc.pc_addr + 2;" (assignment_expression "uVar20 = pc.pc_addr + 2" identifier = (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (if_statement "if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_70[uVar19] < '\0')" ( (binary_expression "local_70[uVar19] < '\0'" (subscript_expression "local_70[uVar19]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }" { (expression_statement "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];" (assignment_expression "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2]" identifier = (binary_expression "(uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2]" (binary_expression "(uVar12 & 0x7f) * 0x100" (parenthesized_expression "(uVar12 & 0x7f)" ( (binary_expression "uVar12 & 0x7f" identifier & number_literal) )) * number_literal) + (cast_expression "(uint)(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))))) ;) (expression_statement "uVar20 = pc.pc_addr + 3;" (assignment_expression "uVar20 = pc.pc_addr + 3" identifier = (binary_expression "pc.pc_addr + 3" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) })) (expression_statement "pc.pc_addr = uVar20;" (assignment_expression "pc.pc_addr = uVar20" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "decr_array(uVar12);" (call_expression "decr_array(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'O':\n    pc.pc_addr = uVar19;\n_L163:\n    uVar19 = pc.pc_addr + 1;\n    bVar2 = local_70[pc.pc_addr];\n    uVar12 = (uint)bVar2;\n    uVar20 = uVar19;\n    if (bVar2 != 0x22) {\n      if (bVar2 != 0x5c) goto LAB_000172c4;\n      pc.pc_addr = pc.pc_addr + 2;\n      uVar20 = pc.pc_addr;\n      if (local_70[uVar19] != '\"') goto code_r0x0001730b;\n    }\n    pc.pc_addr = uVar20;\n    fflush(*(FILE **)puVar5);\n    checkferror_output(*(FILE **)puVar5);\n    break;" case (char_literal "'O'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (labeled_statement "_L163:\n    uVar19 = pc.pc_addr + 1;" statement_identifier : (expression_statement "uVar19 = pc.pc_addr + 1;" (assignment_expression "uVar19 = pc.pc_addr + 1" identifier = (binary_expression "pc.pc_addr + 1" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;)) (expression_statement "bVar2 = local_70[pc.pc_addr];" (assignment_expression "bVar2 = local_70[pc.pc_addr]" identifier = (subscript_expression "local_70[pc.pc_addr]" identifier [ (field_expression "pc.pc_addr" identifier . field_identifier) ])) ;) (expression_statement "uVar12 = (uint)bVar2;" (assignment_expression "uVar12 = (uint)bVar2" identifier = (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar20 = uVar19;" (assignment_expression "uVar20 = uVar19" identifier = identifier) ;) (if_statement "if (bVar2 != 0x22) {\n      if (bVar2 != 0x5c) goto LAB_000172c4;\n      pc.pc_addr = pc.pc_addr + 2;\n      uVar20 = pc.pc_addr;\n      if (local_70[uVar19] != '\"') goto code_r0x0001730b;\n    }" if (parenthesized_expression "(bVar2 != 0x22)" ( (binary_expression "bVar2 != 0x22" identifier != number_literal) )) (compound_statement "{\n      if (bVar2 != 0x5c) goto LAB_000172c4;\n      pc.pc_addr = pc.pc_addr + 2;\n      uVar20 = pc.pc_addr;\n      if (local_70[uVar19] != '\"') goto code_r0x0001730b;\n    }" { (if_statement "if (bVar2 != 0x5c) goto LAB_000172c4;" if (parenthesized_expression "(bVar2 != 0x5c)" ( (binary_expression "bVar2 != 0x5c" identifier != number_literal) )) (goto_statement "goto LAB_000172c4;" goto statement_identifier ;)) (expression_statement "pc.pc_addr = pc.pc_addr + 2;" (assignment_expression "pc.pc_addr = pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) = (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (expression_statement "uVar20 = pc.pc_addr;" (assignment_expression "uVar20 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;) (if_statement "if (local_70[uVar19] != '\"') goto code_r0x0001730b;" if (parenthesized_expression "(local_70[uVar19] != '\"')" ( (binary_expression "local_70[uVar19] != '\"'" (subscript_expression "local_70[uVar19]" identifier [ identifier ]) != (char_literal "'\"'" ' escape_sequence ')) )) (goto_statement "goto code_r0x0001730b;" goto statement_identifier ;)) })) (expression_statement "pc.pc_addr = uVar20;" (assignment_expression "pc.pc_addr = uVar20" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "fflush(*(FILE **)puVar5);" (call_expression "fflush(*(FILE **)puVar5)" identifier (argument_list "(*(FILE **)puVar5)" ( (pointer_expression "*(FILE **)puVar5" * (cast_expression "(FILE **)puVar5" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "checkferror_output(*(FILE **)puVar5);" (call_expression "checkferror_output(*(FILE **)puVar5)" identifier (argument_list "(*(FILE **)puVar5)" ( (pointer_expression "*(FILE **)puVar5" * (cast_expression "(FILE **)puVar5" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'P':" case (char_literal "'P'" ' character ') :) (case_statement "case 'W':\n    pc.pc_addr = uVar19;\n    bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_0002bffc,std_only);\n    if (cVar9 == 'W') {\n      out_char(10);\n    }\n    store_var(4);\n    puVar6 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    checkferror_output(*(FILE **)puVar6);\n    pop();\n    break;" case (char_literal "'W'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_0002bffc,std_only);" (call_expression "bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_0002bffc,std_only)" identifier (argument_list "(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_0002bffc,std_only)" ( (field_expression "ex_stack->s_num" identifier -> field_identifier) , identifier , (cast_expression "(_func_void_int *)PTR_out_char_0002bffc" ( (type_descriptor "_func_void_int *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (if_statement "if (cVar9 == 'W') {\n      out_char(10);\n    }" if (parenthesized_expression "(cVar9 == 'W')" ( (binary_expression "cVar9 == 'W'" identifier == (char_literal "'W'" ' character ')) )) (compound_statement "{\n      out_char(10);\n    }" { (expression_statement "out_char(10);" (call_expression "out_char(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (expression_statement "store_var(4);" (call_expression "store_var(4)" identifier (argument_list "(4)" ( number_literal ))) ;) (expression_statement "puVar6 = PTR_stdout_0002bfec;" (assignment_expression "puVar6 = PTR_stdout_0002bfec" identifier = identifier) ;) (expression_statement "fflush(*(FILE **)PTR_stdout_0002bfec);" (call_expression "fflush(*(FILE **)PTR_stdout_0002bfec)" identifier (argument_list "(*(FILE **)PTR_stdout_0002bfec)" ( (pointer_expression "*(FILE **)PTR_stdout_0002bfec" * (cast_expression "(FILE **)PTR_stdout_0002bfec" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "checkferror_output(*(FILE **)puVar6);" (call_expression "checkferror_output(*(FILE **)puVar6)" identifier (argument_list "(*(FILE **)puVar6)" ( (pointer_expression "*(FILE **)puVar6" * (cast_expression "(FILE **)puVar6" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'R':\n    if (pbVar10 == (bc_function *)0x0) {\n      pcVar14 = "Return from main program.";\n      pc.pc_addr = uVar19;\n      goto LAB_0001732f;\n    }\n    pc.pc_addr = uVar19;\n    pop_vars(local_7c->f_autos);\n    pop_vars(functions[pc.pc_func].f_params);\n    fpop();\n    pc.pc_addr = fpop();\n    pbVar10 = (bc_function *)fpop();\n    local_78 = (bc_num *)functions[(int)pbVar10].f_code_size;\n    pbVar18 = functions;\n    pc.pc_func = (uint)pbVar10;\n    goto _L141;" case (char_literal "'R'" ' character ') : (if_statement "if (pbVar10 == (bc_function *)0x0) {\n      pcVar14 = "Return from main program.";\n      pc.pc_addr = uVar19;\n      goto LAB_0001732f;\n    }" if (parenthesized_expression "(pbVar10 == (bc_function *)0x0)" ( (binary_expression "pbVar10 == (bc_function *)0x0" identifier == (cast_expression "(bc_function *)0x0" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar14 = "Return from main program.";\n      pc.pc_addr = uVar19;\n      goto LAB_0001732f;\n    }" { (expression_statement "pcVar14 = "Return from main program.";" (assignment_expression "pcVar14 = "Return from main program."" identifier = (string_literal ""Return from main program."" " string_content ")) ;) (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (goto_statement "goto LAB_0001732f;" goto statement_identifier ;) })) (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "pop_vars(local_7c->f_autos);" (call_expression "pop_vars(local_7c->f_autos)" identifier (argument_list "(local_7c->f_autos)" ( (field_expression "local_7c->f_autos" identifier -> field_identifier) ))) ;) (expression_statement "pop_vars(functions[pc.pc_func].f_params);" (call_expression "pop_vars(functions[pc.pc_func].f_params)" identifier (argument_list "(functions[pc.pc_func].f_params)" ( (field_expression "functions[pc.pc_func].f_params" (subscript_expression "functions[pc.pc_func]" identifier [ (field_expression "pc.pc_func" identifier . field_identifier) ]) . field_identifier) ))) ;) (expression_statement "fpop();" (call_expression "fpop()" identifier (argument_list "()" ( ))) ;) (expression_statement "pc.pc_addr = fpop();" (assignment_expression "pc.pc_addr = fpop()" (field_expression "pc.pc_addr" identifier . field_identifier) = (call_expression "fpop()" identifier (argument_list "()" ( )))) ;) (expression_statement "pbVar10 = (bc_function *)fpop();" (assignment_expression "pbVar10 = (bc_function *)fpop()" identifier = (cast_expression "(bc_function *)fpop()" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "fpop()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_78 = (bc_num *)functions[(int)pbVar10].f_code_size;" (assignment_expression "local_78 = (bc_num *)functions[(int)pbVar10].f_code_size" identifier = (cast_expression "(bc_num *)functions[(int)pbVar10].f_code_size" ( (type_descriptor "bc_num *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "functions[(int)pbVar10].f_code_size" (subscript_expression "functions[(int)pbVar10]" identifier [ (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier))) ;) (expression_statement "pbVar18 = functions;" (assignment_expression "pbVar18 = functions" identifier = identifier) ;) (expression_statement "pc.pc_func = (uint)pbVar10;" (assignment_expression "pc.pc_func = (uint)pbVar10" (field_expression "pc.pc_func" identifier . field_identifier) = (cast_expression "(uint)pbVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto _L141;" goto statement_identifier ;)) (case_statement "case 'S':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    store_array(uVar12);\n    break;" case (char_literal "'S'" ' character ') : (expression_statement "uVar12 = (uint)(byte)local_70[uVar19];" (assignment_expression "uVar12 = (uint)(byte)local_70[uVar19]" identifier = (cast_expression "(uint)(byte)local_70[uVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[uVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[uVar19]" identifier [ identifier ])))) ;) (expression_statement "uVar20 = pc.pc_addr + 2;" (assignment_expression "uVar20 = pc.pc_addr + 2" identifier = (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (if_statement "if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_70[uVar19] < '\0')" ( (binary_expression "local_70[uVar19] < '\0'" (subscript_expression "local_70[uVar19]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }" { (expression_statement "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];" (assignment_expression "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2]" identifier = (binary_expression "(uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2]" (binary_expression "(uVar12 & 0x7f) * 0x100" (parenthesized_expression "(uVar12 & 0x7f)" ( (binary_expression "uVar12 & 0x7f" identifier & number_literal) )) * number_literal) + (cast_expression "(uint)(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))))) ;) (expression_statement "uVar20 = pc.pc_addr + 3;" (assignment_expression "uVar20 = pc.pc_addr + 3" identifier = (binary_expression "pc.pc_addr + 3" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) })) (expression_statement "pc.pc_addr = uVar20;" (assignment_expression "pc.pc_addr = uVar20" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "store_array(uVar12);" (call_expression "store_array(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '^':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    if ((cVar9 != '\0') && (cVar9 = bc_is_neg(ex_stack->s_num), cVar9 != '\0')) {\n      rt_error("divide by zero");\n    }\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;" case (char_literal "'^'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar9 = check_stack(2);" (assignment_expression "cVar9 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar9 == '\0') goto LAB_00016998;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016998;" goto statement_identifier ;)) (expression_statement "bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);" (call_expression "bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale)" identifier (argument_list "(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale)" ( (field_expression "ex_stack->s_next->s_num" (field_expression "ex_stack->s_next" identifier -> field_identifier) -> field_identifier) , (field_expression "ex_stack->s_num" identifier -> field_identifier) , (pointer_expression "&temp_num" & identifier) , identifier ))) ;) (expression_statement "cVar9 = bc_is_zero(ex_stack->s_next->s_num);" (assignment_expression "cVar9 = bc_is_zero(ex_stack->s_next->s_num)" identifier = (call_expression "bc_is_zero(ex_stack->s_next->s_num)" identifier (argument_list "(ex_stack->s_next->s_num)" ( (field_expression "ex_stack->s_next->s_num" (field_expression "ex_stack->s_next" identifier -> field_identifier) -> field_identifier) )))) ;) (if_statement "if ((cVar9 != '\0') && (cVar9 = bc_is_neg(ex_stack->s_num), cVar9 != '\0')) {\n      rt_error("divide by zero");\n    }" if (parenthesized_expression "((cVar9 != '\0') && (cVar9 = bc_is_neg(ex_stack->s_num), cVar9 != '\0'))" ( (binary_expression "(cVar9 != '\0') && (cVar9 = bc_is_neg(ex_stack->s_num), cVar9 != '\0')" (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar9 = bc_is_neg(ex_stack->s_num), cVar9 != '\0')" ( (comma_expression "cVar9 = bc_is_neg(ex_stack->s_num), cVar9 != '\0'" (assignment_expression "cVar9 = bc_is_neg(ex_stack->s_num)" identifier = (call_expression "bc_is_neg(ex_stack->s_num)" identifier (argument_list "(ex_stack->s_num)" ( (field_expression "ex_stack->s_num" identifier -> field_identifier) )))) , (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      rt_error("divide by zero");\n    }" { (expression_statement "rt_error("divide by zero");" (call_expression "rt_error("divide by zero")" identifier (argument_list "("divide by zero")" ( (string_literal ""divide by zero"" " string_content ") ))) ;) })) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (expression_statement "push_num(temp_num);" (call_expression "push_num(temp_num)" identifier (argument_list "(temp_num)" ( identifier ))) ;) (expression_statement "bc_init_num(&temp_num);" (call_expression "bc_init_num(&temp_num)" identifier (argument_list "(&temp_num)" ( (pointer_expression "&temp_num" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'c':\n    goto _L156;" case (char_literal "'c'" ' character ') : (goto_statement "goto _L156;" goto statement_identifier ;)) (case_statement "case 'd':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    decr_var(uVar12);\n    break;" case (char_literal "'d'" ' character ') : (expression_statement "uVar12 = (uint)(byte)local_70[uVar19];" (assignment_expression "uVar12 = (uint)(byte)local_70[uVar19]" identifier = (cast_expression "(uint)(byte)local_70[uVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[uVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[uVar19]" identifier [ identifier ])))) ;) (expression_statement "uVar20 = pc.pc_addr + 2;" (assignment_expression "uVar20 = pc.pc_addr + 2" identifier = (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (if_statement "if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_70[uVar19] < '\0')" ( (binary_expression "local_70[uVar19] < '\0'" (subscript_expression "local_70[uVar19]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }" { (expression_statement "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];" (assignment_expression "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2]" identifier = (binary_expression "(uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2]" (binary_expression "(uVar12 & 0x7f) * 0x100" (parenthesized_expression "(uVar12 & 0x7f)" ( (binary_expression "uVar12 & 0x7f" identifier & number_literal) )) * number_literal) + (cast_expression "(uint)(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))))) ;) (expression_statement "uVar20 = pc.pc_addr + 3;" (assignment_expression "uVar20 = pc.pc_addr + 3" identifier = (binary_expression "pc.pc_addr + 3" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) })) (expression_statement "pc.pc_addr = uVar20;" (assignment_expression "pc.pc_addr = uVar20" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "decr_var(uVar12);" (call_expression "decr_var(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'h':\n    pc.pc_addr = uVar19;\n    bc_exit(0);\n    break;" case (char_literal "'h'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "bc_exit(0);" (call_expression "bc_exit(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'i':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    incr_var(uVar12);\n    break;" case (char_literal "'i'" ' character ') : (expression_statement "uVar12 = (uint)(byte)local_70[uVar19];" (assignment_expression "uVar12 = (uint)(byte)local_70[uVar19]" identifier = (cast_expression "(uint)(byte)local_70[uVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[uVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[uVar19]" identifier [ identifier ])))) ;) (expression_statement "uVar20 = pc.pc_addr + 2;" (assignment_expression "uVar20 = pc.pc_addr + 2" identifier = (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (if_statement "if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_70[uVar19] < '\0')" ( (binary_expression "local_70[uVar19] < '\0'" (subscript_expression "local_70[uVar19]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }" { (expression_statement "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];" (assignment_expression "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2]" identifier = (binary_expression "(uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2]" (binary_expression "(uVar12 & 0x7f) * 0x100" (parenthesized_expression "(uVar12 & 0x7f)" ( (binary_expression "uVar12 & 0x7f" identifier & number_literal) )) * number_literal) + (cast_expression "(uint)(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))))) ;) (expression_statement "uVar20 = pc.pc_addr + 3;" (assignment_expression "uVar20 = pc.pc_addr + 3" identifier = (binary_expression "pc.pc_addr + 3" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) })) (expression_statement "pc.pc_addr = uVar20;" (assignment_expression "pc.pc_addr = uVar20" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "incr_var(uVar12);" (call_expression "incr_var(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'l':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    load_var(uVar12);\n    break;" case (char_literal "'l'" ' character ') : (expression_statement "uVar12 = (uint)(byte)local_70[uVar19];" (assignment_expression "uVar12 = (uint)(byte)local_70[uVar19]" identifier = (cast_expression "(uint)(byte)local_70[uVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[uVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[uVar19]" identifier [ identifier ])))) ;) (expression_statement "uVar20 = pc.pc_addr + 2;" (assignment_expression "uVar20 = pc.pc_addr + 2" identifier = (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (if_statement "if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_70[uVar19] < '\0')" ( (binary_expression "local_70[uVar19] < '\0'" (subscript_expression "local_70[uVar19]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }" { (expression_statement "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];" (assignment_expression "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2]" identifier = (binary_expression "(uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2]" (binary_expression "(uVar12 & 0x7f) * 0x100" (parenthesized_expression "(uVar12 & 0x7f)" ( (binary_expression "uVar12 & 0x7f" identifier & number_literal) )) * number_literal) + (cast_expression "(uint)(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))))) ;) (expression_statement "uVar20 = pc.pc_addr + 3;" (assignment_expression "uVar20 = pc.pc_addr + 3" identifier = (binary_expression "pc.pc_addr + 3" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) })) (expression_statement "pc.pc_addr = uVar20;" (assignment_expression "pc.pc_addr = uVar20" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "load_var(uVar12);" (call_expression "load_var(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'n':\n    pc.pc_addr = uVar19;\n    bc_sub(_zero_,ex_stack->s_num,&ex_stack->s_num,0);\n    break;" case (char_literal "'n'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "bc_sub(_zero_,ex_stack->s_num,&ex_stack->s_num,0);" (call_expression "bc_sub(_zero_,ex_stack->s_num,&ex_stack->s_num,0)" identifier (argument_list "(_zero_,ex_stack->s_num,&ex_stack->s_num,0)" ( identifier , (field_expression "ex_stack->s_num" identifier -> field_identifier) , (pointer_expression "&ex_stack->s_num" & (field_expression "ex_stack->s_num" identifier -> field_identifier)) , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'p':\n    pc.pc_addr = uVar19;\n    pop();\n    goto LAB_00016998;" case (char_literal "'p'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_00016998;" goto statement_identifier ;)) (case_statement "case 's':\n    uVar12 = (uint)(byte)local_70[uVar19];\n    uVar20 = pc.pc_addr + 2;\n    if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar20;\n    store_var(uVar12);\n    break;" case (char_literal "'s'" ' character ') : (expression_statement "uVar12 = (uint)(byte)local_70[uVar19];" (assignment_expression "uVar12 = (uint)(byte)local_70[uVar19]" identifier = (cast_expression "(uint)(byte)local_70[uVar19]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[uVar19]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[uVar19]" identifier [ identifier ])))) ;) (expression_statement "uVar20 = pc.pc_addr + 2;" (assignment_expression "uVar20 = pc.pc_addr + 2" identifier = (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (if_statement "if (local_70[uVar19] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_70[uVar19] < '\0')" ( (binary_expression "local_70[uVar19] < '\0'" (subscript_expression "local_70[uVar19]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];\n      uVar20 = pc.pc_addr + 3;\n    }" { (expression_statement "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2];" (assignment_expression "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2]" identifier = (binary_expression "(uVar12 & 0x7f) * 0x100 + (uint)(byte)local_70[pc.pc_addr + 2]" (binary_expression "(uVar12 & 0x7f) * 0x100" (parenthesized_expression "(uVar12 & 0x7f)" ( (binary_expression "uVar12 & 0x7f" identifier & number_literal) )) * number_literal) + (cast_expression "(uint)(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_70[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_70[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))))) ;) (expression_statement "uVar20 = pc.pc_addr + 3;" (assignment_expression "uVar20 = pc.pc_addr + 3" identifier = (binary_expression "pc.pc_addr + 3" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) })) (expression_statement "pc.pc_addr = uVar20;" (assignment_expression "pc.pc_addr = uVar20" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "store_var(uVar12);" (call_expression "store_var(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'w':\n    bVar2 = local_70[uVar19];\n    pc.pc_addr = pc.pc_addr + 2;\n    while (puVar6 = PTR_stdout_0002bfec, bVar2 != 0x22) {\n      out_schar((uint)bVar2);\n      bVar2 = functions[pc.pc_func].f_body[pc.pc_addr];\n      pc.pc_addr = pc.pc_addr + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    checkferror_output(*(FILE **)puVar6);\n    break;" case (char_literal "'w'" ' character ') : (expression_statement "bVar2 = local_70[uVar19];" (assignment_expression "bVar2 = local_70[uVar19]" identifier = (subscript_expression "local_70[uVar19]" identifier [ identifier ])) ;) (expression_statement "pc.pc_addr = pc.pc_addr + 2;" (assignment_expression "pc.pc_addr = pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) = (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (while_statement "while (puVar6 = PTR_stdout_0002bfec, bVar2 != 0x22) {\n      out_schar((uint)bVar2);\n      bVar2 = functions[pc.pc_func].f_body[pc.pc_addr];\n      pc.pc_addr = pc.pc_addr + 1;\n    }" while (parenthesized_expression "(puVar6 = PTR_stdout_0002bfec, bVar2 != 0x22)" ( (comma_expression "puVar6 = PTR_stdout_0002bfec, bVar2 != 0x22" (assignment_expression "puVar6 = PTR_stdout_0002bfec" identifier = identifier) , (binary_expression "bVar2 != 0x22" identifier != number_literal)) )) (compound_statement "{\n      out_schar((uint)bVar2);\n      bVar2 = functions[pc.pc_func].f_body[pc.pc_addr];\n      pc.pc_addr = pc.pc_addr + 1;\n    }" { (expression_statement "out_schar((uint)bVar2);" (call_expression "out_schar((uint)bVar2)" identifier (argument_list "((uint)bVar2)" ( (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) ))) ;) (expression_statement "bVar2 = functions[pc.pc_func].f_body[pc.pc_addr];" (assignment_expression "bVar2 = functions[pc.pc_func].f_body[pc.pc_addr]" identifier = (subscript_expression "functions[pc.pc_func].f_body[pc.pc_addr]" (field_expression "functions[pc.pc_func].f_body" (subscript_expression "functions[pc.pc_func]" identifier [ (field_expression "pc.pc_func" identifier . field_identifier) ]) . field_identifier) [ (field_expression "pc.pc_addr" identifier . field_identifier) ])) ;) (expression_statement "pc.pc_addr = pc.pc_addr + 1;" (assignment_expression "pc.pc_addr = pc.pc_addr + 1" (field_expression "pc.pc_addr" identifier . field_identifier) = (binary_expression "pc.pc_addr + 1" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) })) (expression_statement "fflush(*(FILE **)PTR_stdout_0002bfec);" (call_expression "fflush(*(FILE **)PTR_stdout_0002bfec)" identifier (argument_list "(*(FILE **)PTR_stdout_0002bfec)" ( (pointer_expression "*(FILE **)PTR_stdout_0002bfec" * (cast_expression "(FILE **)PTR_stdout_0002bfec" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "checkferror_output(*(FILE **)puVar6);" (call_expression "checkferror_output(*(FILE **)puVar6)" identifier (argument_list "(*(FILE **)puVar6)" ( (pointer_expression "*(FILE **)puVar6" * (cast_expression "(FILE **)puVar6" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'x':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 != '\0') {\n      ppeVar1 = &ex_stack->s_next;\n      pbVar3 = ex_stack->s_num;\n      ex_stack->s_num = (*ppeVar1)->s_num;\n      (*ppeVar1)->s_num = pbVar3;\n    }\n    goto LAB_00016998;" case (char_literal "'x'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar9 = check_stack(2);" (assignment_expression "cVar9 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar9 != '\0') {\n      ppeVar1 = &ex_stack->s_next;\n      pbVar3 = ex_stack->s_num;\n      ex_stack->s_num = (*ppeVar1)->s_num;\n      (*ppeVar1)->s_num = pbVar3;\n    }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      ppeVar1 = &ex_stack->s_next;\n      pbVar3 = ex_stack->s_num;\n      ex_stack->s_num = (*ppeVar1)->s_num;\n      (*ppeVar1)->s_num = pbVar3;\n    }" { (expression_statement "ppeVar1 = &ex_stack->s_next;" (assignment_expression "ppeVar1 = &ex_stack->s_next" identifier = (pointer_expression "&ex_stack->s_next" & (field_expression "ex_stack->s_next" identifier -> field_identifier))) ;) (expression_statement "pbVar3 = ex_stack->s_num;" (assignment_expression "pbVar3 = ex_stack->s_num" identifier = (field_expression "ex_stack->s_num" identifier -> field_identifier)) ;) (expression_statement "ex_stack->s_num = (*ppeVar1)->s_num;" (assignment_expression "ex_stack->s_num = (*ppeVar1)->s_num" (field_expression "ex_stack->s_num" identifier -> field_identifier) = (field_expression "(*ppeVar1)->s_num" (parenthesized_expression "(*ppeVar1)" ( (pointer_expression "*ppeVar1" * identifier) )) -> field_identifier)) ;) (expression_statement "(*ppeVar1)->s_num = pbVar3;" (assignment_expression "(*ppeVar1)->s_num = pbVar3" (field_expression "(*ppeVar1)->s_num" (parenthesized_expression "(*ppeVar1)" ( (pointer_expression "*ppeVar1" * identifier) )) -> field_identifier) = identifier) ;) })) (goto_statement "goto LAB_00016998;" goto statement_identifier ;)) (case_statement "case '{':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 < 1;\n    pop();\n    goto LAB_000167c5;" case (char_literal "'{'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar9 = check_stack(2);" (assignment_expression "cVar9 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar9 == '\0') goto LAB_00016998;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016998;" goto statement_identifier ;)) (expression_statement "iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);" (assignment_expression "iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num)" identifier = (call_expression "bc_compare(ex_stack->s_next->s_num,ex_stack->s_num)" identifier (argument_list "(ex_stack->s_next->s_num,ex_stack->s_num)" ( (field_expression "ex_stack->s_next->s_num" (field_expression "ex_stack->s_next" identifier -> field_identifier) -> field_identifier) , (field_expression "ex_stack->s_num" identifier -> field_identifier) )))) ;) (expression_statement "c_code = iVar13 < 1;" (assignment_expression "c_code = iVar13 < 1" identifier = (binary_expression "iVar13 < 1" identifier < number_literal)) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_000167c5;" goto statement_identifier ;)) (case_statement "case '|':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    cVar9 = bc_is_zero(ex_stack->s_next->s_num);\n    bVar21 = true;\n    if (cVar9 != '\0') {\n      cVar9 = bc_is_zero(ex_stack->s_num);\n      bVar21 = cVar9 == '\0';\n    }\n    c_code = bVar21;\n    pop();\n    goto LAB_000167c5;" case (char_literal "'|'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar9 = check_stack(2);" (assignment_expression "cVar9 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar9 == '\0') goto LAB_00016998;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016998;" goto statement_identifier ;)) (expression_statement "cVar9 = bc_is_zero(ex_stack->s_next->s_num);" (assignment_expression "cVar9 = bc_is_zero(ex_stack->s_next->s_num)" identifier = (call_expression "bc_is_zero(ex_stack->s_next->s_num)" identifier (argument_list "(ex_stack->s_next->s_num)" ( (field_expression "ex_stack->s_next->s_num" (field_expression "ex_stack->s_next" identifier -> field_identifier) -> field_identifier) )))) ;) (expression_statement "bVar21 = true;" (assignment_expression "bVar21 = true" identifier = true) ;) (if_statement "if (cVar9 != '\0') {\n      cVar9 = bc_is_zero(ex_stack->s_num);\n      bVar21 = cVar9 == '\0';\n    }" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar9 = bc_is_zero(ex_stack->s_num);\n      bVar21 = cVar9 == '\0';\n    }" { (expression_statement "cVar9 = bc_is_zero(ex_stack->s_num);" (assignment_expression "cVar9 = bc_is_zero(ex_stack->s_num)" identifier = (call_expression "bc_is_zero(ex_stack->s_num)" identifier (argument_list "(ex_stack->s_num)" ( (field_expression "ex_stack->s_num" identifier -> field_identifier) )))) ;) (expression_statement "bVar21 = cVar9 == '\0';" (assignment_expression "bVar21 = cVar9 == '\0'" identifier = (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) })) (expression_statement "c_code = bVar21;" (assignment_expression "c_code = bVar21" identifier = identifier) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_000167c5;" goto statement_identifier ;)) (case_statement "case '}':\n    pc.pc_addr = uVar19;\n    cVar9 = check_stack(2);\n    if (cVar9 == '\0') goto LAB_00016998;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = (byte)~(byte)((uint)iVar13 >> 0x18) >> 7;\n    pop();\nLAB_000167c5:\n    cVar9 = c_code;\n    bc_free_num(&ex_stack->s_num);\n    peVar7 = ex_stack;\n    if (cVar9 == '\0') {\n      pbVar11 = bc_copy_num(_zero_);\n      peVar7->s_num = pbVar11;\n    }\n    else {\n      pbVar11 = bc_copy_num(_one_);\n      peVar7->s_num = pbVar11;\n    }" case (char_literal "'}'" ' character ') : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar9 = check_stack(2);" (assignment_expression "cVar9 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar9 == '\0') goto LAB_00016998;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016998;" goto statement_identifier ;)) (expression_statement "iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);" (assignment_expression "iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num)" identifier = (call_expression "bc_compare(ex_stack->s_next->s_num,ex_stack->s_num)" identifier (argument_list "(ex_stack->s_next->s_num,ex_stack->s_num)" ( (field_expression "ex_stack->s_next->s_num" (field_expression "ex_stack->s_next" identifier -> field_identifier) -> field_identifier) , (field_expression "ex_stack->s_num" identifier -> field_identifier) )))) ;) (expression_statement "c_code = (byte)~(byte)((uint)iVar13 >> 0x18) >> 7;" (assignment_expression "c_code = (byte)~(byte)((uint)iVar13 >> 0x18) >> 7" identifier = (binary_expression "(byte)~(byte)((uint)iVar13 >> 0x18) >> 7" (cast_expression "(byte)~(byte)((uint)iVar13 >> 0x18)" ( (type_descriptor "byte" type_identifier) ) (unary_expression "~(byte)((uint)iVar13 >> 0x18)" ~ (call_expression "(byte)((uint)iVar13 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)iVar13 >> 0x18)" ( (binary_expression "(uint)iVar13 >> 0x18" (cast_expression "(uint)iVar13" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))))) >> number_literal)) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_000167c5:\n    cVar9 = c_code;" statement_identifier : (expression_statement "cVar9 = c_code;" (assignment_expression "cVar9 = c_code" identifier = identifier) ;)) (expression_statement "bc_free_num(&ex_stack->s_num);" (call_expression "bc_free_num(&ex_stack->s_num)" identifier (argument_list "(&ex_stack->s_num)" ( (pointer_expression "&ex_stack->s_num" & (field_expression "ex_stack->s_num" identifier -> field_identifier)) ))) ;) (expression_statement "peVar7 = ex_stack;" (assignment_expression "peVar7 = ex_stack" identifier = identifier) ;) (if_statement "if (cVar9 == '\0') {\n      pbVar11 = bc_copy_num(_zero_);\n      peVar7->s_num = pbVar11;\n    }\n    else {\n      pbVar11 = bc_copy_num(_one_);\n      peVar7->s_num = pbVar11;\n    }" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pbVar11 = bc_copy_num(_zero_);\n      peVar7->s_num = pbVar11;\n    }" { (expression_statement "pbVar11 = bc_copy_num(_zero_);" (assignment_expression "pbVar11 = bc_copy_num(_zero_)" identifier = (call_expression "bc_copy_num(_zero_)" identifier (argument_list "(_zero_)" ( identifier )))) ;) (expression_statement "peVar7->s_num = pbVar11;" (assignment_expression "peVar7->s_num = pbVar11" (field_expression "peVar7->s_num" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n      pbVar11 = bc_copy_num(_one_);\n      peVar7->s_num = pbVar11;\n    }" else (compound_statement "{\n      pbVar11 = bc_copy_num(_one_);\n      peVar7->s_num = pbVar11;\n    }" { (expression_statement "pbVar11 = bc_copy_num(_one_);" (assignment_expression "pbVar11 = bc_copy_num(_one_)" identifier = (call_expression "bc_copy_num(_one_)" identifier (argument_list "(_one_)" ( identifier )))) ;) (expression_statement "peVar7->s_num = pbVar11;" (assignment_expression "peVar7->s_num = pbVar11" (field_expression "peVar7->s_num" identifier -> field_identifier) = identifier) ;) })))) })) (goto_statement "goto LAB_000167f0;" goto statement_identifier ;) (labeled_statement "_L156:\n  pc.pc_addr = pc.pc_addr + 2;" statement_identifier : (expression_statement "pc.pc_addr = pc.pc_addr + 2;" (assignment_expression "pc.pc_addr = pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) = (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;)) (switch_statement "switch(local_70[uVar19]) {\n  case 'I':\n    bc_init_num(&temp);\n    bc_init_num(&result);\n    bc_init_num(&mult);\n    build = bc_copy_num(_zero_);\n    bc_int2num(&mult,iVar13);\n    iVar15 = input_char();\n    while (iVar15 == 0x7e) {\n      iVar15 = input_char();\n    }\n    if (iVar15 == 0x2b) {\n      iVar15 = input_char();\n    }\n    else if (iVar15 == 0x2d) {\n      iVar15 = input_char();\n      bVar21 = true;\n    }\n    local_78 = &temp;\n    local_7c = (bc_function *)&result;\n    iVar16 = iVar15;\n    if (iVar15 < 0x24) {\n      iVar16 = input_char();\n      if ((iVar16 < 0x24) && (iVar13 <= iVar15)) {\n        bc_int2num(&build,iVar13 + -1);\n      }\n      else {\n        bc_int2num(&build,iVar15);\n        if (0x23 < iVar16) goto LAB_00017b03;\n      }\n      local_60 = &build;\n      do {\n        if (iVar16 < iVar13) {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n        }\n        else {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n          iVar16 = iVar13 + -1;\n        }\n        bc_int2num(local_78,iVar16);\n        bc_add(result,temp,local_60,0);\n        iVar16 = input_char();\n      } while (iVar16 < 0x24);\n    }\nLAB_00017b03:\n    if (iVar16 == 0x2e) {\n      iVar16 = input_char();\n      iVar15 = iVar13 + -1;\n      if (iVar13 <= iVar16) {\n        iVar16 = iVar15;\n      }\n      bc_free_num((bc_num *)local_7c);\n      bc_free_num(local_78);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      if (iVar16 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            bc_multiply(result,mult,(bc_num *)local_7c,0);\n            bc_int2num(local_78,iVar16);\n            bc_add(result,temp,(bc_num *)local_7c,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            iVar16 = input_char();\n            if ((0x23 < iVar16) || (iVar16 < iVar13)) break;\n            iVar16 = iVar15;\n            if (0x23 < iVar15) goto LAB_00017a9d;\n          }\n        } while (iVar16 < 0x24);\n      }\nLAB_00017a9d:\n      local_7c = (bc_function *)&result;\n      bc_divide(result,divisor,(bc_num *)local_7c,local_58);\n      bc_add(build,result,&build,0);\n    }\nLAB_0001720b:\n    local_44 = &mult;\n    local_78 = &temp;\n    local_7c = (bc_function *)&result;\n    if (bVar21) {\n      bc_sub(_zero_,build,&build,0);\n    }\n    push_num(build);\n    bc_free_num(local_78);\n    bc_free_num((bc_num *)local_7c);\n    bc_free_num(local_44);\n    break;\n  default:\n    goto _L141;\n  case 'L':\n    pbVar3 = ex_stack->s_num;\n    iVar13 = pbVar3->n_scale;\n    if (((pbVar3->n_len == 1) && (iVar13 != 0)) && (*pbVar3->n_value == '\0')) {\n      bc_int2num(&ex_stack->s_num,iVar13);\n    }\n    else {\n      bc_int2num(&ex_stack->s_num,pbVar3->n_len + iVar13);\n    }\n    break;\n  case 'R':\n    iVar13 = bc_sqrt(&ex_stack->s_num,scale);\n    if (iVar13 != 0) {\nLAB_00016998:\n      local_78 = (bc_num *)functions[pc.pc_func].f_code_size;\n      pbVar10 = (bc_function *)pc.pc_func;\n      pbVar18 = functions;\n      goto _L141;\n    }\n    pcVar14 = "Square root of a negative number";\nLAB_0001732f:\n    rt_error(pcVar14);\n    break;\n  case 'S':\n    bc_int2num(&ex_stack->s_num,ex_stack->s_num->n_scale);\n    break;\n  case 'X':\n    push_copy(_zero_);\n    val = random();\n    bc_int2num(&ex_stack->s_num,val);\n  }" switch (parenthesized_expression "(local_70[uVar19])" ( (subscript_expression "local_70[uVar19]" identifier [ identifier ]) )) (compound_statement "{\n  case 'I':\n    bc_init_num(&temp);\n    bc_init_num(&result);\n    bc_init_num(&mult);\n    build = bc_copy_num(_zero_);\n    bc_int2num(&mult,iVar13);\n    iVar15 = input_char();\n    while (iVar15 == 0x7e) {\n      iVar15 = input_char();\n    }\n    if (iVar15 == 0x2b) {\n      iVar15 = input_char();\n    }\n    else if (iVar15 == 0x2d) {\n      iVar15 = input_char();\n      bVar21 = true;\n    }\n    local_78 = &temp;\n    local_7c = (bc_function *)&result;\n    iVar16 = iVar15;\n    if (iVar15 < 0x24) {\n      iVar16 = input_char();\n      if ((iVar16 < 0x24) && (iVar13 <= iVar15)) {\n        bc_int2num(&build,iVar13 + -1);\n      }\n      else {\n        bc_int2num(&build,iVar15);\n        if (0x23 < iVar16) goto LAB_00017b03;\n      }\n      local_60 = &build;\n      do {\n        if (iVar16 < iVar13) {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n        }\n        else {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n          iVar16 = iVar13 + -1;\n        }\n        bc_int2num(local_78,iVar16);\n        bc_add(result,temp,local_60,0);\n        iVar16 = input_char();\n      } while (iVar16 < 0x24);\n    }\nLAB_00017b03:\n    if (iVar16 == 0x2e) {\n      iVar16 = input_char();\n      iVar15 = iVar13 + -1;\n      if (iVar13 <= iVar16) {\n        iVar16 = iVar15;\n      }\n      bc_free_num((bc_num *)local_7c);\n      bc_free_num(local_78);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      if (iVar16 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            bc_multiply(result,mult,(bc_num *)local_7c,0);\n            bc_int2num(local_78,iVar16);\n            bc_add(result,temp,(bc_num *)local_7c,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            iVar16 = input_char();\n            if ((0x23 < iVar16) || (iVar16 < iVar13)) break;\n            iVar16 = iVar15;\n            if (0x23 < iVar15) goto LAB_00017a9d;\n          }\n        } while (iVar16 < 0x24);\n      }\nLAB_00017a9d:\n      local_7c = (bc_function *)&result;\n      bc_divide(result,divisor,(bc_num *)local_7c,local_58);\n      bc_add(build,result,&build,0);\n    }\nLAB_0001720b:\n    local_44 = &mult;\n    local_78 = &temp;\n    local_7c = (bc_function *)&result;\n    if (bVar21) {\n      bc_sub(_zero_,build,&build,0);\n    }\n    push_num(build);\n    bc_free_num(local_78);\n    bc_free_num((bc_num *)local_7c);\n    bc_free_num(local_44);\n    break;\n  default:\n    goto _L141;\n  case 'L':\n    pbVar3 = ex_stack->s_num;\n    iVar13 = pbVar3->n_scale;\n    if (((pbVar3->n_len == 1) && (iVar13 != 0)) && (*pbVar3->n_value == '\0')) {\n      bc_int2num(&ex_stack->s_num,iVar13);\n    }\n    else {\n      bc_int2num(&ex_stack->s_num,pbVar3->n_len + iVar13);\n    }\n    break;\n  case 'R':\n    iVar13 = bc_sqrt(&ex_stack->s_num,scale);\n    if (iVar13 != 0) {\nLAB_00016998:\n      local_78 = (bc_num *)functions[pc.pc_func].f_code_size;\n      pbVar10 = (bc_function *)pc.pc_func;\n      pbVar18 = functions;\n      goto _L141;\n    }\n    pcVar14 = "Square root of a negative number";\nLAB_0001732f:\n    rt_error(pcVar14);\n    break;\n  case 'S':\n    bc_int2num(&ex_stack->s_num,ex_stack->s_num->n_scale);\n    break;\n  case 'X':\n    push_copy(_zero_);\n    val = random();\n    bc_int2num(&ex_stack->s_num,val);\n  }" { (case_statement "case 'I':\n    bc_init_num(&temp);\n    bc_init_num(&result);\n    bc_init_num(&mult);\n    build = bc_copy_num(_zero_);\n    bc_int2num(&mult,iVar13);\n    iVar15 = input_char();\n    while (iVar15 == 0x7e) {\n      iVar15 = input_char();\n    }\n    if (iVar15 == 0x2b) {\n      iVar15 = input_char();\n    }\n    else if (iVar15 == 0x2d) {\n      iVar15 = input_char();\n      bVar21 = true;\n    }\n    local_78 = &temp;\n    local_7c = (bc_function *)&result;\n    iVar16 = iVar15;\n    if (iVar15 < 0x24) {\n      iVar16 = input_char();\n      if ((iVar16 < 0x24) && (iVar13 <= iVar15)) {\n        bc_int2num(&build,iVar13 + -1);\n      }\n      else {\n        bc_int2num(&build,iVar15);\n        if (0x23 < iVar16) goto LAB_00017b03;\n      }\n      local_60 = &build;\n      do {\n        if (iVar16 < iVar13) {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n        }\n        else {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n          iVar16 = iVar13 + -1;\n        }\n        bc_int2num(local_78,iVar16);\n        bc_add(result,temp,local_60,0);\n        iVar16 = input_char();\n      } while (iVar16 < 0x24);\n    }\nLAB_00017b03:\n    if (iVar16 == 0x2e) {\n      iVar16 = input_char();\n      iVar15 = iVar13 + -1;\n      if (iVar13 <= iVar16) {\n        iVar16 = iVar15;\n      }\n      bc_free_num((bc_num *)local_7c);\n      bc_free_num(local_78);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      if (iVar16 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            bc_multiply(result,mult,(bc_num *)local_7c,0);\n            bc_int2num(local_78,iVar16);\n            bc_add(result,temp,(bc_num *)local_7c,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            iVar16 = input_char();\n            if ((0x23 < iVar16) || (iVar16 < iVar13)) break;\n            iVar16 = iVar15;\n            if (0x23 < iVar15) goto LAB_00017a9d;\n          }\n        } while (iVar16 < 0x24);\n      }\nLAB_00017a9d:\n      local_7c = (bc_function *)&result;\n      bc_divide(result,divisor,(bc_num *)local_7c,local_58);\n      bc_add(build,result,&build,0);\n    }\nLAB_0001720b:\n    local_44 = &mult;\n    local_78 = &temp;\n    local_7c = (bc_function *)&result;\n    if (bVar21) {\n      bc_sub(_zero_,build,&build,0);\n    }\n    push_num(build);\n    bc_free_num(local_78);\n    bc_free_num((bc_num *)local_7c);\n    bc_free_num(local_44);\n    break;" case (char_literal "'I'" ' character ') : (expression_statement "bc_init_num(&temp);" (call_expression "bc_init_num(&temp)" identifier (argument_list "(&temp)" ( (pointer_expression "&temp" & identifier) ))) ;) (expression_statement "bc_init_num(&result);" (call_expression "bc_init_num(&result)" identifier (argument_list "(&result)" ( (pointer_expression "&result" & identifier) ))) ;) (expression_statement "bc_init_num(&mult);" (call_expression "bc_init_num(&mult)" identifier (argument_list "(&mult)" ( (pointer_expression "&mult" & identifier) ))) ;) (expression_statement "build = bc_copy_num(_zero_);" (assignment_expression "build = bc_copy_num(_zero_)" identifier = (call_expression "bc_copy_num(_zero_)" identifier (argument_list "(_zero_)" ( identifier )))) ;) (expression_statement "bc_int2num(&mult,iVar13);" (call_expression "bc_int2num(&mult,iVar13)" identifier (argument_list "(&mult,iVar13)" ( (pointer_expression "&mult" & identifier) , identifier ))) ;) (expression_statement "iVar15 = input_char();" (assignment_expression "iVar15 = input_char()" identifier = (call_expression "input_char()" identifier (argument_list "()" ( )))) ;) (while_statement "while (iVar15 == 0x7e) {\n      iVar15 = input_char();\n    }" while (parenthesized_expression "(iVar15 == 0x7e)" ( (binary_expression "iVar15 == 0x7e" identifier == number_literal) )) (compound_statement "{\n      iVar15 = input_char();\n    }" { (expression_statement "iVar15 = input_char();" (assignment_expression "iVar15 = input_char()" identifier = (call_expression "input_char()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (iVar15 == 0x2b) {\n      iVar15 = input_char();\n    }\n    else if (iVar15 == 0x2d) {\n      iVar15 = input_char();\n      bVar21 = true;\n    }" if (parenthesized_expression "(iVar15 == 0x2b)" ( (binary_expression "iVar15 == 0x2b" identifier == number_literal) )) (compound_statement "{\n      iVar15 = input_char();\n    }" { (expression_statement "iVar15 = input_char();" (assignment_expression "iVar15 = input_char()" identifier = (call_expression "input_char()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else if (iVar15 == 0x2d) {\n      iVar15 = input_char();\n      bVar21 = true;\n    }" else (if_statement "if (iVar15 == 0x2d) {\n      iVar15 = input_char();\n      bVar21 = true;\n    }" if (parenthesized_expression "(iVar15 == 0x2d)" ( (binary_expression "iVar15 == 0x2d" identifier == number_literal) )) (compound_statement "{\n      iVar15 = input_char();\n      bVar21 = true;\n    }" { (expression_statement "iVar15 = input_char();" (assignment_expression "iVar15 = input_char()" identifier = (call_expression "input_char()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar21 = true;" (assignment_expression "bVar21 = true" identifier = true) ;) })))) (expression_statement "local_78 = &temp;" (assignment_expression "local_78 = &temp" identifier = (pointer_expression "&temp" & identifier)) ;) (expression_statement "local_7c = (bc_function *)&result;" (assignment_expression "local_7c = (bc_function *)&result" identifier = (cast_expression "(bc_function *)&result" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&result" & identifier))) ;) (expression_statement "iVar16 = iVar15;" (assignment_expression "iVar16 = iVar15" identifier = identifier) ;) (if_statement "if (iVar15 < 0x24) {\n      iVar16 = input_char();\n      if ((iVar16 < 0x24) && (iVar13 <= iVar15)) {\n        bc_int2num(&build,iVar13 + -1);\n      }\n      else {\n        bc_int2num(&build,iVar15);\n        if (0x23 < iVar16) goto LAB_00017b03;\n      }\n      local_60 = &build;\n      do {\n        if (iVar16 < iVar13) {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n        }\n        else {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n          iVar16 = iVar13 + -1;\n        }\n        bc_int2num(local_78,iVar16);\n        bc_add(result,temp,local_60,0);\n        iVar16 = input_char();\n      } while (iVar16 < 0x24);\n    }" if (parenthesized_expression "(iVar15 < 0x24)" ( (binary_expression "iVar15 < 0x24" identifier < number_literal) )) (compound_statement "{\n      iVar16 = input_char();\n      if ((iVar16 < 0x24) && (iVar13 <= iVar15)) {\n        bc_int2num(&build,iVar13 + -1);\n      }\n      else {\n        bc_int2num(&build,iVar15);\n        if (0x23 < iVar16) goto LAB_00017b03;\n      }\n      local_60 = &build;\n      do {\n        if (iVar16 < iVar13) {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n        }\n        else {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n          iVar16 = iVar13 + -1;\n        }\n        bc_int2num(local_78,iVar16);\n        bc_add(result,temp,local_60,0);\n        iVar16 = input_char();\n      } while (iVar16 < 0x24);\n    }" { (expression_statement "iVar16 = input_char();" (assignment_expression "iVar16 = input_char()" identifier = (call_expression "input_char()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar16 < 0x24) && (iVar13 <= iVar15)) {\n        bc_int2num(&build,iVar13 + -1);\n      }\n      else {\n        bc_int2num(&build,iVar15);\n        if (0x23 < iVar16) goto LAB_00017b03;\n      }" if (parenthesized_expression "((iVar16 < 0x24) && (iVar13 <= iVar15))" ( (binary_expression "(iVar16 < 0x24) && (iVar13 <= iVar15)" (parenthesized_expression "(iVar16 < 0x24)" ( (binary_expression "iVar16 < 0x24" identifier < number_literal) )) && (parenthesized_expression "(iVar13 <= iVar15)" ( (binary_expression "iVar13 <= iVar15" identifier <= identifier) ))) )) (compound_statement "{\n        bc_int2num(&build,iVar13 + -1);\n      }" { (expression_statement "bc_int2num(&build,iVar13 + -1);" (call_expression "bc_int2num(&build,iVar13 + -1)" identifier (argument_list "(&build,iVar13 + -1)" ( (pointer_expression "&build" & identifier) , (binary_expression "iVar13 + -1" identifier + number_literal) ))) ;) }) (else_clause "else {\n        bc_int2num(&build,iVar15);\n        if (0x23 < iVar16) goto LAB_00017b03;\n      }" else (compound_statement "{\n        bc_int2num(&build,iVar15);\n        if (0x23 < iVar16) goto LAB_00017b03;\n      }" { (expression_statement "bc_int2num(&build,iVar15);" (call_expression "bc_int2num(&build,iVar15)" identifier (argument_list "(&build,iVar15)" ( (pointer_expression "&build" & identifier) , identifier ))) ;) (if_statement "if (0x23 < iVar16) goto LAB_00017b03;" if (parenthesized_expression "(0x23 < iVar16)" ( (binary_expression "0x23 < iVar16" number_literal < identifier) )) (goto_statement "goto LAB_00017b03;" goto statement_identifier ;)) }))) (expression_statement "local_60 = &build;" (assignment_expression "local_60 = &build" identifier = (pointer_expression "&build" & identifier)) ;) (do_statement "do {\n        if (iVar16 < iVar13) {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n        }\n        else {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n          iVar16 = iVar13 + -1;\n        }\n        bc_int2num(local_78,iVar16);\n        bc_add(result,temp,local_60,0);\n        iVar16 = input_char();\n      } while (iVar16 < 0x24);" do (compound_statement "{\n        if (iVar16 < iVar13) {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n        }\n        else {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n          iVar16 = iVar13 + -1;\n        }\n        bc_int2num(local_78,iVar16);\n        bc_add(result,temp,local_60,0);\n        iVar16 = input_char();\n      }" { (if_statement "if (iVar16 < iVar13) {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n        }\n        else {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n          iVar16 = iVar13 + -1;\n        }" if (parenthesized_expression "(iVar16 < iVar13)" ( (binary_expression "iVar16 < iVar13" identifier < identifier) )) (compound_statement "{\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n        }" { (expression_statement "bc_multiply(build,mult,(bc_num *)local_7c,0);" (call_expression "bc_multiply(build,mult,(bc_num *)local_7c,0)" identifier (argument_list "(build,mult,(bc_num *)local_7c,0)" ( identifier , identifier , (cast_expression "(bc_num *)local_7c" ( (type_descriptor "bc_num *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) }) (else_clause "else {\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n          iVar16 = iVar13 + -1;\n        }" else (compound_statement "{\n          bc_multiply(build,mult,(bc_num *)local_7c,0);\n          iVar16 = iVar13 + -1;\n        }" { (expression_statement "bc_multiply(build,mult,(bc_num *)local_7c,0);" (call_expression "bc_multiply(build,mult,(bc_num *)local_7c,0)" identifier (argument_list "(build,mult,(bc_num *)local_7c,0)" ( identifier , identifier , (cast_expression "(bc_num *)local_7c" ( (type_descriptor "bc_num *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (expression_statement "iVar16 = iVar13 + -1;" (assignment_expression "iVar16 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) }))) (expression_statement "bc_int2num(local_78,iVar16);" (call_expression "bc_int2num(local_78,iVar16)" identifier (argument_list "(local_78,iVar16)" ( identifier , identifier ))) ;) (expression_statement "bc_add(result,temp,local_60,0);" (call_expression "bc_add(result,temp,local_60,0)" identifier (argument_list "(result,temp,local_60,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "iVar16 = input_char();" (assignment_expression "iVar16 = input_char()" identifier = (call_expression "input_char()" identifier (argument_list "()" ( )))) ;) }) while (parenthesized_expression "(iVar16 < 0x24)" ( (binary_expression "iVar16 < 0x24" identifier < number_literal) )) ;) })) (labeled_statement "LAB_00017b03:\n    if (iVar16 == 0x2e) {\n      iVar16 = input_char();\n      iVar15 = iVar13 + -1;\n      if (iVar13 <= iVar16) {\n        iVar16 = iVar15;\n      }\n      bc_free_num((bc_num *)local_7c);\n      bc_free_num(local_78);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      if (iVar16 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            bc_multiply(result,mult,(bc_num *)local_7c,0);\n            bc_int2num(local_78,iVar16);\n            bc_add(result,temp,(bc_num *)local_7c,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            iVar16 = input_char();\n            if ((0x23 < iVar16) || (iVar16 < iVar13)) break;\n            iVar16 = iVar15;\n            if (0x23 < iVar15) goto LAB_00017a9d;\n          }\n        } while (iVar16 < 0x24);\n      }\nLAB_00017a9d:\n      local_7c = (bc_function *)&result;\n      bc_divide(result,divisor,(bc_num *)local_7c,local_58);\n      bc_add(build,result,&build,0);\n    }" statement_identifier : (if_statement "if (iVar16 == 0x2e) {\n      iVar16 = input_char();\n      iVar15 = iVar13 + -1;\n      if (iVar13 <= iVar16) {\n        iVar16 = iVar15;\n      }\n      bc_free_num((bc_num *)local_7c);\n      bc_free_num(local_78);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      if (iVar16 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            bc_multiply(result,mult,(bc_num *)local_7c,0);\n            bc_int2num(local_78,iVar16);\n            bc_add(result,temp,(bc_num *)local_7c,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            iVar16 = input_char();\n            if ((0x23 < iVar16) || (iVar16 < iVar13)) break;\n            iVar16 = iVar15;\n            if (0x23 < iVar15) goto LAB_00017a9d;\n          }\n        } while (iVar16 < 0x24);\n      }\nLAB_00017a9d:\n      local_7c = (bc_function *)&result;\n      bc_divide(result,divisor,(bc_num *)local_7c,local_58);\n      bc_add(build,result,&build,0);\n    }" if (parenthesized_expression "(iVar16 == 0x2e)" ( (binary_expression "iVar16 == 0x2e" identifier == number_literal) )) (compound_statement "{\n      iVar16 = input_char();\n      iVar15 = iVar13 + -1;\n      if (iVar13 <= iVar16) {\n        iVar16 = iVar15;\n      }\n      bc_free_num((bc_num *)local_7c);\n      bc_free_num(local_78);\n      divisor = bc_copy_num(_one_);\n      result = bc_copy_num(_zero_);\n      if (iVar16 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            bc_multiply(result,mult,(bc_num *)local_7c,0);\n            bc_int2num(local_78,iVar16);\n            bc_add(result,temp,(bc_num *)local_7c,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            iVar16 = input_char();\n            if ((0x23 < iVar16) || (iVar16 < iVar13)) break;\n            iVar16 = iVar15;\n            if (0x23 < iVar15) goto LAB_00017a9d;\n          }\n        } while (iVar16 < 0x24);\n      }\nLAB_00017a9d:\n      local_7c = (bc_function *)&result;\n      bc_divide(result,divisor,(bc_num *)local_7c,local_58);\n      bc_add(build,result,&build,0);\n    }" { (expression_statement "iVar16 = input_char();" (assignment_expression "iVar16 = input_char()" identifier = (call_expression "input_char()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar15 = iVar13 + -1;" (assignment_expression "iVar15 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (if_statement "if (iVar13 <= iVar16) {\n        iVar16 = iVar15;\n      }" if (parenthesized_expression "(iVar13 <= iVar16)" ( (binary_expression "iVar13 <= iVar16" identifier <= identifier) )) (compound_statement "{\n        iVar16 = iVar15;\n      }" { (expression_statement "iVar16 = iVar15;" (assignment_expression "iVar16 = iVar15" identifier = identifier) ;) })) (expression_statement "bc_free_num((bc_num *)local_7c);" (call_expression "bc_free_num((bc_num *)local_7c)" identifier (argument_list "((bc_num *)local_7c)" ( (cast_expression "(bc_num *)local_7c" ( (type_descriptor "bc_num *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "bc_free_num(local_78);" (call_expression "bc_free_num(local_78)" identifier (argument_list "(local_78)" ( identifier ))) ;) (expression_statement "divisor = bc_copy_num(_one_);" (assignment_expression "divisor = bc_copy_num(_one_)" identifier = (call_expression "bc_copy_num(_one_)" identifier (argument_list "(_one_)" ( identifier )))) ;) (expression_statement "result = bc_copy_num(_zero_);" (assignment_expression "result = bc_copy_num(_zero_)" identifier = (call_expression "bc_copy_num(_zero_)" identifier (argument_list "(_zero_)" ( identifier )))) ;) (if_statement "if (iVar16 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            bc_multiply(result,mult,(bc_num *)local_7c,0);\n            bc_int2num(local_78,iVar16);\n            bc_add(result,temp,(bc_num *)local_7c,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            iVar16 = input_char();\n            if ((0x23 < iVar16) || (iVar16 < iVar13)) break;\n            iVar16 = iVar15;\n            if (0x23 < iVar15) goto LAB_00017a9d;\n          }\n        } while (iVar16 < 0x24);\n      }" if (parenthesized_expression "(iVar16 < 0x24)" ( (binary_expression "iVar16 < 0x24" identifier < number_literal) )) (compound_statement "{\n        local_58 = 0;\n        do {\n          while( true ) {\n            bc_multiply(result,mult,(bc_num *)local_7c,0);\n            bc_int2num(local_78,iVar16);\n            bc_add(result,temp,(bc_num *)local_7c,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            iVar16 = input_char();\n            if ((0x23 < iVar16) || (iVar16 < iVar13)) break;\n            iVar16 = iVar15;\n            if (0x23 < iVar15) goto LAB_00017a9d;\n          }\n        } while (iVar16 < 0x24);\n      }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (do_statement "do {\n          while( true ) {\n            bc_multiply(result,mult,(bc_num *)local_7c,0);\n            bc_int2num(local_78,iVar16);\n            bc_add(result,temp,(bc_num *)local_7c,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            iVar16 = input_char();\n            if ((0x23 < iVar16) || (iVar16 < iVar13)) break;\n            iVar16 = iVar15;\n            if (0x23 < iVar15) goto LAB_00017a9d;\n          }\n        } while (iVar16 < 0x24);" do (compound_statement "{\n          while( true ) {\n            bc_multiply(result,mult,(bc_num *)local_7c,0);\n            bc_int2num(local_78,iVar16);\n            bc_add(result,temp,(bc_num *)local_7c,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            iVar16 = input_char();\n            if ((0x23 < iVar16) || (iVar16 < iVar13)) break;\n            iVar16 = iVar15;\n            if (0x23 < iVar15) goto LAB_00017a9d;\n          }\n        }" { (while_statement "while( true ) {\n            bc_multiply(result,mult,(bc_num *)local_7c,0);\n            bc_int2num(local_78,iVar16);\n            bc_add(result,temp,(bc_num *)local_7c,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            iVar16 = input_char();\n            if ((0x23 < iVar16) || (iVar16 < iVar13)) break;\n            iVar16 = iVar15;\n            if (0x23 < iVar15) goto LAB_00017a9d;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            bc_multiply(result,mult,(bc_num *)local_7c,0);\n            bc_int2num(local_78,iVar16);\n            bc_add(result,temp,(bc_num *)local_7c,0);\n            bc_multiply(divisor,mult,&divisor,0);\n            local_58 = local_58 + 1;\n            iVar16 = input_char();\n            if ((0x23 < iVar16) || (iVar16 < iVar13)) break;\n            iVar16 = iVar15;\n            if (0x23 < iVar15) goto LAB_00017a9d;\n          }" { (expression_statement "bc_multiply(result,mult,(bc_num *)local_7c,0);" (call_expression "bc_multiply(result,mult,(bc_num *)local_7c,0)" identifier (argument_list "(result,mult,(bc_num *)local_7c,0)" ( identifier , identifier , (cast_expression "(bc_num *)local_7c" ( (type_descriptor "bc_num *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (expression_statement "bc_int2num(local_78,iVar16);" (call_expression "bc_int2num(local_78,iVar16)" identifier (argument_list "(local_78,iVar16)" ( identifier , identifier ))) ;) (expression_statement "bc_add(result,temp,(bc_num *)local_7c,0);" (call_expression "bc_add(result,temp,(bc_num *)local_7c,0)" identifier (argument_list "(result,temp,(bc_num *)local_7c,0)" ( identifier , identifier , (cast_expression "(bc_num *)local_7c" ( (type_descriptor "bc_num *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (expression_statement "bc_multiply(divisor,mult,&divisor,0);" (call_expression "bc_multiply(divisor,mult,&divisor,0)" identifier (argument_list "(divisor,mult,&divisor,0)" ( identifier , identifier , (pointer_expression "&divisor" & identifier) , number_literal ))) ;) (expression_statement "local_58 = local_58 + 1;" (assignment_expression "local_58 = local_58 + 1" identifier = (binary_expression "local_58 + 1" identifier + number_literal)) ;) (expression_statement "iVar16 = input_char();" (assignment_expression "iVar16 = input_char()" identifier = (call_expression "input_char()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((0x23 < iVar16) || (iVar16 < iVar13)) break;" if (parenthesized_expression "((0x23 < iVar16) || (iVar16 < iVar13))" ( (binary_expression "(0x23 < iVar16) || (iVar16 < iVar13)" (parenthesized_expression "(0x23 < iVar16)" ( (binary_expression "0x23 < iVar16" number_literal < identifier) )) || (parenthesized_expression "(iVar16 < iVar13)" ( (binary_expression "iVar16 < iVar13" identifier < identifier) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar16 = iVar15;" (assignment_expression "iVar16 = iVar15" identifier = identifier) ;) (if_statement "if (0x23 < iVar15) goto LAB_00017a9d;" if (parenthesized_expression "(0x23 < iVar15)" ( (binary_expression "0x23 < iVar15" number_literal < identifier) )) (goto_statement "goto LAB_00017a9d;" goto statement_identifier ;)) })) }) while (parenthesized_expression "(iVar16 < 0x24)" ( (binary_expression "iVar16 < 0x24" identifier < number_literal) )) ;) })) (labeled_statement "LAB_00017a9d:\n      local_7c = (bc_function *)&result;" statement_identifier : (expression_statement "local_7c = (bc_function *)&result;" (assignment_expression "local_7c = (bc_function *)&result" identifier = (cast_expression "(bc_function *)&result" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&result" & identifier))) ;)) (expression_statement "bc_divide(result,divisor,(bc_num *)local_7c,local_58);" (call_expression "bc_divide(result,divisor,(bc_num *)local_7c,local_58)" identifier (argument_list "(result,divisor,(bc_num *)local_7c,local_58)" ( identifier , identifier , (cast_expression "(bc_num *)local_7c" ( (type_descriptor "bc_num *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "bc_add(build,result,&build,0);" (call_expression "bc_add(build,result,&build,0)" identifier (argument_list "(build,result,&build,0)" ( identifier , identifier , (pointer_expression "&build" & identifier) , number_literal ))) ;) }))) (labeled_statement "LAB_0001720b:\n    local_44 = &mult;" statement_identifier : (expression_statement "local_44 = &mult;" (assignment_expression "local_44 = &mult" identifier = (pointer_expression "&mult" & identifier)) ;)) (expression_statement "local_78 = &temp;" (assignment_expression "local_78 = &temp" identifier = (pointer_expression "&temp" & identifier)) ;) (expression_statement "local_7c = (bc_function *)&result;" (assignment_expression "local_7c = (bc_function *)&result" identifier = (cast_expression "(bc_function *)&result" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&result" & identifier))) ;) (if_statement "if (bVar21) {\n      bc_sub(_zero_,build,&build,0);\n    }" if (parenthesized_expression "(bVar21)" ( identifier )) (compound_statement "{\n      bc_sub(_zero_,build,&build,0);\n    }" { (expression_statement "bc_sub(_zero_,build,&build,0);" (call_expression "bc_sub(_zero_,build,&build,0)" identifier (argument_list "(_zero_,build,&build,0)" ( identifier , identifier , (pointer_expression "&build" & identifier) , number_literal ))) ;) })) (expression_statement "push_num(build);" (call_expression "push_num(build)" identifier (argument_list "(build)" ( identifier ))) ;) (expression_statement "bc_free_num(local_78);" (call_expression "bc_free_num(local_78)" identifier (argument_list "(local_78)" ( identifier ))) ;) (expression_statement "bc_free_num((bc_num *)local_7c);" (call_expression "bc_free_num((bc_num *)local_7c)" identifier (argument_list "((bc_num *)local_7c)" ( (cast_expression "(bc_num *)local_7c" ( (type_descriptor "bc_num *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "bc_free_num(local_44);" (call_expression "bc_free_num(local_44)" identifier (argument_list "(local_44)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    goto _L141;" default : (goto_statement "goto _L141;" goto statement_identifier ;)) (case_statement "case 'L':\n    pbVar3 = ex_stack->s_num;\n    iVar13 = pbVar3->n_scale;\n    if (((pbVar3->n_len == 1) && (iVar13 != 0)) && (*pbVar3->n_value == '\0')) {\n      bc_int2num(&ex_stack->s_num,iVar13);\n    }\n    else {\n      bc_int2num(&ex_stack->s_num,pbVar3->n_len + iVar13);\n    }\n    break;" case (char_literal "'L'" ' character ') : (expression_statement "pbVar3 = ex_stack->s_num;" (assignment_expression "pbVar3 = ex_stack->s_num" identifier = (field_expression "ex_stack->s_num" identifier -> field_identifier)) ;) (expression_statement "iVar13 = pbVar3->n_scale;" (assignment_expression "iVar13 = pbVar3->n_scale" identifier = (field_expression "pbVar3->n_scale" identifier -> field_identifier)) ;) (if_statement "if (((pbVar3->n_len == 1) && (iVar13 != 0)) && (*pbVar3->n_value == '\0')) {\n      bc_int2num(&ex_stack->s_num,iVar13);\n    }\n    else {\n      bc_int2num(&ex_stack->s_num,pbVar3->n_len + iVar13);\n    }" if (parenthesized_expression "(((pbVar3->n_len == 1) && (iVar13 != 0)) && (*pbVar3->n_value == '\0'))" ( (binary_expression "((pbVar3->n_len == 1) && (iVar13 != 0)) && (*pbVar3->n_value == '\0')" (parenthesized_expression "((pbVar3->n_len == 1) && (iVar13 != 0))" ( (binary_expression "(pbVar3->n_len == 1) && (iVar13 != 0)" (parenthesized_expression "(pbVar3->n_len == 1)" ( (binary_expression "pbVar3->n_len == 1" (field_expression "pbVar3->n_len" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(*pbVar3->n_value == '\0')" ( (binary_expression "*pbVar3->n_value == '\0'" (pointer_expression "*pbVar3->n_value" * (field_expression "pbVar3->n_value" identifier -> field_identifier)) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      bc_int2num(&ex_stack->s_num,iVar13);\n    }" { (expression_statement "bc_int2num(&ex_stack->s_num,iVar13);" (call_expression "bc_int2num(&ex_stack->s_num,iVar13)" identifier (argument_list "(&ex_stack->s_num,iVar13)" ( (pointer_expression "&ex_stack->s_num" & (field_expression "ex_stack->s_num" identifier -> field_identifier)) , identifier ))) ;) }) (else_clause "else {\n      bc_int2num(&ex_stack->s_num,pbVar3->n_len + iVar13);\n    }" else (compound_statement "{\n      bc_int2num(&ex_stack->s_num,pbVar3->n_len + iVar13);\n    }" { (expression_statement "bc_int2num(&ex_stack->s_num,pbVar3->n_len + iVar13);" (call_expression "bc_int2num(&ex_stack->s_num,pbVar3->n_len + iVar13)" identifier (argument_list "(&ex_stack->s_num,pbVar3->n_len + iVar13)" ( (pointer_expression "&ex_stack->s_num" & (field_expression "ex_stack->s_num" identifier -> field_identifier)) , (binary_expression "pbVar3->n_len + iVar13" (field_expression "pbVar3->n_len" identifier -> field_identifier) + identifier) ))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 'R':\n    iVar13 = bc_sqrt(&ex_stack->s_num,scale);\n    if (iVar13 != 0) {\nLAB_00016998:\n      local_78 = (bc_num *)functions[pc.pc_func].f_code_size;\n      pbVar10 = (bc_function *)pc.pc_func;\n      pbVar18 = functions;\n      goto _L141;\n    }\n    pcVar14 = "Square root of a negative number";\nLAB_0001732f:\n    rt_error(pcVar14);\n    break;" case (char_literal "'R'" ' character ') : (expression_statement "iVar13 = bc_sqrt(&ex_stack->s_num,scale);" (assignment_expression "iVar13 = bc_sqrt(&ex_stack->s_num,scale)" identifier = (call_expression "bc_sqrt(&ex_stack->s_num,scale)" identifier (argument_list "(&ex_stack->s_num,scale)" ( (pointer_expression "&ex_stack->s_num" & (field_expression "ex_stack->s_num" identifier -> field_identifier)) , identifier )))) ;) (if_statement "if (iVar13 != 0) {\nLAB_00016998:\n      local_78 = (bc_num *)functions[pc.pc_func].f_code_size;\n      pbVar10 = (bc_function *)pc.pc_func;\n      pbVar18 = functions;\n      goto _L141;\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00016998:\n      local_78 = (bc_num *)functions[pc.pc_func].f_code_size;\n      pbVar10 = (bc_function *)pc.pc_func;\n      pbVar18 = functions;\n      goto _L141;\n    }" { (labeled_statement "LAB_00016998:\n      local_78 = (bc_num *)functions[pc.pc_func].f_code_size;" statement_identifier : (expression_statement "local_78 = (bc_num *)functions[pc.pc_func].f_code_size;" (assignment_expression "local_78 = (bc_num *)functions[pc.pc_func].f_code_size" identifier = (cast_expression "(bc_num *)functions[pc.pc_func].f_code_size" ( (type_descriptor "bc_num *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "functions[pc.pc_func].f_code_size" (subscript_expression "functions[pc.pc_func]" identifier [ (field_expression "pc.pc_func" identifier . field_identifier) ]) . field_identifier))) ;)) (expression_statement "pbVar10 = (bc_function *)pc.pc_func;" (assignment_expression "pbVar10 = (bc_function *)pc.pc_func" identifier = (cast_expression "(bc_function *)pc.pc_func" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pc.pc_func" identifier . field_identifier))) ;) (expression_statement "pbVar18 = functions;" (assignment_expression "pbVar18 = functions" identifier = identifier) ;) (goto_statement "goto _L141;" goto statement_identifier ;) })) (expression_statement "pcVar14 = "Square root of a negative number";" (assignment_expression "pcVar14 = "Square root of a negative number"" identifier = (string_literal ""Square root of a negative number"" " string_content ")) ;) (labeled_statement "LAB_0001732f:\n    rt_error(pcVar14);" statement_identifier : (expression_statement "rt_error(pcVar14);" (call_expression "rt_error(pcVar14)" identifier (argument_list "(pcVar14)" ( identifier ))) ;)) (break_statement "break;" break ;)) (case_statement "case 'S':\n    bc_int2num(&ex_stack->s_num,ex_stack->s_num->n_scale);\n    break;" case (char_literal "'S'" ' character ') : (expression_statement "bc_int2num(&ex_stack->s_num,ex_stack->s_num->n_scale);" (call_expression "bc_int2num(&ex_stack->s_num,ex_stack->s_num->n_scale)" identifier (argument_list "(&ex_stack->s_num,ex_stack->s_num->n_scale)" ( (pointer_expression "&ex_stack->s_num" & (field_expression "ex_stack->s_num" identifier -> field_identifier)) , (field_expression "ex_stack->s_num->n_scale" (field_expression "ex_stack->s_num" identifier -> field_identifier) -> field_identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'X':\n    push_copy(_zero_);\n    val = random();\n    bc_int2num(&ex_stack->s_num,val);" case (char_literal "'X'" ' character ') : (expression_statement "push_copy(_zero_);" (call_expression "push_copy(_zero_)" identifier (argument_list "(_zero_)" ( identifier ))) ;) (expression_statement "val = random();" (assignment_expression "val = random()" identifier = (call_expression "random()" identifier (argument_list "()" ( )))) ;) (expression_statement "bc_int2num(&ex_stack->s_num,val);" (call_expression "bc_int2num(&ex_stack->s_num,val)" identifier (argument_list "(&ex_stack->s_num,val)" ( (pointer_expression "&ex_stack->s_num" & (field_expression "ex_stack->s_num" identifier -> field_identifier)) , identifier ))) ;)) })) (labeled_statement "LAB_000167f0:\n  local_78 = (bc_num *)functions[pc.pc_func].f_code_size;" statement_identifier : (expression_statement "local_78 = (bc_num *)functions[pc.pc_func].f_code_size;" (assignment_expression "local_78 = (bc_num *)functions[pc.pc_func].f_code_size" identifier = (cast_expression "(bc_num *)functions[pc.pc_func].f_code_size" ( (type_descriptor "bc_num *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "functions[pc.pc_func].f_code_size" (subscript_expression "functions[pc.pc_func]" identifier [ (field_expression "pc.pc_func" identifier . field_identifier) ]) . field_identifier))) ;)) (expression_statement "pbVar10 = (bc_function *)pc.pc_func;" (assignment_expression "pbVar10 = (bc_function *)pc.pc_func" identifier = (cast_expression "(bc_function *)pc.pc_func" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pc.pc_func" identifier . field_identifier))) ;) (expression_statement "pbVar18 = functions;" (assignment_expression "pbVar18 = functions" identifier = identifier) ;) (goto_statement "goto _L141;" goto statement_identifier ;) (labeled_statement "code_r0x0001730b:\n  switch(local_70[uVar19]) {\n  case '\\':\n    uVar12 = 0x5c;\n    uVar19 = pc.pc_addr;\n    break;\n  default:\n    goto _L163;\n  case 'a':\n    uVar12 = 7;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'b':\n    uVar12 = 8;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'f':\n    uVar12 = 0xc;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'n':\n    uVar12 = 10;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'q':\n    uVar12 = 0x22;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'r':\n    uVar12 = 0xd;\n    uVar19 = pc.pc_addr;\n    break;\n  case 't':\n    uVar12 = 9;\n    uVar19 = pc.pc_addr;\n  }" statement_identifier : (switch_statement "switch(local_70[uVar19]) {\n  case '\\':\n    uVar12 = 0x5c;\n    uVar19 = pc.pc_addr;\n    break;\n  default:\n    goto _L163;\n  case 'a':\n    uVar12 = 7;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'b':\n    uVar12 = 8;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'f':\n    uVar12 = 0xc;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'n':\n    uVar12 = 10;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'q':\n    uVar12 = 0x22;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'r':\n    uVar12 = 0xd;\n    uVar19 = pc.pc_addr;\n    break;\n  case 't':\n    uVar12 = 9;\n    uVar19 = pc.pc_addr;\n  }" switch (parenthesized_expression "(local_70[uVar19])" ( (subscript_expression "local_70[uVar19]" identifier [ identifier ]) )) (compound_statement "{\n  case '\\':\n    uVar12 = 0x5c;\n    uVar19 = pc.pc_addr;\n    break;\n  default:\n    goto _L163;\n  case 'a':\n    uVar12 = 7;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'b':\n    uVar12 = 8;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'f':\n    uVar12 = 0xc;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'n':\n    uVar12 = 10;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'q':\n    uVar12 = 0x22;\n    uVar19 = pc.pc_addr;\n    break;\n  case 'r':\n    uVar12 = 0xd;\n    uVar19 = pc.pc_addr;\n    break;\n  case 't':\n    uVar12 = 9;\n    uVar19 = pc.pc_addr;\n  }" { (case_statement "case '\\':\n    uVar12 = 0x5c;\n    uVar19 = pc.pc_addr;\n    break;" case (char_literal "'\\'" ' escape_sequence ') : (expression_statement "uVar12 = 0x5c;" (assignment_expression "uVar12 = 0x5c" identifier = number_literal) ;) (expression_statement "uVar19 = pc.pc_addr;" (assignment_expression "uVar19 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "default:\n    goto _L163;" default : (goto_statement "goto _L163;" goto statement_identifier ;)) (case_statement "case 'a':\n    uVar12 = 7;\n    uVar19 = pc.pc_addr;\n    break;" case (char_literal "'a'" ' character ') : (expression_statement "uVar12 = 7;" (assignment_expression "uVar12 = 7" identifier = number_literal) ;) (expression_statement "uVar19 = pc.pc_addr;" (assignment_expression "uVar19 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 'b':\n    uVar12 = 8;\n    uVar19 = pc.pc_addr;\n    break;" case (char_literal "'b'" ' character ') : (expression_statement "uVar12 = 8;" (assignment_expression "uVar12 = 8" identifier = number_literal) ;) (expression_statement "uVar19 = pc.pc_addr;" (assignment_expression "uVar19 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 'f':\n    uVar12 = 0xc;\n    uVar19 = pc.pc_addr;\n    break;" case (char_literal "'f'" ' character ') : (expression_statement "uVar12 = 0xc;" (assignment_expression "uVar12 = 0xc" identifier = number_literal) ;) (expression_statement "uVar19 = pc.pc_addr;" (assignment_expression "uVar19 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 'n':\n    uVar12 = 10;\n    uVar19 = pc.pc_addr;\n    break;" case (char_literal "'n'" ' character ') : (expression_statement "uVar12 = 10;" (assignment_expression "uVar12 = 10" identifier = number_literal) ;) (expression_statement "uVar19 = pc.pc_addr;" (assignment_expression "uVar19 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 'q':\n    uVar12 = 0x22;\n    uVar19 = pc.pc_addr;\n    break;" case (char_literal "'q'" ' character ') : (expression_statement "uVar12 = 0x22;" (assignment_expression "uVar12 = 0x22" identifier = number_literal) ;) (expression_statement "uVar19 = pc.pc_addr;" (assignment_expression "uVar19 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 'r':\n    uVar12 = 0xd;\n    uVar19 = pc.pc_addr;\n    break;" case (char_literal "'r'" ' character ') : (expression_statement "uVar12 = 0xd;" (assignment_expression "uVar12 = 0xd" identifier = number_literal) ;) (expression_statement "uVar19 = pc.pc_addr;" (assignment_expression "uVar19 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 't':\n    uVar12 = 9;\n    uVar19 = pc.pc_addr;" case (char_literal "'t'" ' character ') : (expression_statement "uVar12 = 9;" (assignment_expression "uVar12 = 9" identifier = number_literal) ;) (expression_statement "uVar19 = pc.pc_addr;" (assignment_expression "uVar19 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;)) }))) (labeled_statement "LAB_000172c4:\n  pc.pc_addr = uVar19;" statement_identifier : (expression_statement "pc.pc_addr = uVar19;" (assignment_expression "pc.pc_addr = uVar19" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;)) (expression_statement "out_schar(uVar12);" (call_expression "out_schar(uVar12)" identifier (argument_list "(uVar12)" ( identifier ))) ;) (expression_statement "local_70 = functions[pc.pc_func].f_body;" (assignment_expression "local_70 = functions[pc.pc_func].f_body" identifier = (field_expression "functions[pc.pc_func].f_body" (subscript_expression "functions[pc.pc_func]" identifier [ (field_expression "pc.pc_func" identifier . field_identifier) ]) . field_identifier)) ;) (goto_statement "goto _L163;" goto statement_identifier ;) })))
(translation_unit "void FUN_000165e0(void)\n\n{\n  int *piVar1;\n  ushort uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  byte bVar5;\n  char cVar6;\n  char cVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  uint uVar10;\n  byte extraout_var;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  bool bVar18;\n  undefined4 *local_7c;\n  undefined4 *local_78;\n  int local_70;\n  undefined4 *local_60;\n  int local_5c;\n  int local_58;\n  undefined4 *puStack_44;\n  undefined4 local_38;\n  undefined4 uStack_34;\n  undefined4 uStack_30;\n  undefined4 uStack_2c;\n  undefined4 uStack_28;\n  undefined4 uStack_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x165e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  DAT_0002c28c = '\0';\n  DAT_0002c2ac = 0;\n  DAT_0002c2b0 = 0;\n  FUN_0001c550(&local_38);\n  if (DAT_0002c1fc != '\0') {\n    signal(2,FUN_00015ea0);\n  }\n  puVar3 = PTR_stdout_0002bfec;\n  DAT_0002c220 = 0;\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n  puVar8 = (undefined4 *)DAT_0002c2ac;\n  iVar9 = DAT_0002c278;\nLAB_000166a0:\n  iVar12 = DAT_0002c2a4;\n  local_7c = (undefined4 *)(iVar9 + (int)puVar8 * 0x1c);\n  if (((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0)) {\n    if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }\n    while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }\n    if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    \n    FUN_00020960();\n  }\n  uVar16 = DAT_0002c2b0 + 1;\n  local_70 = *(int *)((int)local_7c + 4);\n  cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n  local_58 = 0;\n  bVar18 = false;\n  switch(cVar7) {\n  case '!':\n  case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;\n  case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;\n  case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;\n  case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;\n  case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;\n  case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;\n  case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;\n  case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;\n  case 'P':\n  case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;\n  case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;\n  case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case 'c':\n    goto code_r0x00016f20;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;\n  case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;\n  case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;\n  case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;\n  case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;\n  case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;\n  case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }\n  }\n  goto LAB_000167f0;\ncode_r0x00016f20:\n  DAT_0002c2b0 = DAT_0002c2b0 + 2;\n  switch(*(undefined1 *)(local_70 + uVar16)) {\n  case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;\n  default:\n    goto LAB_000166a0;\n  case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;\n  case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;\n  case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;\n  case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);\n  }\nLAB_000167f0:\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n  puVar8 = (undefined4 *)DAT_0002c2ac;\n  iVar9 = DAT_0002c278;\n  goto LAB_000166a0;\ncode_r0x0001730b:\n  switch(*(char *)(local_70 + uVar16)) {\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }\ncode_r0x000172c4:\n  DAT_0002c2b0 = uVar16;\n  FUN_0001a730(cVar7);\n  local_70 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n  goto code_r0x000172dc;\n}\n\n" (function_definition "void FUN_000165e0(void)\n\n{\n  int *piVar1;\n  ushort uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  byte bVar5;\n  char cVar6;\n  char cVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  uint uVar10;\n  byte extraout_var;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  bool bVar18;\n  undefined4 *local_7c;\n  undefined4 *local_78;\n  int local_70;\n  undefined4 *local_60;\n  int local_5c;\n  int local_58;\n  undefined4 *puStack_44;\n  undefined4 local_38;\n  undefined4 uStack_34;\n  undefined4 uStack_30;\n  undefined4 uStack_2c;\n  undefined4 uStack_28;\n  undefined4 uStack_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x165e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  DAT_0002c28c = '\0';\n  DAT_0002c2ac = 0;\n  DAT_0002c2b0 = 0;\n  FUN_0001c550(&local_38);\n  if (DAT_0002c1fc != '\0') {\n    signal(2,FUN_00015ea0);\n  }\n  puVar3 = PTR_stdout_0002bfec;\n  DAT_0002c220 = 0;\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n  puVar8 = (undefined4 *)DAT_0002c2ac;\n  iVar9 = DAT_0002c278;\nLAB_000166a0:\n  iVar12 = DAT_0002c2a4;\n  local_7c = (undefined4 *)(iVar9 + (int)puVar8 * 0x1c);\n  if (((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0)) {\n    if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }\n    while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }\n    if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    \n    FUN_00020960();\n  }\n  uVar16 = DAT_0002c2b0 + 1;\n  local_70 = *(int *)((int)local_7c + 4);\n  cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n  local_58 = 0;\n  bVar18 = false;\n  switch(cVar7) {\n  case '!':\n  case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;\n  case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;\n  case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;\n  case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;\n  case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;\n  case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;\n  case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;\n  case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;\n  case 'P':\n  case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;\n  case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;\n  case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case 'c':\n    goto code_r0x00016f20;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;\n  case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;\n  case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;\n  case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;\n  case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;\n  case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;\n  case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }\n  }\n  goto LAB_000167f0;\ncode_r0x00016f20:\n  DAT_0002c2b0 = DAT_0002c2b0 + 2;\n  switch(*(undefined1 *)(local_70 + uVar16)) {\n  case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;\n  default:\n    goto LAB_000166a0;\n  case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;\n  case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;\n  case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;\n  case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);\n  }\nLAB_000167f0:\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n  puVar8 = (undefined4 *)DAT_0002c2ac;\n  iVar9 = DAT_0002c278;\n  goto LAB_000166a0;\ncode_r0x0001730b:\n  switch(*(char *)(local_70 + uVar16)) {\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }\ncode_r0x000172c4:\n  DAT_0002c2b0 = uVar16;\n  FUN_0001a730(cVar7);\n  local_70 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n  goto code_r0x000172dc;\n}" primitive_type (function_declarator "FUN_000165e0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  ushort uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  byte bVar5;\n  char cVar6;\n  char cVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  uint uVar10;\n  byte extraout_var;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  bool bVar18;\n  undefined4 *local_7c;\n  undefined4 *local_78;\n  int local_70;\n  undefined4 *local_60;\n  int local_5c;\n  int local_58;\n  undefined4 *puStack_44;\n  undefined4 local_38;\n  undefined4 uStack_34;\n  undefined4 uStack_30;\n  undefined4 uStack_2c;\n  undefined4 uStack_28;\n  undefined4 uStack_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x165e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  DAT_0002c28c = '\0';\n  DAT_0002c2ac = 0;\n  DAT_0002c2b0 = 0;\n  FUN_0001c550(&local_38);\n  if (DAT_0002c1fc != '\0') {\n    signal(2,FUN_00015ea0);\n  }\n  puVar3 = PTR_stdout_0002bfec;\n  DAT_0002c220 = 0;\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n  puVar8 = (undefined4 *)DAT_0002c2ac;\n  iVar9 = DAT_0002c278;\nLAB_000166a0:\n  iVar12 = DAT_0002c2a4;\n  local_7c = (undefined4 *)(iVar9 + (int)puVar8 * 0x1c);\n  if (((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0)) {\n    if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }\n    while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }\n    if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    \n    FUN_00020960();\n  }\n  uVar16 = DAT_0002c2b0 + 1;\n  local_70 = *(int *)((int)local_7c + 4);\n  cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n  local_58 = 0;\n  bVar18 = false;\n  switch(cVar7) {\n  case '!':\n  case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;\n  case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;\n  case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;\n  case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;\n  case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;\n  case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;\n  case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;\n  case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;\n  case 'P':\n  case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;\n  case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;\n  case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case 'c':\n    goto code_r0x00016f20;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;\n  case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;\n  case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;\n  case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;\n  case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;\n  case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;\n  case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }\n  }\n  goto LAB_000167f0;\ncode_r0x00016f20:\n  DAT_0002c2b0 = DAT_0002c2b0 + 2;\n  switch(*(undefined1 *)(local_70 + uVar16)) {\n  case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;\n  default:\n    goto LAB_000166a0;\n  case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;\n  case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;\n  case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;\n  case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);\n  }\nLAB_000167f0:\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n  puVar8 = (undefined4 *)DAT_0002c2ac;\n  iVar9 = DAT_0002c278;\n  goto LAB_000166a0;\ncode_r0x0001730b:\n  switch(*(char *)(local_70 + uVar16)) {\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }\ncode_r0x000172c4:\n  DAT_0002c2b0 = uVar16;\n  FUN_0001a730(cVar7);\n  local_70 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n  goto code_r0x000172dc;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "ushort uVar2;" type_identifier identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "byte extraout_var;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined1 uVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar18;" primitive_type identifier ;) (declaration "undefined4 *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "undefined4 *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "undefined4 *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "undefined4 *puStack_44;" type_identifier (pointer_declarator "*puStack_44" * identifier) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 uStack_34;" type_identifier identifier ;) (declaration "undefined4 uStack_30;" type_identifier identifier ;) (declaration "undefined4 uStack_2c;" type_identifier identifier ;) (declaration "undefined4 uStack_28;" type_identifier identifier ;) (declaration "undefined4 uStack_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x165e9;" (assignment_expression "uStack_14 = 0x165e9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "DAT_0002c28c = '\0';" (assignment_expression "DAT_0002c28c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "DAT_0002c2ac = 0;" (assignment_expression "DAT_0002c2ac = 0" identifier = number_literal) ;) (expression_statement "DAT_0002c2b0 = 0;" (assignment_expression "DAT_0002c2b0 = 0" identifier = number_literal) ;) (expression_statement "FUN_0001c550(&local_38);" (call_expression "FUN_0001c550(&local_38)" identifier (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) ))) ;) (if_statement "if (DAT_0002c1fc != '\0') {\n    signal(2,FUN_00015ea0);\n  }" if (parenthesized_expression "(DAT_0002c1fc != '\0')" ( (binary_expression "DAT_0002c1fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    signal(2,FUN_00015ea0);\n  }" { (expression_statement "signal(2,FUN_00015ea0);" (call_expression "signal(2,FUN_00015ea0)" identifier (argument_list "(2,FUN_00015ea0)" ( number_literal , identifier ))) ;) })) (expression_statement "puVar3 = PTR_stdout_0002bfec;" (assignment_expression "puVar3 = PTR_stdout_0002bfec" identifier = identifier) ;) (expression_statement "DAT_0002c220 = 0;" (assignment_expression "DAT_0002c220 = 0" identifier = number_literal) ;) (expression_statement "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);" (assignment_expression "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" identifier = (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" * (cast_expression "(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" ( (binary_expression "DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c" (binary_expression "DAT_0002c278 + 0xc" identifier + number_literal) + (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal)) ))))) ;) (expression_statement "puVar8 = (undefined4 *)DAT_0002c2ac;" (assignment_expression "puVar8 = (undefined4 *)DAT_0002c2ac" identifier = (cast_expression "(undefined4 *)DAT_0002c2ac" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" identifier = identifier) ;) (labeled_statement "LAB_000166a0:\n  iVar12 = DAT_0002c2a4;" statement_identifier : (expression_statement "iVar12 = DAT_0002c2a4;" (assignment_expression "iVar12 = DAT_0002c2a4" identifier = identifier) ;)) (expression_statement "local_7c = (undefined4 *)(iVar9 + (int)puVar8 * 0x1c);" (assignment_expression "local_7c = (undefined4 *)(iVar9 + (int)puVar8 * 0x1c)" identifier = (cast_expression "(undefined4 *)(iVar9 + (int)puVar8 * 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + (int)puVar8 * 0x1c)" ( (binary_expression "iVar9 + (int)puVar8 * 0x1c" identifier + (binary_expression "(int)puVar8 * 0x1c" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ;) (if_statement "if (((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0)) {\n    if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }\n    while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }\n    if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    \n    FUN_00020960();\n  }" if (parenthesized_expression "(((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0))" ( (binary_expression "((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0)" (parenthesized_expression "((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0'))" ( (binary_expression "(local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')" (parenthesized_expression "(local_78 <= DAT_0002c2b0)" ( (binary_expression "local_78 <= DAT_0002c2b0" identifier <= identifier) )) || (parenthesized_expression "(DAT_0002c28c != '\0')" ( (binary_expression "DAT_0002c28c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(DAT_0002c220 != 0)" ( (binary_expression "DAT_0002c220 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }\n    while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }\n    if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    \n    FUN_00020960();\n  }" { (if_statement "if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }" if (parenthesized_expression "(puVar8 != (undefined4 *)0x0)" ( (binary_expression "puVar8 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }" { (do_statement "do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);" do (compound_statement "{\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      }" { (expression_statement "FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));" (call_expression "FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c))" identifier (argument_list "(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c)" * (cast_expression "(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18 + (int)puVar8 * 0x1c)" ( (binary_expression "iVar9 + 0x18 + (int)puVar8 * 0x1c" (binary_expression "iVar9 + 0x18" identifier + number_literal) + (binary_expression "(int)puVar8 * 0x1c" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) ))) ;) (expression_statement "FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));" (call_expression "FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14))" identifier (argument_list "(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14))" ( (pointer_expression "*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" * (cast_expression "(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" ( (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) ))) ;) (expression_statement "FUN_00018ee0();" (call_expression "FUN_00018ee0()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_0002c2b0 = FUN_00018ee0();" (assignment_expression "DAT_0002c2b0 = FUN_00018ee0()" identifier = (call_expression "FUN_00018ee0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar8 = (undefined4 *)FUN_00018ee0();" (assignment_expression "puVar8 = (undefined4 *)FUN_00018ee0()" identifier = (cast_expression "(undefined4 *)FUN_00018ee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00018ee0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" identifier = identifier) ;) (expression_statement "DAT_0002c2ac = (uint)puVar8;" (assignment_expression "DAT_0002c2ac = (uint)puVar8" identifier = (cast_expression "(uint)puVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(puVar8 != (undefined4 *)0x0)" ( (binary_expression "puVar8 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "DAT_0002c2ac = 0;" (assignment_expression "DAT_0002c2ac = 0" identifier = number_literal) ;) })) (while_statement "while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }" while (parenthesized_expression "(DAT_0002c2bc != (int *)0x0)" ( (binary_expression "DAT_0002c2bc != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00018f70();\n    }" { (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }" if (parenthesized_expression "((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0))" ( (binary_expression "(DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)" (parenthesized_expression "(DAT_0002c1fc != '\0')" ( (binary_expression "DAT_0002c1fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)" ( (comma_expression "signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0" (call_expression "signal(2,(__sighandler_t)PTR_FUN_0002bff4)" identifier (argument_list "(2,(__sighandler_t)PTR_FUN_0002bff4)" ( number_literal , (cast_expression "(__sighandler_t)PTR_FUN_0002bff4" ( (type_descriptor "__sighandler_t" type_identifier) ) identifier) ))) , (binary_expression "DAT_0002c220 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }" { (expression_statement "puts("\ninterrupted execution.");" (call_expression "puts("\ninterrupted execution.")" identifier (argument_list "("\ninterrupted execution.")" ( (string_literal ""\ninterrupted execution."" " escape_sequence string_content ") ))) ;) (expression_statement "FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);" (call_expression "FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec)" identifier (argument_list "(*(undefined4 *)PTR_stdout_0002bfec)" ( (pointer_expression "*(undefined4 *)PTR_stdout_0002bfec" * (cast_expression "(undefined4 *)PTR_stdout_0002bfec" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\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      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00020960();" (call_expression "FUN_00020960()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar16 = DAT_0002c2b0 + 1;" (assignment_expression "uVar16 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) (expression_statement "local_70 = *(int *)((int)local_7c + 4);" (assignment_expression "local_70 = *(int *)((int)local_7c + 4)" identifier = (pointer_expression "*(int *)((int)local_7c + 4)" * (cast_expression "(int *)((int)local_7c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 4)" ( (binary_expression "(int)local_7c + 4" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "cVar7 = *(char *)(local_70 + DAT_0002c2b0);" (assignment_expression "cVar7 = *(char *)(local_70 + DAT_0002c2b0)" identifier = (pointer_expression "*(char *)(local_70 + DAT_0002c2b0)" * (cast_expression "(char *)(local_70 + DAT_0002c2b0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + DAT_0002c2b0)" ( (binary_expression "local_70 + DAT_0002c2b0" identifier + identifier) ))))) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (switch_statement "switch(cVar7) {\n  case '!':\n  case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;\n  case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;\n  case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;\n  case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;\n  case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;\n  case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;\n  case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;\n  case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;\n  case 'P':\n  case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;\n  case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;\n  case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case 'c':\n    goto code_r0x00016f20;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;\n  case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;\n  case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;\n  case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;\n  case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;\n  case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;\n  case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }\n  }" switch (parenthesized_expression "(cVar7)" ( identifier )) (compound_statement "{\n  case '!':\n  case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;\n  case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;\n  case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;\n  case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;\n  case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;\n  case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;\n  case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;\n  case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;\n  case 'P':\n  case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;\n  case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;\n  case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case 'c':\n    goto code_r0x00016f20;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;\n  case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;\n  case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;\n  case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;\n  case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;\n  case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;\n  case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }\n  }" { (case_statement "case '!':" case (char_literal "'!'" ' character ') :) (case_statement "case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;" case (char_literal "'T'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);" (assignment_expression "DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c6d0(*DAT_0002c2bc)" identifier (argument_list "(*DAT_0002c2bc)" ( (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (goto_statement "goto code_r0x000167c5;" goto statement_identifier ;)) (case_statement "default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;" default : (expression_statement "pcVar11 = "bad instruction: inst=%c";" (assignment_expression "pcVar11 = "bad instruction: inst=%c"" identifier = (string_literal ""bad instruction: inst=%c"" " string_content ")) ;) (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (goto_statement "goto code_r0x0001732f;" goto statement_identifier ;)) (case_statement "case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;" case (char_literal "'#'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (assignment_expression "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (expression_statement "DAT_0002c294 = iVar9 != 0;" (assignment_expression "DAT_0002c294 = iVar9 != 0" identifier = (binary_expression "iVar9 != 0" identifier != number_literal)) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x000167c5;" goto statement_identifier ;)) (case_statement "case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;" case (char_literal "'%'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "cVar7 = FUN_0001c6d0(*DAT_0002c2bc);" (assignment_expression "cVar7 = FUN_0001c6d0(*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c6d0(*DAT_0002c2bc)" identifier (argument_list "(*DAT_0002c2bc)" ( (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (if_statement "if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }" { (expression_statement "FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);" (call_expression "FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) , (pointer_expression "&local_38" & identifier) , identifier ))) ;) (goto_statement "goto code_r0x00016d14;" goto statement_identifier ;) })) (expression_statement "pcVar11 = "Modulo by zero";" (assignment_expression "pcVar11 = "Modulo by zero"" identifier = (string_literal ""Modulo by zero"" " string_content ")) ;) (goto_statement "goto code_r0x0001732f;" goto statement_identifier ;)) (case_statement "case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;" case (char_literal "'&'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);" (assignment_expression "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" identifier = (call_expression "FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1])" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) )))) ;) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" identifier = false) ;) (if_statement "if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }" { (expression_statement "cVar7 = FUN_0001c6d0(*DAT_0002c2bc);" (assignment_expression "cVar7 = FUN_0001c6d0(*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c6d0(*DAT_0002c2bc)" identifier (argument_list "(*DAT_0002c2bc)" ( (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (expression_statement "bVar18 = cVar7 == '\0';" (assignment_expression "bVar18 = cVar7 == '\0'" identifier = (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) })) (expression_statement "DAT_0002c294 = bVar18;" (assignment_expression "DAT_0002c294 = bVar18" identifier = identifier) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x000167c5;" goto statement_identifier ;)) (case_statement "case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;" case (char_literal "'*'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);" (call_expression "FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) , (pointer_expression "&local_38" & identifier) , identifier ))) ;) (labeled_statement "code_r0x00016d14:\n    FUN_00018f70();" statement_identifier : (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018ff0(local_38);" (call_expression "FUN_00018ff0(local_38)" identifier (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "FUN_0001c550(&local_38);" (call_expression "FUN_0001c550(&local_38)" identifier (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;" case (char_literal "'+'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }" { (expression_statement "FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);" (call_expression "FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) , (pointer_expression "&local_38" & identifier) , number_literal ))) ;) (goto_statement "goto code_r0x00016d14;" goto statement_identifier ;) })) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (case_statement "case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;" case (char_literal "'-'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }" { (expression_statement "FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);" (call_expression "FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) , (pointer_expression "&local_38" & identifier) , number_literal ))) ;) (goto_statement "goto code_r0x00016d14;" goto statement_identifier ;) })) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (case_statement "case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;" case (char_literal "'/'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);" (assignment_expression "iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" identifier = (call_expression "FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) , (pointer_expression "&local_38" & identifier) , identifier )))) ;) (if_statement "if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }" { (expression_statement "pcVar11 = "Divide by zero";" (assignment_expression "pcVar11 = "Divide by zero"" identifier = (string_literal ""Divide by zero"" " string_content ")) ;) (goto_statement "goto code_r0x0001732f;" goto statement_identifier ;) })) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018ff0(local_38);" (call_expression "FUN_00018ff0(local_38)" identifier (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "FUN_0001c550(&local_38);" (call_expression "FUN_0001c550(&local_38)" identifier (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;" case (char_literal "'0'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_00018fb0(DAT_0002c2c8);" (call_expression "FUN_00018fb0(DAT_0002c2c8)" identifier (argument_list "(DAT_0002c2c8)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;" case (char_literal "'1'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_00018fb0(DAT_0002c2c0);" (call_expression "FUN_00018fb0(DAT_0002c2c0)" identifier (argument_list "(DAT_0002c2c0)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;" case (char_literal "'<'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (assignment_expression "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (expression_statement "DAT_0002c294 = iVar9 == -1;" (assignment_expression "DAT_0002c294 = iVar9 == -1" identifier = (binary_expression "iVar9 == -1" identifier == number_literal)) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x000167c5;" goto statement_identifier ;)) (case_statement "case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;" case (char_literal "'='" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (assignment_expression "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (expression_statement "DAT_0002c294 = iVar9 == 0;" (assignment_expression "DAT_0002c294 = iVar9 == 0" identifier = (binary_expression "iVar9 == 0" identifier == number_literal)) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x000167c5;" goto statement_identifier ;)) (case_statement "case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;" case (char_literal "'>'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (assignment_expression "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (expression_statement "DAT_0002c294 = iVar9 == 1;" (assignment_expression "DAT_0002c294 = iVar9 == 1" identifier = (binary_expression "iVar9 == 1" identifier == number_literal)) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x000167c5;" goto statement_identifier ;)) (case_statement "case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;" case (char_literal "'A'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "FUN_00019f00(uVar10);" (call_expression "FUN_00019f00(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'B':" case (char_literal "'B'" ' character ') :) (case_statement "case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;" case (char_literal "'Z'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar6 = FUN_0001c6d0(*DAT_0002c2bc);" (assignment_expression "cVar6 = FUN_0001c6d0(*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c6d0(*DAT_0002c2bc)" identifier (argument_list "(*DAT_0002c2bc)" ( (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (expression_statement "DAT_0002c294 = cVar6 == '\0';" (assignment_expression "DAT_0002c294 = cVar6 == '\0'" identifier = (binary_expression "cVar6 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);" (assignment_expression "local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c)" identifier = (cast_expression "(undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c278 + DAT_0002c2ac * 0x1c)" ( (binary_expression "DAT_0002c278 + DAT_0002c2ac * 0x1c" identifier + (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal)) )))) ;) (expression_statement "local_70 = *(int *)((int)local_7c + 4);" (assignment_expression "local_70 = *(int *)((int)local_7c + 4)" identifier = (pointer_expression "*(int *)((int)local_7c + 4)" * (cast_expression "(int *)((int)local_7c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 4)" ( (binary_expression "(int)local_7c + 4" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_5c = DAT_0002c2b0 + 1;" (assignment_expression "local_5c = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) (expression_statement "uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);" (assignment_expression "uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0)" identifier = (pointer_expression "*(undefined1 *)(local_70 + DAT_0002c2b0)" * (cast_expression "(undefined1 *)(local_70 + DAT_0002c2b0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + DAT_0002c2b0)" ( (binary_expression "local_70 + DAT_0002c2b0" identifier + identifier) ))))) ;) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 2;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (expression_statement "puVar8 = (undefined4 *)DAT_0002c2ac;" (assignment_expression "puVar8 = (undefined4 *)DAT_0002c2ac" identifier = (cast_expression "(undefined4 *)DAT_0002c2ac" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" identifier = identifier) ;) (if_statement "if (cVar7 == 'J') goto code_r0x0001740e;" if (parenthesized_expression "(cVar7 == 'J')" ( (binary_expression "cVar7 == 'J'" identifier == (char_literal "'J'" ' character ')) )) (goto_statement "goto code_r0x0001740e;" goto statement_identifier ;)) (if_statement "if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;" if (parenthesized_expression "(cVar7 == 'B')" ( (binary_expression "cVar7 == 'B'" identifier == (char_literal "'B'" ' character ')) )) (compound_statement "{\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }" { (if_statement "if (DAT_0002c294 != 0) goto code_r0x0001740e;" if (parenthesized_expression "(DAT_0002c294 != 0)" ( (binary_expression "DAT_0002c294 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x0001740e;" goto statement_identifier ;)) }) (else_clause "else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;" else (if_statement "if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;" if (parenthesized_expression "((cVar7 == 'Z') && (DAT_0002c294 == 0))" ( (binary_expression "(cVar7 == 'Z') && (DAT_0002c294 == 0)" (parenthesized_expression "(cVar7 == 'Z')" ( (binary_expression "cVar7 == 'Z'" identifier == (char_literal "'Z'" ' character ')) )) && (parenthesized_expression "(DAT_0002c294 == 0)" ( (binary_expression "DAT_0002c294 == 0" identifier == number_literal) ))) )) (goto_statement "goto code_r0x0001740e;" goto statement_identifier ;)))) (expression_statement "local_78 = *(undefined4 **)((int)local_7c + 0xc);" (assignment_expression "local_78 = *(undefined4 **)((int)local_7c + 0xc)" identifier = (pointer_expression "*(undefined4 **)((int)local_7c + 0xc)" * (cast_expression "(undefined4 **)((int)local_7c + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_7c + 0xc)" ( (binary_expression "(int)local_7c + 0xc" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_000166a0;" goto statement_identifier ;)) (case_statement "case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;" case (char_literal "'C'" ' character ') : (expression_statement "local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);" (assignment_expression "local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(undefined4 *)(uint)*(byte *)(local_70 + uVar16)" (cast_expression "(undefined4 *)(uint)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);" (assignment_expression "local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100)" identifier = (cast_expression "(undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100)" ( (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100" (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))) + (binary_expression "((uint)local_7c & 0x7f) * 0x100" (parenthesized_expression "((uint)local_7c & 0x7f)" ( (binary_expression "(uint)local_7c & 0x7f" (cast_expression "(uint)local_7c" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) * number_literal)) )))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "iVar12 = (int)local_7c * 0x1c;" (assignment_expression "iVar12 = (int)local_7c * 0x1c" identifier = (binary_expression "(int)local_7c * 0x1c" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }" if (parenthesized_expression "(*(char *)(iVar9 + iVar12) == '\0')" ( (binary_expression "*(char *)(iVar9 + iVar12) == '\0'" (pointer_expression "*(char *)(iVar9 + iVar12)" * (cast_expression "(char *)(iVar9 + iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + iVar12)" ( (binary_expression "iVar9 + iVar12" identifier + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }" { (expression_statement "pcVar11 = "Function %s not defined.";" (assignment_expression "pcVar11 = "Function %s not defined."" identifier = (string_literal ""Function %s not defined."" " string_content ")) ;) (goto_statement "goto code_r0x0001732f;" goto statement_identifier ;) })) (expression_statement "FUN_0001a270(&DAT_0002c2ac,local_7c);" (call_expression "FUN_0001a270(&DAT_0002c2ac,local_7c)" identifier (argument_list "(&DAT_0002c2ac,local_7c)" ( (pointer_expression "&DAT_0002c2ac" & identifier) , identifier ))) ;) (for_statement "for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }" for ( (assignment_expression "puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12)" identifier = (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0x18 + iVar12)" * (cast_expression "(undefined4 **)(DAT_0002c278 + 0x18 + iVar12)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0002c278 + 0x18 + iVar12)" ( (binary_expression "DAT_0002c278 + 0x18 + iVar12" (binary_expression "DAT_0002c278 + 0x18" identifier + number_literal) + identifier) ))))) ; (binary_expression "puVar8 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar8 = (undefined4 *)puVar8[2]" identifier = (cast_expression "(undefined4 *)puVar8[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[2]" identifier [ number_literal ]))) ) (compound_statement "{\n      FUN_00019ff0(*puVar8);\n    }" { (expression_statement "FUN_00019ff0(*puVar8);" (call_expression "FUN_00019ff0(*puVar8)" identifier (argument_list "(*puVar8)" ( (pointer_expression "*puVar8" * identifier) ))) ;) })) (expression_statement "FUN_00018f40(DAT_0002c2ac);" (call_expression "FUN_00018f40(DAT_0002c2ac)" identifier (argument_list "(DAT_0002c2ac)" ( identifier ))) ;) (expression_statement "FUN_00018f40(DAT_0002c2b0);" (call_expression "FUN_00018f40(DAT_0002c2b0)" identifier (argument_list "(DAT_0002c2b0)" ( identifier ))) ;) (expression_statement "FUN_00018f40(DAT_0002c2a4);" (call_expression "FUN_00018f40(DAT_0002c2a4)" identifier (argument_list "(DAT_0002c2a4)" ( identifier ))) ;) (expression_statement "DAT_0002c2b0 = 0;" (assignment_expression "DAT_0002c2b0 = 0" identifier = number_literal) ;) (expression_statement "DAT_0002c2ac = (uint)local_7c;" (assignment_expression "DAT_0002c2ac = (uint)local_7c" identifier = (cast_expression "(uint)local_7c" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);" (assignment_expression "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12)" identifier = (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0xc + iVar12)" * (cast_expression "(undefined4 **)(DAT_0002c278 + 0xc + iVar12)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0002c278 + 0xc + iVar12)" ( (binary_expression "DAT_0002c278 + 0xc + iVar12" (binary_expression "DAT_0002c278 + 0xc" identifier + number_literal) + identifier) ))))) ;) (expression_statement "puVar8 = local_7c;" (assignment_expression "puVar8 = local_7c" identifier = identifier) ;) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" identifier = identifier) ;) (goto_statement "goto LAB_000166a0;" goto statement_identifier ;)) (case_statement "case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;" case (char_literal "'D'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_00018fb0(*DAT_0002c2bc);" (call_expression "FUN_00018fb0(*DAT_0002c2bc)" identifier (argument_list "(*DAT_0002c2bc)" ( (pointer_expression "*DAT_0002c2bc" * identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;" case (char_literal "'J'" ' character ') : (expression_statement "local_5c = DAT_0002c2b0 + 2;" (assignment_expression "local_5c = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (expression_statement "uVar15 = *(undefined1 *)(local_70 + uVar16);" (assignment_expression "uVar15 = *(undefined1 *)(local_70 + uVar16)" identifier = (pointer_expression "*(undefined1 *)(local_70 + uVar16)" * (cast_expression "(undefined1 *)(local_70 + uVar16)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 3;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) (labeled_statement "code_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);" statement_identifier : (expression_statement "uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);" (assignment_expression "uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15)" identifier = (call_expression "CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15)" identifier (argument_list "(*(undefined1 *)(local_70 + local_5c),uVar15)" ( (pointer_expression "*(undefined1 *)(local_70 + local_5c)" * (cast_expression "(undefined1 *)(local_70 + local_5c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + local_5c)" ( (binary_expression "local_70 + local_5c" identifier + identifier) )))) , identifier )))) ;)) (expression_statement "uVar16 = (uint)(uVar2 >> 6);" (assignment_expression "uVar16 = (uint)(uVar2 >> 6)" identifier = (call_expression "(uint)(uVar2 >> 6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 >> 6)" ( (binary_expression "uVar2 >> 6" identifier >> number_literal) )))) ;) (expression_statement "iVar14 = *(int *)((int)local_7c + 0x10);" (assignment_expression "iVar14 = *(int *)((int)local_7c + 0x10)" identifier = (pointer_expression "*(int *)((int)local_7c + 0x10)" * (cast_expression "(int *)((int)local_7c + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 0x10)" ( (binary_expression "(int)local_7c + 0x10" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar12 = uVar16 - 1;" (assignment_expression "iVar12 = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ;) (if_statement "if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }" { (do_statement "do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);" do (compound_statement "{\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      }" { (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (expression_statement "iVar14 = *(int *)(iVar14 + 0x100);" (assignment_expression "iVar14 = *(int *)(iVar14 + 0x100)" identifier = (pointer_expression "*(int *)(iVar14 + 0x100)" * (cast_expression "(int *)(iVar14 + 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x100)" ( (binary_expression "iVar14 + 0x100" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar12 != -1)" ( (binary_expression "iVar12 != -1" identifier != number_literal) )) ;) })) (if_statement "if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }" { (expression_statement "pcVar11 = "Internal error.";" (assignment_expression "pcVar11 = "Internal error."" identifier = (string_literal ""Internal error."" " string_content ")) ;) (goto_statement "goto code_r0x0001732f;" goto statement_identifier ;) })) (expression_statement "DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);" (assignment_expression "DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4)" identifier = (pointer_expression "*(uint *)(iVar14 + (uVar2 & 0x3f) * 4)" * (cast_expression "(uint *)(iVar14 + (uVar2 & 0x3f) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + (uVar2 & 0x3f) * 4)" ( (binary_expression "iVar14 + (uVar2 & 0x3f) * 4" identifier + (binary_expression "(uVar2 & 0x3f) * 4" (parenthesized_expression "(uVar2 & 0x3f)" ( (binary_expression "uVar2 & 0x3f" identifier & number_literal) )) * number_literal)) ))))) ;) (expression_statement "local_78 = *(undefined4 **)((int)local_7c + 0xc);" (assignment_expression "local_78 = *(undefined4 **)((int)local_7c + 0xc)" identifier = (pointer_expression "*(undefined4 **)((int)local_7c + 0xc)" * (cast_expression "(undefined4 **)((int)local_7c + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)local_7c + 0xc)" ( (binary_expression "(int)local_7c + 0xc" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_000166a0;" goto statement_identifier ;)) (case_statement "case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;" case (char_literal "'K'" ' character ') : (if_statement "if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }" if (parenthesized_expression "(puVar8 == (undefined4 *)0x0)" ( (binary_expression "puVar8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_70 = DAT_0002c2a4;\n    }" { (expression_statement "local_70 = DAT_0002c2a4;" (assignment_expression "local_70 = DAT_0002c2a4" identifier = identifier) ;) }) (else_clause "else {\n      local_70 = *DAT_0002c250;\n    }" else (compound_statement "{\n      local_70 = *DAT_0002c250;\n    }" { (expression_statement "local_70 = *DAT_0002c250;" (assignment_expression "local_70 = *DAT_0002c250" identifier = (pointer_expression "*DAT_0002c250" * identifier)) ;) }))) (if_statement "if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }" if (parenthesized_expression "(local_70 == 10)" ( (binary_expression "local_70 == 10" identifier == number_literal) )) (compound_statement "{\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }" { (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_00016360(&DAT_0002c2ac);" (call_expression "FUN_00016360(&DAT_0002c2ac)" identifier (argument_list "(&DAT_0002c2ac)" ( (pointer_expression "&DAT_0002c2ac" & identifier) ))) ;) (break_statement "break;" break ;) })) (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_0001c550(&uStack_30);" (call_expression "FUN_0001c550(&uStack_30)" identifier (argument_list "(&uStack_30)" ( (pointer_expression "&uStack_30" & identifier) ))) ;) (expression_statement "FUN_0001c550(&uStack_2c);" (call_expression "FUN_0001c550(&uStack_2c)" identifier (argument_list "(&uStack_2c)" ( (pointer_expression "&uStack_2c" & identifier) ))) ;) (expression_statement "FUN_0001c550(&uStack_28);" (call_expression "FUN_0001c550(&uStack_28)" identifier (argument_list "(&uStack_28)" ( (pointer_expression "&uStack_28" & identifier) ))) ;) (expression_statement "uStack_34 = FUN_0001c540(DAT_0002c2c8);" (assignment_expression "uStack_34 = FUN_0001c540(DAT_0002c2c8)" identifier = (call_expression "FUN_0001c540(DAT_0002c2c8)" identifier (argument_list "(DAT_0002c2c8)" ( identifier )))) ;) (expression_statement "FUN_0001f070(&uStack_28,local_70);" (call_expression "FUN_0001f070(&uStack_28,local_70)" identifier (argument_list "(&uStack_28,local_70)" ( (pointer_expression "&uStack_28" & identifier) , identifier ))) ;) (expression_statement "iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);" (assignment_expression "iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" identifier = (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" * (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal) + identifier) + number_literal) ))))) ;) (expression_statement "uVar16 = DAT_0002c2b0 + 1;" (assignment_expression "uVar16 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0)" identifier = (binary_expression "(uint)*(byte *)(iVar9 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar9 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + DAT_0002c2b0)" ( (binary_expression "iVar9 + DAT_0002c2b0" identifier + identifier) ))))) ;) (if_statement "if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }" if (parenthesized_expression "(uVar17 == 0x7e)" ( (binary_expression "uVar17 == 0x7e" identifier == number_literal) )) (compound_statement "{\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }" { (expression_statement "uVar10 = DAT_0002c2b0 + 2;" (assignment_expression "uVar10 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (do_statement "do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);" do (compound_statement "{\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      }" { (expression_statement "uVar16 = uVar10;" (assignment_expression "uVar16 = uVar10" identifier = identifier) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(iVar9 + -1 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar9 + -1 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -1 + uVar16)" ( (binary_expression "iVar9 + -1 + uVar16" (binary_expression "iVar9 + -1" identifier + number_literal) + identifier) ))))) ;) (expression_statement "uVar10 = uVar16 + 1;" (assignment_expression "uVar10 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar17 == 0x7e)" ( (binary_expression "uVar17 == 0x7e" identifier == number_literal) )) ;) })) (if_statement "if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }" if (parenthesized_expression "(uVar17 == 0x2b)" ( (binary_expression "uVar17 == 0x2b" identifier == number_literal) )) (compound_statement "{\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }" { (expression_statement "DAT_0002c2b0 = uVar16 + 1;" (assignment_expression "DAT_0002c2b0 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar9 + uVar16);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar9 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(iVar9 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar9 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + uVar16)" ( (binary_expression "iVar9 + uVar16" identifier + identifier) ))))) ;) }) (else_clause "else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }" else (compound_statement "{\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }" { (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (if_statement "if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }" if (parenthesized_expression "(uVar17 == 0x2d)" ( (binary_expression "uVar17 == 0x2d" identifier == number_literal) )) (compound_statement "{\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }" { (expression_statement "bVar18 = true;" (assignment_expression "bVar18 = true" identifier = true) ;) (expression_statement "DAT_0002c2b0 = uVar16 + 1;" (assignment_expression "DAT_0002c2b0 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = (uint)*(byte *)(iVar9 + uVar16);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar9 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(iVar9 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar9 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + uVar16)" ( (binary_expression "iVar9 + uVar16" identifier + identifier) ))))) ;) })) }))) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" identifier = identifier) ;) (if_statement "if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }" if (parenthesized_expression "(uVar17 < 0x24)" ( (binary_expression "uVar17 < 0x24" identifier < number_literal) )) (compound_statement "{\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }" { (expression_statement "uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);" (assignment_expression "uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0)" identifier = (binary_expression "(uint)*(byte *)(iVar9 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar9 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + DAT_0002c2b0)" ( (binary_expression "iVar9 + DAT_0002c2b0" identifier + identifier) ))))) ;) (if_statement "if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }" if (parenthesized_expression "((uVar16 < 0x24) && (local_70 <= (int)uVar17))" ( (binary_expression "(uVar16 < 0x24) && (local_70 <= (int)uVar17)" (parenthesized_expression "(uVar16 < 0x24)" ( (binary_expression "uVar16 < 0x24" identifier < number_literal) )) && (parenthesized_expression "(local_70 <= (int)uVar17)" ( (binary_expression "local_70 <= (int)uVar17" identifier <= (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }" { (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 1;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0001f070(&uStack_34,local_70 + -1);" (call_expression "FUN_0001f070(&uStack_34,local_70 + -1)" identifier (argument_list "(&uStack_34,local_70 + -1)" ( (pointer_expression "&uStack_34" & identifier) , (binary_expression "local_70 + -1" identifier + number_literal) ))) ;) }) (else_clause "else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }" else (compound_statement "{\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }" { (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 1;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0001f070(&uStack_34,uVar17);" (call_expression "FUN_0001f070(&uStack_34,uVar17)" identifier (argument_list "(&uStack_34,uVar17)" ( (pointer_expression "&uStack_34" & identifier) , identifier ))) ;) (if_statement "if (0x23 < uVar16) goto code_r0x00017202;" if (parenthesized_expression "(0x23 < uVar16)" ( (binary_expression "0x23 < uVar16" number_literal < identifier) )) (goto_statement "goto code_r0x00017202;" goto statement_identifier ;)) }))) (expression_statement "local_60 = &uStack_34;" (assignment_expression "local_60 = &uStack_34" identifier = (pointer_expression "&uStack_34" & identifier)) ;) (do_statement "do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);" do (compound_statement "{\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      }" { (if_statement "if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }" if (parenthesized_expression "(local_70 <= (int)uVar16)" ( (binary_expression "local_70 <= (int)uVar16" identifier <= (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar16 = local_70 - 1;\n        }" { (expression_statement "uVar16 = local_70 - 1;" (assignment_expression "uVar16 = local_70 - 1" identifier = (binary_expression "local_70 - 1" identifier - number_literal)) ;) })) (expression_statement "FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);" (call_expression "FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0)" identifier (argument_list "(uStack_34,uStack_28,&uStack_2c,0)" ( identifier , identifier , (pointer_expression "&uStack_2c" & identifier) , number_literal ))) ;) (expression_statement "FUN_0001f070(&uStack_30,uVar16);" (call_expression "FUN_0001f070(&uStack_30,uVar16)" identifier (argument_list "(&uStack_30,uVar16)" ( (pointer_expression "&uStack_30" & identifier) , identifier ))) ;) (expression_statement "FUN_0001d720(uStack_2c,uStack_30,local_60,0);" (call_expression "FUN_0001d720(uStack_2c,uStack_30,local_60,0)" identifier (argument_list "(uStack_2c,uStack_30,local_60,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 1;" (assignment_expression "uVar17 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) (expression_statement "uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);" (assignment_expression "uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" identifier = (binary_expression "(uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" ( (binary_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0" (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" * (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) + identifier) ))))) ;) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) }) while (parenthesized_expression "(uVar16 < 0x24)" ( (binary_expression "uVar16 < 0x24" identifier < number_literal) )) ;) })) (labeled_statement "code_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }" statement_identifier : (if_statement "if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }" if (parenthesized_expression "(uVar16 == 0x2e)" ( (binary_expression "uVar16 == 0x2e" identifier == number_literal) )) (compound_statement "{\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }" { (expression_statement "uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);" (assignment_expression "uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" identifier = (binary_expression "(uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" ( (binary_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0" (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" * (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) + identifier) ))))) ;) (expression_statement "uVar16 = local_70 - 1;" (assignment_expression "uVar16 = local_70 - 1" identifier = (binary_expression "local_70 - 1" identifier - number_literal)) ;) (if_statement "if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }" if (parenthesized_expression "(local_70 <= (int)uVar17)" ( (binary_expression "local_70 <= (int)uVar17" identifier <= (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar17 = uVar16;\n      }" { (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) })) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 1;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) (expression_statement "FUN_0001c2e0(&uStack_2c);" (call_expression "FUN_0001c2e0(&uStack_2c)" identifier (argument_list "(&uStack_2c)" ( (pointer_expression "&uStack_2c" & identifier) ))) ;) (expression_statement "FUN_0001c2e0(&uStack_30);" (call_expression "FUN_0001c2e0(&uStack_30)" identifier (argument_list "(&uStack_30)" ( (pointer_expression "&uStack_30" & identifier) ))) ;) (expression_statement "uStack_24 = FUN_0001c540(DAT_0002c2c0);" (assignment_expression "uStack_24 = FUN_0001c540(DAT_0002c2c0)" identifier = (call_expression "FUN_0001c540(DAT_0002c2c0)" identifier (argument_list "(DAT_0002c2c0)" ( identifier )))) ;) (expression_statement "uStack_2c = FUN_0001c540(DAT_0002c2c8);" (assignment_expression "uStack_2c = FUN_0001c540(DAT_0002c2c8)" identifier = (call_expression "FUN_0001c540(DAT_0002c2c8)" identifier (argument_list "(DAT_0002c2c8)" ( identifier )))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }" if (parenthesized_expression "((int)uVar17 < 0x24)" ( (binary_expression "(int)uVar17 < 0x24" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }" { (do_statement "do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);" do (compound_statement "{\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        }" { (while_statement "while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }" { (expression_statement "local_58 = iVar9;" (assignment_expression "local_58 = iVar9" identifier = identifier) ;) (expression_statement "FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);" (call_expression "FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0)" identifier (argument_list "(uStack_2c,uStack_28,&uStack_2c,0)" ( identifier , identifier , (pointer_expression "&uStack_2c" & identifier) , number_literal ))) ;) (expression_statement "FUN_0001f070(&uStack_30,uVar17);" (call_expression "FUN_0001f070(&uStack_30,uVar17)" identifier (argument_list "(&uStack_30,uVar17)" ( (pointer_expression "&uStack_30" & identifier) , identifier ))) ;) (expression_statement "FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);" (call_expression "FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0)" identifier (argument_list "(uStack_2c,uStack_30,&uStack_2c,0)" ( identifier , identifier , (pointer_expression "&uStack_2c" & identifier) , number_literal ))) ;) (expression_statement "FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);" (call_expression "FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0)" identifier (argument_list "(uStack_24,uStack_28,&uStack_24,0)" ( identifier , identifier , (pointer_expression "&uStack_24" & identifier) , number_literal ))) ;) (expression_statement "local_58 = local_58 + 1;" (assignment_expression "local_58 = local_58 + 1" identifier = (binary_expression "local_58 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = DAT_0002c2b0 + 1;" (assignment_expression "uVar10 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) (expression_statement "uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );" (assignment_expression "uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    )" identifier = (binary_expression "(uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    )" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    )" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    )" ( (binary_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0" (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" * (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) + identifier) ))))) ;) (expression_statement "DAT_0002c2b0 = uVar10;" (assignment_expression "DAT_0002c2b0 = uVar10" identifier = identifier) ;) (expression_statement "iVar9 = local_58;" (assignment_expression "iVar9 = local_58" identifier = identifier) ;) (if_statement "if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;" if (parenthesized_expression "((0x23 < uVar17) || ((int)uVar17 < local_70))" ( (binary_expression "(0x23 < uVar17) || ((int)uVar17 < local_70)" (parenthesized_expression "(0x23 < uVar17)" ( (binary_expression "0x23 < uVar17" number_literal < identifier) )) || (parenthesized_expression "((int)uVar17 < local_70)" ( (binary_expression "(int)uVar17 < local_70" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) ))) )) (break_statement "break;" break ;)) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (if_statement "if (0x23 < (int)uVar16) goto code_r0x00017a9d;" if (parenthesized_expression "(0x23 < (int)uVar16)" ( (binary_expression "0x23 < (int)uVar16" number_literal < (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto code_r0x00017a9d;" goto statement_identifier ;)) })) }) while (parenthesized_expression "(uVar17 < 0x24)" ( (binary_expression "uVar17 < 0x24" identifier < number_literal) )) ;) })) (goto_statement "goto code_r0x00017a9d;" goto statement_identifier ;) }))) (goto_statement "goto code_r0x0001720b;" goto statement_identifier ;)) (case_statement "case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;" case (char_literal "'L'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "FUN_00019a30(uVar10);" (call_expression "FUN_00019a30(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;" case (char_literal "'M'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "FUN_00019ca0(uVar10);" (call_expression "FUN_00019ca0(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;" case (char_literal "'O'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (labeled_statement "code_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;" statement_identifier : (expression_statement "uVar16 = DAT_0002c2b0 + 1;" (assignment_expression "uVar16 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;)) (expression_statement "cVar7 = *(char *)(local_70 + DAT_0002c2b0);" (assignment_expression "cVar7 = *(char *)(local_70 + DAT_0002c2b0)" identifier = (pointer_expression "*(char *)(local_70 + DAT_0002c2b0)" * (cast_expression "(char *)(local_70 + DAT_0002c2b0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + DAT_0002c2b0)" ( (binary_expression "local_70 + DAT_0002c2b0" identifier + identifier) ))))) ;) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" identifier = identifier) ;) (if_statement "if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }" if (parenthesized_expression "(cVar7 != '\"')" ( (binary_expression "cVar7 != '\"'" identifier != (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }" { (if_statement "if (cVar7 != '\\') goto code_r0x000172c4;" if (parenthesized_expression "(cVar7 != '\\')" ( (binary_expression "cVar7 != '\\'" identifier != (char_literal "'\\'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000172c4;" goto statement_identifier ;)) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 2;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (expression_statement "uVar17 = DAT_0002c2b0;" (assignment_expression "uVar17 = DAT_0002c2b0" identifier = identifier) ;) (if_statement "if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;" if (parenthesized_expression "(*(char *)(local_70 + uVar16) != '\"')" ( (binary_expression "*(char *)(local_70 + uVar16) != '\"'" (pointer_expression "*(char *)(local_70 + uVar16)" * (cast_expression "(char *)(local_70 + uVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) )))) != (char_literal "'\"'" ' escape_sequence ')) )) (goto_statement "goto code_r0x0001730b;" goto statement_identifier ;)) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "fflush(*(FILE **)puVar3);" (call_expression "fflush(*(FILE **)puVar3)" identifier (argument_list "(*(FILE **)puVar3)" ( (pointer_expression "*(FILE **)puVar3" * (cast_expression "(FILE **)puVar3" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_000208a0(*(undefined4 *)puVar3);" (call_expression "FUN_000208a0(*(undefined4 *)puVar3)" identifier (argument_list "(*(undefined4 *)puVar3)" ( (pointer_expression "*(undefined4 *)puVar3" * (cast_expression "(undefined4 *)puVar3" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'P':" case (char_literal "'P'" ' character ') :) (case_statement "case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;" case (char_literal "'W'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);" (call_expression "FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec)" identifier (argument_list "(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec)" ( (pointer_expression "*DAT_0002c2bc" * identifier) , identifier , identifier , identifier ))) ;) (if_statement "if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }" if (parenthesized_expression "(cVar7 == 'W')" ( (binary_expression "cVar7 == 'W'" identifier == (char_literal "'W'" ' character ')) )) (compound_statement "{\n      FUN_0001a680(10);\n    }" { (expression_statement "FUN_0001a680(10);" (call_expression "FUN_0001a680(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (expression_statement "FUN_00019410(4);" (call_expression "FUN_00019410(4)" identifier (argument_list "(4)" ( number_literal ))) ;) (expression_statement "puVar4 = PTR_stdout_0002bfec;" (assignment_expression "puVar4 = PTR_stdout_0002bfec" identifier = identifier) ;) (expression_statement "fflush(*(FILE **)PTR_stdout_0002bfec);" (call_expression "fflush(*(FILE **)PTR_stdout_0002bfec)" identifier (argument_list "(*(FILE **)PTR_stdout_0002bfec)" ( (pointer_expression "*(FILE **)PTR_stdout_0002bfec" * (cast_expression "(FILE **)PTR_stdout_0002bfec" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_000208a0(*(undefined4 *)puVar4);" (call_expression "FUN_000208a0(*(undefined4 *)puVar4)" identifier (argument_list "(*(undefined4 *)puVar4)" ( (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;" case (char_literal "'R'" ' character ') : (if_statement "if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }" if (parenthesized_expression "(puVar8 == (undefined4 *)0x0)" ( (binary_expression "puVar8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }" { (expression_statement "pcVar11 = "Return from main program.";" (assignment_expression "pcVar11 = "Return from main program."" identifier = (string_literal ""Return from main program."" " string_content ")) ;) (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (goto_statement "goto code_r0x0001732f;" goto statement_identifier ;) })) (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));" (call_expression "FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18))" identifier (argument_list "(*(undefined4 *)((int)local_7c + 0x18))" ( (pointer_expression "*(undefined4 *)((int)local_7c + 0x18)" * (cast_expression "(undefined4 *)((int)local_7c + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_7c + 0x18)" ( (binary_expression "(int)local_7c + 0x18" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));" (call_expression "FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14))" identifier (argument_list "(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14))" ( (pointer_expression "*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" * (cast_expression "(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" ( (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) ))) ;) (expression_statement "FUN_00018ee0();" (call_expression "FUN_00018ee0()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_0002c2b0 = FUN_00018ee0();" (assignment_expression "DAT_0002c2b0 = FUN_00018ee0()" identifier = (call_expression "FUN_00018ee0()" identifier (argument_list "()" ( )))) ;) (expression_statement "puVar8 = (undefined4 *)FUN_00018ee0();" (assignment_expression "puVar8 = (undefined4 *)FUN_00018ee0()" identifier = (cast_expression "(undefined4 *)FUN_00018ee0()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00018ee0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);" (assignment_expression "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c)" identifier = (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c)" * (cast_expression "(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c)" ( (binary_expression "DAT_0002c278 + 0xc + (int)puVar8 * 0x1c" (binary_expression "DAT_0002c278 + 0xc" identifier + number_literal) + (binary_expression "(int)puVar8 * 0x1c" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" identifier = identifier) ;) (expression_statement "DAT_0002c2ac = (uint)puVar8;" (assignment_expression "DAT_0002c2ac = (uint)puVar8" identifier = (cast_expression "(uint)puVar8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_000166a0;" goto statement_identifier ;)) (case_statement "case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;" case (char_literal "'S'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "FUN_00019770(uVar10);" (call_expression "FUN_00019770(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;" case (char_literal "'^'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);" (call_expression "FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) , (pointer_expression "&local_38" & identifier) , identifier ))) ;) (expression_statement "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);" (assignment_expression "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" identifier = (call_expression "FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1])" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) )))) ;) (if_statement "if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }" if (parenthesized_expression "((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0'))" ( (binary_expression "(cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')" (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')" ( (comma_expression "cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0'" (assignment_expression "cVar7 = FUN_0001c6c0(*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c6c0(*DAT_0002c2bc)" identifier (argument_list "(*DAT_0002c2bc)" ( (pointer_expression "*DAT_0002c2bc" * identifier) )))) , (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      FUN_0001b7b0("divide by zero");\n    }" { (expression_statement "FUN_0001b7b0("divide by zero");" (call_expression "FUN_0001b7b0("divide by zero")" identifier (argument_list "("divide by zero")" ( (string_literal ""divide by zero"" " string_content ") ))) ;) })) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00018ff0(local_38);" (call_expression "FUN_00018ff0(local_38)" identifier (argument_list "(local_38)" ( identifier ))) ;) (expression_statement "FUN_0001c550(&local_38);" (call_expression "FUN_0001c550(&local_38)" identifier (argument_list "(&local_38)" ( (pointer_expression "&local_38" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'c':\n    goto code_r0x00016f20;" case (char_literal "'c'" ' character ') : (goto_statement "goto code_r0x00016f20;" goto statement_identifier ;)) (case_statement "case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;" case (char_literal "'d'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "FUN_00019b30(uVar10);" (call_expression "FUN_00019b30(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;" case (char_literal "'h'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_0001b8a0(0);" (call_expression "FUN_0001b8a0(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;" case (char_literal "'i'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "FUN_00019d90(uVar10);" (call_expression "FUN_00019d90(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;" case (char_literal "'l'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "FUN_00019880(uVar10);" (call_expression "FUN_00019880(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;" case (char_literal "'n'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);" (call_expression "FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0)" identifier (argument_list "(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0)" ( identifier , (pointer_expression "*DAT_0002c2bc" * identifier) , identifier , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;" case (char_literal "'p'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (case_statement "case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;" case (char_literal "'s'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" identifier = (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" ( (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_70 + uVar16)" * (cast_expression "(byte *)(local_70 + uVar16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" ( (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" identifier = (binary_expression "DAT_0002c2b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" identifier = identifier) ;) (expression_statement "FUN_00019410(uVar10);" (call_expression "FUN_00019410(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;" case (char_literal "'w'" ' character ') : (expression_statement "cVar7 = *(char *)(local_70 + uVar16);" (assignment_expression "cVar7 = *(char *)(local_70 + uVar16)" identifier = (pointer_expression "*(char *)(local_70 + uVar16)" * (cast_expression "(char *)(local_70 + uVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) ))))) ;) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 2;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;) (while_statement "while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }" while (parenthesized_expression "(puVar4 = PTR_stdout_0002bfec, cVar7 != '\"')" ( (comma_expression "puVar4 = PTR_stdout_0002bfec, cVar7 != '\"'" (assignment_expression "puVar4 = PTR_stdout_0002bfec" identifier = identifier) , (binary_expression "cVar7 != '\"'" identifier != (char_literal "'\"'" ' escape_sequence '))) )) (compound_statement "{\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }" { (expression_statement "FUN_0001a730(cVar7);" (call_expression "FUN_0001a730(cVar7)" identifier (argument_list "(cVar7)" ( identifier ))) ;) (expression_statement "cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);" (assignment_expression "cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" identifier = (pointer_expression "*(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" * (cast_expression "(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" ( (binary_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0" (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" * (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) + identifier) ))))) ;) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 1;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 1" identifier = (binary_expression "DAT_0002c2b0 + 1" identifier + number_literal)) ;) })) (expression_statement "fflush(*(FILE **)PTR_stdout_0002bfec);" (call_expression "fflush(*(FILE **)PTR_stdout_0002bfec)" identifier (argument_list "(*(FILE **)PTR_stdout_0002bfec)" ( (pointer_expression "*(FILE **)PTR_stdout_0002bfec" * (cast_expression "(FILE **)PTR_stdout_0002bfec" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_000208a0(*(undefined4 *)puVar4);" (call_expression "FUN_000208a0(*(undefined4 *)puVar4)" identifier (argument_list "(*(undefined4 *)puVar4)" ( (pointer_expression "*(undefined4 *)puVar4" * (cast_expression "(undefined4 *)puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;" case (char_literal "'x'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }" { (expression_statement "piVar1 = DAT_0002c2bc + 1;" (assignment_expression "piVar1 = DAT_0002c2bc + 1" identifier = (binary_expression "DAT_0002c2bc + 1" identifier + number_literal)) ;) (expression_statement "iVar9 = *DAT_0002c2bc;" (assignment_expression "iVar9 = *DAT_0002c2bc" identifier = (pointer_expression "*DAT_0002c2bc" * identifier)) ;) (expression_statement "*DAT_0002c2bc = *(int *)*piVar1;" (assignment_expression "*DAT_0002c2bc = *(int *)*piVar1" (pointer_expression "*DAT_0002c2bc" * identifier) = (pointer_expression "*(int *)*piVar1" * (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier)))) ;) (expression_statement "*(int *)*piVar1 = iVar9;" (assignment_expression "*(int *)*piVar1 = iVar9" (pointer_expression "*(int *)*piVar1" * (cast_expression "(int *)*piVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar1" * identifier))) = identifier) ;) })) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (case_statement "case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;" case (char_literal "'{'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (assignment_expression "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (expression_statement "DAT_0002c294 = iVar9 < 1;" (assignment_expression "DAT_0002c294 = iVar9 < 1" identifier = (binary_expression "iVar9 < 1" identifier < number_literal)) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x000167c5;" goto statement_identifier ;)) (case_statement "case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;" case (char_literal "'|'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);" (assignment_expression "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" identifier = (call_expression "FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1])" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) )))) ;) (expression_statement "bVar18 = true;" (assignment_expression "bVar18 = true" identifier = true) ;) (if_statement "if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }" { (expression_statement "cVar7 = FUN_0001c6d0(*DAT_0002c2bc);" (assignment_expression "cVar7 = FUN_0001c6d0(*DAT_0002c2bc)" identifier = (call_expression "FUN_0001c6d0(*DAT_0002c2bc)" identifier (argument_list "(*DAT_0002c2bc)" ( (pointer_expression "*DAT_0002c2bc" * identifier) )))) ;) (expression_statement "bVar18 = cVar7 == '\0';" (assignment_expression "bVar18 = cVar7 == '\0'" identifier = (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) })) (expression_statement "DAT_0002c294 = bVar18;" (assignment_expression "DAT_0002c294 = bVar18" identifier = identifier) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x000167c5;" goto statement_identifier ;)) (case_statement "case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }" case (char_literal "'}'" ' character ') : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" identifier = (call_expression "FUN_00019020(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016998;" goto statement_identifier ;)) (expression_statement "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" identifier (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" ( (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" * (cast_expression "(undefined4 *)DAT_0002c2bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_0002c2bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_0002c2bc" * identifier) ))) ;) (expression_statement "DAT_0002c294 = (byte)~extraout_var >> 7;" (assignment_expression "DAT_0002c294 = (byte)~extraout_var >> 7" identifier = (binary_expression "(byte)~extraout_var >> 7" (cast_expression "(byte)~extraout_var" ( (type_descriptor "byte" type_identifier) ) (unary_expression "~extraout_var" ~ identifier)) >> number_literal)) ;) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" identifier (argument_list "()" ( ))) ;) (labeled_statement "code_r0x000167c5:\n    bVar5 = DAT_0002c294;" statement_identifier : (expression_statement "bVar5 = DAT_0002c294;" (assignment_expression "bVar5 = DAT_0002c294" identifier = identifier) ;)) (expression_statement "FUN_0001c2e0(DAT_0002c2bc);" (call_expression "FUN_0001c2e0(DAT_0002c2bc)" identifier (argument_list "(DAT_0002c2bc)" ( identifier ))) ;) (expression_statement "piVar1 = DAT_0002c2bc;" (assignment_expression "piVar1 = DAT_0002c2bc" identifier = identifier) ;) (if_statement "if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }" { (expression_statement "iVar9 = FUN_0001c540(DAT_0002c2c8);" (assignment_expression "iVar9 = FUN_0001c540(DAT_0002c2c8)" identifier = (call_expression "FUN_0001c540(DAT_0002c2c8)" identifier (argument_list "(DAT_0002c2c8)" ( identifier )))) ;) (expression_statement "*piVar1 = iVar9;" (assignment_expression "*piVar1 = iVar9" (pointer_expression "*piVar1" * identifier) = identifier) ;) }) (else_clause "else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }" else (compound_statement "{\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }" { (expression_statement "iVar9 = FUN_0001c540(DAT_0002c2c0);" (assignment_expression "iVar9 = FUN_0001c540(DAT_0002c2c0)" identifier = (call_expression "FUN_0001c540(DAT_0002c2c0)" identifier (argument_list "(DAT_0002c2c0)" ( identifier )))) ;) (expression_statement "*piVar1 = iVar9;" (assignment_expression "*piVar1 = iVar9" (pointer_expression "*piVar1" * identifier) = identifier) ;) })))) })) (goto_statement "goto LAB_000167f0;" goto statement_identifier ;) (labeled_statement "code_r0x00016f20:\n  DAT_0002c2b0 = DAT_0002c2b0 + 2;" statement_identifier : (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 2;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 2" identifier = (binary_expression "DAT_0002c2b0 + 2" identifier + number_literal)) ;)) (switch_statement "switch(*(undefined1 *)(local_70 + uVar16)) {\n  case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;\n  default:\n    goto LAB_000166a0;\n  case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;\n  case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;\n  case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;\n  case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);\n  }" switch (parenthesized_expression "(*(undefined1 *)(local_70 + uVar16))" ( (pointer_expression "*(undefined1 *)(local_70 + uVar16)" * (cast_expression "(undefined1 *)(local_70 + uVar16)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) )))) )) (compound_statement "{\n  case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;\n  default:\n    goto LAB_000166a0;\n  case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;\n  case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;\n  case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;\n  case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);\n  }" { (case_statement "case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;" case number_literal : (expression_statement "FUN_0001c550(&uStack_30);" (call_expression "FUN_0001c550(&uStack_30)" identifier (argument_list "(&uStack_30)" ( (pointer_expression "&uStack_30" & identifier) ))) ;) (expression_statement "FUN_0001c550(&uStack_2c);" (call_expression "FUN_0001c550(&uStack_2c)" identifier (argument_list "(&uStack_2c)" ( (pointer_expression "&uStack_2c" & identifier) ))) ;) (expression_statement "FUN_0001c550(&uStack_28);" (call_expression "FUN_0001c550(&uStack_28)" identifier (argument_list "(&uStack_28)" ( (pointer_expression "&uStack_28" & identifier) ))) ;) (expression_statement "uStack_34 = FUN_0001c540(DAT_0002c2c8);" (assignment_expression "uStack_34 = FUN_0001c540(DAT_0002c2c8)" identifier = (call_expression "FUN_0001c540(DAT_0002c2c8)" identifier (argument_list "(DAT_0002c2c8)" ( identifier )))) ;) (expression_statement "FUN_0001f070(&uStack_28,iVar12);" (call_expression "FUN_0001f070(&uStack_28,iVar12)" identifier (argument_list "(&uStack_28,iVar12)" ( (pointer_expression "&uStack_28" & identifier) , identifier ))) ;) (expression_statement "iVar9 = FUN_00015f20();" (assignment_expression "iVar9 = FUN_00015f20()" identifier = (call_expression "FUN_00015f20()" identifier (argument_list "()" ( )))) ;) (while_statement "while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }" while (parenthesized_expression "(iVar9 == 0x7e)" ( (binary_expression "iVar9 == 0x7e" identifier == number_literal) )) (compound_statement "{\n      iVar9 = FUN_00015f20();\n    }" { (expression_statement "iVar9 = FUN_00015f20();" (assignment_expression "iVar9 = FUN_00015f20()" identifier = (call_expression "FUN_00015f20()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }" if (parenthesized_expression "(iVar9 == 0x2b)" ( (binary_expression "iVar9 == 0x2b" identifier == number_literal) )) (compound_statement "{\n      iVar9 = FUN_00015f20();\n    }" { (expression_statement "iVar9 = FUN_00015f20();" (assignment_expression "iVar9 = FUN_00015f20()" identifier = (call_expression "FUN_00015f20()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }" else (if_statement "if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }" if (parenthesized_expression "(iVar9 == 0x2d)" ( (binary_expression "iVar9 == 0x2d" identifier == number_literal) )) (compound_statement "{\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }" { (expression_statement "iVar9 = FUN_00015f20();" (assignment_expression "iVar9 = FUN_00015f20()" identifier = (call_expression "FUN_00015f20()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar18 = true;" (assignment_expression "bVar18 = true" identifier = true) ;) })))) (expression_statement "local_78 = &uStack_30;" (assignment_expression "local_78 = &uStack_30" identifier = (pointer_expression "&uStack_30" & identifier)) ;) (expression_statement "local_7c = &uStack_2c;" (assignment_expression "local_7c = &uStack_2c" identifier = (pointer_expression "&uStack_2c" & identifier)) ;) (expression_statement "iVar14 = iVar9;" (assignment_expression "iVar14 = iVar9" identifier = identifier) ;) (if_statement "if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }" if (parenthesized_expression "(iVar9 < 0x24)" ( (binary_expression "iVar9 < 0x24" identifier < number_literal) )) (compound_statement "{\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }" { (expression_statement "iVar14 = FUN_00015f20();" (assignment_expression "iVar14 = FUN_00015f20()" identifier = (call_expression "FUN_00015f20()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }" if (parenthesized_expression "((iVar14 < 0x24) && (iVar12 <= iVar9))" ( (binary_expression "(iVar14 < 0x24) && (iVar12 <= iVar9)" (parenthesized_expression "(iVar14 < 0x24)" ( (binary_expression "iVar14 < 0x24" identifier < number_literal) )) && (parenthesized_expression "(iVar12 <= iVar9)" ( (binary_expression "iVar12 <= iVar9" identifier <= identifier) ))) )) (compound_statement "{\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }" { (expression_statement "FUN_0001f070(&uStack_34,iVar12 + -1);" (call_expression "FUN_0001f070(&uStack_34,iVar12 + -1)" identifier (argument_list "(&uStack_34,iVar12 + -1)" ( (pointer_expression "&uStack_34" & identifier) , (binary_expression "iVar12 + -1" identifier + number_literal) ))) ;) }) (else_clause "else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }" else (compound_statement "{\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }" { (expression_statement "FUN_0001f070(&uStack_34,iVar9);" (call_expression "FUN_0001f070(&uStack_34,iVar9)" identifier (argument_list "(&uStack_34,iVar9)" ( (pointer_expression "&uStack_34" & identifier) , identifier ))) ;) (if_statement "if (0x23 < iVar14) goto code_r0x00017b03;" if (parenthesized_expression "(0x23 < iVar14)" ( (binary_expression "0x23 < iVar14" number_literal < identifier) )) (goto_statement "goto code_r0x00017b03;" goto statement_identifier ;)) }))) (expression_statement "local_60 = &uStack_34;" (assignment_expression "local_60 = &uStack_34" identifier = (pointer_expression "&uStack_34" & identifier)) ;) (do_statement "do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);" do (compound_statement "{\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      }" { (if_statement "if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }" if (parenthesized_expression "(iVar14 < iVar12)" ( (binary_expression "iVar14 < iVar12" identifier < identifier) )) (compound_statement "{\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }" { (expression_statement "FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);" (call_expression "FUN_0001d9c0(uStack_34,uStack_28,local_7c,0)" identifier (argument_list "(uStack_34,uStack_28,local_7c,0)" ( identifier , identifier , identifier , number_literal ))) ;) }) (else_clause "else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }" else (compound_statement "{\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }" { (expression_statement "FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);" (call_expression "FUN_0001d9c0(uStack_34,uStack_28,local_7c,0)" identifier (argument_list "(uStack_34,uStack_28,local_7c,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "iVar14 = iVar12 + -1;" (assignment_expression "iVar14 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) }))) (expression_statement "FUN_0001f070(local_78,iVar14);" (call_expression "FUN_0001f070(local_78,iVar14)" identifier (argument_list "(local_78,iVar14)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001d720(uStack_2c,uStack_30,local_60,0);" (call_expression "FUN_0001d720(uStack_2c,uStack_30,local_60,0)" identifier (argument_list "(uStack_2c,uStack_30,local_60,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "iVar14 = FUN_00015f20();" (assignment_expression "iVar14 = FUN_00015f20()" identifier = (call_expression "FUN_00015f20()" identifier (argument_list "()" ( )))) ;) }) while (parenthesized_expression "(iVar14 < 0x24)" ( (binary_expression "iVar14 < 0x24" identifier < number_literal) )) ;) })) (labeled_statement "code_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }" statement_identifier : (if_statement "if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }" if (parenthesized_expression "(iVar14 == 0x2e)" ( (binary_expression "iVar14 == 0x2e" identifier == number_literal) )) (compound_statement "{\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }" { (expression_statement "iVar14 = FUN_00015f20();" (assignment_expression "iVar14 = FUN_00015f20()" identifier = (call_expression "FUN_00015f20()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar9 = iVar12 + -1;" (assignment_expression "iVar9 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ;) (if_statement "if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }" if (parenthesized_expression "(iVar12 <= iVar14)" ( (binary_expression "iVar12 <= iVar14" identifier <= identifier) )) (compound_statement "{\n        iVar14 = iVar9;\n      }" { (expression_statement "iVar14 = iVar9;" (assignment_expression "iVar14 = iVar9" identifier = identifier) ;) })) (expression_statement "FUN_0001c2e0(local_7c);" (call_expression "FUN_0001c2e0(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) (expression_statement "FUN_0001c2e0(local_78);" (call_expression "FUN_0001c2e0(local_78)" identifier (argument_list "(local_78)" ( identifier ))) ;) (expression_statement "uStack_24 = FUN_0001c540(DAT_0002c2c0);" (assignment_expression "uStack_24 = FUN_0001c540(DAT_0002c2c0)" identifier = (call_expression "FUN_0001c540(DAT_0002c2c0)" identifier (argument_list "(DAT_0002c2c0)" ( identifier )))) ;) (expression_statement "uStack_2c = FUN_0001c540(DAT_0002c2c8);" (assignment_expression "uStack_2c = FUN_0001c540(DAT_0002c2c8)" identifier = (call_expression "FUN_0001c540(DAT_0002c2c8)" identifier (argument_list "(DAT_0002c2c8)" ( identifier )))) ;) (if_statement "if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }" if (parenthesized_expression "(iVar14 < 0x24)" ( (binary_expression "iVar14 < 0x24" identifier < number_literal) )) (compound_statement "{\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }" { (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (do_statement "do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);" do (compound_statement "{\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        }" { (while_statement "while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }" { (expression_statement "FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);" (call_expression "FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0)" identifier (argument_list "(uStack_2c,uStack_28,local_7c,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "FUN_0001f070(local_78,iVar14);" (call_expression "FUN_0001f070(local_78,iVar14)" identifier (argument_list "(local_78,iVar14)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001d720(uStack_2c,uStack_30,local_7c,0);" (call_expression "FUN_0001d720(uStack_2c,uStack_30,local_7c,0)" identifier (argument_list "(uStack_2c,uStack_30,local_7c,0)" ( identifier , identifier , identifier , number_literal ))) ;) (expression_statement "FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);" (call_expression "FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0)" identifier (argument_list "(uStack_24,uStack_28,&uStack_24,0)" ( identifier , identifier , (pointer_expression "&uStack_24" & identifier) , number_literal ))) ;) (expression_statement "local_58 = local_58 + 1;" (assignment_expression "local_58 = local_58 + 1" identifier = (binary_expression "local_58 + 1" identifier + number_literal)) ;) (expression_statement "iVar14 = FUN_00015f20();" (assignment_expression "iVar14 = FUN_00015f20()" identifier = (call_expression "FUN_00015f20()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((0x23 < iVar14) || (iVar14 < iVar12)) break;" if (parenthesized_expression "((0x23 < iVar14) || (iVar14 < iVar12))" ( (binary_expression "(0x23 < iVar14) || (iVar14 < iVar12)" (parenthesized_expression "(0x23 < iVar14)" ( (binary_expression "0x23 < iVar14" number_literal < identifier) )) || (parenthesized_expression "(iVar14 < iVar12)" ( (binary_expression "iVar14 < iVar12" identifier < identifier) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar14 = iVar9;" (assignment_expression "iVar14 = iVar9" identifier = identifier) ;) (if_statement "if (0x23 < iVar9) goto code_r0x00017a9d;" if (parenthesized_expression "(0x23 < iVar9)" ( (binary_expression "0x23 < iVar9" number_literal < identifier) )) (goto_statement "goto code_r0x00017a9d;" goto statement_identifier ;)) })) }) while (parenthesized_expression "(iVar14 < 0x24)" ( (binary_expression "iVar14 < 0x24" identifier < number_literal) )) ;) })) (labeled_statement "code_r0x00017a9d:\n      local_7c = &uStack_2c;" statement_identifier : (expression_statement "local_7c = &uStack_2c;" (assignment_expression "local_7c = &uStack_2c" identifier = (pointer_expression "&uStack_2c" & identifier)) ;)) (expression_statement "FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);" (call_expression "FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58)" identifier (argument_list "(uStack_2c,uStack_24,local_7c,local_58)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);" (call_expression "FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0)" identifier (argument_list "(uStack_34,uStack_2c,&uStack_34,0)" ( identifier , identifier , (pointer_expression "&uStack_34" & identifier) , number_literal ))) ;) }))) (labeled_statement "code_r0x0001720b:\n    puStack_44 = &uStack_28;" statement_identifier : (expression_statement "puStack_44 = &uStack_28;" (assignment_expression "puStack_44 = &uStack_28" identifier = (pointer_expression "&uStack_28" & identifier)) ;)) (expression_statement "local_78 = &uStack_30;" (assignment_expression "local_78 = &uStack_30" identifier = (pointer_expression "&uStack_30" & identifier)) ;) (expression_statement "local_7c = &uStack_2c;" (assignment_expression "local_7c = &uStack_2c" identifier = (pointer_expression "&uStack_2c" & identifier)) ;) (if_statement "if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }" if (parenthesized_expression "(bVar18)" ( identifier )) (compound_statement "{\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }" { (expression_statement "FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);" (call_expression "FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0)" identifier (argument_list "(DAT_0002c2c8,uStack_34,&uStack_34,0)" ( identifier , identifier , (pointer_expression "&uStack_34" & identifier) , number_literal ))) ;) })) (expression_statement "FUN_00018ff0(uStack_34);" (call_expression "FUN_00018ff0(uStack_34)" identifier (argument_list "(uStack_34)" ( identifier ))) ;) (expression_statement "FUN_0001c2e0(local_78);" (call_expression "FUN_0001c2e0(local_78)" identifier (argument_list "(local_78)" ( identifier ))) ;) (expression_statement "FUN_0001c2e0(local_7c);" (call_expression "FUN_0001c2e0(local_7c)" identifier (argument_list "(local_7c)" ( identifier ))) ;) (expression_statement "FUN_0001c2e0(puStack_44);" (call_expression "FUN_0001c2e0(puStack_44)" identifier (argument_list "(puStack_44)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    goto LAB_000166a0;" default : (goto_statement "goto LAB_000166a0;" goto statement_identifier ;)) (case_statement "case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;" case number_literal : (expression_statement "iVar9 = *DAT_0002c2bc;" (assignment_expression "iVar9 = *DAT_0002c2bc" identifier = (pointer_expression "*DAT_0002c2bc" * identifier)) ;) (expression_statement "iVar12 = *(int *)(iVar9 + 8);" (assignment_expression "iVar12 = *(int *)(iVar9 + 8)" identifier = (pointer_expression "*(int *)(iVar9 + 8)" * (cast_expression "(int *)(iVar9 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) ))))) ;) (if_statement "if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }" if (parenthesized_expression "(((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0'))" ( (binary_expression "((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')" (parenthesized_expression "((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0))" ( (binary_expression "(*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)" (parenthesized_expression "(*(int *)(iVar9 + 4) == 1)" ( (binary_expression "*(int *)(iVar9 + 4) == 1" (pointer_expression "*(int *)(iVar9 + 4)" * (cast_expression "(int *)(iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(**(char **)(iVar9 + 0x18) == '\0')" ( (binary_expression "**(char **)(iVar9 + 0x18) == '\0'" (pointer_expression "**(char **)(iVar9 + 0x18)" * (pointer_expression "*(char **)(iVar9 + 0x18)" * (cast_expression "(char **)(iVar9 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) ))))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }" { (expression_statement "FUN_0001f070(DAT_0002c2bc,iVar12);" (call_expression "FUN_0001f070(DAT_0002c2bc,iVar12)" identifier (argument_list "(DAT_0002c2bc,iVar12)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }" else (compound_statement "{\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }" { (expression_statement "FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);" (call_expression "FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12)" identifier (argument_list "(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12)" ( identifier , (binary_expression "*(int *)(iVar9 + 4) + iVar12" (pointer_expression "*(int *)(iVar9 + 4)" * (cast_expression "(int *)(iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) + identifier) ))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;" case number_literal : (expression_statement "iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);" (assignment_expression "iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298)" identifier = (call_expression "FUN_0001f290(DAT_0002c2bc,DAT_0002c298)" identifier (argument_list "(DAT_0002c2bc,DAT_0002c298)" ( identifier , identifier )))) ;) (if_statement "if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }" { (labeled_statement "code_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);" statement_identifier : (expression_statement "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);" (assignment_expression "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" identifier = (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" * (cast_expression "(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" ( (binary_expression "DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c" (binary_expression "DAT_0002c278 + 0xc" identifier + number_literal) + (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal)) ))))) ;)) (expression_statement "puVar8 = (undefined4 *)DAT_0002c2ac;" (assignment_expression "puVar8 = (undefined4 *)DAT_0002c2ac" identifier = (cast_expression "(undefined4 *)DAT_0002c2ac" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" identifier = identifier) ;) (goto_statement "goto LAB_000166a0;" goto statement_identifier ;) })) (expression_statement "pcVar11 = "Square root of a negative number";" (assignment_expression "pcVar11 = "Square root of a negative number"" identifier = (string_literal ""Square root of a negative number"" " string_content ")) ;) (labeled_statement "code_r0x0001732f:\n    FUN_0001b7b0(pcVar11);" statement_identifier : (expression_statement "FUN_0001b7b0(pcVar11);" (call_expression "FUN_0001b7b0(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;)) (break_statement "break;" break ;)) (case_statement "case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;" case number_literal : (expression_statement "FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));" (call_expression "FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8))" identifier (argument_list "(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8))" ( identifier , (pointer_expression "*(undefined4 *)(*DAT_0002c2bc + 8)" * (cast_expression "(undefined4 *)(*DAT_0002c2bc + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*DAT_0002c2bc + 8)" ( (binary_expression "*DAT_0002c2bc + 8" (pointer_expression "*DAT_0002c2bc" * identifier) + number_literal) )))) ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);" case number_literal : (expression_statement "FUN_00018fb0(DAT_0002c2c8);" (call_expression "FUN_00018fb0(DAT_0002c2c8)" identifier (argument_list "(DAT_0002c2c8)" ( identifier ))) ;) (expression_statement "uVar13 = func_0x000112e0();" (assignment_expression "uVar13 = func_0x000112e0()" identifier = (call_expression "func_0x000112e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0001f070(DAT_0002c2bc,uVar13);" (call_expression "FUN_0001f070(DAT_0002c2bc,uVar13)" identifier (argument_list "(DAT_0002c2bc,uVar13)" ( identifier , identifier ))) ;)) })) (labeled_statement "LAB_000167f0:\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);" statement_identifier : (expression_statement "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);" (assignment_expression "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" identifier = (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" * (cast_expression "(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" ( (binary_expression "DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c" (binary_expression "DAT_0002c278 + 0xc" identifier + number_literal) + (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal)) ))))) ;)) (expression_statement "puVar8 = (undefined4 *)DAT_0002c2ac;" (assignment_expression "puVar8 = (undefined4 *)DAT_0002c2ac" identifier = (cast_expression "(undefined4 *)DAT_0002c2ac" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" identifier = identifier) ;) (goto_statement "goto LAB_000166a0;" goto statement_identifier ;) (labeled_statement "code_r0x0001730b:\n  switch(*(char *)(local_70 + uVar16)) {\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }" statement_identifier : (switch_statement "switch(*(char *)(local_70 + uVar16)) {\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }" switch (parenthesized_expression "(*(char *)(local_70 + uVar16))" ( (pointer_expression "*(char *)(local_70 + uVar16)" * (cast_expression "(char *)(local_70 + uVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70 + uVar16)" ( (binary_expression "local_70 + uVar16" identifier + identifier) )))) )) (compound_statement "{\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }" { (case_statement "case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;" case (char_literal "'\\'" ' escape_sequence ') : (expression_statement "cVar7 = '\\';" (assignment_expression "cVar7 = '\\'" identifier = (char_literal "'\\'" ' escape_sequence ')) ;) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "default:\n    goto code_r0x000172dc;" default : (goto_statement "goto code_r0x000172dc;" goto statement_identifier ;)) (case_statement "case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;" case (char_literal "'a'" ' character ') : (expression_statement "cVar7 = '\a';" (assignment_expression "cVar7 = '\a'" identifier = (char_literal "'\a'" ' escape_sequence ')) ;) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;" case (char_literal "'b'" ' character ') : (expression_statement "cVar7 = '\b';" (assignment_expression "cVar7 = '\b'" identifier = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;" case (char_literal "'f'" ' character ') : (expression_statement "cVar7 = '\f';" (assignment_expression "cVar7 = '\f'" identifier = (char_literal "'\f'" ' escape_sequence ')) ;) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;" case (char_literal "'n'" ' character ') : (expression_statement "cVar7 = '\n';" (assignment_expression "cVar7 = '\n'" identifier = (char_literal "'\n'" ' escape_sequence ')) ;) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;" case (char_literal "'q'" ' character ') : (expression_statement "cVar7 = '\"';" (assignment_expression "cVar7 = '\"'" identifier = (char_literal "'\"'" ' escape_sequence ')) ;) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;" case (char_literal "'r'" ' character ') : (expression_statement "cVar7 = '\r';" (assignment_expression "cVar7 = '\r'" identifier = (char_literal "'\r'" ' escape_sequence ')) ;) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;" case (char_literal "'t'" ' character ') : (expression_statement "cVar7 = '\t';" (assignment_expression "cVar7 = '\t'" identifier = (char_literal "'\t'" ' escape_sequence ')) ;) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" identifier = identifier) ;)) }))) (labeled_statement "code_r0x000172c4:\n  DAT_0002c2b0 = uVar16;" statement_identifier : (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" identifier = identifier) ;)) (expression_statement "FUN_0001a730(cVar7);" (call_expression "FUN_0001a730(cVar7)" identifier (argument_list "(cVar7)" ( identifier ))) ;) (expression_statement "local_70 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);" (assignment_expression "local_70 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" identifier = (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" * (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" ( (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" identifier * number_literal) + identifier) + number_literal) ))))) ;) (goto_statement "goto code_r0x000172dc;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_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 (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + IDENT) + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (call_expression IDENT (argument_list ( LIT , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) })) (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 { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (goto_statement goto statement_identifier ;)) (case_statement default : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (pointer_expression * IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (char_literal ' escape_sequence '))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (pointer_expression * IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (pointer_expression * IDENT) , (pointer_expression & IDENT) , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (pointer_expression * IDENT) , (pointer_expression & IDENT) , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (pointer_expression * IDENT) , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (char_literal ' escape_sequence '))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (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 + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)))) (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) + LIT) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) + (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (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 + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (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) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (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 + (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * 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) + LIT) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) && (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + IDENT) + LIT) )))) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + IDENT) + LIT) )))) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (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) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + IDENT) + LIT) )))) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) })) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) })) (goto_statement goto statement_identifier ;) }))) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (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 + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + IDENT) + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (pointer_expression * IDENT) , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) , (binary_expression IDENT != (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) , IDENT , LIT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (char_literal ' escape_sequence '))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + IDENT) + LIT) )))) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) = IDENT) ;) })) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (char_literal ' escape_sequence '))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (unary_expression ~ IDENT)) >> LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })))) })) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (switch_statement switch (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) )) (compound_statement { (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) })))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) && (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) })) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , LIT ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (break_statement break ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) ))) ;) }))) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) ))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (switch_statement switch (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) )) (compound_statement { (case_statement case (char_literal ' escape_sequence ') : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + IDENT) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "void FUN_000165e0(void)\n\n{\n  int *piVar1;\n  ushort uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  byte bVar5;\n  char cVar6;\n  char cVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  uint uVar10;\n  byte extraout_var;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  bool bVar18;\n  undefined4 *local_7c;\n  undefined4 *local_78;\n  int local_70;\n  undefined4 *local_60;\n  int local_5c;\n  int local_58;\n  undefined4 *puStack_44;\n  undefined4 local_38;\n  undefined4 uStack_34;\n  undefined4 uStack_30;\n  undefined4 uStack_2c;\n  undefined4 uStack_28;\n  undefined4 uStack_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x165e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  DAT_0002c28c = '\0';\n  DAT_0002c2ac = 0;\n  DAT_0002c2b0 = 0;\n  FUN_0001c550(&local_38);\n  if (DAT_0002c1fc != '\0') {\n    signal(2,FUN_00015ea0);\n  }\n  puVar3 = PTR_stdout_0002bfec;\n  DAT_0002c220 = 0;\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n  puVar8 = (undefined4 *)DAT_0002c2ac;\n  iVar9 = DAT_0002c278;\nLAB_000166a0:\n  iVar12 = DAT_0002c2a4;\n  local_7c = (undefined4 *)(iVar9 + (int)puVar8 * 0x1c);\n  if (((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0)) {\n    if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }\n    while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }\n    if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    \n    FUN_00020960();\n  }\n  uVar16 = DAT_0002c2b0 + 1;\n  local_70 = *(int *)((int)local_7c + 4);\n  cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n  local_58 = 0;\n  bVar18 = false;\n  switch(cVar7) {\n  case '!':\n  case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;\n  case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;\n  case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;\n  case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;\n  case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;\n  case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;\n  case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;\n  case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;\n  case 'P':\n  case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;\n  case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;\n  case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case 'c':\n    goto code_r0x00016f20;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;\n  case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;\n  case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;\n  case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;\n  case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;\n  case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;\n  case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }\n  }\n  goto LAB_000167f0;\ncode_r0x00016f20:\n  DAT_0002c2b0 = DAT_0002c2b0 + 2;\n  switch(*(undefined1 *)(local_70 + uVar16)) {\n  case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;\n  default:\n    goto LAB_000166a0;\n  case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;\n  case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;\n  case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;\n  case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);\n  }\nLAB_000167f0:\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n  puVar8 = (undefined4 *)DAT_0002c2ac;\n  iVar9 = DAT_0002c278;\n  goto LAB_000166a0;\ncode_r0x0001730b:\n  switch(*(char *)(local_70 + uVar16)) {\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }\ncode_r0x000172c4:\n  DAT_0002c2b0 = uVar16;\n  FUN_0001a730(cVar7);\n  local_70 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n  goto code_r0x000172dc;\n}" (primitive_type "void") (function_declarator "FUN_000165e0(void)" (identifier "FUN_000165e0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int *piVar1;\n  ushort uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  byte bVar5;\n  char cVar6;\n  char cVar7;\n  undefined4 *puVar8;\n  int iVar9;\n  uint uVar10;\n  byte extraout_var;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  undefined1 uVar15;\n  uint uVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  bool bVar18;\n  undefined4 *local_7c;\n  undefined4 *local_78;\n  int local_70;\n  undefined4 *local_60;\n  int local_5c;\n  int local_58;\n  undefined4 *puStack_44;\n  undefined4 local_38;\n  undefined4 uStack_34;\n  undefined4 uStack_30;\n  undefined4 uStack_2c;\n  undefined4 uStack_28;\n  undefined4 uStack_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x165e9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  DAT_0002c28c = '\0';\n  DAT_0002c2ac = 0;\n  DAT_0002c2b0 = 0;\n  FUN_0001c550(&local_38);\n  if (DAT_0002c1fc != '\0') {\n    signal(2,FUN_00015ea0);\n  }\n  puVar3 = PTR_stdout_0002bfec;\n  DAT_0002c220 = 0;\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n  puVar8 = (undefined4 *)DAT_0002c2ac;\n  iVar9 = DAT_0002c278;\nLAB_000166a0:\n  iVar12 = DAT_0002c2a4;\n  local_7c = (undefined4 *)(iVar9 + (int)puVar8 * 0x1c);\n  if (((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0)) {\n    if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }\n    while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }\n    if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    \n    FUN_00020960();\n  }\n  uVar16 = DAT_0002c2b0 + 1;\n  local_70 = *(int *)((int)local_7c + 4);\n  cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n  local_58 = 0;\n  bVar18 = false;\n  switch(cVar7) {\n  case '!':\n  case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;\n  case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;\n  case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;\n  case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;\n  case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;\n  case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;\n  case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;\n  case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;\n  case 'P':\n  case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;\n  case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;\n  case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case 'c':\n    goto code_r0x00016f20;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;\n  case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;\n  case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;\n  case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;\n  case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;\n  case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;\n  case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }\n  }\n  goto LAB_000167f0;\ncode_r0x00016f20:\n  DAT_0002c2b0 = DAT_0002c2b0 + 2;\n  switch(*(undefined1 *)(local_70 + uVar16)) {\n  case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;\n  default:\n    goto LAB_000166a0;\n  case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;\n  case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;\n  case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;\n  case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);\n  }\nLAB_000167f0:\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n  puVar8 = (undefined4 *)DAT_0002c2ac;\n  iVar9 = DAT_0002c278;\n  goto LAB_000166a0;\ncode_r0x0001730b:\n  switch(*(char *)(local_70 + uVar16)) {\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }\ncode_r0x000172c4:\n  DAT_0002c2b0 = uVar16;\n  FUN_0001a730(cVar7);\n  local_70 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n  goto code_r0x000172dc;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "ushort uVar2;" (type_identifier "ushort") (identifier "uVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "byte bVar5;" (type_identifier "byte") (identifier "bVar5") (; ";")) (declaration "char cVar6;" (primitive_type "char") (identifier "cVar6") (; ";")) (declaration "char cVar7;" (primitive_type "char") (identifier "cVar7") (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "byte extraout_var;" (type_identifier "byte") (identifier "extraout_var") (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined4 uVar13;" (type_identifier "undefined4") (identifier "uVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "undefined1 uVar15;" (type_identifier "undefined1") (identifier "uVar15") (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar18;" (primitive_type "bool") (identifier "bVar18") (; ";")) (declaration "undefined4 *local_7c;" (type_identifier "undefined4") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c")) (; ";")) (declaration "undefined4 *local_78;" (type_identifier "undefined4") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "int local_70;" (primitive_type "int") (identifier "local_70") (; ";")) (declaration "undefined4 *local_60;" (type_identifier "undefined4") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (declaration "undefined4 *puStack_44;" (type_identifier "undefined4") (pointer_declarator "*puStack_44" (* "*") (identifier "puStack_44")) (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 uStack_34;" (type_identifier "undefined4") (identifier "uStack_34") (; ";")) (declaration "undefined4 uStack_30;" (type_identifier "undefined4") (identifier "uStack_30") (; ";")) (declaration "undefined4 uStack_2c;" (type_identifier "undefined4") (identifier "uStack_2c") (; ";")) (declaration "undefined4 uStack_28;" (type_identifier "undefined4") (identifier "uStack_28") (; ";")) (declaration "undefined4 uStack_24;" (type_identifier "undefined4") (identifier "uStack_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x165e9;" (assignment_expression "uStack_14 = 0x165e9" (identifier "uStack_14") (= "=") (number_literal "0x165e9")) (; ";")) (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 "DAT_0002c28c = '\0';" (assignment_expression "DAT_0002c28c = '\0'" (identifier "DAT_0002c28c") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "DAT_0002c2ac = 0;" (assignment_expression "DAT_0002c2ac = 0" (identifier "DAT_0002c2ac") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0002c2b0 = 0;" (assignment_expression "DAT_0002c2b0 = 0" (identifier "DAT_0002c2b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0001c550(&local_38);" (call_expression "FUN_0001c550(&local_38)" (identifier "FUN_0001c550") (argument_list "(&local_38)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")"))) (; ";")) (if_statement "if (DAT_0002c1fc != '\0') {\n    signal(2,FUN_00015ea0);\n  }" (if "if") (parenthesized_expression "(DAT_0002c1fc != '\0')" (( "(") (binary_expression "DAT_0002c1fc != '\0'" (identifier "DAT_0002c1fc") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    signal(2,FUN_00015ea0);\n  }" ({ "{") (expression_statement "signal(2,FUN_00015ea0);" (call_expression "signal(2,FUN_00015ea0)" (identifier "signal") (argument_list "(2,FUN_00015ea0)" (( "(") (number_literal "2") (, ",") (identifier "FUN_00015ea0") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar3 = PTR_stdout_0002bfec;" (assignment_expression "puVar3 = PTR_stdout_0002bfec" (identifier "puVar3") (= "=") (identifier "PTR_stdout_0002bfec")) (; ";")) (expression_statement "DAT_0002c220 = 0;" (assignment_expression "DAT_0002c220 = 0" (identifier "DAT_0002c220") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);" (assignment_expression "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" (identifier "local_78") (= "=") (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" (* "*") (cast_expression "(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" (( "(") (binary_expression "DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c" (binary_expression "DAT_0002c278 + 0xc" (identifier "DAT_0002c278") (+ "+") (number_literal "0xc")) (+ "+") (binary_expression "DAT_0002c2ac * 0x1c" (identifier "DAT_0002c2ac") (* "*") (number_literal "0x1c"))) () ")"))))) (; ";")) (expression_statement "puVar8 = (undefined4 *)DAT_0002c2ac;" (assignment_expression "puVar8 = (undefined4 *)DAT_0002c2ac" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)DAT_0002c2ac" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_0002c2ac"))) (; ";")) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" (identifier "iVar9") (= "=") (identifier "DAT_0002c278")) (; ";")) (labeled_statement "LAB_000166a0:\n  iVar12 = DAT_0002c2a4;" (statement_identifier "LAB_000166a0") (: ":") (expression_statement "iVar12 = DAT_0002c2a4;" (assignment_expression "iVar12 = DAT_0002c2a4" (identifier "iVar12") (= "=") (identifier "DAT_0002c2a4")) (; ";"))) (expression_statement "local_7c = (undefined4 *)(iVar9 + (int)puVar8 * 0x1c);" (assignment_expression "local_7c = (undefined4 *)(iVar9 + (int)puVar8 * 0x1c)" (identifier "local_7c") (= "=") (cast_expression "(undefined4 *)(iVar9 + (int)puVar8 * 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + (int)puVar8 * 0x1c)" (( "(") (binary_expression "iVar9 + (int)puVar8 * 0x1c" (identifier "iVar9") (+ "+") (binary_expression "(int)puVar8 * 0x1c" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (* "*") (number_literal "0x1c"))) () ")")))) (; ";")) (if_statement "if (((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0)) {\n    if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }\n    while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }\n    if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    \n    FUN_00020960();\n  }" (if "if") (parenthesized_expression "(((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0))" (( "(") (binary_expression "((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0)" (parenthesized_expression "((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0'))" (( "(") (binary_expression "(local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')" (parenthesized_expression "(local_78 <= DAT_0002c2b0)" (( "(") (binary_expression "local_78 <= DAT_0002c2b0" (identifier "local_78") (<= "<=") (identifier "DAT_0002c2b0")) () ")")) (|| "||") (parenthesized_expression "(DAT_0002c28c != '\0')" (( "(") (binary_expression "DAT_0002c28c != '\0'" (identifier "DAT_0002c28c") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(DAT_0002c220 != 0)" (( "(") (binary_expression "DAT_0002c220 != 0" (identifier "DAT_0002c220") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }\n    while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }\n    if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }\n    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\n    }\n                    \n    FUN_00020960();\n  }" ({ "{") (if_statement "if (puVar8 != (undefined4 *)0x0) {\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }" (if "if") (parenthesized_expression "(puVar8 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar8 != (undefined4 *)0x0" (identifier "puVar8") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);\n      DAT_0002c2ac = 0;\n    }" ({ "{") (do_statement "do {\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      } while (puVar8 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));\n        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n        FUN_00018ee0();\n        DAT_0002c2b0 = FUN_00018ee0();\n        puVar8 = (undefined4 *)FUN_00018ee0();\n        iVar9 = DAT_0002c278;\n        DAT_0002c2ac = (uint)puVar8;\n      }" ({ "{") (expression_statement "FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));" (call_expression "FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c))" (identifier "FUN_0001a120") (argument_list "(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c))" (( "(") (pointer_expression "*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18 + (int)puVar8 * 0x1c)" (( "(") (binary_expression "iVar9 + 0x18 + (int)puVar8 * 0x1c" (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) (+ "+") (binary_expression "(int)puVar8 * 0x1c" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (* "*") (number_literal "0x1c"))) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));" (call_expression "FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14))" (identifier "FUN_0001a120") (argument_list "(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14))" (( "(") (pointer_expression "*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" (* "*") (cast_expression "(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" (( "(") (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" (identifier "DAT_0002c2ac") (* "*") (number_literal "0x1c")) (+ "+") (identifier "DAT_0002c278")) (+ "+") (number_literal "0x14")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_00018ee0();" (call_expression "FUN_00018ee0()" (identifier "FUN_00018ee0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_0002c2b0 = FUN_00018ee0();" (assignment_expression "DAT_0002c2b0 = FUN_00018ee0()" (identifier "DAT_0002c2b0") (= "=") (call_expression "FUN_00018ee0()" (identifier "FUN_00018ee0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar8 = (undefined4 *)FUN_00018ee0();" (assignment_expression "puVar8 = (undefined4 *)FUN_00018ee0()" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)FUN_00018ee0()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00018ee0()" (identifier "FUN_00018ee0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" (identifier "iVar9") (= "=") (identifier "DAT_0002c278")) (; ";")) (expression_statement "DAT_0002c2ac = (uint)puVar8;" (assignment_expression "DAT_0002c2ac = (uint)puVar8" (identifier "DAT_0002c2ac") (= "=") (cast_expression "(uint)puVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar8"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar8 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar8 != (undefined4 *)0x0" (identifier "puVar8") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "DAT_0002c2ac = 0;" (assignment_expression "DAT_0002c2ac = 0" (identifier "DAT_0002c2ac") (= "=") (number_literal "0")) (; ";")) (} "}"))) (while_statement "while (DAT_0002c2bc != (int *)0x0) {\n      FUN_00018f70();\n    }" (while "while") (parenthesized_expression "(DAT_0002c2bc != (int *)0x0)" (( "(") (binary_expression "DAT_0002c2bc != (int *)0x0" (identifier "DAT_0002c2bc") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_00018f70();\n    }" ({ "{") (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }" (if "if") (parenthesized_expression "((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0))" (( "(") (binary_expression "(DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)" (parenthesized_expression "(DAT_0002c1fc != '\0')" (( "(") (binary_expression "DAT_0002c1fc != '\0'" (identifier "DAT_0002c1fc") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)" (( "(") (comma_expression "signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0" (call_expression "signal(2,(__sighandler_t)PTR_FUN_0002bff4)" (identifier "signal") (argument_list "(2,(__sighandler_t)PTR_FUN_0002bff4)" (( "(") (number_literal "2") (, ",") (cast_expression "(__sighandler_t)PTR_FUN_0002bff4" (( "(") (type_descriptor "__sighandler_t" (type_identifier "__sighandler_t")) () ")") (identifier "PTR_FUN_0002bff4")) () ")"))) (, ",") (binary_expression "DAT_0002c220 != 0" (identifier "DAT_0002c220") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      puts("\ninterrupted execution.");\n      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);\n    }" ({ "{") (expression_statement "puts("\ninterrupted execution.");" (call_expression "puts("\ninterrupted execution.")" (identifier "puts") (argument_list "("\ninterrupted execution.")" (( "(") (string_literal ""\ninterrupted execution."" (" """) (escape_sequence "\n") (string_content "interrupted execution.") (" """)) () ")"))) (; ";")) (expression_statement "FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);" (call_expression "FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec)" (identifier "FUN_000208a0") (argument_list "(*(undefined4 *)PTR_stdout_0002bfec)" (( "(") (pointer_expression "*(undefined4 *)PTR_stdout_0002bfec" (* "*") (cast_expression "(undefined4 *)PTR_stdout_0002bfec" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdout_0002bfec"))) () ")"))) (; ";")) (} "}"))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n      return;\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      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00020960();" (call_expression "FUN_00020960()" (identifier "FUN_00020960") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar16 = DAT_0002c2b0 + 1;" (assignment_expression "uVar16 = DAT_0002c2b0 + 1" (identifier "uVar16") (= "=") (binary_expression "DAT_0002c2b0 + 1" (identifier "DAT_0002c2b0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_70 = *(int *)((int)local_7c + 4);" (assignment_expression "local_70 = *(int *)((int)local_7c + 4)" (identifier "local_70") (= "=") (pointer_expression "*(int *)((int)local_7c + 4)" (* "*") (cast_expression "(int *)((int)local_7c + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_7c + 4)" (( "(") (binary_expression "(int)local_7c + 4" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "cVar7 = *(char *)(local_70 + DAT_0002c2b0);" (assignment_expression "cVar7 = *(char *)(local_70 + DAT_0002c2b0)" (identifier "cVar7") (= "=") (pointer_expression "*(char *)(local_70 + DAT_0002c2b0)" (* "*") (cast_expression "(char *)(local_70 + DAT_0002c2b0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + DAT_0002c2b0)" (( "(") (binary_expression "local_70 + DAT_0002c2b0" (identifier "local_70") (+ "+") (identifier "DAT_0002c2b0")) () ")"))))) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";")) (switch_statement "switch(cVar7) {\n  case '!':\n  case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;\n  case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;\n  case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;\n  case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;\n  case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;\n  case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;\n  case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;\n  case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;\n  case 'P':\n  case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;\n  case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;\n  case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case 'c':\n    goto code_r0x00016f20;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;\n  case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;\n  case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;\n  case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;\n  case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;\n  case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;\n  case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }\n  }" (switch "switch") (parenthesized_expression "(cVar7)" (( "(") (identifier "cVar7") () ")")) (compound_statement "{\n  case '!':\n  case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;\n  case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;\n  case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;\n  case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;\n  case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;\n  case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;\n  case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;\n  case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;\n  case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;\n  case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;\n  case 'P':\n  case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;\n  case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;\n  case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;\n  case 'c':\n    goto code_r0x00016f20;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;\n  case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;\n  case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;\n  case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;\n  case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;\n  case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;\n  case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;\n  case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }\n  }" ({ "{") (case_statement "case '!':" (case "case") (char_literal "'!'" (' "'") (character "!") (' "'")) (: ":")) (case_statement "case 'T':\n    DAT_0002c2b0 = uVar16;\n    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);\n    goto code_r0x000167c5;" (case "case") (char_literal "'T'" (' "'") (character "T") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);" (assignment_expression "DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc)" (identifier "DAT_0002c294") (= "=") (call_expression "FUN_0001c6d0(*DAT_0002c2bc)" (identifier "FUN_0001c6d0") (argument_list "(*DAT_0002c2bc)" (( "(") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) () ")")))) (; ";")) (goto_statement "goto code_r0x000167c5;" (goto "goto") (statement_identifier "code_r0x000167c5") (; ";"))) (case_statement "default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_0002c2b0 = uVar16;\n    goto code_r0x0001732f;" (default "default") (: ":") (expression_statement "pcVar11 = "bad instruction: inst=%c";" (assignment_expression "pcVar11 = "bad instruction: inst=%c"" (identifier "pcVar11") (= "=") (string_literal ""bad instruction: inst=%c"" (" """) (string_content "bad instruction: inst=%c") (" """))) (; ";")) (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (goto_statement "goto code_r0x0001732f;" (goto "goto") (statement_identifier "code_r0x0001732f") (; ";"))) (case_statement "case '#':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 != 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;" (case "case") (char_literal "'#'" (' "'") (character "#") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" (identifier "cVar7") (= "=") (call_expression "FUN_00019020(2)" (identifier "FUN_00019020") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016998;" (goto "goto") (statement_identifier "code_r0x00016998") (; ";"))) (expression_statement "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (assignment_expression "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (identifier "iVar9") (= "=") (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (identifier "FUN_0001c570") (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (( "(") (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_0002c2bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_0002c2bc[1]" (identifier "DAT_0002c2bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) () ")")))) (; ";")) (expression_statement "DAT_0002c294 = iVar9 != 0;" (assignment_expression "DAT_0002c294 = iVar9 != 0" (identifier "DAT_0002c294") (= "=") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x000167c5;" (goto "goto") (statement_identifier "code_r0x000167c5") (; ";"))) (case_statement "case '%':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n    if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x0001732f;" (case "case") (char_literal "'%'" (' "'") (character "%") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" (identifier "cVar7") (= "=") (call_expression "FUN_00019020(2)" (identifier "FUN_00019020") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016998;" (goto "goto") (statement_identifier "code_r0x00016998") (; ";"))) (expression_statement "cVar7 = FUN_0001c6d0(*DAT_0002c2bc);" (assignment_expression "cVar7 = FUN_0001c6d0(*DAT_0002c2bc)" (identifier "cVar7") (= "=") (call_expression "FUN_0001c6d0(*DAT_0002c2bc)" (identifier "FUN_0001c6d0") (argument_list "(*DAT_0002c2bc)" (( "(") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') {\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n      goto code_r0x00016d14;\n    }" ({ "{") (expression_statement "FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);" (call_expression "FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" (identifier "FUN_0001e720") (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" (( "(") (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_0002c2bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_0002c2bc[1]" (identifier "DAT_0002c2bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (identifier "DAT_0002c298") () ")"))) (; ";")) (goto_statement "goto code_r0x00016d14;" (goto "goto") (statement_identifier "code_r0x00016d14") (; ";")) (} "}"))) (expression_statement "pcVar11 = "Modulo by zero";" (assignment_expression "pcVar11 = "Modulo by zero"" (identifier "pcVar11") (= "=") (string_literal ""Modulo by zero"" (" """) (string_content "Modulo by zero") (" """))) (; ";")) (goto_statement "goto code_r0x0001732f;" (goto "goto") (statement_identifier "code_r0x0001732f") (; ";"))) (case_statement "case '&':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = false;\n    if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;" (case "case") (char_literal "'&'" (' "'") (character "&") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" (identifier "cVar7") (= "=") (call_expression "FUN_00019020(2)" (identifier "FUN_00019020") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016998;" (goto "goto") (statement_identifier "code_r0x00016998") (; ";"))) (expression_statement "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);" (assignment_expression "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" (identifier "cVar7") (= "=") (call_expression "FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" (identifier "FUN_0001c6d0") (argument_list "(*(undefined4 *)DAT_0002c2bc[1])" (( "(") (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_0002c2bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_0002c2bc[1]" (identifier "DAT_0002c2bc") ([ "[") (number_literal "1") (] "]")))) () ")")))) (; ";")) (expression_statement "bVar18 = false;" (assignment_expression "bVar18 = false" (identifier "bVar18") (= "=") (false "false")) (; ";")) (if_statement "if (cVar7 == '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }" ({ "{") (expression_statement "cVar7 = FUN_0001c6d0(*DAT_0002c2bc);" (assignment_expression "cVar7 = FUN_0001c6d0(*DAT_0002c2bc)" (identifier "cVar7") (= "=") (call_expression "FUN_0001c6d0(*DAT_0002c2bc)" (identifier "FUN_0001c6d0") (argument_list "(*DAT_0002c2bc)" (( "(") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) () ")")))) (; ";")) (expression_statement "bVar18 = cVar7 == '\0';" (assignment_expression "bVar18 = cVar7 == '\0'" (identifier "bVar18") (= "=") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (} "}"))) (expression_statement "DAT_0002c294 = bVar18;" (assignment_expression "DAT_0002c294 = bVar18" (identifier "DAT_0002c294") (= "=") (identifier "bVar18")) (; ";")) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x000167c5;" (goto "goto") (statement_identifier "code_r0x000167c5") (; ";"))) (case_statement "case '*':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\ncode_r0x00016d14:\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;" (case "case") (char_literal "'*'" (' "'") (character "*") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" (identifier "cVar7") (= "=") (call_expression "FUN_00019020(2)" (identifier "FUN_00019020") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016998;" (goto "goto") (statement_identifier "code_r0x00016998") (; ";"))) (expression_statement "FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);" (call_expression "FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" (identifier "FUN_0001d9c0") (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" (( "(") (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_0002c2bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_0002c2bc[1]" (identifier "DAT_0002c2bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (identifier "DAT_0002c298") () ")"))) (; ";")) (labeled_statement "code_r0x00016d14:\n    FUN_00018f70();" (statement_identifier "code_r0x00016d14") (: ":") (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00018ff0(local_38);" (call_expression "FUN_00018ff0(local_38)" (identifier "FUN_00018ff0") (argument_list "(local_38)" (( "(") (identifier "local_38") () ")"))) (; ";")) (expression_statement "FUN_0001c550(&local_38);" (call_expression "FUN_0001c550(&local_38)" (identifier "FUN_0001c550") (argument_list "(&local_38)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '+':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;" (case "case") (char_literal "'+'" (' "'") (character "+") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" (identifier "cVar7") (= "=") (call_expression "FUN_00019020(2)" (identifier "FUN_00019020") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar7 != '\0') {\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }" (if "if") (parenthesized_expression "(cVar7 != '\0')" (( "(") (binary_expression "cVar7 != '\0'" (identifier "cVar7") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }" ({ "{") (expression_statement "FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);" (call_expression "FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0)" (identifier "FUN_0001d720") (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0)" (( "(") (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_0002c2bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_0002c2bc[1]" (identifier "DAT_0002c2bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (number_literal "0") () ")"))) (; ";")) (goto_statement "goto code_r0x00016d14;" (goto "goto") (statement_identifier "code_r0x00016d14") (; ";")) (} "}"))) (goto_statement "goto code_r0x00016998;" (goto "goto") (statement_identifier "code_r0x00016998") (; ";"))) (case_statement "case '-':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }\n    goto code_r0x00016998;" (case "case") (char_literal "'-'" (' "'") (character "-") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" (identifier "cVar7") (= "=") (call_expression "FUN_00019020(2)" (identifier "FUN_00019020") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar7 != '\0') {\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }" (if "if") (parenthesized_expression "(cVar7 != '\0')" (( "(") (binary_expression "cVar7 != '\0'" (identifier "cVar7") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);\n      goto code_r0x00016d14;\n    }" ({ "{") (expression_statement "FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);" (call_expression "FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0)" (identifier "FUN_0001c7a0") (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0)" (( "(") (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_0002c2bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_0002c2bc[1]" (identifier "DAT_0002c2bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (number_literal "0") () ")"))) (; ";")) (goto_statement "goto code_r0x00016d14;" (goto "goto") (statement_identifier "code_r0x00016d14") (; ";")) (} "}"))) (goto_statement "goto code_r0x00016998;" (goto "goto") (statement_identifier "code_r0x00016998") (; ";"))) (case_statement "case '/':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;" (case "case") (char_literal "'/'" (' "'") (character "/") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" (identifier "cVar7") (= "=") (call_expression "FUN_00019020(2)" (identifier "FUN_00019020") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016998;" (goto "goto") (statement_identifier "code_r0x00016998") (; ";"))) (expression_statement "iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);" (assignment_expression "iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" (identifier "iVar9") (= "=") (call_expression "FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" (identifier "FUN_0001db50") (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" (( "(") (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_0002c2bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_0002c2bc[1]" (identifier "DAT_0002c2bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (identifier "DAT_0002c298") () ")")))) (; ";")) (if_statement "if (iVar9 != 0) {\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar11 = "Divide by zero";\n      goto code_r0x0001732f;\n    }" ({ "{") (expression_statement "pcVar11 = "Divide by zero";" (assignment_expression "pcVar11 = "Divide by zero"" (identifier "pcVar11") (= "=") (string_literal ""Divide by zero"" (" """) (string_content "Divide by zero") (" """))) (; ";")) (goto_statement "goto code_r0x0001732f;" (goto "goto") (statement_identifier "code_r0x0001732f") (; ";")) (} "}"))) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00018ff0(local_38);" (call_expression "FUN_00018ff0(local_38)" (identifier "FUN_00018ff0") (argument_list "(local_38)" (( "(") (identifier "local_38") () ")"))) (; ";")) (expression_statement "FUN_0001c550(&local_38);" (call_expression "FUN_0001c550(&local_38)" (identifier "FUN_0001c550") (argument_list "(&local_38)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '0':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c8);\n    break;" (case "case") (char_literal "'0'" (' "'") (character "0") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "FUN_00018fb0(DAT_0002c2c8);" (call_expression "FUN_00018fb0(DAT_0002c2c8)" (identifier "FUN_00018fb0") (argument_list "(DAT_0002c2c8)" (( "(") (identifier "DAT_0002c2c8") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '1':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(DAT_0002c2c0);\n    break;" (case "case") (char_literal "'1'" (' "'") (character "1") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "FUN_00018fb0(DAT_0002c2c0);" (call_expression "FUN_00018fb0(DAT_0002c2c0)" (identifier "FUN_00018fb0") (argument_list "(DAT_0002c2c0)" (( "(") (identifier "DAT_0002c2c0") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '<':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == -1;\n    FUN_00018f70();\n    goto code_r0x000167c5;" (case "case") (char_literal "'<'" (' "'") (character "<") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" (identifier "cVar7") (= "=") (call_expression "FUN_00019020(2)" (identifier "FUN_00019020") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016998;" (goto "goto") (statement_identifier "code_r0x00016998") (; ";"))) (expression_statement "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (assignment_expression "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (identifier "iVar9") (= "=") (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (identifier "FUN_0001c570") (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (( "(") (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_0002c2bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_0002c2bc[1]" (identifier "DAT_0002c2bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) () ")")))) (; ";")) (expression_statement "DAT_0002c294 = iVar9 == -1;" (assignment_expression "DAT_0002c294 = iVar9 == -1" (identifier "DAT_0002c294") (= "=") (binary_expression "iVar9 == -1" (identifier "iVar9") (== "==") (number_literal "-1"))) (; ";")) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x000167c5;" (goto "goto") (statement_identifier "code_r0x000167c5") (; ";"))) (case_statement "case '=':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 0;\n    FUN_00018f70();\n    goto code_r0x000167c5;" (case "case") (char_literal "'='" (' "'") (character "=") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" (identifier "cVar7") (= "=") (call_expression "FUN_00019020(2)" (identifier "FUN_00019020") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016998;" (goto "goto") (statement_identifier "code_r0x00016998") (; ";"))) (expression_statement "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (assignment_expression "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (identifier "iVar9") (= "=") (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (identifier "FUN_0001c570") (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (( "(") (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_0002c2bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_0002c2bc[1]" (identifier "DAT_0002c2bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) () ")")))) (; ";")) (expression_statement "DAT_0002c294 = iVar9 == 0;" (assignment_expression "DAT_0002c294 = iVar9 == 0" (identifier "DAT_0002c294") (= "=") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0"))) (; ";")) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x000167c5;" (goto "goto") (statement_identifier "code_r0x000167c5") (; ";"))) (case_statement "case '>':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 == 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;" (case "case") (char_literal "'>'" (' "'") (character ">") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" (identifier "cVar7") (= "=") (call_expression "FUN_00019020(2)" (identifier "FUN_00019020") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016998;" (goto "goto") (statement_identifier "code_r0x00016998") (; ";"))) (expression_statement "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (assignment_expression "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (identifier "iVar9") (= "=") (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (identifier "FUN_0001c570") (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (( "(") (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_0002c2bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_0002c2bc[1]" (identifier "DAT_0002c2bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) () ")")))) (; ";")) (expression_statement "DAT_0002c294 = iVar9 == 1;" (assignment_expression "DAT_0002c294 = iVar9 == 1" (identifier "DAT_0002c294") (= "=") (binary_expression "iVar9 == 1" (identifier "iVar9") (== "==") (number_literal "1"))) (; ";")) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x000167c5;" (goto "goto") (statement_identifier "code_r0x000167c5") (; ";"))) (case_statement "case 'A':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019f00(uVar10);\n    break;" (case "case") (char_literal "'A'" (' "'") (character "A") (' "'")) (: ":") (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_70 + uVar16)" (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" ({ "{") (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (identifier "uVar10") (= "=") (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" (( "(") (binary_expression "uVar10 & 0x7f" (identifier "uVar10") (& "&") (number_literal "0x7f")) () ")")) (* "*") (number_literal "0x100")) (+ "+") (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" (( "(") (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" (identifier "local_70") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_0002c2b0")) () ")")))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 3" (identifier "DAT_0002c2b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "FUN_00019f00(uVar10);" (call_expression "FUN_00019f00(uVar10)" (identifier "FUN_00019f00") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'B':" (case "case") (char_literal "'B'" (' "'") (character "B") (' "'")) (: ":")) (case_statement "case 'Z':\n    DAT_0002c2b0 = uVar16;\n    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);\n    DAT_0002c294 = cVar6 == '\0';\n    FUN_00018f70();\n    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);\n    local_70 = *(int *)((int)local_7c + 4);\n    local_5c = DAT_0002c2b0 + 1;\n    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    puVar8 = (undefined4 *)DAT_0002c2ac;\n    iVar9 = DAT_0002c278;\n    if (cVar7 == 'J') goto code_r0x0001740e;\n    if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;" (case "case") (char_literal "'Z'" (' "'") (character "Z") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "cVar6 = FUN_0001c6d0(*DAT_0002c2bc);" (assignment_expression "cVar6 = FUN_0001c6d0(*DAT_0002c2bc)" (identifier "cVar6") (= "=") (call_expression "FUN_0001c6d0(*DAT_0002c2bc)" (identifier "FUN_0001c6d0") (argument_list "(*DAT_0002c2bc)" (( "(") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) () ")")))) (; ";")) (expression_statement "DAT_0002c294 = cVar6 == '\0';" (assignment_expression "DAT_0002c294 = cVar6 == '\0'" (identifier "DAT_0002c294") (= "=") (binary_expression "cVar6 == '\0'" (identifier "cVar6") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);" (assignment_expression "local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c)" (identifier "local_7c") (= "=") (cast_expression "(undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0002c278 + DAT_0002c2ac * 0x1c)" (( "(") (binary_expression "DAT_0002c278 + DAT_0002c2ac * 0x1c" (identifier "DAT_0002c278") (+ "+") (binary_expression "DAT_0002c2ac * 0x1c" (identifier "DAT_0002c2ac") (* "*") (number_literal "0x1c"))) () ")")))) (; ";")) (expression_statement "local_70 = *(int *)((int)local_7c + 4);" (assignment_expression "local_70 = *(int *)((int)local_7c + 4)" (identifier "local_70") (= "=") (pointer_expression "*(int *)((int)local_7c + 4)" (* "*") (cast_expression "(int *)((int)local_7c + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_7c + 4)" (( "(") (binary_expression "(int)local_7c + 4" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_5c = DAT_0002c2b0 + 1;" (assignment_expression "local_5c = DAT_0002c2b0 + 1" (identifier "local_5c") (= "=") (binary_expression "DAT_0002c2b0 + 1" (identifier "DAT_0002c2b0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);" (assignment_expression "uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined1 *)(local_70 + DAT_0002c2b0)" (* "*") (cast_expression "(undefined1 *)(local_70 + DAT_0002c2b0)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + DAT_0002c2b0)" (( "(") (binary_expression "local_70 + DAT_0002c2b0" (identifier "local_70") (+ "+") (identifier "DAT_0002c2b0")) () ")"))))) (; ";")) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 2;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (= "=") (binary_expression "DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar8 = (undefined4 *)DAT_0002c2ac;" (assignment_expression "puVar8 = (undefined4 *)DAT_0002c2ac" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)DAT_0002c2ac" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_0002c2ac"))) (; ";")) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" (identifier "iVar9") (= "=") (identifier "DAT_0002c278")) (; ";")) (if_statement "if (cVar7 == 'J') goto code_r0x0001740e;" (if "if") (parenthesized_expression "(cVar7 == 'J')" (( "(") (binary_expression "cVar7 == 'J'" (identifier "cVar7") (== "==") (char_literal "'J'" (' "'") (character "J") (' "'"))) () ")")) (goto_statement "goto code_r0x0001740e;" (goto "goto") (statement_identifier "code_r0x0001740e") (; ";"))) (if_statement "if (cVar7 == 'B') {\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }\n    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;" (if "if") (parenthesized_expression "(cVar7 == 'B')" (( "(") (binary_expression "cVar7 == 'B'" (identifier "cVar7") (== "==") (char_literal "'B'" (' "'") (character "B") (' "'"))) () ")")) (compound_statement "{\n      if (DAT_0002c294 != 0) goto code_r0x0001740e;\n    }" ({ "{") (if_statement "if (DAT_0002c294 != 0) goto code_r0x0001740e;" (if "if") (parenthesized_expression "(DAT_0002c294 != 0)" (( "(") (binary_expression "DAT_0002c294 != 0" (identifier "DAT_0002c294") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0001740e;" (goto "goto") (statement_identifier "code_r0x0001740e") (; ";"))) (} "}")) (else_clause "else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;" (else "else") (if_statement "if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;" (if "if") (parenthesized_expression "((cVar7 == 'Z') && (DAT_0002c294 == 0))" (( "(") (binary_expression "(cVar7 == 'Z') && (DAT_0002c294 == 0)" (parenthesized_expression "(cVar7 == 'Z')" (( "(") (binary_expression "cVar7 == 'Z'" (identifier "cVar7") (== "==") (char_literal "'Z'" (' "'") (character "Z") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_0002c294 == 0)" (( "(") (binary_expression "DAT_0002c294 == 0" (identifier "DAT_0002c294") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto code_r0x0001740e;" (goto "goto") (statement_identifier "code_r0x0001740e") (; ";"))))) (expression_statement "local_78 = *(undefined4 **)((int)local_7c + 0xc);" (assignment_expression "local_78 = *(undefined4 **)((int)local_7c + 0xc)" (identifier "local_78") (= "=") (pointer_expression "*(undefined4 **)((int)local_7c + 0xc)" (* "*") (cast_expression "(undefined4 **)((int)local_7c + 0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_7c + 0xc)" (( "(") (binary_expression "(int)local_7c + 0xc" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (goto_statement "goto LAB_000166a0;" (goto "goto") (statement_identifier "LAB_000166a0") (; ";"))) (case_statement "case 'C':\n    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    iVar12 = (int)local_7c * 0x1c;\n    if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }\n    FUN_0001a270(&DAT_0002c2ac,local_7c);\n    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }\n    FUN_00018f40(DAT_0002c2ac);\n    FUN_00018f40(DAT_0002c2b0);\n    FUN_00018f40(DAT_0002c2a4);\n    DAT_0002c2b0 = 0;\n    DAT_0002c2ac = (uint)local_7c;\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);\n    puVar8 = local_7c;\n    iVar9 = DAT_0002c278;\n    goto LAB_000166a0;" (case "case") (char_literal "'C'" (' "'") (character "C") (' "'")) (: ":") (expression_statement "local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);" (assignment_expression "local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16)" (identifier "local_7c") (= "=") (binary_expression "(undefined4 *)(uint)*(byte *)(local_70 + uVar16)" (cast_expression "(undefined4 *)(uint)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_70 + uVar16)" (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" ({ "{") (expression_statement "local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);" (assignment_expression "local_7c = (undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100)" (identifier "local_7c") (= "=") (cast_expression "(undefined4 *)\n                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100)" (( "(") (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100" (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" (( "(") (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" (identifier "local_70") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_0002c2b0")) () ")")))) (+ "+") (binary_expression "((uint)local_7c & 0x7f) * 0x100" (parenthesized_expression "((uint)local_7c & 0x7f)" (( "(") (binary_expression "(uint)local_7c & 0x7f" (cast_expression "(uint)local_7c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_7c")) (& "&") (number_literal "0x7f")) () ")")) (* "*") (number_literal "0x100"))) () ")")))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 3" (identifier "DAT_0002c2b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "iVar12 = (int)local_7c * 0x1c;" (assignment_expression "iVar12 = (int)local_7c * 0x1c" (identifier "iVar12") (= "=") (binary_expression "(int)local_7c * 0x1c" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (* "*") (number_literal "0x1c"))) (; ";")) (if_statement "if (*(char *)(iVar9 + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar9 + iVar12) == '\0')" (( "(") (binary_expression "*(char *)(iVar9 + iVar12) == '\0'" (pointer_expression "*(char *)(iVar9 + iVar12)" (* "*") (cast_expression "(char *)(iVar9 + iVar12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + iVar12)" (( "(") (binary_expression "iVar9 + iVar12" (identifier "iVar9") (+ "+") (identifier "iVar12")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x0001732f;\n    }" ({ "{") (expression_statement "pcVar11 = "Function %s not defined.";" (assignment_expression "pcVar11 = "Function %s not defined."" (identifier "pcVar11") (= "=") (string_literal ""Function %s not defined."" (" """) (string_content "Function %s not defined.") (" """))) (; ";")) (goto_statement "goto code_r0x0001732f;" (goto "goto") (statement_identifier "code_r0x0001732f") (; ";")) (} "}"))) (expression_statement "FUN_0001a270(&DAT_0002c2ac,local_7c);" (call_expression "FUN_0001a270(&DAT_0002c2ac,local_7c)" (identifier "FUN_0001a270") (argument_list "(&DAT_0002c2ac,local_7c)" (( "(") (pointer_expression "&DAT_0002c2ac" (& "&") (identifier "DAT_0002c2ac")) (, ",") (identifier "local_7c") () ")"))) (; ";")) (for_statement "for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;\n        puVar8 = (undefined4 *)puVar8[2]) {\n      FUN_00019ff0(*puVar8);\n    }" (for "for") (( "(") (assignment_expression "puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12)" (identifier "puVar8") (= "=") (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0x18 + iVar12)" (* "*") (cast_expression "(undefined4 **)(DAT_0002c278 + 0x18 + iVar12)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_0002c278 + 0x18 + iVar12)" (( "(") (binary_expression "DAT_0002c278 + 0x18 + iVar12" (binary_expression "DAT_0002c278 + 0x18" (identifier "DAT_0002c278") (+ "+") (number_literal "0x18")) (+ "+") (identifier "iVar12")) () ")"))))) (; ";") (binary_expression "puVar8 != (undefined4 *)0x0" (identifier "puVar8") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar8 = (undefined4 *)puVar8[2]" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)puVar8[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")))) () ")") (compound_statement "{\n      FUN_00019ff0(*puVar8);\n    }" ({ "{") (expression_statement "FUN_00019ff0(*puVar8);" (call_expression "FUN_00019ff0(*puVar8)" (identifier "FUN_00019ff0") (argument_list "(*puVar8)" (( "(") (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00018f40(DAT_0002c2ac);" (call_expression "FUN_00018f40(DAT_0002c2ac)" (identifier "FUN_00018f40") (argument_list "(DAT_0002c2ac)" (( "(") (identifier "DAT_0002c2ac") () ")"))) (; ";")) (expression_statement "FUN_00018f40(DAT_0002c2b0);" (call_expression "FUN_00018f40(DAT_0002c2b0)" (identifier "FUN_00018f40") (argument_list "(DAT_0002c2b0)" (( "(") (identifier "DAT_0002c2b0") () ")"))) (; ";")) (expression_statement "FUN_00018f40(DAT_0002c2a4);" (call_expression "FUN_00018f40(DAT_0002c2a4)" (identifier "FUN_00018f40") (argument_list "(DAT_0002c2a4)" (( "(") (identifier "DAT_0002c2a4") () ")"))) (; ";")) (expression_statement "DAT_0002c2b0 = 0;" (assignment_expression "DAT_0002c2b0 = 0" (identifier "DAT_0002c2b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_0002c2ac = (uint)local_7c;" (assignment_expression "DAT_0002c2ac = (uint)local_7c" (identifier "DAT_0002c2ac") (= "=") (cast_expression "(uint)local_7c" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_7c"))) (; ";")) (expression_statement "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);" (assignment_expression "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12)" (identifier "local_78") (= "=") (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0xc + iVar12)" (* "*") (cast_expression "(undefined4 **)(DAT_0002c278 + 0xc + iVar12)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_0002c278 + 0xc + iVar12)" (( "(") (binary_expression "DAT_0002c278 + 0xc + iVar12" (binary_expression "DAT_0002c278 + 0xc" (identifier "DAT_0002c278") (+ "+") (number_literal "0xc")) (+ "+") (identifier "iVar12")) () ")"))))) (; ";")) (expression_statement "puVar8 = local_7c;" (assignment_expression "puVar8 = local_7c" (identifier "puVar8") (= "=") (identifier "local_7c")) (; ";")) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" (identifier "iVar9") (= "=") (identifier "DAT_0002c278")) (; ";")) (goto_statement "goto LAB_000166a0;" (goto "goto") (statement_identifier "LAB_000166a0") (; ";"))) (case_statement "case 'D':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018fb0(*DAT_0002c2bc);\n    break;" (case "case") (char_literal "'D'" (' "'") (character "D") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "FUN_00018fb0(*DAT_0002c2bc);" (call_expression "FUN_00018fb0(*DAT_0002c2bc)" (identifier "FUN_00018fb0") (argument_list "(*DAT_0002c2bc)" (( "(") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'J':\n    local_5c = DAT_0002c2b0 + 2;\n    uVar15 = *(undefined1 *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 3;\ncode_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);\n    uVar16 = (uint)(uVar2 >> 6);\n    iVar14 = *(int *)((int)local_7c + 0x10);\n    iVar12 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }\n    if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);\n    local_78 = *(undefined4 **)((int)local_7c + 0xc);\n    goto LAB_000166a0;" (case "case") (char_literal "'J'" (' "'") (character "J") (' "'")) (: ":") (expression_statement "local_5c = DAT_0002c2b0 + 2;" (assignment_expression "local_5c = DAT_0002c2b0 + 2" (identifier "local_5c") (= "=") (binary_expression "DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar15 = *(undefined1 *)(local_70 + uVar16);" (assignment_expression "uVar15 = *(undefined1 *)(local_70 + uVar16)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined1 *)(local_70 + uVar16)" (* "*") (cast_expression "(undefined1 *)(local_70 + uVar16)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (; ";")) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 3;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 3" (identifier "DAT_0002c2b0") (= "=") (binary_expression "DAT_0002c2b0 + 3" (identifier "DAT_0002c2b0") (+ "+") (number_literal "3"))) (; ";")) (labeled_statement "code_r0x0001740e:\n    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);" (statement_identifier "code_r0x0001740e") (: ":") (expression_statement "uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);" (assignment_expression "uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15)" (identifier "uVar2") (= "=") (call_expression "CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15)" (identifier "CONCAT11") (argument_list "(*(undefined1 *)(local_70 + local_5c),uVar15)" (( "(") (pointer_expression "*(undefined1 *)(local_70 + local_5c)" (* "*") (cast_expression "(undefined1 *)(local_70 + local_5c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + local_5c)" (( "(") (binary_expression "local_70 + local_5c" (identifier "local_70") (+ "+") (identifier "local_5c")) () ")")))) (, ",") (identifier "uVar15") () ")")))) (; ";"))) (expression_statement "uVar16 = (uint)(uVar2 >> 6);" (assignment_expression "uVar16 = (uint)(uVar2 >> 6)" (identifier "uVar16") (= "=") (call_expression "(uint)(uVar2 >> 6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 >> 6)" (( "(") (binary_expression "uVar2 >> 6" (identifier "uVar2") (>> ">>") (number_literal "6")) () ")")))) (; ";")) (expression_statement "iVar14 = *(int *)((int)local_7c + 0x10);" (assignment_expression "iVar14 = *(int *)((int)local_7c + 0x10)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)((int)local_7c + 0x10)" (* "*") (cast_expression "(int *)((int)local_7c + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_7c + 0x10)" (( "(") (binary_expression "(int)local_7c + 0x10" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar12 = uVar16 - 1;" (assignment_expression "iVar12 = uVar16 - 1" (identifier "iVar12") (= "=") (binary_expression "uVar16 - 1" (identifier "uVar16") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (uVar16 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }" (if "if") (parenthesized_expression "(uVar16 != 0)" (( "(") (binary_expression "uVar16 != 0" (identifier "uVar16") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }" ({ "{") (do_statement "do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);" (do "do") (compound_statement "{\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      }" ({ "{") (expression_statement "iVar12 = iVar12 + -1;" (assignment_expression "iVar12 = iVar12 + -1" (identifier "iVar12") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar14 + 0x100);" (assignment_expression "iVar14 = *(int *)(iVar14 + 0x100)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar14 + 0x100)" (* "*") (cast_expression "(int *)(iVar14 + 0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x100)" (( "(") (binary_expression "iVar14 + 0x100" (identifier "iVar14") (+ "+") (number_literal "0x100")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar12 != -1)" (( "(") (binary_expression "iVar12 != -1" (identifier "iVar12") (!= "!=") (number_literal "-1")) () ")")) (; ";")) (} "}"))) (if_statement "if (iVar14 == 0) {\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar11 = "Internal error.";\n      goto code_r0x0001732f;\n    }" ({ "{") (expression_statement "pcVar11 = "Internal error.";" (assignment_expression "pcVar11 = "Internal error."" (identifier "pcVar11") (= "=") (string_literal ""Internal error."" (" """) (string_content "Internal error.") (" """))) (; ";")) (goto_statement "goto code_r0x0001732f;" (goto "goto") (statement_identifier "code_r0x0001732f") (; ";")) (} "}"))) (expression_statement "DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);" (assignment_expression "DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4)" (identifier "DAT_0002c2b0") (= "=") (pointer_expression "*(uint *)(iVar14 + (uVar2 & 0x3f) * 4)" (* "*") (cast_expression "(uint *)(iVar14 + (uVar2 & 0x3f) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + (uVar2 & 0x3f) * 4)" (( "(") (binary_expression "iVar14 + (uVar2 & 0x3f) * 4" (identifier "iVar14") (+ "+") (binary_expression "(uVar2 & 0x3f) * 4" (parenthesized_expression "(uVar2 & 0x3f)" (( "(") (binary_expression "uVar2 & 0x3f" (identifier "uVar2") (& "&") (number_literal "0x3f")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "local_78 = *(undefined4 **)((int)local_7c + 0xc);" (assignment_expression "local_78 = *(undefined4 **)((int)local_7c + 0xc)" (identifier "local_78") (= "=") (pointer_expression "*(undefined4 **)((int)local_7c + 0xc)" (* "*") (cast_expression "(undefined4 **)((int)local_7c + 0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)local_7c + 0xc)" (( "(") (binary_expression "(int)local_7c + 0xc" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (goto_statement "goto LAB_000166a0;" (goto "goto") (statement_identifier "LAB_000166a0") (; ";"))) (case_statement "case 'K':\n    if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }\n    if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,local_70);\n    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);\n    uVar16 = DAT_0002c2b0 + 1;\n    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n    if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }\n    if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }\n    uVar16 = uVar17;\n    if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }\ncode_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }\n    goto code_r0x0001720b;" (case "case") (char_literal "'K'" (' "'") (character "K") (' "'")) (: ":") (if_statement "if (puVar8 == (undefined4 *)0x0) {\n      local_70 = DAT_0002c2a4;\n    }\n    else {\n      local_70 = *DAT_0002c250;\n    }" (if "if") (parenthesized_expression "(puVar8 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar8 == (undefined4 *)0x0" (identifier "puVar8") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      local_70 = DAT_0002c2a4;\n    }" ({ "{") (expression_statement "local_70 = DAT_0002c2a4;" (assignment_expression "local_70 = DAT_0002c2a4" (identifier "local_70") (= "=") (identifier "DAT_0002c2a4")) (; ";")) (} "}")) (else_clause "else {\n      local_70 = *DAT_0002c250;\n    }" (else "else") (compound_statement "{\n      local_70 = *DAT_0002c250;\n    }" ({ "{") (expression_statement "local_70 = *DAT_0002c250;" (assignment_expression "local_70 = *DAT_0002c250" (identifier "local_70") (= "=") (pointer_expression "*DAT_0002c250" (* "*") (identifier "DAT_0002c250"))) (; ";")) (} "}")))) (if_statement "if (local_70 == 10) {\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }" (if "if") (parenthesized_expression "(local_70 == 10)" (( "(") (binary_expression "local_70 == 10" (identifier "local_70") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n      DAT_0002c2b0 = uVar16;\n      FUN_00016360(&DAT_0002c2ac);\n      break;\n    }" ({ "{") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "FUN_00016360(&DAT_0002c2ac);" (call_expression "FUN_00016360(&DAT_0002c2ac)" (identifier "FUN_00016360") (argument_list "(&DAT_0002c2ac)" (( "(") (pointer_expression "&DAT_0002c2ac" (& "&") (identifier "DAT_0002c2ac")) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "FUN_0001c550(&uStack_30);" (call_expression "FUN_0001c550(&uStack_30)" (identifier "FUN_0001c550") (argument_list "(&uStack_30)" (( "(") (pointer_expression "&uStack_30" (& "&") (identifier "uStack_30")) () ")"))) (; ";")) (expression_statement "FUN_0001c550(&uStack_2c);" (call_expression "FUN_0001c550(&uStack_2c)" (identifier "FUN_0001c550") (argument_list "(&uStack_2c)" (( "(") (pointer_expression "&uStack_2c" (& "&") (identifier "uStack_2c")) () ")"))) (; ";")) (expression_statement "FUN_0001c550(&uStack_28);" (call_expression "FUN_0001c550(&uStack_28)" (identifier "FUN_0001c550") (argument_list "(&uStack_28)" (( "(") (pointer_expression "&uStack_28" (& "&") (identifier "uStack_28")) () ")"))) (; ";")) (expression_statement "uStack_34 = FUN_0001c540(DAT_0002c2c8);" (assignment_expression "uStack_34 = FUN_0001c540(DAT_0002c2c8)" (identifier "uStack_34") (= "=") (call_expression "FUN_0001c540(DAT_0002c2c8)" (identifier "FUN_0001c540") (argument_list "(DAT_0002c2c8)" (( "(") (identifier "DAT_0002c2c8") () ")")))) (; ";")) (expression_statement "FUN_0001f070(&uStack_28,local_70);" (call_expression "FUN_0001f070(&uStack_28,local_70)" (identifier "FUN_0001f070") (argument_list "(&uStack_28,local_70)" (( "(") (pointer_expression "&uStack_28" (& "&") (identifier "uStack_28")) (, ",") (identifier "local_70") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);" (assignment_expression "iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (* "*") (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (( "(") (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" (identifier "DAT_0002c2ac") (* "*") (number_literal "0x1c")) (+ "+") (identifier "DAT_0002c278")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar16 = DAT_0002c2b0 + 1;" (assignment_expression "uVar16 = DAT_0002c2b0 + 1" (identifier "uVar16") (= "=") (binary_expression "DAT_0002c2b0 + 1" (identifier "DAT_0002c2b0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0)" (identifier "uVar17") (= "=") (binary_expression "(uint)*(byte *)(iVar9 + DAT_0002c2b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar9 + DAT_0002c2b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + DAT_0002c2b0)" (( "(") (binary_expression "iVar9 + DAT_0002c2b0" (identifier "iVar9") (+ "+") (identifier "DAT_0002c2b0")) () ")"))))) (; ";")) (if_statement "if (uVar17 == 0x7e) {\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }" (if "if") (parenthesized_expression "(uVar17 == 0x7e)" (( "(") (binary_expression "uVar17 == 0x7e" (identifier "uVar17") (== "==") (number_literal "0x7e")) () ")")) (compound_statement "{\n      uVar10 = DAT_0002c2b0 + 2;\n      do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);\n    }" ({ "{") (expression_statement "uVar10 = DAT_0002c2b0 + 2;" (assignment_expression "uVar10 = DAT_0002c2b0 + 2" (identifier "uVar10") (= "=") (binary_expression "DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (+ "+") (number_literal "2"))) (; ";")) (do_statement "do {\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      } while (uVar17 == 0x7e);" (do "do") (compound_statement "{\n        uVar16 = uVar10;\n        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);\n        uVar10 = uVar16 + 1;\n      }" ({ "{") (expression_statement "uVar16 = uVar10;" (assignment_expression "uVar16 = uVar10" (identifier "uVar16") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16)" (identifier "uVar17") (= "=") (binary_expression "(uint)*(byte *)(iVar9 + -1 + uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar9 + -1 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + -1 + uVar16)" (( "(") (binary_expression "iVar9 + -1 + uVar16" (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1")) (+ "+") (identifier "uVar16")) () ")"))))) (; ";")) (expression_statement "uVar10 = uVar16 + 1;" (assignment_expression "uVar10 = uVar16 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar17 == 0x7e)" (( "(") (binary_expression "uVar17 == 0x7e" (identifier "uVar17") (== "==") (number_literal "0x7e")) () ")")) (; ";")) (} "}"))) (if_statement "if (uVar17 == 0x2b) {\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }\n    else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }" (if "if") (parenthesized_expression "(uVar17 == 0x2b)" (( "(") (binary_expression "uVar17 == 0x2b" (identifier "uVar17") (== "==") (number_literal "0x2b")) () ")")) (compound_statement "{\n      DAT_0002c2b0 = uVar16 + 1;\n      uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n    }" ({ "{") (expression_statement "DAT_0002c2b0 = uVar16 + 1;" (assignment_expression "DAT_0002c2b0 = uVar16 + 1" (identifier "DAT_0002c2b0") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar17 = (uint)*(byte *)(iVar9 + uVar16);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar9 + uVar16)" (identifier "uVar17") (= "=") (binary_expression "(uint)*(byte *)(iVar9 + uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar9 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + uVar16)" (( "(") (binary_expression "iVar9 + uVar16" (identifier "iVar9") (+ "+") (identifier "uVar16")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }" (else "else") (compound_statement "{\n      DAT_0002c2b0 = uVar16;\n      if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }\n    }" ({ "{") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if (uVar17 == 0x2d) {\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }" (if "if") (parenthesized_expression "(uVar17 == 0x2d)" (( "(") (binary_expression "uVar17 == 0x2d" (identifier "uVar17") (== "==") (number_literal "0x2d")) () ")")) (compound_statement "{\n        bVar18 = true;\n        DAT_0002c2b0 = uVar16 + 1;\n        uVar17 = (uint)*(byte *)(iVar9 + uVar16);\n      }" ({ "{") (expression_statement "bVar18 = true;" (assignment_expression "bVar18 = true" (identifier "bVar18") (= "=") (true "true")) (; ";")) (expression_statement "DAT_0002c2b0 = uVar16 + 1;" (assignment_expression "DAT_0002c2b0 = uVar16 + 1" (identifier "DAT_0002c2b0") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar17 = (uint)*(byte *)(iVar9 + uVar16);" (assignment_expression "uVar17 = (uint)*(byte *)(iVar9 + uVar16)" (identifier "uVar17") (= "=") (binary_expression "(uint)*(byte *)(iVar9 + uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar9 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + uVar16)" (( "(") (binary_expression "iVar9 + uVar16" (identifier "iVar9") (+ "+") (identifier "uVar16")) () ")"))))) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar16 = uVar17;" (assignment_expression "uVar16 = uVar17" (identifier "uVar16") (= "=") (identifier "uVar17")) (; ";")) (if_statement "if (uVar17 < 0x24) {\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }" (if "if") (parenthesized_expression "(uVar17 < 0x24)" (( "(") (binary_expression "uVar17 < 0x24" (identifier "uVar17") (< "<") (number_literal "0x24")) () ")")) (compound_statement "{\n      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);\n      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);\n    }" ({ "{") (expression_statement "uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);" (assignment_expression "uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0)" (identifier "uVar16") (= "=") (binary_expression "(uint)*(byte *)(iVar9 + DAT_0002c2b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar9 + DAT_0002c2b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + DAT_0002c2b0)" (( "(") (binary_expression "iVar9 + DAT_0002c2b0" (identifier "iVar9") (+ "+") (identifier "DAT_0002c2b0")) () ")"))))) (; ";")) (if_statement "if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }\n      else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }" (if "if") (parenthesized_expression "((uVar16 < 0x24) && (local_70 <= (int)uVar17))" (( "(") (binary_expression "(uVar16 < 0x24) && (local_70 <= (int)uVar17)" (parenthesized_expression "(uVar16 < 0x24)" (( "(") (binary_expression "uVar16 < 0x24" (identifier "uVar16") (< "<") (number_literal "0x24")) () ")")) (&& "&&") (parenthesized_expression "(local_70 <= (int)uVar17)" (( "(") (binary_expression "local_70 <= (int)uVar17" (identifier "local_70") (<= "<=") (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17"))) () ")"))) () ")")) (compound_statement "{\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,local_70 + -1);\n      }" ({ "{") (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 1;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 1" (identifier "DAT_0002c2b0") (= "=") (binary_expression "DAT_0002c2b0 + 1" (identifier "DAT_0002c2b0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_0001f070(&uStack_34,local_70 + -1);" (call_expression "FUN_0001f070(&uStack_34,local_70 + -1)" (identifier "FUN_0001f070") (argument_list "(&uStack_34,local_70 + -1)" (( "(") (pointer_expression "&uStack_34" (& "&") (identifier "uStack_34")) (, ",") (binary_expression "local_70 + -1" (identifier "local_70") (+ "+") (number_literal "-1")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }" (else "else") (compound_statement "{\n        DAT_0002c2b0 = DAT_0002c2b0 + 1;\n        FUN_0001f070(&uStack_34,uVar17);\n        if (0x23 < uVar16) goto code_r0x00017202;\n      }" ({ "{") (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 1;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 1" (identifier "DAT_0002c2b0") (= "=") (binary_expression "DAT_0002c2b0 + 1" (identifier "DAT_0002c2b0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_0001f070(&uStack_34,uVar17);" (call_expression "FUN_0001f070(&uStack_34,uVar17)" (identifier "FUN_0001f070") (argument_list "(&uStack_34,uVar17)" (( "(") (pointer_expression "&uStack_34" (& "&") (identifier "uStack_34")) (, ",") (identifier "uVar17") () ")"))) (; ";")) (if_statement "if (0x23 < uVar16) goto code_r0x00017202;" (if "if") (parenthesized_expression "(0x23 < uVar16)" (( "(") (binary_expression "0x23 < uVar16" (number_literal "0x23") (< "<") (identifier "uVar16")) () ")")) (goto_statement "goto code_r0x00017202;" (goto "goto") (statement_identifier "code_r0x00017202") (; ";"))) (} "}")))) (expression_statement "local_60 = &uStack_34;" (assignment_expression "local_60 = &uStack_34" (identifier "local_60") (= "=") (pointer_expression "&uStack_34" (& "&") (identifier "uStack_34"))) (; ";")) (do_statement "do {\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      } while (uVar16 < 0x24);" (do "do") (compound_statement "{\n        if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }\n        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);\n        FUN_0001f070(&uStack_30,uVar16);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        uVar17 = DAT_0002c2b0 + 1;\n        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n        DAT_0002c2b0 = uVar17;\n      }" ({ "{") (if_statement "if (local_70 <= (int)uVar16) {\n          uVar16 = local_70 - 1;\n        }" (if "if") (parenthesized_expression "(local_70 <= (int)uVar16)" (( "(") (binary_expression "local_70 <= (int)uVar16" (identifier "local_70") (<= "<=") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (compound_statement "{\n          uVar16 = local_70 - 1;\n        }" ({ "{") (expression_statement "uVar16 = local_70 - 1;" (assignment_expression "uVar16 = local_70 - 1" (identifier "uVar16") (= "=") (binary_expression "local_70 - 1" (identifier "local_70") (- "-") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);" (call_expression "FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0)" (identifier "FUN_0001d9c0") (argument_list "(uStack_34,uStack_28,&uStack_2c,0)" (( "(") (identifier "uStack_34") (, ",") (identifier "uStack_28") (, ",") (pointer_expression "&uStack_2c" (& "&") (identifier "uStack_2c")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_0001f070(&uStack_30,uVar16);" (call_expression "FUN_0001f070(&uStack_30,uVar16)" (identifier "FUN_0001f070") (argument_list "(&uStack_30,uVar16)" (( "(") (pointer_expression "&uStack_30" (& "&") (identifier "uStack_30")) (, ",") (identifier "uVar16") () ")"))) (; ";")) (expression_statement "FUN_0001d720(uStack_2c,uStack_30,local_60,0);" (call_expression "FUN_0001d720(uStack_2c,uStack_30,local_60,0)" (identifier "FUN_0001d720") (argument_list "(uStack_2c,uStack_30,local_60,0)" (( "(") (identifier "uStack_2c") (, ",") (identifier "uStack_30") (, ",") (identifier "local_60") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 1;" (assignment_expression "uVar17 = DAT_0002c2b0 + 1" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 1" (identifier "DAT_0002c2b0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);" (assignment_expression "uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" (identifier "uVar16") (= "=") (binary_expression "(uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" (( "(") (binary_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0" (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (* "*") (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (( "(") (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" (identifier "DAT_0002c2ac") (* "*") (number_literal "0x1c")) (+ "+") (identifier "DAT_0002c278")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (identifier "DAT_0002c2b0")) () ")"))))) (; ";")) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar17")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar16 < 0x24)" (( "(") (binary_expression "uVar16 < 0x24" (identifier "uVar16") (< "<") (number_literal "0x24")) () ")")) (; ";")) (} "}"))) (labeled_statement "code_r0x00017202:\n    if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }" (statement_identifier "code_r0x00017202") (: ":") (if_statement "if (uVar16 == 0x2e) {\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }" (if "if") (parenthesized_expression "(uVar16 == 0x2e)" (( "(") (binary_expression "uVar16 == 0x2e" (identifier "uVar16") (== "==") (number_literal "0x2e")) () ")")) (compound_statement "{\n      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      uVar16 = local_70 - 1;\n      if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n      FUN_0001c2e0(&uStack_2c);\n      FUN_0001c2e0(&uStack_30);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      iVar9 = 0;\n      if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }\n      goto code_r0x00017a9d;\n    }" ({ "{") (expression_statement "uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);" (assignment_expression "uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" (identifier "uVar17") (= "=") (binary_expression "(uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" (( "(") (binary_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0" (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (* "*") (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (( "(") (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" (identifier "DAT_0002c2ac") (* "*") (number_literal "0x1c")) (+ "+") (identifier "DAT_0002c278")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (identifier "DAT_0002c2b0")) () ")"))))) (; ";")) (expression_statement "uVar16 = local_70 - 1;" (assignment_expression "uVar16 = local_70 - 1" (identifier "uVar16") (= "=") (binary_expression "local_70 - 1" (identifier "local_70") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (local_70 <= (int)uVar17) {\n        uVar17 = uVar16;\n      }" (if "if") (parenthesized_expression "(local_70 <= (int)uVar17)" (( "(") (binary_expression "local_70 <= (int)uVar17" (identifier "local_70") (<= "<=") (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17"))) () ")")) (compound_statement "{\n        uVar17 = uVar16;\n      }" ({ "{") (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" (identifier "uVar17") (= "=") (identifier "uVar16")) (; ";")) (} "}"))) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 1;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 1" (identifier "DAT_0002c2b0") (= "=") (binary_expression "DAT_0002c2b0 + 1" (identifier "DAT_0002c2b0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_0001c2e0(&uStack_2c);" (call_expression "FUN_0001c2e0(&uStack_2c)" (identifier "FUN_0001c2e0") (argument_list "(&uStack_2c)" (( "(") (pointer_expression "&uStack_2c" (& "&") (identifier "uStack_2c")) () ")"))) (; ";")) (expression_statement "FUN_0001c2e0(&uStack_30);" (call_expression "FUN_0001c2e0(&uStack_30)" (identifier "FUN_0001c2e0") (argument_list "(&uStack_30)" (( "(") (pointer_expression "&uStack_30" (& "&") (identifier "uStack_30")) () ")"))) (; ";")) (expression_statement "uStack_24 = FUN_0001c540(DAT_0002c2c0);" (assignment_expression "uStack_24 = FUN_0001c540(DAT_0002c2c0)" (identifier "uStack_24") (= "=") (call_expression "FUN_0001c540(DAT_0002c2c0)" (identifier "FUN_0001c540") (argument_list "(DAT_0002c2c0)" (( "(") (identifier "DAT_0002c2c0") () ")")))) (; ";")) (expression_statement "uStack_2c = FUN_0001c540(DAT_0002c2c8);" (assignment_expression "uStack_2c = FUN_0001c540(DAT_0002c2c8)" (identifier "uStack_2c") (= "=") (call_expression "FUN_0001c540(DAT_0002c2c8)" (identifier "FUN_0001c540") (argument_list "(DAT_0002c2c8)" (( "(") (identifier "DAT_0002c2c8") () ")")))) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((int)uVar17 < 0x24) {\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }" (if "if") (parenthesized_expression "((int)uVar17 < 0x24)" (( "(") (binary_expression "(int)uVar17 < 0x24" (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17")) (< "<") (number_literal "0x24")) () ")")) (compound_statement "{\n        do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);\n      }" ({ "{") (do_statement "do {\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        } while (uVar17 < 0x24);" (do "do") (compound_statement "{\n          while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }\n        }" ({ "{") (while_statement "while( true ) {\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            local_58 = iVar9;\n            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);\n            FUN_0001f070(&uStack_30,uVar17);\n            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            uVar10 = DAT_0002c2b0 + 1;\n            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );\n            DAT_0002c2b0 = uVar10;\n            iVar9 = local_58;\n            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;\n            uVar17 = uVar16;\n            if (0x23 < (int)uVar16) goto code_r0x00017a9d;\n          }" ({ "{") (expression_statement "local_58 = iVar9;" (assignment_expression "local_58 = iVar9" (identifier "local_58") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);" (call_expression "FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0)" (identifier "FUN_0001d9c0") (argument_list "(uStack_2c,uStack_28,&uStack_2c,0)" (( "(") (identifier "uStack_2c") (, ",") (identifier "uStack_28") (, ",") (pointer_expression "&uStack_2c" (& "&") (identifier "uStack_2c")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_0001f070(&uStack_30,uVar17);" (call_expression "FUN_0001f070(&uStack_30,uVar17)" (identifier "FUN_0001f070") (argument_list "(&uStack_30,uVar17)" (( "(") (pointer_expression "&uStack_30" (& "&") (identifier "uStack_30")) (, ",") (identifier "uVar17") () ")"))) (; ";")) (expression_statement "FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);" (call_expression "FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0)" (identifier "FUN_0001d720") (argument_list "(uStack_2c,uStack_30,&uStack_2c,0)" (( "(") (identifier "uStack_2c") (, ",") (identifier "uStack_30") (, ",") (pointer_expression "&uStack_2c" (& "&") (identifier "uStack_2c")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);" (call_expression "FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0)" (identifier "FUN_0001d9c0") (argument_list "(uStack_24,uStack_28,&uStack_24,0)" (( "(") (identifier "uStack_24") (, ",") (identifier "uStack_28") (, ",") (pointer_expression "&uStack_24" (& "&") (identifier "uStack_24")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_58 = local_58 + 1;" (assignment_expression "local_58 = local_58 + 1" (identifier "local_58") (= "=") (binary_expression "local_58 + 1" (identifier "local_58") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar10 = DAT_0002c2b0 + 1;" (assignment_expression "uVar10 = DAT_0002c2b0 + 1" (identifier "uVar10") (= "=") (binary_expression "DAT_0002c2b0 + 1" (identifier "DAT_0002c2b0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    );" (assignment_expression "uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    )" (identifier "uVar17") (= "=") (binary_expression "(uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    )" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    )" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0\n                                    )" (( "(") (binary_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0" (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (* "*") (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (( "(") (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" (identifier "DAT_0002c2ac") (* "*") (number_literal "0x1c")) (+ "+") (identifier "DAT_0002c278")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (identifier "DAT_0002c2b0")) () ")"))))) (; ";")) (expression_statement "DAT_0002c2b0 = uVar10;" (assignment_expression "DAT_0002c2b0 = uVar10" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar10")) (; ";")) (expression_statement "iVar9 = local_58;" (assignment_expression "iVar9 = local_58" (identifier "iVar9") (= "=") (identifier "local_58")) (; ";")) (if_statement "if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;" (if "if") (parenthesized_expression "((0x23 < uVar17) || ((int)uVar17 < local_70))" (( "(") (binary_expression "(0x23 < uVar17) || ((int)uVar17 < local_70)" (parenthesized_expression "(0x23 < uVar17)" (( "(") (binary_expression "0x23 < uVar17" (number_literal "0x23") (< "<") (identifier "uVar17")) () ")")) (|| "||") (parenthesized_expression "((int)uVar17 < local_70)" (( "(") (binary_expression "(int)uVar17 < local_70" (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17")) (< "<") (identifier "local_70")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" (identifier "uVar17") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if (0x23 < (int)uVar16) goto code_r0x00017a9d;" (if "if") (parenthesized_expression "(0x23 < (int)uVar16)" (( "(") (binary_expression "0x23 < (int)uVar16" (number_literal "0x23") (< "<") (cast_expression "(int)uVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar16"))) () ")")) (goto_statement "goto code_r0x00017a9d;" (goto "goto") (statement_identifier "code_r0x00017a9d") (; ";"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(uVar17 < 0x24)" (( "(") (binary_expression "uVar17 < 0x24" (identifier "uVar17") (< "<") (number_literal "0x24")) () ")")) (; ";")) (} "}"))) (goto_statement "goto code_r0x00017a9d;" (goto "goto") (statement_identifier "code_r0x00017a9d") (; ";")) (} "}")))) (goto_statement "goto code_r0x0001720b;" (goto "goto") (statement_identifier "code_r0x0001720b") (; ";"))) (case_statement "case 'L':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019a30(uVar10);\n    break;" (case "case") (char_literal "'L'" (' "'") (character "L") (' "'")) (: ":") (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_70 + uVar16)" (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" ({ "{") (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (identifier "uVar10") (= "=") (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" (( "(") (binary_expression "uVar10 & 0x7f" (identifier "uVar10") (& "&") (number_literal "0x7f")) () ")")) (* "*") (number_literal "0x100")) (+ "+") (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" (( "(") (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" (identifier "local_70") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_0002c2b0")) () ")")))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 3" (identifier "DAT_0002c2b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "FUN_00019a30(uVar10);" (call_expression "FUN_00019a30(uVar10)" (identifier "FUN_00019a30") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'M':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019ca0(uVar10);\n    break;" (case "case") (char_literal "'M'" (' "'") (character "M") (' "'")) (: ":") (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_70 + uVar16)" (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" ({ "{") (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (identifier "uVar10") (= "=") (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" (( "(") (binary_expression "uVar10 & 0x7f" (identifier "uVar10") (& "&") (number_literal "0x7f")) () ")")) (* "*") (number_literal "0x100")) (+ "+") (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" (( "(") (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" (identifier "local_70") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_0002c2b0")) () ")")))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 3" (identifier "DAT_0002c2b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "FUN_00019ca0(uVar10);" (call_expression "FUN_00019ca0(uVar10)" (identifier "FUN_00019ca0") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'O':\n    DAT_0002c2b0 = uVar16;\ncode_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;\n    cVar7 = *(char *)(local_70 + DAT_0002c2b0);\n    uVar17 = uVar16;\n    if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }\n    DAT_0002c2b0 = uVar17;\n    fflush(*(FILE **)puVar3);\n    FUN_000208a0(*(undefined4 *)puVar3);\n    break;" (case "case") (char_literal "'O'" (' "'") (character "O") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (labeled_statement "code_r0x000172dc:\n    uVar16 = DAT_0002c2b0 + 1;" (statement_identifier "code_r0x000172dc") (: ":") (expression_statement "uVar16 = DAT_0002c2b0 + 1;" (assignment_expression "uVar16 = DAT_0002c2b0 + 1" (identifier "uVar16") (= "=") (binary_expression "DAT_0002c2b0 + 1" (identifier "DAT_0002c2b0") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "cVar7 = *(char *)(local_70 + DAT_0002c2b0);" (assignment_expression "cVar7 = *(char *)(local_70 + DAT_0002c2b0)" (identifier "cVar7") (= "=") (pointer_expression "*(char *)(local_70 + DAT_0002c2b0)" (* "*") (cast_expression "(char *)(local_70 + DAT_0002c2b0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + DAT_0002c2b0)" (( "(") (binary_expression "local_70 + DAT_0002c2b0" (identifier "local_70") (+ "+") (identifier "DAT_0002c2b0")) () ")"))))) (; ";")) (expression_statement "uVar17 = uVar16;" (assignment_expression "uVar17 = uVar16" (identifier "uVar17") (= "=") (identifier "uVar16")) (; ";")) (if_statement "if (cVar7 != '\"') {\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }" (if "if") (parenthesized_expression "(cVar7 != '\"')" (( "(") (binary_expression "cVar7 != '\"'" (identifier "cVar7") (!= "!=") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) () ")")) (compound_statement "{\n      if (cVar7 != '\\') goto code_r0x000172c4;\n      DAT_0002c2b0 = DAT_0002c2b0 + 2;\n      uVar17 = DAT_0002c2b0;\n      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;\n    }" ({ "{") (if_statement "if (cVar7 != '\\') goto code_r0x000172c4;" (if "if") (parenthesized_expression "(cVar7 != '\\')" (( "(") (binary_expression "cVar7 != '\\'" (identifier "cVar7") (!= "!=") (char_literal "'\\'" (' "'") (escape_sequence "\\") (' "'"))) () ")")) (goto_statement "goto code_r0x000172c4;" (goto "goto") (statement_identifier "code_r0x000172c4") (; ";"))) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 2;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (= "=") (binary_expression "DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0;" (assignment_expression "uVar17 = DAT_0002c2b0" (identifier "uVar17") (= "=") (identifier "DAT_0002c2b0")) (; ";")) (if_statement "if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;" (if "if") (parenthesized_expression "(*(char *)(local_70 + uVar16) != '\"')" (( "(") (binary_expression "*(char *)(local_70 + uVar16) != '\"'" (pointer_expression "*(char *)(local_70 + uVar16)" (* "*") (cast_expression "(char *)(local_70 + uVar16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")")))) (!= "!=") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) () ")")) (goto_statement "goto code_r0x0001730b;" (goto "goto") (statement_identifier "code_r0x0001730b") (; ";"))) (} "}"))) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "fflush(*(FILE **)puVar3);" (call_expression "fflush(*(FILE **)puVar3)" (identifier "fflush") (argument_list "(*(FILE **)puVar3)" (( "(") (pointer_expression "*(FILE **)puVar3" (* "*") (cast_expression "(FILE **)puVar3" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar3"))) () ")"))) (; ";")) (expression_statement "FUN_000208a0(*(undefined4 *)puVar3);" (call_expression "FUN_000208a0(*(undefined4 *)puVar3)" (identifier "FUN_000208a0") (argument_list "(*(undefined4 *)puVar3)" (( "(") (pointer_expression "*(undefined4 *)puVar3" (* "*") (cast_expression "(undefined4 *)puVar3" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'P':" (case "case") (char_literal "'P'" (' "'") (character "P") (' "'")) (: ":")) (case_statement "case 'W':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);\n    if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }\n    FUN_00019410(4);\n    puVar4 = PTR_stdout_0002bfec;\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    FUN_00018f70();\n    break;" (case "case") (char_literal "'W'" (' "'") (character "W") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);" (call_expression "FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec)" (identifier "FUN_0001f880") (argument_list "(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec)" (( "(") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) (, ",") (identifier "DAT_0002c280") (, ",") (identifier "PTR_FUN_0002bffc") (, ",") (identifier "DAT_0002c1ec") () ")"))) (; ";")) (if_statement "if (cVar7 == 'W') {\n      FUN_0001a680(10);\n    }" (if "if") (parenthesized_expression "(cVar7 == 'W')" (( "(") (binary_expression "cVar7 == 'W'" (identifier "cVar7") (== "==") (char_literal "'W'" (' "'") (character "W") (' "'"))) () ")")) (compound_statement "{\n      FUN_0001a680(10);\n    }" ({ "{") (expression_statement "FUN_0001a680(10);" (call_expression "FUN_0001a680(10)" (identifier "FUN_0001a680") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00019410(4);" (call_expression "FUN_00019410(4)" (identifier "FUN_00019410") (argument_list "(4)" (( "(") (number_literal "4") () ")"))) (; ";")) (expression_statement "puVar4 = PTR_stdout_0002bfec;" (assignment_expression "puVar4 = PTR_stdout_0002bfec" (identifier "puVar4") (= "=") (identifier "PTR_stdout_0002bfec")) (; ";")) (expression_statement "fflush(*(FILE **)PTR_stdout_0002bfec);" (call_expression "fflush(*(FILE **)PTR_stdout_0002bfec)" (identifier "fflush") (argument_list "(*(FILE **)PTR_stdout_0002bfec)" (( "(") (pointer_expression "*(FILE **)PTR_stdout_0002bfec" (* "*") (cast_expression "(FILE **)PTR_stdout_0002bfec" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stdout_0002bfec"))) () ")"))) (; ";")) (expression_statement "FUN_000208a0(*(undefined4 *)puVar4);" (call_expression "FUN_000208a0(*(undefined4 *)puVar4)" (identifier "FUN_000208a0") (argument_list "(*(undefined4 *)puVar4)" (( "(") (pointer_expression "*(undefined4 *)puVar4" (* "*") (cast_expression "(undefined4 *)puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) () ")"))) (; ";")) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'R':\n    if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }\n    DAT_0002c2b0 = uVar16;\n    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));\n    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));\n    FUN_00018ee0();\n    DAT_0002c2b0 = FUN_00018ee0();\n    puVar8 = (undefined4 *)FUN_00018ee0();\n    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);\n    iVar9 = DAT_0002c278;\n    DAT_0002c2ac = (uint)puVar8;\n    goto LAB_000166a0;" (case "case") (char_literal "'R'" (' "'") (character "R") (' "'")) (: ":") (if_statement "if (puVar8 == (undefined4 *)0x0) {\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }" (if "if") (parenthesized_expression "(puVar8 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar8 == (undefined4 *)0x0" (identifier "puVar8") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar11 = "Return from main program.";\n      DAT_0002c2b0 = uVar16;\n      goto code_r0x0001732f;\n    }" ({ "{") (expression_statement "pcVar11 = "Return from main program.";" (assignment_expression "pcVar11 = "Return from main program."" (identifier "pcVar11") (= "=") (string_literal ""Return from main program."" (" """) (string_content "Return from main program.") (" """))) (; ";")) (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (goto_statement "goto code_r0x0001732f;" (goto "goto") (statement_identifier "code_r0x0001732f") (; ";")) (} "}"))) (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));" (call_expression "FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18))" (identifier "FUN_0001a120") (argument_list "(*(undefined4 *)((int)local_7c + 0x18))" (( "(") (pointer_expression "*(undefined4 *)((int)local_7c + 0x18)" (* "*") (cast_expression "(undefined4 *)((int)local_7c + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_7c + 0x18)" (( "(") (binary_expression "(int)local_7c + 0x18" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (+ "+") (number_literal "0x18")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));" (call_expression "FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14))" (identifier "FUN_0001a120") (argument_list "(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14))" (( "(") (pointer_expression "*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" (* "*") (cast_expression "(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14)" (( "(") (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" (identifier "DAT_0002c2ac") (* "*") (number_literal "0x1c")) (+ "+") (identifier "DAT_0002c278")) (+ "+") (number_literal "0x14")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_00018ee0();" (call_expression "FUN_00018ee0()" (identifier "FUN_00018ee0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_0002c2b0 = FUN_00018ee0();" (assignment_expression "DAT_0002c2b0 = FUN_00018ee0()" (identifier "DAT_0002c2b0") (= "=") (call_expression "FUN_00018ee0()" (identifier "FUN_00018ee0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "puVar8 = (undefined4 *)FUN_00018ee0();" (assignment_expression "puVar8 = (undefined4 *)FUN_00018ee0()" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)FUN_00018ee0()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00018ee0()" (identifier "FUN_00018ee0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);" (assignment_expression "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c)" (identifier "local_78") (= "=") (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c)" (* "*") (cast_expression "(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c)" (( "(") (binary_expression "DAT_0002c278 + 0xc + (int)puVar8 * 0x1c" (binary_expression "DAT_0002c278 + 0xc" (identifier "DAT_0002c278") (+ "+") (number_literal "0xc")) (+ "+") (binary_expression "(int)puVar8 * 0x1c" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (* "*") (number_literal "0x1c"))) () ")"))))) (; ";")) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" (identifier "iVar9") (= "=") (identifier "DAT_0002c278")) (; ";")) (expression_statement "DAT_0002c2ac = (uint)puVar8;" (assignment_expression "DAT_0002c2ac = (uint)puVar8" (identifier "DAT_0002c2ac") (= "=") (cast_expression "(uint)puVar8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar8"))) (; ";")) (goto_statement "goto LAB_000166a0;" (goto "goto") (statement_identifier "LAB_000166a0") (; ";"))) (case_statement "case 'S':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019770(uVar10);\n    break;" (case "case") (char_literal "'S'" (' "'") (character "S") (' "'")) (: ":") (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_70 + uVar16)" (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" ({ "{") (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (identifier "uVar10") (= "=") (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" (( "(") (binary_expression "uVar10 & 0x7f" (identifier "uVar10") (& "&") (number_literal "0x7f")) () ")")) (* "*") (number_literal "0x100")) (+ "+") (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" (( "(") (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" (identifier "local_70") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_0002c2b0")) () ")")))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 3" (identifier "DAT_0002c2b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "FUN_00019770(uVar10);" (call_expression "FUN_00019770(uVar10)" (identifier "FUN_00019770") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '^':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }\n    FUN_00018f70();\n    FUN_00018f70();\n    FUN_00018ff0(local_38);\n    FUN_0001c550(&local_38);\n    break;" (case "case") (char_literal "'^'" (' "'") (character "^") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" (identifier "cVar7") (= "=") (call_expression "FUN_00019020(2)" (identifier "FUN_00019020") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016998;" (goto "goto") (statement_identifier "code_r0x00016998") (; ";"))) (expression_statement "FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);" (call_expression "FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" (identifier "FUN_0001ebe0") (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298)" (( "(") (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_0002c2bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_0002c2bc[1]" (identifier "DAT_0002c2bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (identifier "DAT_0002c298") () ")"))) (; ";")) (expression_statement "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);" (assignment_expression "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" (identifier "cVar7") (= "=") (call_expression "FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" (identifier "FUN_0001c6d0") (argument_list "(*(undefined4 *)DAT_0002c2bc[1])" (( "(") (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_0002c2bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_0002c2bc[1]" (identifier "DAT_0002c2bc") ([ "[") (number_literal "1") (] "]")))) () ")")))) (; ";")) (if_statement "if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {\n      FUN_0001b7b0("divide by zero");\n    }" (if "if") (parenthesized_expression "((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0'))" (( "(") (binary_expression "(cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')" (parenthesized_expression "(cVar7 != '\0')" (( "(") (binary_expression "cVar7 != '\0'" (identifier "cVar7") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')" (( "(") (comma_expression "cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0'" (assignment_expression "cVar7 = FUN_0001c6c0(*DAT_0002c2bc)" (identifier "cVar7") (= "=") (call_expression "FUN_0001c6c0(*DAT_0002c2bc)" (identifier "FUN_0001c6c0") (argument_list "(*DAT_0002c2bc)" (( "(") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) () ")")))) (, ",") (binary_expression "cVar7 != '\0'" (identifier "cVar7") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n      FUN_0001b7b0("divide by zero");\n    }" ({ "{") (expression_statement "FUN_0001b7b0("divide by zero");" (call_expression "FUN_0001b7b0("divide by zero")" (identifier "FUN_0001b7b0") (argument_list "("divide by zero")" (( "(") (string_literal ""divide by zero"" (" """) (string_content "divide by zero") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00018ff0(local_38);" (call_expression "FUN_00018ff0(local_38)" (identifier "FUN_00018ff0") (argument_list "(local_38)" (( "(") (identifier "local_38") () ")"))) (; ";")) (expression_statement "FUN_0001c550(&local_38);" (call_expression "FUN_0001c550(&local_38)" (identifier "FUN_0001c550") (argument_list "(&local_38)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'c':\n    goto code_r0x00016f20;" (case "case") (char_literal "'c'" (' "'") (character "c") (' "'")) (: ":") (goto_statement "goto code_r0x00016f20;" (goto "goto") (statement_identifier "code_r0x00016f20") (; ";"))) (case_statement "case 'd':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019b30(uVar10);\n    break;" (case "case") (char_literal "'d'" (' "'") (character "d") (' "'")) (: ":") (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_70 + uVar16)" (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" ({ "{") (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (identifier "uVar10") (= "=") (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" (( "(") (binary_expression "uVar10 & 0x7f" (identifier "uVar10") (& "&") (number_literal "0x7f")) () ")")) (* "*") (number_literal "0x100")) (+ "+") (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" (( "(") (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" (identifier "local_70") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_0002c2b0")) () ")")))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 3" (identifier "DAT_0002c2b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "FUN_00019b30(uVar10);" (call_expression "FUN_00019b30(uVar10)" (identifier "FUN_00019b30") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'h':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001b8a0(0);\n    break;" (case "case") (char_literal "'h'" (' "'") (character "h") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "FUN_0001b8a0(0);" (call_expression "FUN_0001b8a0(0)" (identifier "FUN_0001b8a0") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'i':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019d90(uVar10);\n    break;" (case "case") (char_literal "'i'" (' "'") (character "i") (' "'")) (: ":") (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_70 + uVar16)" (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" ({ "{") (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (identifier "uVar10") (= "=") (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" (( "(") (binary_expression "uVar10 & 0x7f" (identifier "uVar10") (& "&") (number_literal "0x7f")) () ")")) (* "*") (number_literal "0x100")) (+ "+") (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" (( "(") (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" (identifier "local_70") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_0002c2b0")) () ")")))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 3" (identifier "DAT_0002c2b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "FUN_00019d90(uVar10);" (call_expression "FUN_00019d90(uVar10)" (identifier "FUN_00019d90") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'l':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019880(uVar10);\n    break;" (case "case") (char_literal "'l'" (' "'") (character "l") (' "'")) (: ":") (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_70 + uVar16)" (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" ({ "{") (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (identifier "uVar10") (= "=") (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" (( "(") (binary_expression "uVar10 & 0x7f" (identifier "uVar10") (& "&") (number_literal "0x7f")) () ")")) (* "*") (number_literal "0x100")) (+ "+") (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" (( "(") (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" (identifier "local_70") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_0002c2b0")) () ")")))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 3" (identifier "DAT_0002c2b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "FUN_00019880(uVar10);" (call_expression "FUN_00019880(uVar10)" (identifier "FUN_00019880") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'n':\n    DAT_0002c2b0 = uVar16;\n    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);\n    break;" (case "case") (char_literal "'n'" (' "'") (character "n") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);" (call_expression "FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0)" (identifier "FUN_0001c7a0") (argument_list "(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0)" (( "(") (identifier "DAT_0002c2c8") (, ",") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) (, ",") (identifier "DAT_0002c2bc") (, ",") (number_literal "0") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'p':\n    DAT_0002c2b0 = uVar16;\n    FUN_00018f70();\n    goto code_r0x00016998;" (case "case") (char_literal "'p'" (' "'") (character "p") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x00016998;" (goto "goto") (statement_identifier "code_r0x00016998") (; ";"))) (case_statement "case 's':\n    uVar10 = (uint)*(byte *)(local_70 + uVar16);\n    uVar17 = DAT_0002c2b0 + 2;\n    if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }\n    DAT_0002c2b0 = uVar17;\n    FUN_00019410(uVar10);\n    break;" (case "case") (char_literal "'s'" (' "'") (character "s") (' "'")) (: ":") (expression_statement "uVar10 = (uint)*(byte *)(local_70 + uVar16);" (assignment_expression "uVar10 = (uint)*(byte *)(local_70 + uVar16)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(byte *)(local_70 + uVar16)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 2;" (assignment_expression "uVar17 = DAT_0002c2b0 + 2" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_70 + uVar16) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_70 + uVar16) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_70 + uVar16) < '\0'" (cast_expression "(char)*(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_70 + uVar16)" (* "*") (cast_expression "(byte *)(local_70 + uVar16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);\n      uVar17 = DAT_0002c2b0 + 3;\n    }" ({ "{") (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (identifier "uVar10") (= "=") (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" (( "(") (binary_expression "uVar10 & 0x7f" (identifier "uVar10") (& "&") (number_literal "0x7f")) () ")")) (* "*") (number_literal "0x100")) (+ "+") (binary_expression "(uint)*(byte *)(local_70 + 2 + DAT_0002c2b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_70 + 2 + DAT_0002c2b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + 2 + DAT_0002c2b0)" (( "(") (binary_expression "local_70 + 2 + DAT_0002c2b0" (binary_expression "local_70 + 2" (identifier "local_70") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_0002c2b0")) () ")")))))) (; ";")) (expression_statement "uVar17 = DAT_0002c2b0 + 3;" (assignment_expression "uVar17 = DAT_0002c2b0 + 3" (identifier "uVar17") (= "=") (binary_expression "DAT_0002c2b0 + 3" (identifier "DAT_0002c2b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_0002c2b0 = uVar17;" (assignment_expression "DAT_0002c2b0 = uVar17" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar17")) (; ";")) (expression_statement "FUN_00019410(uVar10);" (call_expression "FUN_00019410(uVar10)" (identifier "FUN_00019410") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'w':\n    cVar7 = *(char *)(local_70 + uVar16);\n    DAT_0002c2b0 = DAT_0002c2b0 + 2;\n    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }\n    fflush(*(FILE **)PTR_stdout_0002bfec);\n    FUN_000208a0(*(undefined4 *)puVar4);\n    break;" (case "case") (char_literal "'w'" (' "'") (character "w") (' "'")) (: ":") (expression_statement "cVar7 = *(char *)(local_70 + uVar16);" (assignment_expression "cVar7 = *(char *)(local_70 + uVar16)" (identifier "cVar7") (= "=") (pointer_expression "*(char *)(local_70 + uVar16)" (* "*") (cast_expression "(char *)(local_70 + uVar16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")"))))) (; ";")) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 2;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (= "=") (binary_expression "DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (+ "+") (number_literal "2"))) (; ";")) (while_statement "while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }" (while "while") (parenthesized_expression "(puVar4 = PTR_stdout_0002bfec, cVar7 != '\"')" (( "(") (comma_expression "puVar4 = PTR_stdout_0002bfec, cVar7 != '\"'" (assignment_expression "puVar4 = PTR_stdout_0002bfec" (identifier "puVar4") (= "=") (identifier "PTR_stdout_0002bfec")) (, ",") (binary_expression "cVar7 != '\"'" (identifier "cVar7") (!= "!=") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'")))) () ")")) (compound_statement "{\n      FUN_0001a730(cVar7);\n      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);\n      DAT_0002c2b0 = DAT_0002c2b0 + 1;\n    }" ({ "{") (expression_statement "FUN_0001a730(cVar7);" (call_expression "FUN_0001a730(cVar7)" (identifier "FUN_0001a730") (argument_list "(cVar7)" (( "(") (identifier "cVar7") () ")"))) (; ";")) (expression_statement "cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);" (assignment_expression "cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" (identifier "cVar7") (= "=") (pointer_expression "*(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" (* "*") (cast_expression "(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0)" (( "(") (binary_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0" (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (* "*") (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (( "(") (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" (identifier "DAT_0002c2ac") (* "*") (number_literal "0x1c")) (+ "+") (identifier "DAT_0002c278")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (identifier "DAT_0002c2b0")) () ")"))))) (; ";")) (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 1;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 1" (identifier "DAT_0002c2b0") (= "=") (binary_expression "DAT_0002c2b0 + 1" (identifier "DAT_0002c2b0") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "fflush(*(FILE **)PTR_stdout_0002bfec);" (call_expression "fflush(*(FILE **)PTR_stdout_0002bfec)" (identifier "fflush") (argument_list "(*(FILE **)PTR_stdout_0002bfec)" (( "(") (pointer_expression "*(FILE **)PTR_stdout_0002bfec" (* "*") (cast_expression "(FILE **)PTR_stdout_0002bfec" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stdout_0002bfec"))) () ")"))) (; ";")) (expression_statement "FUN_000208a0(*(undefined4 *)puVar4);" (call_expression "FUN_000208a0(*(undefined4 *)puVar4)" (identifier "FUN_000208a0") (argument_list "(*(undefined4 *)puVar4)" (( "(") (pointer_expression "*(undefined4 *)puVar4" (* "*") (cast_expression "(undefined4 *)puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'x':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }\n    goto code_r0x00016998;" (case "case") (char_literal "'x'" (' "'") (character "x") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" (identifier "cVar7") (= "=") (call_expression "FUN_00019020(2)" (identifier "FUN_00019020") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar7 != '\0') {\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }" (if "if") (parenthesized_expression "(cVar7 != '\0')" (( "(") (binary_expression "cVar7 != '\0'" (identifier "cVar7") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      piVar1 = DAT_0002c2bc + 1;\n      iVar9 = *DAT_0002c2bc;\n      *DAT_0002c2bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar9;\n    }" ({ "{") (expression_statement "piVar1 = DAT_0002c2bc + 1;" (assignment_expression "piVar1 = DAT_0002c2bc + 1" (identifier "piVar1") (= "=") (binary_expression "DAT_0002c2bc + 1" (identifier "DAT_0002c2bc") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar9 = *DAT_0002c2bc;" (assignment_expression "iVar9 = *DAT_0002c2bc" (identifier "iVar9") (= "=") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc"))) (; ";")) (expression_statement "*DAT_0002c2bc = *(int *)*piVar1;" (assignment_expression "*DAT_0002c2bc = *(int *)*piVar1" (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) (= "=") (pointer_expression "*(int *)*piVar1" (* "*") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))))) (; ";")) (expression_statement "*(int *)*piVar1 = iVar9;" (assignment_expression "*(int *)*piVar1 = iVar9" (pointer_expression "*(int *)*piVar1" (* "*") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (= "=") (identifier "iVar9")) (; ";")) (} "}"))) (goto_statement "goto code_r0x00016998;" (goto "goto") (statement_identifier "code_r0x00016998") (; ";"))) (case_statement "case '{':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = iVar9 < 1;\n    FUN_00018f70();\n    goto code_r0x000167c5;" (case "case") (char_literal "'{'" (' "'") (character "{") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" (identifier "cVar7") (= "=") (call_expression "FUN_00019020(2)" (identifier "FUN_00019020") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016998;" (goto "goto") (statement_identifier "code_r0x00016998") (; ";"))) (expression_statement "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (assignment_expression "iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (identifier "iVar9") (= "=") (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (identifier "FUN_0001c570") (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (( "(") (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_0002c2bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_0002c2bc[1]" (identifier "DAT_0002c2bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) () ")")))) (; ";")) (expression_statement "DAT_0002c294 = iVar9 < 1;" (assignment_expression "DAT_0002c294 = iVar9 < 1" (identifier "DAT_0002c294") (= "=") (binary_expression "iVar9 < 1" (identifier "iVar9") (< "<") (number_literal "1"))) (; ";")) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x000167c5;" (goto "goto") (statement_identifier "code_r0x000167c5") (; ";"))) (case_statement "case '|':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);\n    bVar18 = true;\n    if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }\n    DAT_0002c294 = bVar18;\n    FUN_00018f70();\n    goto code_r0x000167c5;" (case "case") (char_literal "'|'" (' "'") (character "|") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" (identifier "cVar7") (= "=") (call_expression "FUN_00019020(2)" (identifier "FUN_00019020") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016998;" (goto "goto") (statement_identifier "code_r0x00016998") (; ";"))) (expression_statement "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);" (assignment_expression "cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" (identifier "cVar7") (= "=") (call_expression "FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1])" (identifier "FUN_0001c6d0") (argument_list "(*(undefined4 *)DAT_0002c2bc[1])" (( "(") (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_0002c2bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_0002c2bc[1]" (identifier "DAT_0002c2bc") ([ "[") (number_literal "1") (] "]")))) () ")")))) (; ";")) (expression_statement "bVar18 = true;" (assignment_expression "bVar18 = true" (identifier "bVar18") (= "=") (true "true")) (; ";")) (if_statement "if (cVar7 != '\0') {\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }" (if "if") (parenthesized_expression "(cVar7 != '\0')" (( "(") (binary_expression "cVar7 != '\0'" (identifier "cVar7") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);\n      bVar18 = cVar7 == '\0';\n    }" ({ "{") (expression_statement "cVar7 = FUN_0001c6d0(*DAT_0002c2bc);" (assignment_expression "cVar7 = FUN_0001c6d0(*DAT_0002c2bc)" (identifier "cVar7") (= "=") (call_expression "FUN_0001c6d0(*DAT_0002c2bc)" (identifier "FUN_0001c6d0") (argument_list "(*DAT_0002c2bc)" (( "(") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) () ")")))) (; ";")) (expression_statement "bVar18 = cVar7 == '\0';" (assignment_expression "bVar18 = cVar7 == '\0'" (identifier "bVar18") (= "=") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (} "}"))) (expression_statement "DAT_0002c294 = bVar18;" (assignment_expression "DAT_0002c294 = bVar18" (identifier "DAT_0002c294") (= "=") (identifier "bVar18")) (; ";")) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x000167c5;" (goto "goto") (statement_identifier "code_r0x000167c5") (; ";"))) (case_statement "case '}':\n    DAT_0002c2b0 = uVar16;\n    cVar7 = FUN_00019020(2);\n    if (cVar7 == '\0') goto code_r0x00016998;\n    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);\n    DAT_0002c294 = (byte)~extraout_var >> 7;\n    FUN_00018f70();\ncode_r0x000167c5:\n    bVar5 = DAT_0002c294;\n    FUN_0001c2e0(DAT_0002c2bc);\n    piVar1 = DAT_0002c2bc;\n    if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }" (case "case") (char_literal "'}'" (' "'") (character "}") (' "'")) (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";")) (expression_statement "cVar7 = FUN_00019020(2);" (assignment_expression "cVar7 = FUN_00019020(2)" (identifier "cVar7") (= "=") (call_expression "FUN_00019020(2)" (identifier "FUN_00019020") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') goto code_r0x00016998;" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016998;" (goto "goto") (statement_identifier "code_r0x00016998") (; ";"))) (expression_statement "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);" (call_expression "FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (identifier "FUN_0001c570") (argument_list "(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc)" (( "(") (pointer_expression "*(undefined4 *)DAT_0002c2bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_0002c2bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_0002c2bc[1]" (identifier "DAT_0002c2bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) () ")"))) (; ";")) (expression_statement "DAT_0002c294 = (byte)~extraout_var >> 7;" (assignment_expression "DAT_0002c294 = (byte)~extraout_var >> 7" (identifier "DAT_0002c294") (= "=") (binary_expression "(byte)~extraout_var >> 7" (cast_expression "(byte)~extraout_var" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (unary_expression "~extraout_var" (~ "~") (identifier "extraout_var"))) (>> ">>") (number_literal "7"))) (; ";")) (expression_statement "FUN_00018f70();" (call_expression "FUN_00018f70()" (identifier "FUN_00018f70") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "code_r0x000167c5:\n    bVar5 = DAT_0002c294;" (statement_identifier "code_r0x000167c5") (: ":") (expression_statement "bVar5 = DAT_0002c294;" (assignment_expression "bVar5 = DAT_0002c294" (identifier "bVar5") (= "=") (identifier "DAT_0002c294")) (; ";"))) (expression_statement "FUN_0001c2e0(DAT_0002c2bc);" (call_expression "FUN_0001c2e0(DAT_0002c2bc)" (identifier "FUN_0001c2e0") (argument_list "(DAT_0002c2bc)" (( "(") (identifier "DAT_0002c2bc") () ")"))) (; ";")) (expression_statement "piVar1 = DAT_0002c2bc;" (assignment_expression "piVar1 = DAT_0002c2bc" (identifier "piVar1") (= "=") (identifier "DAT_0002c2bc")) (; ";")) (if_statement "if (bVar5 == 0) {\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }\n    else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }" (if "if") (parenthesized_expression "(bVar5 == 0)" (( "(") (binary_expression "bVar5 == 0" (identifier "bVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar9 = FUN_0001c540(DAT_0002c2c8);\n      *piVar1 = iVar9;\n    }" ({ "{") (expression_statement "iVar9 = FUN_0001c540(DAT_0002c2c8);" (assignment_expression "iVar9 = FUN_0001c540(DAT_0002c2c8)" (identifier "iVar9") (= "=") (call_expression "FUN_0001c540(DAT_0002c2c8)" (identifier "FUN_0001c540") (argument_list "(DAT_0002c2c8)" (( "(") (identifier "DAT_0002c2c8") () ")")))) (; ";")) (expression_statement "*piVar1 = iVar9;" (assignment_expression "*piVar1 = iVar9" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (identifier "iVar9")) (; ";")) (} "}")) (else_clause "else {\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }" (else "else") (compound_statement "{\n      iVar9 = FUN_0001c540(DAT_0002c2c0);\n      *piVar1 = iVar9;\n    }" ({ "{") (expression_statement "iVar9 = FUN_0001c540(DAT_0002c2c0);" (assignment_expression "iVar9 = FUN_0001c540(DAT_0002c2c0)" (identifier "iVar9") (= "=") (call_expression "FUN_0001c540(DAT_0002c2c0)" (identifier "FUN_0001c540") (argument_list "(DAT_0002c2c0)" (( "(") (identifier "DAT_0002c2c0") () ")")))) (; ";")) (expression_statement "*piVar1 = iVar9;" (assignment_expression "*piVar1 = iVar9" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (identifier "iVar9")) (; ";")) (} "}"))))) (} "}"))) (goto_statement "goto LAB_000167f0;" (goto "goto") (statement_identifier "LAB_000167f0") (; ";")) (labeled_statement "code_r0x00016f20:\n  DAT_0002c2b0 = DAT_0002c2b0 + 2;" (statement_identifier "code_r0x00016f20") (: ":") (expression_statement "DAT_0002c2b0 = DAT_0002c2b0 + 2;" (assignment_expression "DAT_0002c2b0 = DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (= "=") (binary_expression "DAT_0002c2b0 + 2" (identifier "DAT_0002c2b0") (+ "+") (number_literal "2"))) (; ";"))) (switch_statement "switch(*(undefined1 *)(local_70 + uVar16)) {\n  case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;\n  default:\n    goto LAB_000166a0;\n  case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;\n  case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;\n  case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;\n  case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);\n  }" (switch "switch") (parenthesized_expression "(*(undefined1 *)(local_70 + uVar16))" (( "(") (pointer_expression "*(undefined1 *)(local_70 + uVar16)" (* "*") (cast_expression "(undefined1 *)(local_70 + uVar16)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")")))) () ")")) (compound_statement "{\n  case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;\n  default:\n    goto LAB_000166a0;\n  case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;\n  case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;\n  case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;\n  case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);\n  }" ({ "{") (case_statement "case 0x49:\n    FUN_0001c550(&uStack_30);\n    FUN_0001c550(&uStack_2c);\n    FUN_0001c550(&uStack_28);\n    uStack_34 = FUN_0001c540(DAT_0002c2c8);\n    FUN_0001f070(&uStack_28,iVar12);\n    iVar9 = FUN_00015f20();\n    while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }\n    if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    iVar14 = iVar9;\n    if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }\ncode_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }\ncode_r0x0001720b:\n    puStack_44 = &uStack_28;\n    local_78 = &uStack_30;\n    local_7c = &uStack_2c;\n    if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }\n    FUN_00018ff0(uStack_34);\n    FUN_0001c2e0(local_78);\n    FUN_0001c2e0(local_7c);\n    FUN_0001c2e0(puStack_44);\n    break;" (case "case") (number_literal "0x49") (: ":") (expression_statement "FUN_0001c550(&uStack_30);" (call_expression "FUN_0001c550(&uStack_30)" (identifier "FUN_0001c550") (argument_list "(&uStack_30)" (( "(") (pointer_expression "&uStack_30" (& "&") (identifier "uStack_30")) () ")"))) (; ";")) (expression_statement "FUN_0001c550(&uStack_2c);" (call_expression "FUN_0001c550(&uStack_2c)" (identifier "FUN_0001c550") (argument_list "(&uStack_2c)" (( "(") (pointer_expression "&uStack_2c" (& "&") (identifier "uStack_2c")) () ")"))) (; ";")) (expression_statement "FUN_0001c550(&uStack_28);" (call_expression "FUN_0001c550(&uStack_28)" (identifier "FUN_0001c550") (argument_list "(&uStack_28)" (( "(") (pointer_expression "&uStack_28" (& "&") (identifier "uStack_28")) () ")"))) (; ";")) (expression_statement "uStack_34 = FUN_0001c540(DAT_0002c2c8);" (assignment_expression "uStack_34 = FUN_0001c540(DAT_0002c2c8)" (identifier "uStack_34") (= "=") (call_expression "FUN_0001c540(DAT_0002c2c8)" (identifier "FUN_0001c540") (argument_list "(DAT_0002c2c8)" (( "(") (identifier "DAT_0002c2c8") () ")")))) (; ";")) (expression_statement "FUN_0001f070(&uStack_28,iVar12);" (call_expression "FUN_0001f070(&uStack_28,iVar12)" (identifier "FUN_0001f070") (argument_list "(&uStack_28,iVar12)" (( "(") (pointer_expression "&uStack_28" (& "&") (identifier "uStack_28")) (, ",") (identifier "iVar12") () ")"))) (; ";")) (expression_statement "iVar9 = FUN_00015f20();" (assignment_expression "iVar9 = FUN_00015f20()" (identifier "iVar9") (= "=") (call_expression "FUN_00015f20()" (identifier "FUN_00015f20") (argument_list "()" (( "(") () ")")))) (; ";")) (while_statement "while (iVar9 == 0x7e) {\n      iVar9 = FUN_00015f20();\n    }" (while "while") (parenthesized_expression "(iVar9 == 0x7e)" (( "(") (binary_expression "iVar9 == 0x7e" (identifier "iVar9") (== "==") (number_literal "0x7e")) () ")")) (compound_statement "{\n      iVar9 = FUN_00015f20();\n    }" ({ "{") (expression_statement "iVar9 = FUN_00015f20();" (assignment_expression "iVar9 = FUN_00015f20()" (identifier "iVar9") (= "=") (call_expression "FUN_00015f20()" (identifier "FUN_00015f20") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if (iVar9 == 0x2b) {\n      iVar9 = FUN_00015f20();\n    }\n    else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }" (if "if") (parenthesized_expression "(iVar9 == 0x2b)" (( "(") (binary_expression "iVar9 == 0x2b" (identifier "iVar9") (== "==") (number_literal "0x2b")) () ")")) (compound_statement "{\n      iVar9 = FUN_00015f20();\n    }" ({ "{") (expression_statement "iVar9 = FUN_00015f20();" (assignment_expression "iVar9 = FUN_00015f20()" (identifier "iVar9") (= "=") (call_expression "FUN_00015f20()" (identifier "FUN_00015f20") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }" (else "else") (if_statement "if (iVar9 == 0x2d) {\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }" (if "if") (parenthesized_expression "(iVar9 == 0x2d)" (( "(") (binary_expression "iVar9 == 0x2d" (identifier "iVar9") (== "==") (number_literal "0x2d")) () ")")) (compound_statement "{\n      iVar9 = FUN_00015f20();\n      bVar18 = true;\n    }" ({ "{") (expression_statement "iVar9 = FUN_00015f20();" (assignment_expression "iVar9 = FUN_00015f20()" (identifier "iVar9") (= "=") (call_expression "FUN_00015f20()" (identifier "FUN_00015f20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar18 = true;" (assignment_expression "bVar18 = true" (identifier "bVar18") (= "=") (true "true")) (; ";")) (} "}"))))) (expression_statement "local_78 = &uStack_30;" (assignment_expression "local_78 = &uStack_30" (identifier "local_78") (= "=") (pointer_expression "&uStack_30" (& "&") (identifier "uStack_30"))) (; ";")) (expression_statement "local_7c = &uStack_2c;" (assignment_expression "local_7c = &uStack_2c" (identifier "local_7c") (= "=") (pointer_expression "&uStack_2c" (& "&") (identifier "uStack_2c"))) (; ";")) (expression_statement "iVar14 = iVar9;" (assignment_expression "iVar14 = iVar9" (identifier "iVar14") (= "=") (identifier "iVar9")) (; ";")) (if_statement "if (iVar9 < 0x24) {\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }" (if "if") (parenthesized_expression "(iVar9 < 0x24)" (( "(") (binary_expression "iVar9 < 0x24" (identifier "iVar9") (< "<") (number_literal "0x24")) () ")")) (compound_statement "{\n      iVar14 = FUN_00015f20();\n      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }\n      local_60 = &uStack_34;\n      do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);\n    }" ({ "{") (expression_statement "iVar14 = FUN_00015f20();" (assignment_expression "iVar14 = FUN_00015f20()" (identifier "iVar14") (= "=") (call_expression "FUN_00015f20()" (identifier "FUN_00015f20") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }\n      else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }" (if "if") (parenthesized_expression "((iVar14 < 0x24) && (iVar12 <= iVar9))" (( "(") (binary_expression "(iVar14 < 0x24) && (iVar12 <= iVar9)" (parenthesized_expression "(iVar14 < 0x24)" (( "(") (binary_expression "iVar14 < 0x24" (identifier "iVar14") (< "<") (number_literal "0x24")) () ")")) (&& "&&") (parenthesized_expression "(iVar12 <= iVar9)" (( "(") (binary_expression "iVar12 <= iVar9" (identifier "iVar12") (<= "<=") (identifier "iVar9")) () ")"))) () ")")) (compound_statement "{\n        FUN_0001f070(&uStack_34,iVar12 + -1);\n      }" ({ "{") (expression_statement "FUN_0001f070(&uStack_34,iVar12 + -1);" (call_expression "FUN_0001f070(&uStack_34,iVar12 + -1)" (identifier "FUN_0001f070") (argument_list "(&uStack_34,iVar12 + -1)" (( "(") (pointer_expression "&uStack_34" (& "&") (identifier "uStack_34")) (, ",") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }" (else "else") (compound_statement "{\n        FUN_0001f070(&uStack_34,iVar9);\n        if (0x23 < iVar14) goto code_r0x00017b03;\n      }" ({ "{") (expression_statement "FUN_0001f070(&uStack_34,iVar9);" (call_expression "FUN_0001f070(&uStack_34,iVar9)" (identifier "FUN_0001f070") (argument_list "(&uStack_34,iVar9)" (( "(") (pointer_expression "&uStack_34" (& "&") (identifier "uStack_34")) (, ",") (identifier "iVar9") () ")"))) (; ";")) (if_statement "if (0x23 < iVar14) goto code_r0x00017b03;" (if "if") (parenthesized_expression "(0x23 < iVar14)" (( "(") (binary_expression "0x23 < iVar14" (number_literal "0x23") (< "<") (identifier "iVar14")) () ")")) (goto_statement "goto code_r0x00017b03;" (goto "goto") (statement_identifier "code_r0x00017b03") (; ";"))) (} "}")))) (expression_statement "local_60 = &uStack_34;" (assignment_expression "local_60 = &uStack_34" (identifier "local_60") (= "=") (pointer_expression "&uStack_34" (& "&") (identifier "uStack_34"))) (; ";")) (do_statement "do {\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      } while (iVar14 < 0x24);" (do "do") (compound_statement "{\n        if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }\n        FUN_0001f070(local_78,iVar14);\n        FUN_0001d720(uStack_2c,uStack_30,local_60,0);\n        iVar14 = FUN_00015f20();\n      }" ({ "{") (if_statement "if (iVar14 < iVar12) {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }\n        else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }" (if "if") (parenthesized_expression "(iVar14 < iVar12)" (( "(") (binary_expression "iVar14 < iVar12" (identifier "iVar14") (< "<") (identifier "iVar12")) () ")")) (compound_statement "{\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n        }" ({ "{") (expression_statement "FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);" (call_expression "FUN_0001d9c0(uStack_34,uStack_28,local_7c,0)" (identifier "FUN_0001d9c0") (argument_list "(uStack_34,uStack_28,local_7c,0)" (( "(") (identifier "uStack_34") (, ",") (identifier "uStack_28") (, ",") (identifier "local_7c") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }" (else "else") (compound_statement "{\n          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);\n          iVar14 = iVar12 + -1;\n        }" ({ "{") (expression_statement "FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);" (call_expression "FUN_0001d9c0(uStack_34,uStack_28,local_7c,0)" (identifier "FUN_0001d9c0") (argument_list "(uStack_34,uStack_28,local_7c,0)" (( "(") (identifier "uStack_34") (, ",") (identifier "uStack_28") (, ",") (identifier "local_7c") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar14 = iVar12 + -1;" (assignment_expression "iVar14 = iVar12 + -1" (identifier "iVar14") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (expression_statement "FUN_0001f070(local_78,iVar14);" (call_expression "FUN_0001f070(local_78,iVar14)" (identifier "FUN_0001f070") (argument_list "(local_78,iVar14)" (( "(") (identifier "local_78") (, ",") (identifier "iVar14") () ")"))) (; ";")) (expression_statement "FUN_0001d720(uStack_2c,uStack_30,local_60,0);" (call_expression "FUN_0001d720(uStack_2c,uStack_30,local_60,0)" (identifier "FUN_0001d720") (argument_list "(uStack_2c,uStack_30,local_60,0)" (( "(") (identifier "uStack_2c") (, ",") (identifier "uStack_30") (, ",") (identifier "local_60") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar14 = FUN_00015f20();" (assignment_expression "iVar14 = FUN_00015f20()" (identifier "iVar14") (= "=") (call_expression "FUN_00015f20()" (identifier "FUN_00015f20") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar14 < 0x24)" (( "(") (binary_expression "iVar14 < 0x24" (identifier "iVar14") (< "<") (number_literal "0x24")) () ")")) (; ";")) (} "}"))) (labeled_statement "code_r0x00017b03:\n    if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }" (statement_identifier "code_r0x00017b03") (: ":") (if_statement "if (iVar14 == 0x2e) {\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }" (if "if") (parenthesized_expression "(iVar14 == 0x2e)" (( "(") (binary_expression "iVar14 == 0x2e" (identifier "iVar14") (== "==") (number_literal "0x2e")) () ")")) (compound_statement "{\n      iVar14 = FUN_00015f20();\n      iVar9 = iVar12 + -1;\n      if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }\n      FUN_0001c2e0(local_7c);\n      FUN_0001c2e0(local_78);\n      uStack_24 = FUN_0001c540(DAT_0002c2c0);\n      uStack_2c = FUN_0001c540(DAT_0002c2c8);\n      if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }\ncode_r0x00017a9d:\n      local_7c = &uStack_2c;\n      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);\n      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);\n    }" ({ "{") (expression_statement "iVar14 = FUN_00015f20();" (assignment_expression "iVar14 = FUN_00015f20()" (identifier "iVar14") (= "=") (call_expression "FUN_00015f20()" (identifier "FUN_00015f20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar9 = iVar12 + -1;" (assignment_expression "iVar9 = iVar12 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar12 + -1" (identifier "iVar12") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar12 <= iVar14) {\n        iVar14 = iVar9;\n      }" (if "if") (parenthesized_expression "(iVar12 <= iVar14)" (( "(") (binary_expression "iVar12 <= iVar14" (identifier "iVar12") (<= "<=") (identifier "iVar14")) () ")")) (compound_statement "{\n        iVar14 = iVar9;\n      }" ({ "{") (expression_statement "iVar14 = iVar9;" (assignment_expression "iVar14 = iVar9" (identifier "iVar14") (= "=") (identifier "iVar9")) (; ";")) (} "}"))) (expression_statement "FUN_0001c2e0(local_7c);" (call_expression "FUN_0001c2e0(local_7c)" (identifier "FUN_0001c2e0") (argument_list "(local_7c)" (( "(") (identifier "local_7c") () ")"))) (; ";")) (expression_statement "FUN_0001c2e0(local_78);" (call_expression "FUN_0001c2e0(local_78)" (identifier "FUN_0001c2e0") (argument_list "(local_78)" (( "(") (identifier "local_78") () ")"))) (; ";")) (expression_statement "uStack_24 = FUN_0001c540(DAT_0002c2c0);" (assignment_expression "uStack_24 = FUN_0001c540(DAT_0002c2c0)" (identifier "uStack_24") (= "=") (call_expression "FUN_0001c540(DAT_0002c2c0)" (identifier "FUN_0001c540") (argument_list "(DAT_0002c2c0)" (( "(") (identifier "DAT_0002c2c0") () ")")))) (; ";")) (expression_statement "uStack_2c = FUN_0001c540(DAT_0002c2c8);" (assignment_expression "uStack_2c = FUN_0001c540(DAT_0002c2c8)" (identifier "uStack_2c") (= "=") (call_expression "FUN_0001c540(DAT_0002c2c8)" (identifier "FUN_0001c540") (argument_list "(DAT_0002c2c8)" (( "(") (identifier "DAT_0002c2c8") () ")")))) (; ";")) (if_statement "if (iVar14 < 0x24) {\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }" (if "if") (parenthesized_expression "(iVar14 < 0x24)" (( "(") (binary_expression "iVar14 < 0x24" (identifier "iVar14") (< "<") (number_literal "0x24")) () ")")) (compound_statement "{\n        local_58 = 0;\n        do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);\n      }" ({ "{") (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        } while (iVar14 < 0x24);" (do "do") (compound_statement "{\n          while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }\n        }" ({ "{") (while_statement "while( true ) {\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);\n            FUN_0001f070(local_78,iVar14);\n            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);\n            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);\n            local_58 = local_58 + 1;\n            iVar14 = FUN_00015f20();\n            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;\n            iVar14 = iVar9;\n            if (0x23 < iVar9) goto code_r0x00017a9d;\n          }" ({ "{") (expression_statement "FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);" (call_expression "FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0)" (identifier "FUN_0001d9c0") (argument_list "(uStack_2c,uStack_28,local_7c,0)" (( "(") (identifier "uStack_2c") (, ",") (identifier "uStack_28") (, ",") (identifier "local_7c") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_0001f070(local_78,iVar14);" (call_expression "FUN_0001f070(local_78,iVar14)" (identifier "FUN_0001f070") (argument_list "(local_78,iVar14)" (( "(") (identifier "local_78") (, ",") (identifier "iVar14") () ")"))) (; ";")) (expression_statement "FUN_0001d720(uStack_2c,uStack_30,local_7c,0);" (call_expression "FUN_0001d720(uStack_2c,uStack_30,local_7c,0)" (identifier "FUN_0001d720") (argument_list "(uStack_2c,uStack_30,local_7c,0)" (( "(") (identifier "uStack_2c") (, ",") (identifier "uStack_30") (, ",") (identifier "local_7c") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);" (call_expression "FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0)" (identifier "FUN_0001d9c0") (argument_list "(uStack_24,uStack_28,&uStack_24,0)" (( "(") (identifier "uStack_24") (, ",") (identifier "uStack_28") (, ",") (pointer_expression "&uStack_24" (& "&") (identifier "uStack_24")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_58 = local_58 + 1;" (assignment_expression "local_58 = local_58 + 1" (identifier "local_58") (= "=") (binary_expression "local_58 + 1" (identifier "local_58") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar14 = FUN_00015f20();" (assignment_expression "iVar14 = FUN_00015f20()" (identifier "iVar14") (= "=") (call_expression "FUN_00015f20()" (identifier "FUN_00015f20") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((0x23 < iVar14) || (iVar14 < iVar12)) break;" (if "if") (parenthesized_expression "((0x23 < iVar14) || (iVar14 < iVar12))" (( "(") (binary_expression "(0x23 < iVar14) || (iVar14 < iVar12)" (parenthesized_expression "(0x23 < iVar14)" (( "(") (binary_expression "0x23 < iVar14" (number_literal "0x23") (< "<") (identifier "iVar14")) () ")")) (|| "||") (parenthesized_expression "(iVar14 < iVar12)" (( "(") (binary_expression "iVar14 < iVar12" (identifier "iVar14") (< "<") (identifier "iVar12")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar14 = iVar9;" (assignment_expression "iVar14 = iVar9" (identifier "iVar14") (= "=") (identifier "iVar9")) (; ";")) (if_statement "if (0x23 < iVar9) goto code_r0x00017a9d;" (if "if") (parenthesized_expression "(0x23 < iVar9)" (( "(") (binary_expression "0x23 < iVar9" (number_literal "0x23") (< "<") (identifier "iVar9")) () ")")) (goto_statement "goto code_r0x00017a9d;" (goto "goto") (statement_identifier "code_r0x00017a9d") (; ";"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(iVar14 < 0x24)" (( "(") (binary_expression "iVar14 < 0x24" (identifier "iVar14") (< "<") (number_literal "0x24")) () ")")) (; ";")) (} "}"))) (labeled_statement "code_r0x00017a9d:\n      local_7c = &uStack_2c;" (statement_identifier "code_r0x00017a9d") (: ":") (expression_statement "local_7c = &uStack_2c;" (assignment_expression "local_7c = &uStack_2c" (identifier "local_7c") (= "=") (pointer_expression "&uStack_2c" (& "&") (identifier "uStack_2c"))) (; ";"))) (expression_statement "FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);" (call_expression "FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58)" (identifier "FUN_0001db50") (argument_list "(uStack_2c,uStack_24,local_7c,local_58)" (( "(") (identifier "uStack_2c") (, ",") (identifier "uStack_24") (, ",") (identifier "local_7c") (, ",") (identifier "local_58") () ")"))) (; ";")) (expression_statement "FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);" (call_expression "FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0)" (identifier "FUN_0001d720") (argument_list "(uStack_34,uStack_2c,&uStack_34,0)" (( "(") (identifier "uStack_34") (, ",") (identifier "uStack_2c") (, ",") (pointer_expression "&uStack_34" (& "&") (identifier "uStack_34")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (labeled_statement "code_r0x0001720b:\n    puStack_44 = &uStack_28;" (statement_identifier "code_r0x0001720b") (: ":") (expression_statement "puStack_44 = &uStack_28;" (assignment_expression "puStack_44 = &uStack_28" (identifier "puStack_44") (= "=") (pointer_expression "&uStack_28" (& "&") (identifier "uStack_28"))) (; ";"))) (expression_statement "local_78 = &uStack_30;" (assignment_expression "local_78 = &uStack_30" (identifier "local_78") (= "=") (pointer_expression "&uStack_30" (& "&") (identifier "uStack_30"))) (; ";")) (expression_statement "local_7c = &uStack_2c;" (assignment_expression "local_7c = &uStack_2c" (identifier "local_7c") (= "=") (pointer_expression "&uStack_2c" (& "&") (identifier "uStack_2c"))) (; ";")) (if_statement "if (bVar18) {\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }" (if "if") (parenthesized_expression "(bVar18)" (( "(") (identifier "bVar18") () ")")) (compound_statement "{\n      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);\n    }" ({ "{") (expression_statement "FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);" (call_expression "FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0)" (identifier "FUN_0001c7a0") (argument_list "(DAT_0002c2c8,uStack_34,&uStack_34,0)" (( "(") (identifier "DAT_0002c2c8") (, ",") (identifier "uStack_34") (, ",") (pointer_expression "&uStack_34" (& "&") (identifier "uStack_34")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00018ff0(uStack_34);" (call_expression "FUN_00018ff0(uStack_34)" (identifier "FUN_00018ff0") (argument_list "(uStack_34)" (( "(") (identifier "uStack_34") () ")"))) (; ";")) (expression_statement "FUN_0001c2e0(local_78);" (call_expression "FUN_0001c2e0(local_78)" (identifier "FUN_0001c2e0") (argument_list "(local_78)" (( "(") (identifier "local_78") () ")"))) (; ";")) (expression_statement "FUN_0001c2e0(local_7c);" (call_expression "FUN_0001c2e0(local_7c)" (identifier "FUN_0001c2e0") (argument_list "(local_7c)" (( "(") (identifier "local_7c") () ")"))) (; ";")) (expression_statement "FUN_0001c2e0(puStack_44);" (call_expression "FUN_0001c2e0(puStack_44)" (identifier "FUN_0001c2e0") (argument_list "(puStack_44)" (( "(") (identifier "puStack_44") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    goto LAB_000166a0;" (default "default") (: ":") (goto_statement "goto LAB_000166a0;" (goto "goto") (statement_identifier "LAB_000166a0") (; ";"))) (case_statement "case 0x4c:\n    iVar9 = *DAT_0002c2bc;\n    iVar12 = *(int *)(iVar9 + 8);\n    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }\n    break;" (case "case") (number_literal "0x4c") (: ":") (expression_statement "iVar9 = *DAT_0002c2bc;" (assignment_expression "iVar9 = *DAT_0002c2bc" (identifier "iVar9") (= "=") (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc"))) (; ";")) (expression_statement "iVar12 = *(int *)(iVar9 + 8);" (assignment_expression "iVar12 = *(int *)(iVar9 + 8)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(iVar9 + 8)" (* "*") (cast_expression "(int *)(iVar9 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }\n    else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }" (if "if") (parenthesized_expression "(((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0'))" (( "(") (binary_expression "((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')" (parenthesized_expression "((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0))" (( "(") (binary_expression "(*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)" (parenthesized_expression "(*(int *)(iVar9 + 4) == 1)" (( "(") (binary_expression "*(int *)(iVar9 + 4) == 1" (pointer_expression "*(int *)(iVar9 + 4)" (* "*") (cast_expression "(int *)(iVar9 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(**(char **)(iVar9 + 0x18) == '\0')" (( "(") (binary_expression "**(char **)(iVar9 + 0x18) == '\0'" (pointer_expression "**(char **)(iVar9 + 0x18)" (* "*") (pointer_expression "*(char **)(iVar9 + 0x18)" (* "*") (cast_expression "(char **)(iVar9 + 0x18)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")"))))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      FUN_0001f070(DAT_0002c2bc,iVar12);\n    }" ({ "{") (expression_statement "FUN_0001f070(DAT_0002c2bc,iVar12);" (call_expression "FUN_0001f070(DAT_0002c2bc,iVar12)" (identifier "FUN_0001f070") (argument_list "(DAT_0002c2bc,iVar12)" (( "(") (identifier "DAT_0002c2bc") (, ",") (identifier "iVar12") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }" (else "else") (compound_statement "{\n      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);\n    }" ({ "{") (expression_statement "FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);" (call_expression "FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12)" (identifier "FUN_0001f070") (argument_list "(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12)" (( "(") (identifier "DAT_0002c2bc") (, ",") (binary_expression "*(int *)(iVar9 + 4) + iVar12" (pointer_expression "*(int *)(iVar9 + 4)" (* "*") (cast_expression "(int *)(iVar9 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")")))) (+ "+") (identifier "iVar12")) () ")"))) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x52:\n    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);\n    if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }\n    pcVar11 = "Square root of a negative number";\ncode_r0x0001732f:\n    FUN_0001b7b0(pcVar11);\n    break;" (case "case") (number_literal "0x52") (: ":") (expression_statement "iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);" (assignment_expression "iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298)" (identifier "iVar9") (= "=") (call_expression "FUN_0001f290(DAT_0002c2bc,DAT_0002c298)" (identifier "FUN_0001f290") (argument_list "(DAT_0002c2bc,DAT_0002c298)" (( "(") (identifier "DAT_0002c2bc") (, ",") (identifier "DAT_0002c298") () ")")))) (; ";")) (if_statement "if (iVar9 != 0) {\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);\n      puVar8 = (undefined4 *)DAT_0002c2ac;\n      iVar9 = DAT_0002c278;\n      goto LAB_000166a0;\n    }" ({ "{") (labeled_statement "code_r0x00016998:\n      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);" (statement_identifier "code_r0x00016998") (: ":") (expression_statement "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);" (assignment_expression "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" (identifier "local_78") (= "=") (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" (* "*") (cast_expression "(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" (( "(") (binary_expression "DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c" (binary_expression "DAT_0002c278 + 0xc" (identifier "DAT_0002c278") (+ "+") (number_literal "0xc")) (+ "+") (binary_expression "DAT_0002c2ac * 0x1c" (identifier "DAT_0002c2ac") (* "*") (number_literal "0x1c"))) () ")"))))) (; ";"))) (expression_statement "puVar8 = (undefined4 *)DAT_0002c2ac;" (assignment_expression "puVar8 = (undefined4 *)DAT_0002c2ac" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)DAT_0002c2ac" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_0002c2ac"))) (; ";")) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" (identifier "iVar9") (= "=") (identifier "DAT_0002c278")) (; ";")) (goto_statement "goto LAB_000166a0;" (goto "goto") (statement_identifier "LAB_000166a0") (; ";")) (} "}"))) (expression_statement "pcVar11 = "Square root of a negative number";" (assignment_expression "pcVar11 = "Square root of a negative number"" (identifier "pcVar11") (= "=") (string_literal ""Square root of a negative number"" (" """) (string_content "Square root of a negative number") (" """))) (; ";")) (labeled_statement "code_r0x0001732f:\n    FUN_0001b7b0(pcVar11);" (statement_identifier "code_r0x0001732f") (: ":") (expression_statement "FUN_0001b7b0(pcVar11);" (call_expression "FUN_0001b7b0(pcVar11)" (identifier "FUN_0001b7b0") (argument_list "(pcVar11)" (( "(") (identifier "pcVar11") () ")"))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x53:\n    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));\n    break;" (case "case") (number_literal "0x53") (: ":") (expression_statement "FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));" (call_expression "FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8))" (identifier "FUN_0001f070") (argument_list "(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8))" (( "(") (identifier "DAT_0002c2bc") (, ",") (pointer_expression "*(undefined4 *)(*DAT_0002c2bc + 8)" (* "*") (cast_expression "(undefined4 *)(*DAT_0002c2bc + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*DAT_0002c2bc + 8)" (( "(") (binary_expression "*DAT_0002c2bc + 8" (pointer_expression "*DAT_0002c2bc" (* "*") (identifier "DAT_0002c2bc")) (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x58:\n    FUN_00018fb0(DAT_0002c2c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001f070(DAT_0002c2bc,uVar13);" (case "case") (number_literal "0x58") (: ":") (expression_statement "FUN_00018fb0(DAT_0002c2c8);" (call_expression "FUN_00018fb0(DAT_0002c2c8)" (identifier "FUN_00018fb0") (argument_list "(DAT_0002c2c8)" (( "(") (identifier "DAT_0002c2c8") () ")"))) (; ";")) (expression_statement "uVar13 = func_0x000112e0();" (assignment_expression "uVar13 = func_0x000112e0()" (identifier "uVar13") (= "=") (call_expression "func_0x000112e0()" (identifier "func_0x000112e0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_0001f070(DAT_0002c2bc,uVar13);" (call_expression "FUN_0001f070(DAT_0002c2bc,uVar13)" (identifier "FUN_0001f070") (argument_list "(DAT_0002c2bc,uVar13)" (( "(") (identifier "DAT_0002c2bc") (, ",") (identifier "uVar13") () ")"))) (; ";"))) (} "}"))) (labeled_statement "LAB_000167f0:\n  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);" (statement_identifier "LAB_000167f0") (: ":") (expression_statement "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);" (assignment_expression "local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" (identifier "local_78") (= "=") (pointer_expression "*(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" (* "*") (cast_expression "(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c)" (( "(") (binary_expression "DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c" (binary_expression "DAT_0002c278 + 0xc" (identifier "DAT_0002c278") (+ "+") (number_literal "0xc")) (+ "+") (binary_expression "DAT_0002c2ac * 0x1c" (identifier "DAT_0002c2ac") (* "*") (number_literal "0x1c"))) () ")"))))) (; ";"))) (expression_statement "puVar8 = (undefined4 *)DAT_0002c2ac;" (assignment_expression "puVar8 = (undefined4 *)DAT_0002c2ac" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)DAT_0002c2ac" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "DAT_0002c2ac"))) (; ";")) (expression_statement "iVar9 = DAT_0002c278;" (assignment_expression "iVar9 = DAT_0002c278" (identifier "iVar9") (= "=") (identifier "DAT_0002c278")) (; ";")) (goto_statement "goto LAB_000166a0;" (goto "goto") (statement_identifier "LAB_000166a0") (; ";")) (labeled_statement "code_r0x0001730b:\n  switch(*(char *)(local_70 + uVar16)) {\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }" (statement_identifier "code_r0x0001730b") (: ":") (switch_statement "switch(*(char *)(local_70 + uVar16)) {\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }" (switch "switch") (parenthesized_expression "(*(char *)(local_70 + uVar16))" (( "(") (pointer_expression "*(char *)(local_70 + uVar16)" (* "*") (cast_expression "(char *)(local_70 + uVar16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70 + uVar16)" (( "(") (binary_expression "local_70 + uVar16" (identifier "local_70") (+ "+") (identifier "uVar16")) () ")")))) () ")")) (compound_statement "{\n  case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;\n  default:\n    goto code_r0x000172dc;\n  case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;\n  case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;\n  }" ({ "{") (case_statement "case '\\':\n    cVar7 = '\\';\n    uVar16 = DAT_0002c2b0;\n    break;" (case "case") (char_literal "'\\'" (' "'") (escape_sequence "\\") (' "'")) (: ":") (expression_statement "cVar7 = '\\';" (assignment_expression "cVar7 = '\\'" (identifier "cVar7") (= "=") (char_literal "'\\'" (' "'") (escape_sequence "\\") (' "'"))) (; ";")) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" (identifier "uVar16") (= "=") (identifier "DAT_0002c2b0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    goto code_r0x000172dc;" (default "default") (: ":") (goto_statement "goto code_r0x000172dc;" (goto "goto") (statement_identifier "code_r0x000172dc") (; ";"))) (case_statement "case 'a':\n    cVar7 = '\a';\n    uVar16 = DAT_0002c2b0;\n    break;" (case "case") (char_literal "'a'" (' "'") (character "a") (' "'")) (: ":") (expression_statement "cVar7 = '\a';" (assignment_expression "cVar7 = '\a'" (identifier "cVar7") (= "=") (char_literal "'\a'" (' "'") (escape_sequence "\a") (' "'"))) (; ";")) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" (identifier "uVar16") (= "=") (identifier "DAT_0002c2b0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'b':\n    cVar7 = '\b';\n    uVar16 = DAT_0002c2b0;\n    break;" (case "case") (char_literal "'b'" (' "'") (character "b") (' "'")) (: ":") (expression_statement "cVar7 = '\b';" (assignment_expression "cVar7 = '\b'" (identifier "cVar7") (= "=") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) (; ";")) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" (identifier "uVar16") (= "=") (identifier "DAT_0002c2b0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'f':\n    cVar7 = '\f';\n    uVar16 = DAT_0002c2b0;\n    break;" (case "case") (char_literal "'f'" (' "'") (character "f") (' "'")) (: ":") (expression_statement "cVar7 = '\f';" (assignment_expression "cVar7 = '\f'" (identifier "cVar7") (= "=") (char_literal "'\f'" (' "'") (escape_sequence "\f") (' "'"))) (; ";")) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" (identifier "uVar16") (= "=") (identifier "DAT_0002c2b0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'n':\n    cVar7 = '\n';\n    uVar16 = DAT_0002c2b0;\n    break;" (case "case") (char_literal "'n'" (' "'") (character "n") (' "'")) (: ":") (expression_statement "cVar7 = '\n';" (assignment_expression "cVar7 = '\n'" (identifier "cVar7") (= "=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) (; ";")) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" (identifier "uVar16") (= "=") (identifier "DAT_0002c2b0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'q':\n    cVar7 = '\"';\n    uVar16 = DAT_0002c2b0;\n    break;" (case "case") (char_literal "'q'" (' "'") (character "q") (' "'")) (: ":") (expression_statement "cVar7 = '\"';" (assignment_expression "cVar7 = '\"'" (identifier "cVar7") (= "=") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) (; ";")) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" (identifier "uVar16") (= "=") (identifier "DAT_0002c2b0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'r':\n    cVar7 = '\r';\n    uVar16 = DAT_0002c2b0;\n    break;" (case "case") (char_literal "'r'" (' "'") (character "r") (' "'")) (: ":") (expression_statement "cVar7 = '\r';" (assignment_expression "cVar7 = '\r'" (identifier "cVar7") (= "=") (char_literal "'\r'" (' "'") (escape_sequence "\r") (' "'"))) (; ";")) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" (identifier "uVar16") (= "=") (identifier "DAT_0002c2b0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 't':\n    cVar7 = '\t';\n    uVar16 = DAT_0002c2b0;" (case "case") (char_literal "'t'" (' "'") (character "t") (' "'")) (: ":") (expression_statement "cVar7 = '\t';" (assignment_expression "cVar7 = '\t'" (identifier "cVar7") (= "=") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) (; ";")) (expression_statement "uVar16 = DAT_0002c2b0;" (assignment_expression "uVar16 = DAT_0002c2b0" (identifier "uVar16") (= "=") (identifier "DAT_0002c2b0")) (; ";"))) (} "}")))) (labeled_statement "code_r0x000172c4:\n  DAT_0002c2b0 = uVar16;" (statement_identifier "code_r0x000172c4") (: ":") (expression_statement "DAT_0002c2b0 = uVar16;" (assignment_expression "DAT_0002c2b0 = uVar16" (identifier "DAT_0002c2b0") (= "=") (identifier "uVar16")) (; ";"))) (expression_statement "FUN_0001a730(cVar7);" (call_expression "FUN_0001a730(cVar7)" (identifier "FUN_0001a730") (argument_list "(cVar7)" (( "(") (identifier "cVar7") () ")"))) (; ";")) (expression_statement "local_70 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);" (assignment_expression "local_70 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (identifier "local_70") (= "=") (pointer_expression "*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (* "*") (cast_expression "(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4)" (( "(") (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278 + 4" (binary_expression "DAT_0002c2ac * 0x1c + DAT_0002c278" (binary_expression "DAT_0002c2ac * 0x1c" (identifier "DAT_0002c2ac") (* "*") (number_literal "0x1c")) (+ "+") (identifier "DAT_0002c278")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (goto_statement "goto code_r0x000172dc;" (goto "goto") (statement_identifier "code_r0x000172dc") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  type_1 **ppeVar1;
  type_2 var_51;
  type_3 pbVar3;
  type_4 *var_36;
  type_5 *puVar5;
  type_5 *puVar6;
  type_1 *peVar7;
  char var_32;
  char var_20;
  type_6 *var_9;
  type_7 pbVar11;
  type_8 var_30;
  int var_22;
  char *pcVar14;
  long val;
  int var_66;
  int var_67;
  type_9 *var_41;
  type_6 *var_5;
  type_8 var_40;
  type_8 var_46;
  int var_1;
  bool bVar21;
  type_6 *local_7c;
  type_7 *var_6;
  char *var_42;
  type_7 *local_60;
  int local_5c;
  int var_48;
  type_7 *local_44;
  type_7 temp_num;
  type_7 build;
  type_7 temp;
  type_7 result;
  type_7 mult;
  type_7 divisor;
  int var_16;
  type_10 uStack_14;
  
  uStack_14 = 0x165e9;
  var_16 = *(int *)(var_1 + 0x14);
  var_7 = '\0';
  pc.pc_func = 0;
  pc.pc_addr = 0;
  var_2(&temp_num);
  if (var_3 != '\0') {
    var_4(2,stop_execution);
  }
  puVar5 = PTR_stdout_0002bfec;
  var_8 = 0;
  var_6 = (type_7 *)var_33[pc.pc_func].f_code_size;
  var_9 = (type_6 *)pc.pc_func;
  var_5 = var_33;
_L141:
  var_22 = i_base;
  local_7c = var_5 + (int)var_9;
  if (((var_6 <= pc.pc_addr) || (var_7 != '\0')) || (var_8 != 0)) {
    if (var_9 != (type_6 *)0x0) {
      do {
        var_10(var_5[(int)var_9].f_autos);
        var_10(var_33[pc.pc_func].f_params);
        var_11();
        pc.pc_addr = var_11();
        var_9 = (type_6 *)var_11();
        var_5 = var_33;
        pc.pc_func = (type_8)var_9;
      } while (var_9 != (type_6 *)0x0);
      pc.pc_func = 0;
    }
    while (var_12 != (type_1 *)0x0) {
      var_13();
    }
    if ((var_3 != '\0') && (var_4(2,(type_11)PTR_use_quit_0002bff4), var_8 != 0))
    {
      var_14("\ninterrupted execution.");
      var_15(*(type_12 **)PTR_stdout_0002bfec);
    }
    if (var_16 == *(int *)(var_1 + 0x14)) {
      return;
    }
                    /* WARNING: Subroutine does not return */
    var_17();
  }
  var_40 = pc.pc_addr + 1;
  var_42 = local_7c->f_body;
  var_20 = var_42[pc.pc_addr];
  var_48 = 0;
  bVar21 = false;
  switch(var_20) {
  case '!':
  case 'T':
    pc.pc_addr = var_40;
    var_34 = var_18(var_12->s_num);
    goto LAB_000167c5;
  default:
    pcVar14 = "bad instruction: inst=%c";
    pc.pc_addr = var_40;
    goto LAB_0001732f;
  case '#':
    pc.pc_addr = var_40;
    var_20 = var_19(2);
    if (var_20 == '\0') goto LAB_00016998;
    var_22 = var_21(var_12->s_next->s_num,var_12->s_num);
    var_34 = var_22 != 0;
    var_13();
    goto LAB_000167c5;
  case '%':
    pc.pc_addr = var_40;
    var_20 = var_19(2);
    if (var_20 == '\0') goto LAB_00016998;
    var_20 = var_18(var_12->s_num);
    if (var_20 == '\0') {
      var_23(var_12->s_next->s_num,var_12->s_num,&temp_num,scale);
      goto LAB_00016d14;
    }
    pcVar14 = "Modulo by zero";
    goto LAB_0001732f;
  case '&':
    pc.pc_addr = var_40;
    var_20 = var_19(2);
    if (var_20 == '\0') goto LAB_00016998;
    var_20 = var_18(var_12->s_next->s_num);
    bVar21 = false;
    if (var_20 == '\0') {
      var_20 = var_18(var_12->s_num);
      bVar21 = var_20 == '\0';
    }
    var_34 = bVar21;
    var_13();
    goto LAB_000167c5;
  case '*':
    pc.pc_addr = var_40;
    var_20 = var_19(2);
    if (var_20 == '\0') goto LAB_00016998;
    var_24(var_12->s_next->s_num,var_12->s_num,&temp_num,scale);
LAB_00016d14:
    var_13();
    var_13();
    var_25(temp_num);
    var_2(&temp_num);
    break;
  case '+':
    pc.pc_addr = var_40;
    var_20 = var_19(2);
    if (var_20 != '\0') {
      var_26(var_12->s_next->s_num,var_12->s_num,&temp_num,0);
      goto LAB_00016d14;
    }
    goto LAB_00016998;
  case '-':
    pc.pc_addr = var_40;
    var_20 = var_19(2);
    if (var_20 != '\0') {
      var_27(var_12->s_next->s_num,var_12->s_num,&temp_num,0);
      goto LAB_00016d14;
    }
    goto LAB_00016998;
  case '/':
    pc.pc_addr = var_40;
    var_20 = var_19(2);
    if (var_20 == '\0') goto LAB_00016998;
    var_22 = var_28(var_12->s_next->s_num,var_12->s_num,&temp_num,scale);
    if (var_22 != 0) {
      pcVar14 = "Divide by zero";
      goto LAB_0001732f;
    }
    var_13();
    var_13();
    var_25(temp_num);
    var_2(&temp_num);
    break;
  case '0':
    pc.pc_addr = var_40;
    var_29(_zero_);
    break;
  case '1':
    pc.pc_addr = var_40;
    var_29(_one_);
    break;
  case '<':
    pc.pc_addr = var_40;
    var_20 = var_19(2);
    if (var_20 == '\0') goto LAB_00016998;
    var_22 = var_21(var_12->s_next->s_num,var_12->s_num);
    var_34 = var_22 == -1;
    var_13();
    goto LAB_000167c5;
  case '=':
    pc.pc_addr = var_40;
    var_20 = var_19(2);
    if (var_20 == '\0') goto LAB_00016998;
    var_22 = var_21(var_12->s_next->s_num,var_12->s_num);
    var_34 = var_22 == 0;
    var_13();
    goto LAB_000167c5;
  case '>':
    pc.pc_addr = var_40;
    var_20 = var_19(2);
    if (var_20 == '\0') goto LAB_00016998;
    var_22 = var_21(var_12->s_next->s_num,var_12->s_num);
    var_34 = var_22 == 1;
    var_13();
    goto LAB_000167c5;
  case 'A':
    var_30 = (type_8)(type_2)var_42[var_40];
    var_46 = pc.pc_addr + 2;
    if (var_42[var_40] < '\0') {
      var_30 = (var_30 & 0x7f) * 0x100 + (type_8)(type_2)var_42[pc.pc_addr + 2];
      var_46 = pc.pc_addr + 3;
    }
    pc.pc_addr = var_46;
    var_31(var_30);
    break;
  case 'B':
  case 'Z':
    pc.pc_addr = var_40;
    var_32 = var_18(var_12->s_num);
    var_34 = var_32 == '\0';
    var_13();
    local_7c = var_33 + pc.pc_func;
    var_42 = local_7c->f_body;
    local_5c = pc.pc_addr + 1;
    var_32 = var_42[pc.pc_addr];
    pc.pc_addr = pc.pc_addr + 2;
    var_9 = (type_6 *)pc.pc_func;
    var_5 = var_33;
    if (var_20 == 'J') goto LAB_0001740e;
    if (var_20 == 'B') {
      if (var_34 != '\0') goto LAB_0001740e;
    }
    else if ((var_20 == 'Z') && (var_34 == '\0')) goto LAB_0001740e;
    var_6 = (type_7 *)local_7c->f_code_size;
    goto _L141;
  case 'C':
    local_7c = (type_6 *)(type_8)(type_2)var_42[var_40];
    var_46 = pc.pc_addr + 2;
    if (var_42[var_40] < '\0') {
      local_7c = (type_6 *)
                 ((type_8)(type_2)var_42[pc.pc_addr + 2] + ((type_8)local_7c & 0x7f) * 0x100);
      var_46 = pc.pc_addr + 3;
    }
    pc.pc_addr = var_46;
    if (var_5[(int)local_7c].f_defined == '\0') {
      pcVar14 = "Function %s not defined.";
      goto LAB_0001732f;
    }
    var_35(&pc,(int)local_7c);
    for (var_36 = var_33[(int)local_7c].f_autos; var_36 != (type_4 *)0x0; var_36 = var_36->next
        ) {
      var_37(var_36->av_name);
    }
    var_38(pc.pc_func);
    var_38(pc.pc_addr);
    var_38(i_base);
    pc.pc_addr = 0;
    pc.pc_func = (type_8)local_7c;
    var_6 = (type_7 *)var_33[(int)local_7c].f_code_size;
    var_9 = local_7c;
    var_5 = var_33;
    goto _L141;
  case 'D':
    pc.pc_addr = var_40;
    var_29(var_12->s_num);
    break;
  case 'J':
    local_5c = pc.pc_addr + 2;
    var_32 = var_42[var_40];
    pc.pc_addr = pc.pc_addr + 3;
LAB_0001740e:
    var_40 = (type_8)(ushort)(var_39(var_42[local_5c],var_32) >> 6);
    var_41 = local_7c->f_label;
    var_22 = var_40 - 1;
    if (var_40 != 0) {
      do {
        var_22 = var_22 + -1;
        var_41 = var_41->l_next;
      } while (var_22 != -1);
    }
    if (var_41 == (type_9 *)0x0) {
      pcVar14 = "Internal error.";
      goto LAB_0001732f;
    }
    pc.pc_addr = var_41->l_adrs[var_39(var_42[local_5c],var_32) & 0x3f];
    var_6 = (type_7 *)local_7c->f_code_size;
    goto _L141;
  case 'K':
    if (var_9 == (type_6 *)0x0) {
      var_42 = (char *)i_base;
    }
    else {
      var_42 = (char *)fn_stack->s_val;
    }
    if (var_42 == (char *)0xa) {
      pc.pc_addr = var_40;
      var_43(&pc);
      break;
    }
    pc.pc_addr = var_40;
    var_2(&temp);
    var_2(&result);
    var_2(&mult);
    build = var_44(_zero_);
    var_45(&mult,(int)var_42);
    pcVar14 = var_33[pc.pc_func].f_body;
    var_40 = pc.pc_addr + 1;
    var_46 = (type_8)(type_2)pcVar14[pc.pc_addr];
    if (var_46 == 0x7e) {
      var_30 = pc.pc_addr + 2;
      do {
        var_40 = var_30;
        var_46 = (type_8)(type_2)pcVar14[var_40 - 1];
        var_30 = var_40 + 1;
      } while (var_46 == 0x7e);
    }
    if (var_46 == 0x2b) {
      pc.pc_addr = var_40 + 1;
      var_46 = (type_8)(type_2)pcVar14[var_40];
    }
    else {
      pc.pc_addr = var_40;
      if (var_46 == 0x2d) {
        bVar21 = true;
        pc.pc_addr = var_40 + 1;
        var_46 = (type_8)(type_2)pcVar14[var_40];
      }
    }
    var_40 = var_46;
    if (var_46 < 0x24) {
      var_40 = (type_8)(type_2)pcVar14[pc.pc_addr];
      if ((var_40 < 0x24) && ((int)var_42 <= (int)var_46)) {
        pc.pc_addr = pc.pc_addr + 1;
        var_45(&build,(int)var_42 + -1);
      }
      else {
        pc.pc_addr = pc.pc_addr + 1;
        var_45(&build,var_46);
        if (0x23 < var_40) goto LAB_00017202;
      }
      local_60 = &build;
      do {
        if ((int)var_42 <= (int)var_40) {
          var_40 = (int)var_42 - 1;
        }
        var_24(build,mult,&result,0);
        var_45(&temp,var_40);
        var_26(result,temp,local_60,0);
        var_46 = pc.pc_addr + 1;
        var_40 = (type_8)(type_2)var_33[pc.pc_func].f_body[pc.pc_addr];
        pc.pc_addr = var_46;
      } while (var_40 < 0x24);
    }
LAB_00017202:
    if (var_40 == 0x2e) {
      var_40 = (int)var_42 - 1;
      var_46 = (type_8)(type_2)var_33[pc.pc_func].f_body[pc.pc_addr];
      if ((int)var_42 <= (int)(type_8)(type_2)var_33[pc.pc_func].f_body[pc.pc_addr]) {
        var_46 = var_40;
      }
      pc.pc_addr = pc.pc_addr + 1;
      var_47(&result);
      var_47(&temp);
      divisor = var_44(_one_);
      result = var_44(_zero_);
      var_22 = 0;
      if ((int)var_46 < 0x24) {
        do {
          while( true ) {
            var_48 = var_22;
            var_24(result,mult,&result,0);
            var_45(&temp,var_46);
            var_26(result,temp,&result,0);
            var_24(divisor,mult,&divisor,0);
            var_48 = var_48 + 1;
            var_30 = pc.pc_addr + 1;
            var_46 = (type_8)(type_2)var_33[pc.pc_func].f_body[pc.pc_addr];
            pc.pc_addr = var_30;
            var_22 = var_48;
            if ((0x23 < var_46) || ((int)var_46 < (int)var_42)) break;
            var_46 = var_40;
            if (0x23 < (int)var_40) goto LAB_00017a9d;
          }
        } while (var_46 < 0x24);
      }
      goto LAB_00017a9d;
    }
    goto LAB_0001720b;
  case 'L':
    var_30 = (type_8)(type_2)var_42[var_40];
    var_46 = pc.pc_addr + 2;
    if (var_42[var_40] < '\0') {
      var_30 = (var_30 & 0x7f) * 0x100 + (type_8)(type_2)var_42[pc.pc_addr + 2];
      var_46 = pc.pc_addr + 3;
    }
    pc.pc_addr = var_46;
    var_49(var_30);
    break;
  case 'M':
    var_30 = (type_8)(type_2)var_42[var_40];
    var_46 = pc.pc_addr + 2;
    if (var_42[var_40] < '\0') {
      var_30 = (var_30 & 0x7f) * 0x100 + (type_8)(type_2)var_42[pc.pc_addr + 2];
      var_46 = pc.pc_addr + 3;
    }
    pc.pc_addr = var_46;
    var_50(var_30);
    break;
  case 'O':
    pc.pc_addr = var_40;
_L163:
    var_40 = pc.pc_addr + 1;
    var_51 = var_42[pc.pc_addr];
    var_30 = (type_8)var_51;
    var_46 = var_40;
    if (var_51 != 0x22) {
      if (var_51 != 0x5c) goto LAB_000172c4;
      pc.pc_addr = pc.pc_addr + 2;
      var_46 = pc.pc_addr;
      if (var_42[var_40] != '\"') goto code_r0x0001730b;
    }
    pc.pc_addr = var_46;
    var_52(*(type_12 **)puVar5);
    var_15(*(type_12 **)puVar5);
    break;
  case 'P':
  case 'W':
    pc.pc_addr = var_40;
    var_53(var_12->s_num,o_base,(type_13 *)PTR_out_char_0002bffc,std_only);
    if (var_20 == 'W') {
      var_54(10);
    }
    var_55(4);
    puVar6 = PTR_stdout_0002bfec;
    var_52(*(type_12 **)PTR_stdout_0002bfec);
    var_15(*(type_12 **)puVar6);
    var_13();
    break;
  case 'R':
    if (var_9 == (type_6 *)0x0) {
      pcVar14 = "Return from main program.";
      pc.pc_addr = var_40;
      goto LAB_0001732f;
    }
    pc.pc_addr = var_40;
    var_10(local_7c->f_autos);
    var_10(var_33[pc.pc_func].f_params);
    var_11();
    pc.pc_addr = var_11();
    var_9 = (type_6 *)var_11();
    var_6 = (type_7 *)var_33[(int)var_9].f_code_size;
    var_5 = var_33;
    pc.pc_func = (type_8)var_9;
    goto _L141;
  case 'S':
    var_30 = (type_8)(type_2)var_42[var_40];
    var_46 = pc.pc_addr + 2;
    if (var_42[var_40] < '\0') {
      var_30 = (var_30 & 0x7f) * 0x100 + (type_8)(type_2)var_42[pc.pc_addr + 2];
      var_46 = pc.pc_addr + 3;
    }
    pc.pc_addr = var_46;
    var_56(var_30);
    break;
  case '^':
    pc.pc_addr = var_40;
    var_20 = var_19(2);
    if (var_20 == '\0') goto LAB_00016998;
    var_57(var_12->s_next->s_num,var_12->s_num,&temp_num,scale);
    var_20 = var_18(var_12->s_next->s_num);
    if ((var_20 != '\0') && (var_20 = var_58(var_12->s_num), var_20 != '\0')) {
      var_59("divide by zero");
    }
    var_13();
    var_13();
    var_25(temp_num);
    var_2(&temp_num);
    break;
  case 'c':
    goto _L156;
  case 'd':
    var_30 = (type_8)(type_2)var_42[var_40];
    var_46 = pc.pc_addr + 2;
    if (var_42[var_40] < '\0') {
      var_30 = (var_30 & 0x7f) * 0x100 + (type_8)(type_2)var_42[pc.pc_addr + 2];
      var_46 = pc.pc_addr + 3;
    }
    pc.pc_addr = var_46;
    var_60(var_30);
    break;
  case 'h':
    pc.pc_addr = var_40;
    var_61(0);
    break;
  case 'i':
    var_30 = (type_8)(type_2)var_42[var_40];
    var_46 = pc.pc_addr + 2;
    if (var_42[var_40] < '\0') {
      var_30 = (var_30 & 0x7f) * 0x100 + (type_8)(type_2)var_42[pc.pc_addr + 2];
      var_46 = pc.pc_addr + 3;
    }
    pc.pc_addr = var_46;
    var_62(var_30);
    break;
  case 'l':
    var_30 = (type_8)(type_2)var_42[var_40];
    var_46 = pc.pc_addr + 2;
    if (var_42[var_40] < '\0') {
      var_30 = (var_30 & 0x7f) * 0x100 + (type_8)(type_2)var_42[pc.pc_addr + 2];
      var_46 = pc.pc_addr + 3;
    }
    pc.pc_addr = var_46;
    var_63(var_30);
    break;
  case 'n':
    pc.pc_addr = var_40;
    var_27(_zero_,var_12->s_num,&var_12->s_num,0);
    break;
  case 'p':
    pc.pc_addr = var_40;
    var_13();
    goto LAB_00016998;
  case 's':
    var_30 = (type_8)(type_2)var_42[var_40];
    var_46 = pc.pc_addr + 2;
    if (var_42[var_40] < '\0') {
      var_30 = (var_30 & 0x7f) * 0x100 + (type_8)(type_2)var_42[pc.pc_addr + 2];
      var_46 = pc.pc_addr + 3;
    }
    pc.pc_addr = var_46;
    var_55(var_30);
    break;
  case 'w':
    var_51 = var_42[var_40];
    pc.pc_addr = pc.pc_addr + 2;
    while (puVar6 = PTR_stdout_0002bfec, var_51 != 0x22) {
      var_64((type_8)var_51);
      var_51 = var_33[pc.pc_func].f_body[pc.pc_addr];
      pc.pc_addr = pc.pc_addr + 1;
    }
    var_52(*(type_12 **)PTR_stdout_0002bfec);
    var_15(*(type_12 **)puVar6);
    break;
  case 'x':
    pc.pc_addr = var_40;
    var_20 = var_19(2);
    if (var_20 != '\0') {
      ppeVar1 = &var_12->s_next;
      pbVar3 = var_12->s_num;
      var_12->s_num = (*ppeVar1)->s_num;
      (*ppeVar1)->s_num = pbVar3;
    }
    goto LAB_00016998;
  case '{':
    pc.pc_addr = var_40;
    var_20 = var_19(2);
    if (var_20 == '\0') goto LAB_00016998;
    var_22 = var_21(var_12->s_next->s_num,var_12->s_num);
    var_34 = var_22 < 1;
    var_13();
    goto LAB_000167c5;
  case '|':
    pc.pc_addr = var_40;
    var_20 = var_19(2);
    if (var_20 == '\0') goto LAB_00016998;
    var_20 = var_18(var_12->s_next->s_num);
    bVar21 = true;
    if (var_20 != '\0') {
      var_20 = var_18(var_12->s_num);
      bVar21 = var_20 == '\0';
    }
    var_34 = bVar21;
    var_13();
    goto LAB_000167c5;
  case '}':
    pc.pc_addr = var_40;
    var_20 = var_19(2);
    if (var_20 == '\0') goto LAB_00016998;
    var_22 = var_21(var_12->s_next->s_num,var_12->s_num);
    var_34 = (type_2)~(type_2)((type_8)var_22 >> 0x18) >> 7;
    var_13();
LAB_000167c5:
    var_20 = var_34;
    var_47(&var_12->s_num);
    peVar7 = var_12;
    if (var_20 == '\0') {
      pbVar11 = var_44(_zero_);
      peVar7->s_num = pbVar11;
    }
    else {
      pbVar11 = var_44(_one_);
      peVar7->s_num = pbVar11;
    }
  }
  goto LAB_000167f0;
_L156:
  pc.pc_addr = pc.pc_addr + 2;
  switch(var_42[var_40]) {
  case 'I':
    var_2(&temp);
    var_2(&result);
    var_2(&mult);
    build = var_44(_zero_);
    var_45(&mult,var_22);
    var_66 = var_65();
    while (var_66 == 0x7e) {
      var_66 = var_65();
    }
    if (var_66 == 0x2b) {
      var_66 = var_65();
    }
    else if (var_66 == 0x2d) {
      var_66 = var_65();
      bVar21 = true;
    }
    var_6 = &temp;
    local_7c = (type_6 *)&result;
    var_67 = var_66;
    if (var_66 < 0x24) {
      var_67 = var_65();
      if ((var_67 < 0x24) && (var_22 <= var_66)) {
        var_45(&build,var_22 + -1);
      }
      else {
        var_45(&build,var_66);
        if (0x23 < var_67) goto LAB_00017b03;
      }
      local_60 = &build;
      do {
        if (var_67 < var_22) {
          var_24(build,mult,(type_7 *)local_7c,0);
        }
        else {
          var_24(build,mult,(type_7 *)local_7c,0);
          var_67 = var_22 + -1;
        }
        var_45(var_6,var_67);
        var_26(result,temp,local_60,0);
        var_67 = var_65();
      } while (var_67 < 0x24);
    }
LAB_00017b03:
    if (var_67 == 0x2e) {
      var_67 = var_65();
      var_66 = var_22 + -1;
      if (var_22 <= var_67) {
        var_67 = var_66;
      }
      var_47((type_7 *)local_7c);
      var_47(var_6);
      divisor = var_44(_one_);
      result = var_44(_zero_);
      if (var_67 < 0x24) {
        var_48 = 0;
        do {
          while( true ) {
            var_24(result,mult,(type_7 *)local_7c,0);
            var_45(var_6,var_67);
            var_26(result,temp,(type_7 *)local_7c,0);
            var_24(divisor,mult,&divisor,0);
            var_48 = var_48 + 1;
            var_67 = var_65();
            if ((0x23 < var_67) || (var_67 < var_22)) break;
            var_67 = var_66;
            if (0x23 < var_66) goto LAB_00017a9d;
          }
        } while (var_67 < 0x24);
      }
LAB_00017a9d:
      local_7c = (type_6 *)&result;
      var_28(result,divisor,(type_7 *)local_7c,var_48);
      var_26(build,result,&build,0);
    }
LAB_0001720b:
    local_44 = &mult;
    var_6 = &temp;
    local_7c = (type_6 *)&result;
    if (bVar21) {
      var_27(_zero_,build,&build,0);
    }
    var_25(build);
    var_47(var_6);
    var_47((type_7 *)local_7c);
    var_47(local_44);
    break;
  default:
    goto _L141;
  case 'L':
    pbVar3 = var_12->s_num;
    var_22 = pbVar3->n_scale;
    if (((pbVar3->n_len == 1) && (var_22 != 0)) && (*pbVar3->n_value == '\0')) {
      var_45(&var_12->s_num,var_22);
    }
    else {
      var_45(&var_12->s_num,pbVar3->n_len + var_22);
    }
    break;
  case 'R':
    var_22 = var_68(&var_12->s_num,scale);
    if (var_22 != 0) {
LAB_00016998:
      var_6 = (type_7 *)var_33[pc.pc_func].f_code_size;
      var_9 = (type_6 *)pc.pc_func;
      var_5 = var_33;
      goto _L141;
    }
    pcVar14 = "Square root of a negative number";
LAB_0001732f:
    var_59(pcVar14);
    break;
  case 'S':
    var_45(&var_12->s_num,var_12->s_num->n_scale);
    break;
  case 'X':
    var_29(_zero_);
    val = var_69();
    var_45(&var_12->s_num,val);
  }
LAB_000167f0:
  var_6 = (type_7 *)var_33[pc.pc_func].f_code_size;
  var_9 = (type_6 *)pc.pc_func;
  var_5 = var_33;
  goto _L141;
code_r0x0001730b:
  switch(var_42[var_40]) {
  case '\\':
    var_30 = 0x5c;
    var_40 = pc.pc_addr;
    break;
  default:
    goto _L163;
  case 'a':
    var_30 = 7;
    var_40 = pc.pc_addr;
    break;
  case 'b':
    var_30 = 8;
    var_40 = pc.pc_addr;
    break;
  case 'f':
    var_30 = 0xc;
    var_40 = pc.pc_addr;
    break;
  case 'n':
    var_30 = 10;
    var_40 = pc.pc_addr;
    break;
  case 'q':
    var_30 = 0x22;
    var_40 = pc.pc_addr;
    break;
  case 'r':
    var_30 = 0xd;
    var_40 = pc.pc_addr;
    break;
  case 't':
    var_30 = 9;
    var_40 = pc.pc_addr;
  }
LAB_000172c4:
  pc.pc_addr = var_40;
  var_64(var_30);
  var_42 = var_33[pc.pc_func].f_body;
  goto _L163;
}


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

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

void MASKED(void)

{
  int *piVar1;
  ushort uVar2;
  undefined *puVar3;
  undefined *puVar4;
  byte bVar5;
  char cVar6;
  char cVar7;
  undefined4 *puVar8;
  int iVar9;
  uint uVar10;
  byte extraout_var;
  char *pcVar11;
  int iVar12;
  undefined4 uVar13;
  int iVar14;
  undefined1 uVar15;
  uint uVar16;
  uint uVar17;
  int in_GS_OFFSET;
  bool bVar18;
  undefined4 *local_7c;
  undefined4 *local_78;
  int local_70;
  undefined4 *local_60;
  int local_5c;
  int local_58;
  undefined4 *puStack_44;
  undefined4 local_38;
  undefined4 uStack_34;
  undefined4 uStack_30;
  undefined4 uStack_2c;
  undefined4 uStack_28;
  undefined4 uStack_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x165e9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  DAT_0002c28c = '\0';
  DAT_0002c2ac = 0;
  DAT_0002c2b0 = 0;
  FUN_0001c550(&local_38);
  if (DAT_0002c1fc != '\0') {
    signal(2,FUN_00015ea0);
  }
  puVar3 = PTR_stdout_0002bfec;
  DAT_0002c220 = 0;
  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);
  puVar8 = (undefined4 *)DAT_0002c2ac;
  iVar9 = DAT_0002c278;
LAB_000166a0:
  iVar12 = DAT_0002c2a4;
  local_7c = (undefined4 *)(iVar9 + (int)puVar8 * 0x1c);
  if (((local_78 <= DAT_0002c2b0) || (DAT_0002c28c != '\0')) || (DAT_0002c220 != 0)) {
    if (puVar8 != (undefined4 *)0x0) {
      do {
        FUN_0001a120(*(undefined4 *)(iVar9 + 0x18 + (int)puVar8 * 0x1c));
        FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));
        FUN_00018ee0();
        DAT_0002c2b0 = FUN_00018ee0();
        puVar8 = (undefined4 *)FUN_00018ee0();
        iVar9 = DAT_0002c278;
        DAT_0002c2ac = (uint)puVar8;
      } while (puVar8 != (undefined4 *)0x0);
      DAT_0002c2ac = 0;
    }
    while (DAT_0002c2bc != (int *)0x0) {
      FUN_00018f70();
    }
    if ((DAT_0002c1fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_0002bff4), DAT_0002c220 != 0)) {
      puts("\ninterrupted execution.");
      FUN_000208a0(*(undefined4 *)PTR_stdout_0002bfec);
    }
    if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
      return;
    }
                    /* WARNING: Subroutine does not return */
    FUN_00020960();
  }
  uVar16 = DAT_0002c2b0 + 1;
  local_70 = *(int *)((int)local_7c + 4);
  cVar7 = *(char *)(local_70 + DAT_0002c2b0);
  local_58 = 0;
  bVar18 = false;
  switch(cVar7) {
  case '!':
  case 'T':
    DAT_0002c2b0 = uVar16;
    DAT_0002c294 = FUN_0001c6d0(*DAT_0002c2bc);
    goto code_r0x000167c5;
  default:
    pcVar11 = "bad instruction: inst=%c";
    DAT_0002c2b0 = uVar16;
    goto code_r0x0001732f;
  case '#':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);
    DAT_0002c294 = iVar9 != 0;
    FUN_00018f70();
    goto code_r0x000167c5;
  case '%':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    cVar7 = FUN_0001c6d0(*DAT_0002c2bc);
    if (cVar7 == '\0') {
      FUN_0001e720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);
      goto code_r0x00016d14;
    }
    pcVar11 = "Modulo by zero";
    goto code_r0x0001732f;
  case '&':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);
    bVar18 = false;
    if (cVar7 == '\0') {
      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);
      bVar18 = cVar7 == '\0';
    }
    DAT_0002c294 = bVar18;
    FUN_00018f70();
    goto code_r0x000167c5;
  case '*':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    FUN_0001d9c0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);
code_r0x00016d14:
    FUN_00018f70();
    FUN_00018f70();
    FUN_00018ff0(local_38);
    FUN_0001c550(&local_38);
    break;
  case '+':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 != '\0') {
      FUN_0001d720(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);
      goto code_r0x00016d14;
    }
    goto code_r0x00016998;
  case '-':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 != '\0') {
      FUN_0001c7a0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,0);
      goto code_r0x00016d14;
    }
    goto code_r0x00016998;
  case '/':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    iVar9 = FUN_0001db50(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);
    if (iVar9 != 0) {
      pcVar11 = "Divide by zero";
      goto code_r0x0001732f;
    }
    FUN_00018f70();
    FUN_00018f70();
    FUN_00018ff0(local_38);
    FUN_0001c550(&local_38);
    break;
  case '0':
    DAT_0002c2b0 = uVar16;
    FUN_00018fb0(DAT_0002c2c8);
    break;
  case '1':
    DAT_0002c2b0 = uVar16;
    FUN_00018fb0(DAT_0002c2c0);
    break;
  case '<':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);
    DAT_0002c294 = iVar9 == -1;
    FUN_00018f70();
    goto code_r0x000167c5;
  case '=':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);
    DAT_0002c294 = iVar9 == 0;
    FUN_00018f70();
    goto code_r0x000167c5;
  case '>':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);
    DAT_0002c294 = iVar9 == 1;
    FUN_00018f70();
    goto code_r0x000167c5;
  case 'A':
    uVar10 = (uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    FUN_00019f00(uVar10);
    break;
  case 'B':
  case 'Z':
    DAT_0002c2b0 = uVar16;
    cVar6 = FUN_0001c6d0(*DAT_0002c2bc);
    DAT_0002c294 = cVar6 == '\0';
    FUN_00018f70();
    local_7c = (undefined4 *)(DAT_0002c278 + DAT_0002c2ac * 0x1c);
    local_70 = *(int *)((int)local_7c + 4);
    local_5c = DAT_0002c2b0 + 1;
    uVar15 = *(undefined1 *)(local_70 + DAT_0002c2b0);
    DAT_0002c2b0 = DAT_0002c2b0 + 2;
    puVar8 = (undefined4 *)DAT_0002c2ac;
    iVar9 = DAT_0002c278;
    if (cVar7 == 'J') goto code_r0x0001740e;
    if (cVar7 == 'B') {
      if (DAT_0002c294 != 0) goto code_r0x0001740e;
    }
    else if ((cVar7 == 'Z') && (DAT_0002c294 == 0)) goto code_r0x0001740e;
    local_78 = *(undefined4 **)((int)local_7c + 0xc);
    goto LAB_000166a0;
  case 'C':
    local_7c = (undefined4 *)(uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      local_7c = (undefined4 *)
                 ((uint)*(byte *)(local_70 + 2 + DAT_0002c2b0) + ((uint)local_7c & 0x7f) * 0x100);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    iVar12 = (int)local_7c * 0x1c;
    if (*(char *)(iVar9 + iVar12) == '\0') {
      pcVar11 = "Function %s not defined.";
      goto code_r0x0001732f;
    }
    FUN_0001a270(&DAT_0002c2ac,local_7c);
    for (puVar8 = *(undefined4 **)(DAT_0002c278 + 0x18 + iVar12); puVar8 != (undefined4 *)0x0;
        puVar8 = (undefined4 *)puVar8[2]) {
      FUN_00019ff0(*puVar8);
    }
    FUN_00018f40(DAT_0002c2ac);
    FUN_00018f40(DAT_0002c2b0);
    FUN_00018f40(DAT_0002c2a4);
    DAT_0002c2b0 = 0;
    DAT_0002c2ac = (uint)local_7c;
    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + iVar12);
    puVar8 = local_7c;
    iVar9 = DAT_0002c278;
    goto LAB_000166a0;
  case 'D':
    DAT_0002c2b0 = uVar16;
    FUN_00018fb0(*DAT_0002c2bc);
    break;
  case 'J':
    local_5c = DAT_0002c2b0 + 2;
    uVar15 = *(undefined1 *)(local_70 + uVar16);
    DAT_0002c2b0 = DAT_0002c2b0 + 3;
code_r0x0001740e:
    uVar2 = CONCAT11(*(undefined1 *)(local_70 + local_5c),uVar15);
    uVar16 = (uint)(uVar2 >> 6);
    iVar14 = *(int *)((int)local_7c + 0x10);
    iVar12 = uVar16 - 1;
    if (uVar16 != 0) {
      do {
        iVar12 = iVar12 + -1;
        iVar14 = *(int *)(iVar14 + 0x100);
      } while (iVar12 != -1);
    }
    if (iVar14 == 0) {
      pcVar11 = "Internal error.";
      goto code_r0x0001732f;
    }
    DAT_0002c2b0 = *(uint *)(iVar14 + (uVar2 & 0x3f) * 4);
    local_78 = *(undefined4 **)((int)local_7c + 0xc);
    goto LAB_000166a0;
  case 'K':
    if (puVar8 == (undefined4 *)0x0) {
      local_70 = DAT_0002c2a4;
    }
    else {
      local_70 = *DAT_0002c250;
    }
    if (local_70 == 10) {
      DAT_0002c2b0 = uVar16;
      FUN_00016360(&DAT_0002c2ac);
      break;
    }
    DAT_0002c2b0 = uVar16;
    FUN_0001c550(&uStack_30);
    FUN_0001c550(&uStack_2c);
    FUN_0001c550(&uStack_28);
    uStack_34 = FUN_0001c540(DAT_0002c2c8);
    FUN_0001f070(&uStack_28,local_70);
    iVar9 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);
    uVar16 = DAT_0002c2b0 + 1;
    uVar17 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);
    if (uVar17 == 0x7e) {
      uVar10 = DAT_0002c2b0 + 2;
      do {
        uVar16 = uVar10;
        uVar17 = (uint)*(byte *)(iVar9 + -1 + uVar16);
        uVar10 = uVar16 + 1;
      } while (uVar17 == 0x7e);
    }
    if (uVar17 == 0x2b) {
      DAT_0002c2b0 = uVar16 + 1;
      uVar17 = (uint)*(byte *)(iVar9 + uVar16);
    }
    else {
      DAT_0002c2b0 = uVar16;
      if (uVar17 == 0x2d) {
        bVar18 = true;
        DAT_0002c2b0 = uVar16 + 1;
        uVar17 = (uint)*(byte *)(iVar9 + uVar16);
      }
    }
    uVar16 = uVar17;
    if (uVar17 < 0x24) {
      uVar16 = (uint)*(byte *)(iVar9 + DAT_0002c2b0);
      if ((uVar16 < 0x24) && (local_70 <= (int)uVar17)) {
        DAT_0002c2b0 = DAT_0002c2b0 + 1;
        FUN_0001f070(&uStack_34,local_70 + -1);
      }
      else {
        DAT_0002c2b0 = DAT_0002c2b0 + 1;
        FUN_0001f070(&uStack_34,uVar17);
        if (0x23 < uVar16) goto code_r0x00017202;
      }
      local_60 = &uStack_34;
      do {
        if (local_70 <= (int)uVar16) {
          uVar16 = local_70 - 1;
        }
        FUN_0001d9c0(uStack_34,uStack_28,&uStack_2c,0);
        FUN_0001f070(&uStack_30,uVar16);
        FUN_0001d720(uStack_2c,uStack_30,local_60,0);
        uVar17 = DAT_0002c2b0 + 1;
        uVar16 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);
        DAT_0002c2b0 = uVar17;
      } while (uVar16 < 0x24);
    }
code_r0x00017202:
    if (uVar16 == 0x2e) {
      uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);
      uVar16 = local_70 - 1;
      if (local_70 <= (int)uVar17) {
        uVar17 = uVar16;
      }
      DAT_0002c2b0 = DAT_0002c2b0 + 1;
      FUN_0001c2e0(&uStack_2c);
      FUN_0001c2e0(&uStack_30);
      uStack_24 = FUN_0001c540(DAT_0002c2c0);
      uStack_2c = FUN_0001c540(DAT_0002c2c8);
      iVar9 = 0;
      if ((int)uVar17 < 0x24) {
        do {
          while( true ) {
            local_58 = iVar9;
            FUN_0001d9c0(uStack_2c,uStack_28,&uStack_2c,0);
            FUN_0001f070(&uStack_30,uVar17);
            FUN_0001d720(uStack_2c,uStack_30,&uStack_2c,0);
            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);
            local_58 = local_58 + 1;
            uVar10 = DAT_0002c2b0 + 1;
            uVar17 = (uint)*(byte *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0
                                    );
            DAT_0002c2b0 = uVar10;
            iVar9 = local_58;
            if ((0x23 < uVar17) || ((int)uVar17 < local_70)) break;
            uVar17 = uVar16;
            if (0x23 < (int)uVar16) goto code_r0x00017a9d;
          }
        } while (uVar17 < 0x24);
      }
      goto code_r0x00017a9d;
    }
    goto code_r0x0001720b;
  case 'L':
    uVar10 = (uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    FUN_00019a30(uVar10);
    break;
  case 'M':
    uVar10 = (uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    FUN_00019ca0(uVar10);
    break;
  case 'O':
    DAT_0002c2b0 = uVar16;
code_r0x000172dc:
    uVar16 = DAT_0002c2b0 + 1;
    cVar7 = *(char *)(local_70 + DAT_0002c2b0);
    uVar17 = uVar16;
    if (cVar7 != '\"') {
      if (cVar7 != '\\') goto code_r0x000172c4;
      DAT_0002c2b0 = DAT_0002c2b0 + 2;
      uVar17 = DAT_0002c2b0;
      if (*(char *)(local_70 + uVar16) != '\"') goto code_r0x0001730b;
    }
    DAT_0002c2b0 = uVar17;
    fflush(*(FILE **)puVar3);
    FUN_000208a0(*(undefined4 *)puVar3);
    break;
  case 'P':
  case 'W':
    DAT_0002c2b0 = uVar16;
    FUN_0001f880(*DAT_0002c2bc,DAT_0002c280,PTR_FUN_0002bffc,DAT_0002c1ec);
    if (cVar7 == 'W') {
      FUN_0001a680(10);
    }
    FUN_00019410(4);
    puVar4 = PTR_stdout_0002bfec;
    fflush(*(FILE **)PTR_stdout_0002bfec);
    FUN_000208a0(*(undefined4 *)puVar4);
    FUN_00018f70();
    break;
  case 'R':
    if (puVar8 == (undefined4 *)0x0) {
      pcVar11 = "Return from main program.";
      DAT_0002c2b0 = uVar16;
      goto code_r0x0001732f;
    }
    DAT_0002c2b0 = uVar16;
    FUN_0001a120(*(undefined4 *)((int)local_7c + 0x18));
    FUN_0001a120(*(undefined4 *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 0x14));
    FUN_00018ee0();
    DAT_0002c2b0 = FUN_00018ee0();
    puVar8 = (undefined4 *)FUN_00018ee0();
    local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + (int)puVar8 * 0x1c);
    iVar9 = DAT_0002c278;
    DAT_0002c2ac = (uint)puVar8;
    goto LAB_000166a0;
  case 'S':
    uVar10 = (uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    FUN_00019770(uVar10);
    break;
  case '^':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    FUN_0001ebe0(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc,&local_38,DAT_0002c298);
    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);
    if ((cVar7 != '\0') && (cVar7 = FUN_0001c6c0(*DAT_0002c2bc), cVar7 != '\0')) {
      FUN_0001b7b0("divide by zero");
    }
    FUN_00018f70();
    FUN_00018f70();
    FUN_00018ff0(local_38);
    FUN_0001c550(&local_38);
    break;
  case 'c':
    goto code_r0x00016f20;
  case 'd':
    uVar10 = (uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    FUN_00019b30(uVar10);
    break;
  case 'h':
    DAT_0002c2b0 = uVar16;
    FUN_0001b8a0(0);
    break;
  case 'i':
    uVar10 = (uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    FUN_00019d90(uVar10);
    break;
  case 'l':
    uVar10 = (uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    FUN_00019880(uVar10);
    break;
  case 'n':
    DAT_0002c2b0 = uVar16;
    FUN_0001c7a0(DAT_0002c2c8,*DAT_0002c2bc,DAT_0002c2bc,0);
    break;
  case 'p':
    DAT_0002c2b0 = uVar16;
    FUN_00018f70();
    goto code_r0x00016998;
  case 's':
    uVar10 = (uint)*(byte *)(local_70 + uVar16);
    uVar17 = DAT_0002c2b0 + 2;
    if ((char)*(byte *)(local_70 + uVar16) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_70 + 2 + DAT_0002c2b0);
      uVar17 = DAT_0002c2b0 + 3;
    }
    DAT_0002c2b0 = uVar17;
    FUN_00019410(uVar10);
    break;
  case 'w':
    cVar7 = *(char *)(local_70 + uVar16);
    DAT_0002c2b0 = DAT_0002c2b0 + 2;
    while (puVar4 = PTR_stdout_0002bfec, cVar7 != '\"') {
      FUN_0001a730(cVar7);
      cVar7 = *(char *)(*(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4) + DAT_0002c2b0);
      DAT_0002c2b0 = DAT_0002c2b0 + 1;
    }
    fflush(*(FILE **)PTR_stdout_0002bfec);
    FUN_000208a0(*(undefined4 *)puVar4);
    break;
  case 'x':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 != '\0') {
      piVar1 = DAT_0002c2bc + 1;
      iVar9 = *DAT_0002c2bc;
      *DAT_0002c2bc = *(int *)*piVar1;
      *(int *)*piVar1 = iVar9;
    }
    goto code_r0x00016998;
  case '{':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    iVar9 = FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);
    DAT_0002c294 = iVar9 < 1;
    FUN_00018f70();
    goto code_r0x000167c5;
  case '|':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    cVar7 = FUN_0001c6d0(*(undefined4 *)DAT_0002c2bc[1]);
    bVar18 = true;
    if (cVar7 != '\0') {
      cVar7 = FUN_0001c6d0(*DAT_0002c2bc);
      bVar18 = cVar7 == '\0';
    }
    DAT_0002c294 = bVar18;
    FUN_00018f70();
    goto code_r0x000167c5;
  case '}':
    DAT_0002c2b0 = uVar16;
    cVar7 = FUN_00019020(2);
    if (cVar7 == '\0') goto code_r0x00016998;
    FUN_0001c570(*(undefined4 *)DAT_0002c2bc[1],*DAT_0002c2bc);
    DAT_0002c294 = (byte)~extraout_var >> 7;
    FUN_00018f70();
code_r0x000167c5:
    bVar5 = DAT_0002c294;
    FUN_0001c2e0(DAT_0002c2bc);
    piVar1 = DAT_0002c2bc;
    if (bVar5 == 0) {
      iVar9 = FUN_0001c540(DAT_0002c2c8);
      *piVar1 = iVar9;
    }
    else {
      iVar9 = FUN_0001c540(DAT_0002c2c0);
      *piVar1 = iVar9;
    }
  }
  goto LAB_000167f0;
code_r0x00016f20:
  DAT_0002c2b0 = DAT_0002c2b0 + 2;
  switch(*(undefined1 *)(local_70 + uVar16)) {
  case 0x49:
    FUN_0001c550(&uStack_30);
    FUN_0001c550(&uStack_2c);
    FUN_0001c550(&uStack_28);
    uStack_34 = FUN_0001c540(DAT_0002c2c8);
    FUN_0001f070(&uStack_28,iVar12);
    iVar9 = FUN_00015f20();
    while (iVar9 == 0x7e) {
      iVar9 = FUN_00015f20();
    }
    if (iVar9 == 0x2b) {
      iVar9 = FUN_00015f20();
    }
    else if (iVar9 == 0x2d) {
      iVar9 = FUN_00015f20();
      bVar18 = true;
    }
    local_78 = &uStack_30;
    local_7c = &uStack_2c;
    iVar14 = iVar9;
    if (iVar9 < 0x24) {
      iVar14 = FUN_00015f20();
      if ((iVar14 < 0x24) && (iVar12 <= iVar9)) {
        FUN_0001f070(&uStack_34,iVar12 + -1);
      }
      else {
        FUN_0001f070(&uStack_34,iVar9);
        if (0x23 < iVar14) goto code_r0x00017b03;
      }
      local_60 = &uStack_34;
      do {
        if (iVar14 < iVar12) {
          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);
        }
        else {
          FUN_0001d9c0(uStack_34,uStack_28,local_7c,0);
          iVar14 = iVar12 + -1;
        }
        FUN_0001f070(local_78,iVar14);
        FUN_0001d720(uStack_2c,uStack_30,local_60,0);
        iVar14 = FUN_00015f20();
      } while (iVar14 < 0x24);
    }
code_r0x00017b03:
    if (iVar14 == 0x2e) {
      iVar14 = FUN_00015f20();
      iVar9 = iVar12 + -1;
      if (iVar12 <= iVar14) {
        iVar14 = iVar9;
      }
      FUN_0001c2e0(local_7c);
      FUN_0001c2e0(local_78);
      uStack_24 = FUN_0001c540(DAT_0002c2c0);
      uStack_2c = FUN_0001c540(DAT_0002c2c8);
      if (iVar14 < 0x24) {
        local_58 = 0;
        do {
          while( true ) {
            FUN_0001d9c0(uStack_2c,uStack_28,local_7c,0);
            FUN_0001f070(local_78,iVar14);
            FUN_0001d720(uStack_2c,uStack_30,local_7c,0);
            FUN_0001d9c0(uStack_24,uStack_28,&uStack_24,0);
            local_58 = local_58 + 1;
            iVar14 = FUN_00015f20();
            if ((0x23 < iVar14) || (iVar14 < iVar12)) break;
            iVar14 = iVar9;
            if (0x23 < iVar9) goto code_r0x00017a9d;
          }
        } while (iVar14 < 0x24);
      }
code_r0x00017a9d:
      local_7c = &uStack_2c;
      FUN_0001db50(uStack_2c,uStack_24,local_7c,local_58);
      FUN_0001d720(uStack_34,uStack_2c,&uStack_34,0);
    }
code_r0x0001720b:
    puStack_44 = &uStack_28;
    local_78 = &uStack_30;
    local_7c = &uStack_2c;
    if (bVar18) {
      FUN_0001c7a0(DAT_0002c2c8,uStack_34,&uStack_34,0);
    }
    FUN_00018ff0(uStack_34);
    FUN_0001c2e0(local_78);
    FUN_0001c2e0(local_7c);
    FUN_0001c2e0(puStack_44);
    break;
  default:
    goto LAB_000166a0;
  case 0x4c:
    iVar9 = *DAT_0002c2bc;
    iVar12 = *(int *)(iVar9 + 8);
    if (((*(int *)(iVar9 + 4) == 1) && (iVar12 != 0)) && (**(char **)(iVar9 + 0x18) == '\0')) {
      FUN_0001f070(DAT_0002c2bc,iVar12);
    }
    else {
      FUN_0001f070(DAT_0002c2bc,*(int *)(iVar9 + 4) + iVar12);
    }
    break;
  case 0x52:
    iVar9 = FUN_0001f290(DAT_0002c2bc,DAT_0002c298);
    if (iVar9 != 0) {
code_r0x00016998:
      local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);
      puVar8 = (undefined4 *)DAT_0002c2ac;
      iVar9 = DAT_0002c278;
      goto LAB_000166a0;
    }
    pcVar11 = "Square root of a negative number";
code_r0x0001732f:
    FUN_0001b7b0(pcVar11);
    break;
  case 0x53:
    FUN_0001f070(DAT_0002c2bc,*(undefined4 *)(*DAT_0002c2bc + 8));
    break;
  case 0x58:
    FUN_00018fb0(DAT_0002c2c8);
    uVar13 = func_0x000112e0();
    FUN_0001f070(DAT_0002c2bc,uVar13);
  }
LAB_000167f0:
  local_78 = *(undefined4 **)(DAT_0002c278 + 0xc + DAT_0002c2ac * 0x1c);
  puVar8 = (undefined4 *)DAT_0002c2ac;
  iVar9 = DAT_0002c278;
  goto LAB_000166a0;
code_r0x0001730b:
  switch(*(char *)(local_70 + uVar16)) {
  case '\\':
    cVar7 = '\\';
    uVar16 = DAT_0002c2b0;
    break;
  default:
    goto code_r0x000172dc;
  case 'a':
    cVar7 = '\a';
    uVar16 = DAT_0002c2b0;
    break;
  case 'b':
    cVar7 = '\b';
    uVar16 = DAT_0002c2b0;
    break;
  case 'f':
    cVar7 = '\f';
    uVar16 = DAT_0002c2b0;
    break;
  case 'n':
    cVar7 = '\n';
    uVar16 = DAT_0002c2b0;
    break;
  case 'q':
    cVar7 = '\"';
    uVar16 = DAT_0002c2b0;
    break;
  case 'r':
    cVar7 = '\r';
    uVar16 = DAT_0002c2b0;
    break;
  case 't':
    cVar7 = '\t';
    uVar16 = DAT_0002c2b0;
  }
code_r0x000172c4:
  DAT_0002c2b0 = uVar16;
  FUN_0001a730(cVar7);
  local_70 = *(int *)(DAT_0002c2ac * 0x1c + DAT_0002c278 + 4);
  goto code_r0x000172dc;
}

