
/* 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;
  undefined4 *puVar5;
  undefined *puVar6;
  undefined *puVar7;
  uint uVar8;
  char cVar9;
  char cVar10;
  bc_function *pbVar11;
  uint uVar12;
  int iVar13;
  char *mesg;
  int iVar14;
  long val;
  bc_label_group *pbVar15;
  uint uVar16;
  int in_GS_OFFSET;
  bool bVar17;
  bc_function *local_5c;
  bc_function *local_58;
  uint local_54;
  char *local_4c;
  bool local_3d;
  bc_num temp_num;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x15d59;
  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);
  }
  puVar6 = PTR_stdout_00028fec;
  had_sigint = 0;
  local_5c = functions;
  local_54 = functions[pc.pc_func].f_code_size;
  pbVar11 = (bc_function *)pc.pc_func;
_L138:
  local_58 = local_5c + (int)pbVar11;
  if (((local_54 <= pc.pc_addr) || (runtime_error != '\0')) || (had_sigint != 0)) {
    if (pbVar11 != (bc_function *)0x0) {
      do {
        pop_vars(local_5c[(int)pbVar11].f_autos);
        pop_vars(functions[pc.pc_func].f_params);
        fpop();
        pc.pc_addr = fpop();
        pbVar11 = (bc_function *)fpop();
        local_5c = functions;
        pc.pc_func = (uint)pbVar11;
      } while (pbVar11 != (bc_function *)0x0);
      pc.pc_func = 0;
    }
    while (ex_stack != (estack_rec *)0x0) {
      pop();
    }
    if ((interactive != '\0') && (signal(2,(__sighandler_t)PTR_use_quit_00028ff4), had_sigint != 0))
    {
      puts("\ninterrupted execution.");
      checkferror_output(*(FILE **)PTR_stdout_00028fec);
    }
    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
      __stack_chk_fail_local();
    }
    return;
  }
  uVar16 = pc.pc_addr + 1;
  local_4c = local_58->f_body;
  cVar10 = local_4c[pc.pc_addr];
  switch(cVar10) {
  case '!':
  case 'T':
    pc.pc_addr = uVar16;
    c_code = bc_is_zero(ex_stack->s_num);
    assign(c_code);
    break;
  default:
    mesg = "bad instruction: inst=%c";
    pc.pc_addr = uVar16;
    goto LAB_000168af;
  case '#':
    pc.pc_addr = uVar16;
    cVar10 = check_stack(2);
    if (cVar10 == '\0') goto LAB_000160a5;
    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);
    c_code = iVar13 != 0;
    pop();
LAB_00016b9c:
    assign(c_code);
    goto LAB_00016ba1;
  case '%':
    pc.pc_addr = uVar16;
    cVar10 = check_stack(2);
    if (cVar10 == '\0') goto LAB_00016168;
    cVar10 = bc_is_zero(ex_stack->s_num);
    if (cVar10 == '\0') {
      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);
      goto LAB_0001656e;
    }
    mesg = "Modulo by zero";
    goto LAB_000168af;
  case '&':
    pc.pc_addr = uVar16;
    cVar10 = check_stack(2);
    if (cVar10 == '\0') goto LAB_00016168;
    cVar10 = bc_is_zero(ex_stack->s_next->s_num);
    local_3d = false;
    if (cVar10 == '\0') {
      cVar10 = bc_is_zero(ex_stack->s_num);
      local_3d = cVar10 == '\0';
    }
    c_code = local_3d;
    pop();
    assign(c_code);
    break;
  case '*':
    pc.pc_addr = uVar16;
    cVar10 = check_stack(2);
    if (cVar10 == '\0') goto LAB_00016168;
    bc_multiply(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);
LAB_0001642c:
    pop();
    pop();
    push_num(temp_num);
    bc_init_num(&temp_num);
    break;
  case '+':
    pc.pc_addr = uVar16;
    cVar10 = check_stack(2);
    if (cVar10 != '\0') {
      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);
      goto LAB_0001642c;
    }
    goto LAB_00016168;
  case '-':
    pc.pc_addr = uVar16;
    cVar10 = check_stack(2);
    if (cVar10 != '\0') {
      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);
LAB_0001656e:
      pop();
      pop();
      push_num(temp_num);
      bc_init_num(&temp_num);
      goto LAB_00016ba1;
    }
    goto LAB_00016168;
  case '/':
    pc.pc_addr = uVar16;
    cVar10 = check_stack(2);
    if (cVar10 == '\0') goto LAB_00016168;
    iVar13 = bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);
    if (iVar13 != 0) {
      rt_error("Divide by zero");
      goto LAB_00016ba1;
    }
    pop();
    pop();
    push_num(temp_num);
    bc_init_num(&temp_num);
    break;
  case '0':
    pc.pc_addr = uVar16;
    push_copy(_zero_);
    break;
  case '1':
    pc.pc_addr = uVar16;
    push_copy(_one_);
    break;
  case '<':
    pc.pc_addr = uVar16;
    cVar10 = check_stack(2);
    if (cVar10 == '\0') goto LAB_00016168;
    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);
    c_code = iVar13 == -1;
LAB_00016236:
    pop();
    assign(c_code);
    break;
  case '=':
    pc.pc_addr = uVar16;
    cVar10 = check_stack(2);
    if (cVar10 != '\0') {
      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);
      c_code = iVar13 == 0;
      goto LAB_00016236;
    }
    goto LAB_00016168;
  case '>':
    pc.pc_addr = uVar16;
    cVar10 = check_stack(2);
    if (cVar10 != '\0') {
      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);
      c_code = iVar13 == 1;
      goto LAB_00016236;
    }
    goto LAB_00016168;
  case 'A':
    uVar12 = (uint)(byte)local_4c[uVar16];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[uVar16] < '\0') {
      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    incr_array(uVar12);
    break;
  case 'B':
  case 'Z':
    pc.pc_addr = uVar16;
    cVar9 = bc_is_zero(ex_stack->s_num);
    c_code = cVar9 == '\0';
    pop();
    local_5c = functions;
    local_58 = functions + pc.pc_func;
    local_4c = local_58->f_body;
    iVar13 = pc.pc_addr + 1;
    cVar9 = local_4c[pc.pc_addr];
    pc.pc_addr = pc.pc_addr + 2;
    pbVar11 = (bc_function *)pc.pc_func;
    if (cVar10 == 'J') goto LAB_0001696a;
    if (cVar10 == 'B') {
      if (c_code != '\0') goto LAB_0001696a;
    }
    else if ((cVar10 == 'Z') && (c_code == '\0')) goto LAB_0001696a;
    local_54 = local_58->f_code_size;
    goto _L138;
  case 'C':
    local_58 = (bc_function *)(uint)(byte)local_4c[uVar16];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[uVar16] < '\0') {
      local_58 = (bc_function *)
                 ((uint)(byte)local_4c[pc.pc_addr + 2] + ((uint)local_58 & 0x7f) * 0x100);
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    if (local_5c[(int)local_58].f_defined == '\0') {
      mesg = "Function %s not defined.";
      goto LAB_000168af;
    }
    process_params(&pc,(int)local_58);
    for (paVar4 = functions[(int)local_58].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_58;
    local_5c = functions;
    local_54 = functions[(int)local_58].f_code_size;
    pbVar11 = local_58;
    goto _L138;
  case 'D':
    pc.pc_addr = uVar16;
    push_copy(ex_stack->s_num);
    break;
  case 'J':
    iVar13 = pc.pc_addr + 2;
    cVar9 = local_4c[uVar16];
    pc.pc_addr = pc.pc_addr + 3;
LAB_0001696a:
    uVar16 = (uint)(ushort)(CONCAT11(local_4c[iVar13],cVar9) >> 6);
    pbVar15 = local_58->f_label;
    iVar14 = uVar16 - 1;
    if (uVar16 != 0) {
      do {
        iVar14 = iVar14 + -1;
        pbVar15 = pbVar15->l_next;
      } while (iVar14 != -1);
    }
    if (pbVar15 == (bc_label_group *)0x0) {
      mesg = "Internal error.";
      goto LAB_000168af;
    }
    pc.pc_addr = pbVar15->l_adrs[CONCAT11(local_4c[iVar13],cVar9) & 0x3f];
    local_54 = local_58->f_code_size;
    goto _L138;
  case 'K':
    iVar13 = i_base;
    if (pbVar11 != (bc_function *)0x0) {
      iVar13 = fn_stack->s_val;
    }
    if (iVar13 == 10) {
      pc.pc_addr = uVar16;
      push_b10_const(&pc);
      goto LAB_00016ba1;
    }
    pc.pc_addr = uVar16;
    push_constant(prog_char,iVar13);
    break;
  case 'L':
    uVar12 = (uint)(byte)local_4c[uVar16];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[uVar16] < '\0') {
      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    load_array(uVar12);
    break;
  case 'M':
    uVar12 = (uint)(byte)local_4c[uVar16];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[uVar16] < '\0') {
      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    decr_array(uVar12);
    break;
  case 'O':
    pc.pc_addr = uVar16;
_L160:
    uVar16 = pc.pc_addr + 1;
    bVar2 = local_4c[pc.pc_addr];
    uVar12 = (uint)bVar2;
    uVar8 = uVar16;
    if (bVar2 != 0x22) {
      if (bVar2 != 0x5c) goto LAB_00016844;
      pc.pc_addr = pc.pc_addr + 2;
      uVar8 = pc.pc_addr;
      if (local_4c[uVar16] != '\"') goto code_r0x0001688b;
    }
    pc.pc_addr = uVar8;
    fflush(*(FILE **)puVar6);
    checkferror_output(*(FILE **)puVar6);
    break;
  case 'P':
  case 'W':
    pc.pc_addr = uVar16;
    bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_00028ffc,std_only);
    if (cVar10 == 'W') {
      out_char(10);
    }
    store_var(4);
    puVar7 = PTR_stdout_00028fec;
    fflush(*(FILE **)PTR_stdout_00028fec);
    checkferror_output(*(FILE **)puVar7);
    pop();
    break;
  case 'R':
    if (pbVar11 != (bc_function *)0x0) {
      pc.pc_addr = uVar16;
      pop_vars(local_58->f_autos);
      pop_vars(functions[pc.pc_func].f_params);
      fpop();
      pc.pc_addr = fpop();
      pbVar11 = (bc_function *)fpop();
      local_5c = functions;
      local_54 = functions[(int)pbVar11].f_code_size;
      pc.pc_func = (uint)pbVar11;
      goto _L138;
    }
    mesg = "Return from main program.";
    pc.pc_addr = uVar16;
LAB_000168af:
    rt_error(mesg);
    break;
  case 'S':
    uVar12 = (uint)(byte)local_4c[uVar16];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[uVar16] < '\0') {
      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    store_array(uVar12);
    break;
  case '^':
    pc.pc_addr = uVar16;
    cVar10 = check_stack(2);
    if (cVar10 != '\0') {
      bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);
      cVar10 = bc_is_zero(ex_stack->s_next->s_num);
      if ((cVar10 != '\0') && (cVar10 = bc_is_neg(ex_stack->s_num), cVar10 != '\0')) {
        rt_error("divide by zero");
      }
      pop();
      pop();
      push_num(temp_num);
      bc_init_num(&temp_num);
      goto LAB_00016ba1;
    }
    goto LAB_000160a5;
  case 'c':
    goto _L153;
  case 'd':
    uVar12 = (uint)(byte)local_4c[uVar16];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[uVar16] < '\0') {
      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    decr_var(uVar12);
    break;
  case 'h':
    pc.pc_addr = uVar16;
    bc_exit(0);
    break;
  case 'i':
    uVar12 = (uint)(byte)local_4c[uVar16];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[uVar16] < '\0') {
      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    incr_var(uVar12);
    break;
  case 'l':
    uVar12 = (uint)(byte)local_4c[uVar16];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[uVar16] < '\0') {
      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    load_var(uVar12);
    break;
  case 'n':
    pc.pc_addr = uVar16;
    bc_sub(_zero_,ex_stack->s_num,&ex_stack->s_num,0);
    break;
  case 'p':
    pc.pc_addr = uVar16;
    pop();
    goto LAB_00016168;
  case 's':
    uVar12 = (uint)(byte)local_4c[uVar16];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[uVar16] < '\0') {
      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    store_var(uVar12);
    break;
  case 'w':
    bVar2 = local_4c[uVar16];
    pc.pc_addr = pc.pc_addr + 2;
    puVar5 = (undefined4 *)PTR_stdout_00028fec;
    while (PTR_stdout_00028fec = (undefined *)puVar5, bVar2 != 0x22) {
      out_schar((uint)bVar2);
      bVar2 = functions[pc.pc_func].f_body[pc.pc_addr];
      pc.pc_addr = pc.pc_addr + 1;
      puVar5 = (undefined4 *)PTR_stdout_00028fec;
    }
    fflush((FILE *)*puVar5);
    checkferror_output((FILE *)*puVar5);
    break;
  case 'x':
    pc.pc_addr = uVar16;
    cVar10 = check_stack(2);
    if (cVar10 != '\0') {
      ppeVar1 = &ex_stack->s_next;
      pbVar3 = ex_stack->s_num;
      ex_stack->s_num = (*ppeVar1)->s_num;
      (*ppeVar1)->s_num = pbVar3;
      goto LAB_00016168;
    }
    goto LAB_000160a5;
  case '{':
    pc.pc_addr = uVar16;
    cVar10 = check_stack(2);
    if (cVar10 != '\0') {
      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);
      c_code = iVar13 < 1;
      pop();
      goto LAB_00016b9c;
    }
    goto LAB_000160a5;
  case '|':
    pc.pc_addr = uVar16;
    cVar10 = check_stack(2);
    if (cVar10 != '\0') {
      cVar10 = bc_is_zero(ex_stack->s_next->s_num);
      bVar17 = true;
      if (cVar10 != '\0') {
        cVar10 = bc_is_zero(ex_stack->s_num);
        bVar17 = cVar10 == '\0';
      }
      c_code = bVar17;
      pop();
      goto LAB_00016b9c;
    }
LAB_00016168:
    local_5c = functions;
    local_54 = functions[pc.pc_func].f_code_size;
    pbVar11 = (bc_function *)pc.pc_func;
    goto _L138;
  case '}':
    pc.pc_addr = uVar16;
    cVar10 = check_stack(2);
    if (cVar10 != '\0') {
      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);
      c_code = (byte)~(byte)((uint)iVar13 >> 0x18) >> 7;
      pop();
      goto LAB_00016b9c;
    }
    goto LAB_000160a5;
  }
  goto LAB_00015f30;
_L153:
  pc.pc_addr = pc.pc_addr + 2;
  switch(local_4c[uVar16]) {
  case 'I':
    push_constant(input_char,i_base);
    break;
  default:
    goto _L138;
  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_000160a5:
      local_5c = functions;
      local_54 = functions[pc.pc_func].f_code_size;
      pbVar11 = (bc_function *)pc.pc_func;
      goto _L138;
    }
    rt_error("Square root of a negative number");
    goto LAB_00016ba1;
  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_00016ba1:
    local_5c = functions;
    local_54 = functions[pc.pc_func].f_code_size;
    pbVar11 = (bc_function *)pc.pc_func;
    goto _L138;
  }
LAB_00015f30:
  local_5c = functions;
  local_54 = functions[pc.pc_func].f_code_size;
  pbVar11 = (bc_function *)pc.pc_func;
  goto _L138;
code_r0x0001688b:
  switch(local_4c[uVar16]) {
  case '\\':
    uVar12 = 0x5c;
    uVar16 = pc.pc_addr;
    break;
  default:
    goto _L160;
  case 'a':
    uVar12 = 7;
    uVar16 = pc.pc_addr;
    break;
  case 'b':
    uVar12 = 8;
    uVar16 = pc.pc_addr;
    break;
  case 'f':
    uVar12 = 0xc;
    uVar16 = pc.pc_addr;
    break;
  case 'n':
    uVar12 = 10;
    uVar16 = pc.pc_addr;
    break;
  case 'q':
    uVar12 = 0x22;
    uVar16 = pc.pc_addr;
    break;
  case 'r':
    uVar12 = 0xd;
    uVar16 = pc.pc_addr;
    break;
  case 't':
    uVar12 = 9;
    uVar16 = pc.pc_addr;
  }
LAB_00016844:
  pc.pc_addr = uVar16;
  out_schar(uVar12);
  local_4c = functions[pc.pc_func].f_body;
  goto _L160;
}



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

void FUN_00015d50(void)

{
  int *piVar1;
  undefined1 uVar2;
  undefined4 *puVar3;
  ushort uVar4;
  undefined *puVar5;
  undefined *puVar6;
  char cVar7;
  char cVar8;
  uint uVar9;
  uint uVar10;
  byte extraout_var;
  char *pcVar11;
  int iVar12;
  undefined4 uVar13;
  int iVar14;
  uint uVar15;
  int in_GS_OFFSET;
  bool bVar16;
  int local_5c;
  uint local_58;
  uint local_54;
  int local_4c;
  bool local_3d;
  undefined4 local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x15d59;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  DAT_0002928c = '\0';
  DAT_000292ac = 0;
  DAT_000292b0 = 0;
  FUN_0001aaa0(&local_24);
  if (DAT_000291fc != '\0') {
    signal(2,FUN_000155b0);
  }
  puVar5 = PTR_stdout_00028fec;
  DAT_00029220 = 0;
  local_5c = DAT_00029278;
  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);
  uVar9 = DAT_000292ac;
LAB_00015e08:
  local_58 = uVar9 * 0x1c + local_5c;
  if (((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0)) {
    if (uVar9 != 0) {
      do {
        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));
        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));
        FUN_00017ca0();
        DAT_000292b0 = FUN_00017ca0();
        uVar9 = FUN_00017ca0();
        local_5c = DAT_00029278;
        DAT_000292ac = uVar9;
      } while (uVar9 != 0);
      DAT_000292ac = 0;
    }
    while (DAT_000292bc != (int *)0x0) {
      FUN_00017d30();
    }
    if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {
      puts("\ninterrupted execution.");
      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);
    }
    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
      FUN_0001d3e0();
    }
    return;
  }
  uVar15 = DAT_000292b0 + 1;
  local_4c = *(int *)(local_58 + 4);
  cVar8 = *(char *)(local_4c + DAT_000292b0);
  switch(cVar8) {
  case '!':
  case 'T':
    DAT_000292b0 = uVar15;
    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);
    FUN_00015ce0(DAT_00029294);
    break;
  default:
    pcVar11 = "bad instruction: inst=%c";
    DAT_000292b0 = uVar15;
    goto code_r0x000168af;
  case '#':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 == '\0') goto code_r0x000160a5;
    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);
    DAT_00029294 = iVar12 != 0;
    FUN_00017d30();
code_r0x00016b9c:
    FUN_00015ce0(DAT_00029294);
    goto code_r0x00016ba1;
  case '%':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 == '\0') goto code_r0x00016168;
    cVar8 = FUN_0001ab00(*DAT_000292bc);
    if (cVar8 == '\0') {
      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);
      goto code_r0x0001656e;
    }
    pcVar11 = "Modulo by zero";
    goto code_r0x000168af;
  case '&':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 == '\0') goto code_r0x00016168;
    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);
    local_3d = false;
    if (cVar8 == '\0') {
      cVar8 = FUN_0001ab00(*DAT_000292bc);
      local_3d = cVar8 == '\0';
    }
    DAT_00029294 = local_3d;
    FUN_00017d30();
    FUN_00015ce0(DAT_00029294);
    break;
  case '*':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 == '\0') goto code_r0x00016168;
    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);
code_r0x0001642c:
    FUN_00017d30();
    FUN_00017d30();
    FUN_00017db0(local_24);
    FUN_0001aaa0(&local_24);
    break;
  case '+':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);
      goto code_r0x0001642c;
    }
    goto code_r0x00016168;
  case '-':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);
code_r0x0001656e:
      FUN_00017d30();
      FUN_00017d30();
      FUN_00017db0(local_24);
      FUN_0001aaa0(&local_24);
      goto code_r0x00016ba1;
    }
    goto code_r0x00016168;
  case '/':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 == '\0') goto code_r0x00016168;
    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);
    if (iVar12 != 0) {
      FUN_00019f10("Divide by zero");
      goto code_r0x00016ba1;
    }
    FUN_00017d30();
    FUN_00017d30();
    FUN_00017db0(local_24);
    FUN_0001aaa0(&local_24);
    break;
  case '0':
    DAT_000292b0 = uVar15;
    FUN_00017d70(DAT_000292c8);
    break;
  case '1':
    DAT_000292b0 = uVar15;
    FUN_00017d70(DAT_000292c0);
    break;
  case '<':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 == '\0') goto code_r0x00016168;
    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);
    DAT_00029294 = iVar12 == -1;
code_r0x00016236:
    FUN_00017d30();
    FUN_00015ce0(DAT_00029294);
    break;
  case '=':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);
      DAT_00029294 = iVar12 == 0;
      goto code_r0x00016236;
    }
    goto code_r0x00016168;
  case '>':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);
      DAT_00029294 = iVar12 == 1;
      goto code_r0x00016236;
    }
    goto code_r0x00016168;
  case 'A':
    uVar10 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    FUN_000189d0(uVar10);
    break;
  case 'B':
  case 'Z':
    DAT_000292b0 = uVar15;
    cVar7 = FUN_0001ab00(*DAT_000292bc);
    DAT_00029294 = cVar7 == '\0';
    FUN_00017d30();
    local_5c = DAT_00029278;
    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;
    local_4c = *(int *)(local_58 + 4);
    iVar12 = DAT_000292b0 + 1;
    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);
    DAT_000292b0 = DAT_000292b0 + 2;
    uVar9 = DAT_000292ac;
    if (cVar8 == 'J') goto code_r0x0001696a;
    if (cVar8 == 'B') {
      if (DAT_00029294 != 0) goto code_r0x0001696a;
    }
    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;
    local_54 = *(uint *)(local_58 + 0xc);
    goto LAB_00015e08;
  case 'C':
    local_58 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    iVar12 = local_58 * 0x1c;
    if (*(char *)(local_5c + iVar12) == '\0') {
      pcVar11 = "Function %s not defined.";
      goto code_r0x000168af;
    }
    FUN_00018c90(&DAT_000292ac,local_58);
    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;
        puVar3 = (undefined4 *)puVar3[2]) {
      FUN_00018a90(*puVar3);
    }
    FUN_00017d00(DAT_000292ac);
    FUN_00017d00(DAT_000292b0);
    FUN_00017d00(DAT_000292a4);
    DAT_000292b0 = 0;
    DAT_000292ac = local_58;
    local_5c = DAT_00029278;
    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);
    uVar9 = local_58;
    goto LAB_00015e08;
  case 'D':
    DAT_000292b0 = uVar15;
    FUN_00017d70(*DAT_000292bc);
    break;
  case 'J':
    iVar12 = DAT_000292b0 + 2;
    uVar2 = *(undefined1 *)(local_4c + uVar15);
    DAT_000292b0 = DAT_000292b0 + 3;
code_r0x0001696a:
    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);
    uVar15 = (uint)(uVar4 >> 6);
    iVar14 = *(int *)(local_58 + 0x10);
    iVar12 = uVar15 - 1;
    if (uVar15 != 0) {
      do {
        iVar12 = iVar12 + -1;
        iVar14 = *(int *)(iVar14 + 0x100);
      } while (iVar12 != -1);
    }
    if (iVar14 == 0) {
      pcVar11 = "Internal error.";
      goto code_r0x000168af;
    }
    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);
    local_54 = *(uint *)(local_58 + 0xc);
    goto LAB_00015e08;
  case 'K':
    iVar12 = DAT_000292a4;
    if (uVar9 != 0) {
      iVar12 = *DAT_00029250;
    }
    if (iVar12 == 10) {
      DAT_000292b0 = uVar15;
      FUN_00015a60(&DAT_000292ac);
      goto code_r0x00016ba1;
    }
    DAT_000292b0 = uVar15;
    FUN_00015720(FUN_000155d0,iVar12);
    break;
  case 'L':
    uVar10 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    FUN_000185f0(uVar10);
    break;
  case 'M':
    uVar10 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    FUN_000187e0(uVar10);
    break;
  case 'O':
    DAT_000292b0 = uVar15;
code_r0x0001685c:
    uVar9 = DAT_000292b0 + 1;
    cVar8 = *(char *)(local_4c + DAT_000292b0);
    uVar15 = uVar9;
    if (cVar8 != '\"') {
      if (cVar8 != '\\') goto code_r0x00016844;
      DAT_000292b0 = DAT_000292b0 + 2;
      uVar15 = DAT_000292b0;
      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;
    }
    DAT_000292b0 = uVar15;
    fflush(*(FILE **)puVar5);
    FUN_0001d320(*(undefined4 *)puVar5);
    break;
  case 'P':
  case 'W':
    DAT_000292b0 = uVar15;
    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);
    if (cVar8 == 'W') {
      FUN_00018f50(10);
    }
    FUN_000180f0(4);
    puVar6 = PTR_stdout_00028fec;
    fflush(*(FILE **)PTR_stdout_00028fec);
    FUN_0001d320(*(undefined4 *)puVar6);
    FUN_00017d30();
    break;
  case 'R':
    if (uVar9 != 0) {
      DAT_000292b0 = uVar15;
      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));
      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));
      FUN_00017ca0();
      DAT_000292b0 = FUN_00017ca0();
      uVar9 = FUN_00017ca0();
      local_5c = DAT_00029278;
      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);
      DAT_000292ac = uVar9;
      goto LAB_00015e08;
    }
    pcVar11 = "Return from main program.";
    DAT_000292b0 = uVar15;
code_r0x000168af:
    FUN_00019f10(pcVar11);
    break;
  case 'S':
    uVar10 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    FUN_00018420(uVar10);
    break;
  case '^':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);
      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);
      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {
        FUN_00019f10("divide by zero");
      }
      FUN_00017d30();
      FUN_00017d30();
      FUN_00017db0(local_24);
      FUN_0001aaa0(&local_24);
      goto code_r0x00016ba1;
    }
    goto code_r0x000160a5;
  case 'c':
    goto code_r0x00016658;
  case 'd':
    uVar10 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    FUN_000186b0(uVar10);
    break;
  case 'h':
    DAT_000292b0 = uVar15;
    FUN_0001a000(0);
    break;
  case 'i':
    uVar10 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    FUN_000188a0(uVar10);
    break;
  case 'l':
    uVar10 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    FUN_00018500(uVar10);
    break;
  case 'n':
    DAT_000292b0 = uVar15;
    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);
    break;
  case 'p':
    DAT_000292b0 = uVar15;
    FUN_00017d30();
    goto code_r0x00016168;
  case 's':
    uVar10 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    FUN_000180f0(uVar10);
    break;
  case 'w':
    cVar8 = *(char *)(local_4c + uVar15);
    DAT_000292b0 = DAT_000292b0 + 2;
    puVar3 = (undefined4 *)PTR_stdout_00028fec;
    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {
      FUN_00019000(cVar8);
      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);
      DAT_000292b0 = DAT_000292b0 + 1;
      puVar3 = (undefined4 *)PTR_stdout_00028fec;
    }
    fflush((FILE *)*puVar3);
    FUN_0001d320(*puVar3);
    break;
  case 'x':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      piVar1 = DAT_000292bc + 1;
      iVar12 = *DAT_000292bc;
      *DAT_000292bc = *(int *)*piVar1;
      *(int *)*piVar1 = iVar12;
      goto code_r0x00016168;
    }
    goto code_r0x000160a5;
  case '{':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);
      DAT_00029294 = iVar12 < 1;
      FUN_00017d30();
      goto code_r0x00016b9c;
    }
    goto code_r0x000160a5;
  case '|':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);
      bVar16 = true;
      if (cVar8 != '\0') {
        cVar8 = FUN_0001ab00(*DAT_000292bc);
        bVar16 = cVar8 == '\0';
      }
      DAT_00029294 = bVar16;
      FUN_00017d30();
      goto code_r0x00016b9c;
    }
code_r0x00016168:
    local_5c = DAT_00029278;
    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);
    uVar9 = DAT_000292ac;
    goto LAB_00015e08;
  case '}':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);
      DAT_00029294 = (byte)~extraout_var >> 7;
      FUN_00017d30();
      goto code_r0x00016b9c;
    }
    goto code_r0x000160a5;
  }
  goto LAB_00015f30;
code_r0x00016658:
  DAT_000292b0 = DAT_000292b0 + 2;
  switch(*(undefined1 *)(local_4c + uVar15)) {
  case 0x49:
    FUN_00015720(FUN_00015600,DAT_000292a4);
    break;
  default:
    goto LAB_00015e08;
  case 0x4c:
    iVar12 = *DAT_000292bc;
    iVar14 = *(int *)(iVar12 + 8);
    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {
      FUN_0001c5a0(DAT_000292bc,iVar14);
    }
    else {
      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);
    }
    break;
  case 0x52:
    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);
    if (iVar12 != 0) {
code_r0x000160a5:
      local_5c = DAT_00029278;
      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);
      uVar9 = DAT_000292ac;
      goto LAB_00015e08;
    }
    FUN_00019f10("Square root of a negative number");
    goto code_r0x00016ba1;
  case 0x53:
    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));
    break;
  case 0x58:
    FUN_00017d70(DAT_000292c8);
    uVar13 = func_0x000112e0();
    FUN_0001c5a0(DAT_000292bc,uVar13);
code_r0x00016ba1:
    local_5c = DAT_00029278;
    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);
    uVar9 = DAT_000292ac;
    goto LAB_00015e08;
  }
LAB_00015f30:
  local_5c = DAT_00029278;
  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);
  uVar9 = DAT_000292ac;
  goto LAB_00015e08;
code_r0x0001688b:
  switch(*(char *)(local_4c + uVar9)) {
  case '\\':
    cVar8 = '\\';
    uVar9 = DAT_000292b0;
    break;
  default:
    goto code_r0x0001685c;
  case 'a':
    cVar8 = '\a';
    uVar9 = DAT_000292b0;
    break;
  case 'b':
    cVar8 = '\b';
    uVar9 = DAT_000292b0;
    break;
  case 'f':
    cVar8 = '\f';
    uVar9 = DAT_000292b0;
    break;
  case 'n':
    cVar8 = '\n';
    uVar9 = DAT_000292b0;
    break;
  case 'q':
    cVar8 = '\"';
    uVar9 = DAT_000292b0;
    break;
  case 'r':
    cVar8 = '\r';
    uVar9 = DAT_000292b0;
    break;
  case 't':
    cVar8 = '\t';
    uVar9 = DAT_000292b0;
  }
code_r0x00016844:
  DAT_000292b0 = uVar9;
  FUN_00019000(cVar8);
  local_4c = *(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4);
  goto code_r0x0001685c;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00011650
ADD EBX,0x131ab
SUB ESP,0x68
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x58],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 + 0x54]
MOV dword ptr [ESP + 0x40],EAX
PUSH EAX
MOV dword ptr [EBP],0x0
MOV dword ptr [EBP + 0x4],0x0
CALL 0x0001aaa0
LEA EAX,[EBX + 0x2f8]
MOV dword ptr [ESP + 0x40],EAX
ADD ESP,0x10
CMP byte ptr [EAX],0x0
JNZ 0x00016910
LEA EAX,[EBX + 0x31c]
MOV ESI,dword ptr [EBP]
MOV ECX,dword ptr [EBP + 0x4]
MOV dword ptr [EAX],0x0
MOV dword ptr [ESP + 0x28],EAX
LEA EAX,[EBX + 0x374]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [EAX]
MOV EDI,EAX
MOV dword ptr [ESP + 0x10],EAX
IMUL EAX,ESI,0x1c
MOV EAX,dword ptr [EDI + EAX*0x1 + 0xc]
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0x3b8]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [EBX + 0xe8]
MOV dword ptr [ESP + 0x38],EAX
LEA EAX,[EBX + 0x390]
MOV dword ptr [ESP + 0x3c],EAX
LEA ESI,[ESI]
IMUL EDX,ESI,0x1c
ADD EDX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x14],EDX
CMP ECX,dword ptr [ESP + 0x18]
JNC 0x00015e68
MOV EAX,dword ptr [ESP + 0x24]
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [ESP + 0x2f],AL
TEST AL,AL
JNZ 0x00015e68
MOV EAX,dword ptr [ESP + 0x28]
MOV EDI,dword ptr [EAX]
TEST EDI,EDI
JNZ 0x00015e68
MOV EAX,dword ptr [ESP + 0x14]
LEA EDI,[ECX + 0x1]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [EBP + 0x4],EDI
MOV dword ptr [ESP + 0x20],EAX
MOVZX EAX,byte ptr [EAX + ECX*0x1]
MOV byte ptr [ESP + 0x2e],AL
SUB EAX,0x21
CMP AL,0x5c
JA 0x000168a0
MOVZX EAX,AL
MOV EDX,dword ptr [EBX + EAX*0x4 + 0xffff861c]
ADD EDX,EBX
JMP EDX
MOV EAX,ESI
MOV EDX,dword ptr [ESP + 0x10]
TEST ESI,ESI
JNZ 0x00015e7e
JMP 0x00015ed5
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 0x00018bc0
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 0x00018bc0
CALL 0x00017ca0
CALL 0x00017ca0
MOV dword ptr [EBP + 0x4],EAX
CALL 0x00017ca0
ADD ESP,0x10
MOV dword ptr [EBP],EAX
TEST EAX,EAX
JNZ 0x00015e78
MOV EAX,dword ptr [ESP + 0x1c]
MOV ECX,dword ptr [EAX]
TEST ECX,ECX
JZ 0x00015edf
LEA ESI,[ESI]
LEA ESI,[ESI]
CALL 0x00017d30
MOV EAX,dword ptr [ESP + 0x1c]
MOV ECX,dword ptr [EAX]
TEST ECX,ECX
JNZ 0x00015ed0
MOV EAX,dword ptr [ESP + 0x30]
CMP byte ptr [EAX],0x0
JNZ 0x000168c0
MOV EAX,dword ptr [ESP + 0x4c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x00016e0f
ADD ESP,0x5c
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 EAX,dword ptr [EAX]
MOV EDI,EAX
MOV dword ptr [ESP + 0x20],EAX
IMUL EAX,ESI,0x1c
MOV EAX,dword ptr [EDI + EAX*0x1 + 0xc]
MOV dword ptr [ESP + 0x28],EAX
ADD ESP,0x10
JMP 0x00015e08
SUB ESP,0x8
LEA EAX,[EBX + 0xffff85c4]
MOVZX ECX,byte ptr [ESP + 0x36]
PUSH ECX
PUSH EAX
CALL 0x00019f10
JMP 0x00015f30
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 0x00015eec
SUB ESP,0xc
LEA EAX,[EBX + 0xffff85dd]
PUSH EAX
CALL 0x00011190
POP EAX
MOV EAX,dword ptr [EBX + 0xe8]
PUSH dword ptr [EAX]
CALL 0x0001d320
ADD ESP,0x10
JMP 0x00015eec
SUB ESP,0x8
LEA EAX,[EBX + 0xfffec6ac]
PUSH EAX
PUSH 0x2
CALL 0x00011100
ADD ESP,0x10
JMP 0x00015db3
CALL 0x0001d3e0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00015d50(void)\n\n{\n  int *piVar1;\n  undefined1 uVar2;\n  undefined4 *puVar3;\n  ushort uVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char cVar7;\n  char cVar8;\n  uint uVar9;\n  uint uVar10;\n  byte extraout_var;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  uint uVar15;\n  int in_GS_OFFSET;\n  bool bVar16;\n  int local_5c;\n  uint local_58;\n  uint local_54;\n  int local_4c;\n  bool local_3d;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x15d59;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  DAT_0002928c = '\0';\n  DAT_000292ac = 0;\n  DAT_000292b0 = 0;\n  FUN_0001aaa0(&local_24);\n  if (DAT_000291fc != '\0') {\n    signal(2,FUN_000155b0);\n  }\n  puVar5 = PTR_stdout_00028fec;\n  DAT_00029220 = 0;\n  local_5c = DAT_00029278;\n  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n  uVar9 = DAT_000292ac;\nLAB_00015e08:\n  local_58 = uVar9 * 0x1c + local_5c;\n  if (((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0)) {\n    if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }\n    while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }\n    if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0001d3e0();\n    }\n    return;\n  }\n  uVar15 = DAT_000292b0 + 1;\n  local_4c = *(int *)(local_58 + 4);\n  cVar8 = *(char *)(local_4c + DAT_000292b0);\n  switch(cVar8) {\n  case '!':\n  case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;\n  case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;\n  case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;\n  case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;\n  case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;\n  case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;\n  case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;\n  case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;\n  case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;\n  case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;\n  case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    DAT_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;\n  case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;\n  case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;\n  case 'c':\n    goto code_r0x00016658;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;\n  case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;\n  case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;\n  case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;\n  case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;\n  case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;\n  case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  }\n  goto LAB_00015f30;\ncode_r0x00016658:\n  DAT_000292b0 = DAT_000292b0 + 2;\n  switch(*(undefined1 *)(local_4c + uVar15)) {\n  case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;\n  default:\n    goto LAB_00015e08;\n  case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;\n  case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;\n  case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;\n  case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  }\nLAB_00015f30:\n  local_5c = DAT_00029278;\n  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n  uVar9 = DAT_000292ac;\n  goto LAB_00015e08;\ncode_r0x0001688b:\n  switch(*(char *)(local_4c + uVar9)) {\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }\ncode_r0x00016844:\n  DAT_000292b0 = uVar9;\n  FUN_00019000(cVar8);\n  local_4c = *(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4);\n  goto code_r0x0001685c;\n}\n\n" comment (function_definition "void FUN_00015d50(void)\n\n{\n  int *piVar1;\n  undefined1 uVar2;\n  undefined4 *puVar3;\n  ushort uVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char cVar7;\n  char cVar8;\n  uint uVar9;\n  uint uVar10;\n  byte extraout_var;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  uint uVar15;\n  int in_GS_OFFSET;\n  bool bVar16;\n  int local_5c;\n  uint local_58;\n  uint local_54;\n  int local_4c;\n  bool local_3d;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x15d59;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  DAT_0002928c = '\0';\n  DAT_000292ac = 0;\n  DAT_000292b0 = 0;\n  FUN_0001aaa0(&local_24);\n  if (DAT_000291fc != '\0') {\n    signal(2,FUN_000155b0);\n  }\n  puVar5 = PTR_stdout_00028fec;\n  DAT_00029220 = 0;\n  local_5c = DAT_00029278;\n  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n  uVar9 = DAT_000292ac;\nLAB_00015e08:\n  local_58 = uVar9 * 0x1c + local_5c;\n  if (((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0)) {\n    if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }\n    while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }\n    if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0001d3e0();\n    }\n    return;\n  }\n  uVar15 = DAT_000292b0 + 1;\n  local_4c = *(int *)(local_58 + 4);\n  cVar8 = *(char *)(local_4c + DAT_000292b0);\n  switch(cVar8) {\n  case '!':\n  case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;\n  case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;\n  case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;\n  case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;\n  case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;\n  case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;\n  case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;\n  case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;\n  case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;\n  case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;\n  case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    DAT_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;\n  case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;\n  case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;\n  case 'c':\n    goto code_r0x00016658;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;\n  case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;\n  case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;\n  case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;\n  case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;\n  case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;\n  case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  }\n  goto LAB_00015f30;\ncode_r0x00016658:\n  DAT_000292b0 = DAT_000292b0 + 2;\n  switch(*(undefined1 *)(local_4c + uVar15)) {\n  case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;\n  default:\n    goto LAB_00015e08;\n  case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;\n  case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;\n  case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;\n  case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  }\nLAB_00015f30:\n  local_5c = DAT_00029278;\n  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n  uVar9 = DAT_000292ac;\n  goto LAB_00015e08;\ncode_r0x0001688b:\n  switch(*(char *)(local_4c + uVar9)) {\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }\ncode_r0x00016844:\n  DAT_000292b0 = uVar9;\n  FUN_00019000(cVar8);\n  local_4c = *(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4);\n  goto code_r0x0001685c;\n}" primitive_type (function_declarator "FUN_00015d50(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  undefined1 uVar2;\n  undefined4 *puVar3;\n  ushort uVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char cVar7;\n  char cVar8;\n  uint uVar9;\n  uint uVar10;\n  byte extraout_var;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  uint uVar15;\n  int in_GS_OFFSET;\n  bool bVar16;\n  int local_5c;\n  uint local_58;\n  uint local_54;\n  int local_4c;\n  bool local_3d;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x15d59;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  DAT_0002928c = '\0';\n  DAT_000292ac = 0;\n  DAT_000292b0 = 0;\n  FUN_0001aaa0(&local_24);\n  if (DAT_000291fc != '\0') {\n    signal(2,FUN_000155b0);\n  }\n  puVar5 = PTR_stdout_00028fec;\n  DAT_00029220 = 0;\n  local_5c = DAT_00029278;\n  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n  uVar9 = DAT_000292ac;\nLAB_00015e08:\n  local_58 = uVar9 * 0x1c + local_5c;\n  if (((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0)) {\n    if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }\n    while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }\n    if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0001d3e0();\n    }\n    return;\n  }\n  uVar15 = DAT_000292b0 + 1;\n  local_4c = *(int *)(local_58 + 4);\n  cVar8 = *(char *)(local_4c + DAT_000292b0);\n  switch(cVar8) {\n  case '!':\n  case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;\n  case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;\n  case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;\n  case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;\n  case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;\n  case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;\n  case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;\n  case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;\n  case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;\n  case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;\n  case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    DAT_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;\n  case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;\n  case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;\n  case 'c':\n    goto code_r0x00016658;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;\n  case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;\n  case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;\n  case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;\n  case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;\n  case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;\n  case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  }\n  goto LAB_00015f30;\ncode_r0x00016658:\n  DAT_000292b0 = DAT_000292b0 + 2;\n  switch(*(undefined1 *)(local_4c + uVar15)) {\n  case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;\n  default:\n    goto LAB_00015e08;\n  case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;\n  case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;\n  case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;\n  case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  }\nLAB_00015f30:\n  local_5c = DAT_00029278;\n  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n  uVar9 = DAT_000292ac;\n  goto LAB_00015e08;\ncode_r0x0001688b:\n  switch(*(char *)(local_4c + uVar9)) {\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }\ncode_r0x00016844:\n  DAT_000292b0 = uVar9;\n  FUN_00019000(cVar8);\n  local_4c = *(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4);\n  goto code_r0x0001685c;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "ushort uVar4;" type_identifier identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier 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 "uint uVar15;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "bool local_3d;" primitive_type identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x15d59;" (assignment_expression "uStack_14 = 0x15d59" 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_0002928c = '\0';" (assignment_expression "DAT_0002928c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "DAT_000292ac = 0;" (assignment_expression "DAT_000292ac = 0" identifier = number_literal) ;) (expression_statement "DAT_000292b0 = 0;" (assignment_expression "DAT_000292b0 = 0" identifier = number_literal) ;) (expression_statement "FUN_0001aaa0(&local_24);" (call_expression "FUN_0001aaa0(&local_24)" identifier (argument_list "(&local_24)" ( (pointer_expression "&local_24" & identifier) ))) ;) (if_statement "if (DAT_000291fc != '\0') {\n    signal(2,FUN_000155b0);\n  }" if (parenthesized_expression "(DAT_000291fc != '\0')" ( (binary_expression "DAT_000291fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    signal(2,FUN_000155b0);\n  }" { (expression_statement "signal(2,FUN_000155b0);" (call_expression "signal(2,FUN_000155b0)" identifier (argument_list "(2,FUN_000155b0)" ( number_literal , identifier ))) ;) })) (expression_statement "puVar5 = PTR_stdout_00028fec;" (assignment_expression "puVar5 = PTR_stdout_00028fec" identifier = identifier) ;) (expression_statement "DAT_00029220 = 0;" (assignment_expression "DAT_00029220 = 0" identifier = number_literal) ;) (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" identifier = (pointer_expression "*(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" * (cast_expression "(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (binary_expression "DAT_00029278 + 0xc + DAT_000292ac * 0x1c" (binary_expression "DAT_00029278 + 0xc" identifier + number_literal) + (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal)) ))))) ;) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" identifier = identifier) ;) (labeled_statement "LAB_00015e08:\n  local_58 = uVar9 * 0x1c + local_5c;" statement_identifier : (expression_statement "local_58 = uVar9 * 0x1c + local_5c;" (assignment_expression "local_58 = uVar9 * 0x1c + local_5c" identifier = (binary_expression "uVar9 * 0x1c + local_5c" (binary_expression "uVar9 * 0x1c" identifier * number_literal) + identifier)) ;)) (if_statement "if (((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0)) {\n    if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }\n    while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }\n    if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0001d3e0();\n    }\n    return;\n  }" if (parenthesized_expression "(((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0))" ( (binary_expression "((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0)" (parenthesized_expression "((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0'))" ( (binary_expression "(local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')" (parenthesized_expression "(local_54 <= DAT_000292b0)" ( (binary_expression "local_54 <= DAT_000292b0" identifier <= identifier) )) || (parenthesized_expression "(DAT_0002928c != '\0')" ( (binary_expression "DAT_0002928c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(DAT_00029220 != 0)" ( (binary_expression "DAT_00029220 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }\n    while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }\n    if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0001d3e0();\n    }\n    return;\n  }" { (if_statement "if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }" { (do_statement "do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);" do (compound_statement "{\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      }" { (expression_statement "FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));" (call_expression "FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c))" identifier (argument_list "(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c))" ( (pointer_expression "*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c)" * (cast_expression "(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c + 0x18 + uVar9 * 0x1c)" ( (binary_expression "local_5c + 0x18 + uVar9 * 0x1c" (binary_expression "local_5c + 0x18" identifier + number_literal) + (binary_expression "uVar9 * 0x1c" identifier * number_literal)) )))) ))) ;) (expression_statement "FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));" (call_expression "FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14))" identifier (argument_list "(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14))" ( (pointer_expression "*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" * (cast_expression "(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" ( (binary_expression "DAT_000292ac * 0x1c + DAT_00029278 + 0x14" (binary_expression "DAT_000292ac * 0x1c + DAT_00029278" (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) ))) ;) (expression_statement "FUN_00017ca0();" (call_expression "FUN_00017ca0()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_000292b0 = FUN_00017ca0();" (assignment_expression "DAT_000292b0 = FUN_00017ca0()" identifier = (call_expression "FUN_00017ca0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar9 = FUN_00017ca0();" (assignment_expression "uVar9 = FUN_00017ca0()" identifier = (call_expression "FUN_00017ca0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;) (expression_statement "DAT_000292ac = uVar9;" (assignment_expression "DAT_000292ac = uVar9" identifier = identifier) ;) }) while (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) ;) (expression_statement "DAT_000292ac = 0;" (assignment_expression "DAT_000292ac = 0" identifier = number_literal) ;) })) (while_statement "while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }" while (parenthesized_expression "(DAT_000292bc != (int *)0x0)" ( (binary_expression "DAT_000292bc != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00017d30();\n    }" { (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }" if (parenthesized_expression "((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0))" ( (binary_expression "(DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)" (parenthesized_expression "(DAT_000291fc != '\0')" ( (binary_expression "DAT_000291fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)" ( (comma_expression "signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0" (call_expression "signal(2,(__sighandler_t)PTR_FUN_00028ff4)" identifier (argument_list "(2,(__sighandler_t)PTR_FUN_00028ff4)" ( number_literal , (cast_expression "(__sighandler_t)PTR_FUN_00028ff4" ( (type_descriptor "__sighandler_t" type_identifier) ) identifier) ))) , (binary_expression "DAT_00029220 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\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_0001d320(*(undefined4 *)PTR_stdout_00028fec);" (call_expression "FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec)" identifier (argument_list "(*(undefined4 *)PTR_stdout_00028fec)" ( (pointer_expression "*(undefined4 *)PTR_stdout_00028fec" * (cast_expression "(undefined4 *)PTR_stdout_00028fec" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0001d3e0();\n    }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0001d3e0();\n    }" { comment (expression_statement "FUN_0001d3e0();" (call_expression "FUN_0001d3e0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "uVar15 = DAT_000292b0 + 1;" (assignment_expression "uVar15 = DAT_000292b0 + 1" identifier = (binary_expression "DAT_000292b0 + 1" identifier + number_literal)) ;) (expression_statement "local_4c = *(int *)(local_58 + 4);" (assignment_expression "local_4c = *(int *)(local_58 + 4)" identifier = (pointer_expression "*(int *)(local_58 + 4)" * (cast_expression "(int *)(local_58 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 4)" ( (binary_expression "local_58 + 4" identifier + number_literal) ))))) ;) (expression_statement "cVar8 = *(char *)(local_4c + DAT_000292b0);" (assignment_expression "cVar8 = *(char *)(local_4c + DAT_000292b0)" identifier = (pointer_expression "*(char *)(local_4c + DAT_000292b0)" * (cast_expression "(char *)(local_4c + DAT_000292b0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + DAT_000292b0)" ( (binary_expression "local_4c + DAT_000292b0" identifier + identifier) ))))) ;) (switch_statement "switch(cVar8) {\n  case '!':\n  case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;\n  case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;\n  case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;\n  case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;\n  case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;\n  case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;\n  case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;\n  case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;\n  case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;\n  case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;\n  case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    DAT_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;\n  case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;\n  case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;\n  case 'c':\n    goto code_r0x00016658;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;\n  case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;\n  case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;\n  case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;\n  case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;\n  case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;\n  case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  }" switch (parenthesized_expression "(cVar8)" ( identifier )) (compound_statement "{\n  case '!':\n  case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;\n  case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;\n  case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;\n  case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;\n  case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;\n  case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;\n  case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;\n  case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;\n  case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;\n  case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;\n  case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    DAT_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;\n  case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;\n  case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;\n  case 'c':\n    goto code_r0x00016658;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;\n  case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;\n  case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;\n  case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;\n  case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;\n  case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;\n  case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  }" { (case_statement "case '!':" case (char_literal "'!'" ' character ') :) (case_statement "case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;" case (char_literal "'T'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "DAT_00029294 = FUN_0001ab00(*DAT_000292bc);" (assignment_expression "DAT_00029294 = FUN_0001ab00(*DAT_000292bc)" identifier = (call_expression "FUN_0001ab00(*DAT_000292bc)" identifier (argument_list "(*DAT_000292bc)" ( (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "FUN_00015ce0(DAT_00029294);" (call_expression "FUN_00015ce0(DAT_00029294)" identifier (argument_list "(DAT_00029294)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;" 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_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (goto_statement "goto code_r0x000168af;" goto statement_identifier ;)) (case_statement "case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;" case (char_literal "'#'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 == '\0') goto code_r0x000160a5;" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000160a5;" goto statement_identifier ;)) (expression_statement "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (assignment_expression "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier = (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "DAT_00029294 = iVar12 != 0;" (assignment_expression "DAT_00029294 = iVar12 != 0" identifier = (binary_expression "iVar12 != 0" identifier != number_literal)) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (labeled_statement "code_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);" statement_identifier : (expression_statement "FUN_00015ce0(DAT_00029294);" (call_expression "FUN_00015ce0(DAT_00029294)" identifier (argument_list "(DAT_00029294)" ( identifier ))) ;)) (goto_statement "goto code_r0x00016ba1;" goto statement_identifier ;)) (case_statement "case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;" case (char_literal "'%'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 == '\0') goto code_r0x00016168;" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (expression_statement "cVar8 = FUN_0001ab00(*DAT_000292bc);" (assignment_expression "cVar8 = FUN_0001ab00(*DAT_000292bc)" identifier = (call_expression "FUN_0001ab00(*DAT_000292bc)" identifier (argument_list "(*DAT_000292bc)" ( (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (if_statement "if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }" { (expression_statement "FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);" (call_expression "FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) , (pointer_expression "&local_24" & identifier) , identifier ))) ;) (goto_statement "goto code_r0x0001656e;" 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_r0x000168af;" goto statement_identifier ;)) (case_statement "case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;" case (char_literal "'&'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 == '\0') goto code_r0x00016168;" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (expression_statement "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);" (assignment_expression "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" identifier = (call_expression "FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1])" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) )))) ;) (expression_statement "local_3d = false;" (assignment_expression "local_3d = false" identifier = false) ;) (if_statement "if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }" { (expression_statement "cVar8 = FUN_0001ab00(*DAT_000292bc);" (assignment_expression "cVar8 = FUN_0001ab00(*DAT_000292bc)" identifier = (call_expression "FUN_0001ab00(*DAT_000292bc)" identifier (argument_list "(*DAT_000292bc)" ( (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "local_3d = cVar8 == '\0';" (assignment_expression "local_3d = cVar8 == '\0'" identifier = (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) })) (expression_statement "DAT_00029294 = local_3d;" (assignment_expression "DAT_00029294 = local_3d" identifier = identifier) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00015ce0(DAT_00029294);" (call_expression "FUN_00015ce0(DAT_00029294)" identifier (argument_list "(DAT_00029294)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;" case (char_literal "'*'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 == '\0') goto code_r0x00016168;" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (expression_statement "FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);" (call_expression "FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) , (pointer_expression "&local_24" & identifier) , identifier ))) ;) (labeled_statement "code_r0x0001642c:\n    FUN_00017d30();" statement_identifier : (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00017db0(local_24);" (call_expression "FUN_00017db0(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "FUN_0001aaa0(&local_24);" (call_expression "FUN_0001aaa0(&local_24)" identifier (argument_list "(&local_24)" ( (pointer_expression "&local_24" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;" case (char_literal "'+'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }" { (expression_statement "FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);" (call_expression "FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) , (pointer_expression "&local_24" & identifier) , number_literal ))) ;) (goto_statement "goto code_r0x0001642c;" goto statement_identifier ;) })) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (case_statement "case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;" case (char_literal "'-'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }" { (expression_statement "FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);" (call_expression "FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) , (pointer_expression "&local_24" & identifier) , number_literal ))) ;) (labeled_statement "code_r0x0001656e:\n      FUN_00017d30();" statement_identifier : (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00017db0(local_24);" (call_expression "FUN_00017db0(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "FUN_0001aaa0(&local_24);" (call_expression "FUN_0001aaa0(&local_24)" identifier (argument_list "(&local_24)" ( (pointer_expression "&local_24" & identifier) ))) ;) (goto_statement "goto code_r0x00016ba1;" goto statement_identifier ;) })) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (case_statement "case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;" case (char_literal "'/'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 == '\0') goto code_r0x00016168;" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (expression_statement "iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);" (assignment_expression "iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" identifier = (call_expression "FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) , (pointer_expression "&local_24" & identifier) , identifier )))) ;) (if_statement "if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }" { (expression_statement "FUN_00019f10("Divide by zero");" (call_expression "FUN_00019f10("Divide by zero")" identifier (argument_list "("Divide by zero")" ( (string_literal ""Divide by zero"" " string_content ") ))) ;) (goto_statement "goto code_r0x00016ba1;" goto statement_identifier ;) })) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00017db0(local_24);" (call_expression "FUN_00017db0(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "FUN_0001aaa0(&local_24);" (call_expression "FUN_0001aaa0(&local_24)" identifier (argument_list "(&local_24)" ( (pointer_expression "&local_24" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;" case (char_literal "'0'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_00017d70(DAT_000292c8);" (call_expression "FUN_00017d70(DAT_000292c8)" identifier (argument_list "(DAT_000292c8)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;" case (char_literal "'1'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_00017d70(DAT_000292c0);" (call_expression "FUN_00017d70(DAT_000292c0)" identifier (argument_list "(DAT_000292c0)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;" case (char_literal "'<'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 == '\0') goto code_r0x00016168;" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (expression_statement "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (assignment_expression "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier = (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "DAT_00029294 = iVar12 == -1;" (assignment_expression "DAT_00029294 = iVar12 == -1" identifier = (binary_expression "iVar12 == -1" identifier == number_literal)) ;) (labeled_statement "code_r0x00016236:\n    FUN_00017d30();" statement_identifier : (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_00015ce0(DAT_00029294);" (call_expression "FUN_00015ce0(DAT_00029294)" identifier (argument_list "(DAT_00029294)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;" case (char_literal "'='" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }" { (expression_statement "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (assignment_expression "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier = (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "DAT_00029294 = iVar12 == 0;" (assignment_expression "DAT_00029294 = iVar12 == 0" identifier = (binary_expression "iVar12 == 0" identifier == number_literal)) ;) (goto_statement "goto code_r0x00016236;" goto statement_identifier ;) })) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (case_statement "case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;" case (char_literal "'>'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }" { (expression_statement "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (assignment_expression "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier = (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "DAT_00029294 = iVar12 == 1;" (assignment_expression "DAT_00029294 = iVar12 == 1" identifier = (binary_expression "iVar12 == 1" identifier == number_literal)) ;) (goto_statement "goto code_r0x00016236;" goto statement_identifier ;) })) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (case_statement "case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;" case (char_literal "'A'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_000189d0(uVar10);" (call_expression "FUN_000189d0(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_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;" case (char_literal "'Z'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar7 = FUN_0001ab00(*DAT_000292bc);" (assignment_expression "cVar7 = FUN_0001ab00(*DAT_000292bc)" identifier = (call_expression "FUN_0001ab00(*DAT_000292bc)" identifier (argument_list "(*DAT_000292bc)" ( (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "DAT_00029294 = cVar7 == '\0';" (assignment_expression "DAT_00029294 = cVar7 == '\0'" identifier = (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;) (expression_statement "local_58 = DAT_00029278 + DAT_000292ac * 0x1c;" (assignment_expression "local_58 = DAT_00029278 + DAT_000292ac * 0x1c" identifier = (binary_expression "DAT_00029278 + DAT_000292ac * 0x1c" identifier + (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal))) ;) (expression_statement "local_4c = *(int *)(local_58 + 4);" (assignment_expression "local_4c = *(int *)(local_58 + 4)" identifier = (pointer_expression "*(int *)(local_58 + 4)" * (cast_expression "(int *)(local_58 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 4)" ( (binary_expression "local_58 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = DAT_000292b0 + 1;" (assignment_expression "iVar12 = DAT_000292b0 + 1" identifier = (binary_expression "DAT_000292b0 + 1" identifier + number_literal)) ;) (expression_statement "uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);" (assignment_expression "uVar2 = *(undefined1 *)(local_4c + DAT_000292b0)" identifier = (pointer_expression "*(undefined1 *)(local_4c + DAT_000292b0)" * (cast_expression "(undefined1 *)(local_4c + DAT_000292b0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + DAT_000292b0)" ( (binary_expression "local_4c + DAT_000292b0" identifier + identifier) ))))) ;) (expression_statement "DAT_000292b0 = DAT_000292b0 + 2;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" identifier = identifier) ;) (if_statement "if (cVar8 == 'J') goto code_r0x0001696a;" if (parenthesized_expression "(cVar8 == 'J')" ( (binary_expression "cVar8 == 'J'" identifier == (char_literal "'J'" ' character ')) )) (goto_statement "goto code_r0x0001696a;" goto statement_identifier ;)) (if_statement "if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;" if (parenthesized_expression "(cVar8 == 'B')" ( (binary_expression "cVar8 == 'B'" identifier == (char_literal "'B'" ' character ')) )) (compound_statement "{\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }" { (if_statement "if (DAT_00029294 != 0) goto code_r0x0001696a;" if (parenthesized_expression "(DAT_00029294 != 0)" ( (binary_expression "DAT_00029294 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x0001696a;" goto statement_identifier ;)) }) (else_clause "else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;" else (if_statement "if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;" if (parenthesized_expression "((cVar8 == 'Z') && (DAT_00029294 == 0))" ( (binary_expression "(cVar8 == 'Z') && (DAT_00029294 == 0)" (parenthesized_expression "(cVar8 == 'Z')" ( (binary_expression "cVar8 == 'Z'" identifier == (char_literal "'Z'" ' character ')) )) && (parenthesized_expression "(DAT_00029294 == 0)" ( (binary_expression "DAT_00029294 == 0" identifier == number_literal) ))) )) (goto_statement "goto code_r0x0001696a;" goto statement_identifier ;)))) (expression_statement "local_54 = *(uint *)(local_58 + 0xc);" (assignment_expression "local_54 = *(uint *)(local_58 + 0xc)" identifier = (pointer_expression "*(uint *)(local_58 + 0xc)" * (cast_expression "(uint *)(local_58 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0xc)" ( (binary_expression "local_58 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (case_statement "case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;" case (char_literal "'C'" ' character ') : (expression_statement "local_58 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "local_58 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;" (assignment_expression "local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100" identifier = (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100" (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))) + (binary_expression "(local_58 & 0x7f) * 0x100" (parenthesized_expression "(local_58 & 0x7f)" ( (binary_expression "local_58 & 0x7f" identifier & number_literal) )) * number_literal))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "iVar12 = local_58 * 0x1c;" (assignment_expression "iVar12 = local_58 * 0x1c" identifier = (binary_expression "local_58 * 0x1c" identifier * number_literal)) ;) (if_statement "if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }" if (parenthesized_expression "(*(char *)(local_5c + iVar12) == '\0')" ( (binary_expression "*(char *)(local_5c + iVar12) == '\0'" (pointer_expression "*(char *)(local_5c + iVar12)" * (cast_expression "(char *)(local_5c + iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c + iVar12)" ( (binary_expression "local_5c + iVar12" identifier + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\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_r0x000168af;" goto statement_identifier ;) })) (expression_statement "FUN_00018c90(&DAT_000292ac,local_58);" (call_expression "FUN_00018c90(&DAT_000292ac,local_58)" identifier (argument_list "(&DAT_000292ac,local_58)" ( (pointer_expression "&DAT_000292ac" & identifier) , identifier ))) ;) (for_statement "for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }" for ( (assignment_expression "puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12)" identifier = (pointer_expression "*(undefined4 **)(DAT_00029278 + 0x18 + iVar12)" * (cast_expression "(undefined4 **)(DAT_00029278 + 0x18 + iVar12)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00029278 + 0x18 + iVar12)" ( (binary_expression "DAT_00029278 + 0x18 + iVar12" (binary_expression "DAT_00029278 + 0x18" identifier + number_literal) + identifier) ))))) ; (binary_expression "puVar3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar3 = (undefined4 *)puVar3[2]" identifier = (cast_expression "(undefined4 *)puVar3[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[2]" identifier [ number_literal ]))) ) (compound_statement "{\n      FUN_00018a90(*puVar3);\n    }" { (expression_statement "FUN_00018a90(*puVar3);" (call_expression "FUN_00018a90(*puVar3)" identifier (argument_list "(*puVar3)" ( (pointer_expression "*puVar3" * identifier) ))) ;) })) (expression_statement "FUN_00017d00(DAT_000292ac);" (call_expression "FUN_00017d00(DAT_000292ac)" identifier (argument_list "(DAT_000292ac)" ( identifier ))) ;) (expression_statement "FUN_00017d00(DAT_000292b0);" (call_expression "FUN_00017d00(DAT_000292b0)" identifier (argument_list "(DAT_000292b0)" ( identifier ))) ;) (expression_statement "FUN_00017d00(DAT_000292a4);" (call_expression "FUN_00017d00(DAT_000292a4)" identifier (argument_list "(DAT_000292a4)" ( identifier ))) ;) (expression_statement "DAT_000292b0 = 0;" (assignment_expression "DAT_000292b0 = 0" identifier = number_literal) ;) (expression_statement "DAT_000292ac = local_58;" (assignment_expression "DAT_000292ac = local_58" identifier = identifier) ;) (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12)" identifier = (pointer_expression "*(uint *)(DAT_00029278 + 0xc + iVar12)" * (cast_expression "(uint *)(DAT_00029278 + 0xc + iVar12)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00029278 + 0xc + iVar12)" ( (binary_expression "DAT_00029278 + 0xc + iVar12" (binary_expression "DAT_00029278 + 0xc" identifier + number_literal) + identifier) ))))) ;) (expression_statement "uVar9 = local_58;" (assignment_expression "uVar9 = local_58" identifier = identifier) ;) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (case_statement "case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;" case (char_literal "'D'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_00017d70(*DAT_000292bc);" (call_expression "FUN_00017d70(*DAT_000292bc)" identifier (argument_list "(*DAT_000292bc)" ( (pointer_expression "*DAT_000292bc" * identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;" case (char_literal "'J'" ' character ') : (expression_statement "iVar12 = DAT_000292b0 + 2;" (assignment_expression "iVar12 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (expression_statement "uVar2 = *(undefined1 *)(local_4c + uVar15);" (assignment_expression "uVar2 = *(undefined1 *)(local_4c + uVar15)" identifier = (pointer_expression "*(undefined1 *)(local_4c + uVar15)" * (cast_expression "(undefined1 *)(local_4c + uVar15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "DAT_000292b0 = DAT_000292b0 + 3;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) (labeled_statement "code_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);" statement_identifier : (expression_statement "uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);" (assignment_expression "uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2)" identifier = (call_expression "CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2)" identifier (argument_list "(*(undefined1 *)(local_4c + iVar12),uVar2)" ( (pointer_expression "*(undefined1 *)(local_4c + iVar12)" * (cast_expression "(undefined1 *)(local_4c + iVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + iVar12)" ( (binary_expression "local_4c + iVar12" identifier + identifier) )))) , identifier )))) ;)) (expression_statement "uVar15 = (uint)(uVar4 >> 6);" (assignment_expression "uVar15 = (uint)(uVar4 >> 6)" identifier = (call_expression "(uint)(uVar4 >> 6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 >> 6)" ( (binary_expression "uVar4 >> 6" identifier >> number_literal) )))) ;) (expression_statement "iVar14 = *(int *)(local_58 + 0x10);" (assignment_expression "iVar14 = *(int *)(local_58 + 0x10)" identifier = (pointer_expression "*(int *)(local_58 + 0x10)" * (cast_expression "(int *)(local_58 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0x10)" ( (binary_expression "local_58 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = uVar15 - 1;" (assignment_expression "iVar12 = uVar15 - 1" identifier = (binary_expression "uVar15 - 1" identifier - number_literal)) ;) (if_statement "if (uVar15 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 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_r0x000168af;\n    }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar11 = "Internal error.";\n      goto code_r0x000168af;\n    }" { (expression_statement "pcVar11 = "Internal error.";" (assignment_expression "pcVar11 = "Internal error."" identifier = (string_literal ""Internal error."" " string_content ")) ;) (goto_statement "goto code_r0x000168af;" goto statement_identifier ;) })) (expression_statement "DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);" (assignment_expression "DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4)" identifier = (pointer_expression "*(uint *)(iVar14 + (uVar4 & 0x3f) * 4)" * (cast_expression "(uint *)(iVar14 + (uVar4 & 0x3f) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + (uVar4 & 0x3f) * 4)" ( (binary_expression "iVar14 + (uVar4 & 0x3f) * 4" identifier + (binary_expression "(uVar4 & 0x3f) * 4" (parenthesized_expression "(uVar4 & 0x3f)" ( (binary_expression "uVar4 & 0x3f" identifier & number_literal) )) * number_literal)) ))))) ;) (expression_statement "local_54 = *(uint *)(local_58 + 0xc);" (assignment_expression "local_54 = *(uint *)(local_58 + 0xc)" identifier = (pointer_expression "*(uint *)(local_58 + 0xc)" * (cast_expression "(uint *)(local_58 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0xc)" ( (binary_expression "local_58 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (case_statement "case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;" case (char_literal "'K'" ' character ') : (expression_statement "iVar12 = DAT_000292a4;" (assignment_expression "iVar12 = DAT_000292a4" identifier = identifier) ;) (if_statement "if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar12 = *DAT_00029250;\n    }" { (expression_statement "iVar12 = *DAT_00029250;" (assignment_expression "iVar12 = *DAT_00029250" identifier = (pointer_expression "*DAT_00029250" * identifier)) ;) })) (if_statement "if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }" if (parenthesized_expression "(iVar12 == 10)" ( (binary_expression "iVar12 == 10" identifier == number_literal) )) (compound_statement "{\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }" { (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_00015a60(&DAT_000292ac);" (call_expression "FUN_00015a60(&DAT_000292ac)" identifier (argument_list "(&DAT_000292ac)" ( (pointer_expression "&DAT_000292ac" & identifier) ))) ;) (goto_statement "goto code_r0x00016ba1;" goto statement_identifier ;) })) (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_00015720(FUN_000155d0,iVar12);" (call_expression "FUN_00015720(FUN_000155d0,iVar12)" identifier (argument_list "(FUN_000155d0,iVar12)" ( identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;" case (char_literal "'L'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_000185f0(uVar10);" (call_expression "FUN_000185f0(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;" case (char_literal "'M'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_000187e0(uVar10);" (call_expression "FUN_000187e0(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;" case (char_literal "'O'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (labeled_statement "code_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;" statement_identifier : (expression_statement "uVar9 = DAT_000292b0 + 1;" (assignment_expression "uVar9 = DAT_000292b0 + 1" identifier = (binary_expression "DAT_000292b0 + 1" identifier + number_literal)) ;)) (expression_statement "cVar8 = *(char *)(local_4c + DAT_000292b0);" (assignment_expression "cVar8 = *(char *)(local_4c + DAT_000292b0)" identifier = (pointer_expression "*(char *)(local_4c + DAT_000292b0)" * (cast_expression "(char *)(local_4c + DAT_000292b0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + DAT_000292b0)" ( (binary_expression "local_4c + DAT_000292b0" identifier + identifier) ))))) ;) (expression_statement "uVar15 = uVar9;" (assignment_expression "uVar15 = uVar9" identifier = identifier) ;) (if_statement "if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }" if (parenthesized_expression "(cVar8 != '\"')" ( (binary_expression "cVar8 != '\"'" identifier != (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }" { (if_statement "if (cVar8 != '\\') goto code_r0x00016844;" if (parenthesized_expression "(cVar8 != '\\')" ( (binary_expression "cVar8 != '\\'" identifier != (char_literal "'\\'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016844;" goto statement_identifier ;)) (expression_statement "DAT_000292b0 = DAT_000292b0 + 2;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (expression_statement "uVar15 = DAT_000292b0;" (assignment_expression "uVar15 = DAT_000292b0" identifier = identifier) ;) (if_statement "if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;" if (parenthesized_expression "(*(char *)(local_4c + uVar9) != '\"')" ( (binary_expression "*(char *)(local_4c + uVar9) != '\"'" (pointer_expression "*(char *)(local_4c + uVar9)" * (cast_expression "(char *)(local_4c + uVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar9)" ( (binary_expression "local_4c + uVar9" identifier + identifier) )))) != (char_literal "'\"'" ' escape_sequence ')) )) (goto_statement "goto code_r0x0001688b;" goto statement_identifier ;)) })) (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" 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 "FUN_0001d320(*(undefined4 *)puVar5);" (call_expression "FUN_0001d320(*(undefined4 *)puVar5)" identifier (argument_list "(*(undefined4 *)puVar5)" ( (pointer_expression "*(undefined4 *)puVar5" * (cast_expression "(undefined4 *)puVar5" ( (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_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;" case (char_literal "'W'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);" (call_expression "FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec)" identifier (argument_list "(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec)" ( (pointer_expression "*DAT_000292bc" * identifier) , identifier , identifier , identifier ))) ;) (if_statement "if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }" if (parenthesized_expression "(cVar8 == 'W')" ( (binary_expression "cVar8 == 'W'" identifier == (char_literal "'W'" ' character ')) )) (compound_statement "{\n      FUN_00018f50(10);\n    }" { (expression_statement "FUN_00018f50(10);" (call_expression "FUN_00018f50(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (expression_statement "FUN_000180f0(4);" (call_expression "FUN_000180f0(4)" identifier (argument_list "(4)" ( number_literal ))) ;) (expression_statement "puVar6 = PTR_stdout_00028fec;" (assignment_expression "puVar6 = PTR_stdout_00028fec" identifier = identifier) ;) (expression_statement "fflush(*(FILE **)PTR_stdout_00028fec);" (call_expression "fflush(*(FILE **)PTR_stdout_00028fec)" identifier (argument_list "(*(FILE **)PTR_stdout_00028fec)" ( (pointer_expression "*(FILE **)PTR_stdout_00028fec" * (cast_expression "(FILE **)PTR_stdout_00028fec" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_0001d320(*(undefined4 *)puVar6);" (call_expression "FUN_0001d320(*(undefined4 *)puVar6)" identifier (argument_list "(*(undefined4 *)puVar6)" ( (pointer_expression "*(undefined4 *)puVar6" * (cast_expression "(undefined4 *)puVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;" case (char_literal "'R'" ' character ') : (if_statement "if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }" { (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));" (call_expression "FUN_00018bc0(*(undefined4 *)(local_58 + 0x18))" identifier (argument_list "(*(undefined4 *)(local_58 + 0x18))" ( (pointer_expression "*(undefined4 *)(local_58 + 0x18)" * (cast_expression "(undefined4 *)(local_58 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0x18)" ( (binary_expression "local_58 + 0x18" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));" (call_expression "FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14))" identifier (argument_list "(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14))" ( (pointer_expression "*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" * (cast_expression "(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" ( (binary_expression "DAT_000292ac * 0x1c + DAT_00029278 + 0x14" (binary_expression "DAT_000292ac * 0x1c + DAT_00029278" (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) ))) ;) (expression_statement "FUN_00017ca0();" (call_expression "FUN_00017ca0()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_000292b0 = FUN_00017ca0();" (assignment_expression "DAT_000292b0 = FUN_00017ca0()" identifier = (call_expression "FUN_00017ca0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar9 = FUN_00017ca0();" (assignment_expression "uVar9 = FUN_00017ca0()" identifier = (call_expression "FUN_00017ca0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c)" identifier = (pointer_expression "*(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c)" * (cast_expression "(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00029278 + 0xc + uVar9 * 0x1c)" ( (binary_expression "DAT_00029278 + 0xc + uVar9 * 0x1c" (binary_expression "DAT_00029278 + 0xc" identifier + number_literal) + (binary_expression "uVar9 * 0x1c" identifier * number_literal)) ))))) ;) (expression_statement "DAT_000292ac = uVar9;" (assignment_expression "DAT_000292ac = uVar9" identifier = identifier) ;) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;) })) (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_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (labeled_statement "code_r0x000168af:\n    FUN_00019f10(pcVar11);" statement_identifier : (expression_statement "FUN_00019f10(pcVar11);" (call_expression "FUN_00019f10(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;)) (break_statement "break;" break ;)) (case_statement "case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;" case (char_literal "'S'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_00018420(uVar10);" (call_expression "FUN_00018420(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;" case (char_literal "'^'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }" { (expression_statement "FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);" (call_expression "FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) , (pointer_expression "&local_24" & identifier) , identifier ))) ;) (expression_statement "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);" (assignment_expression "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" identifier = (call_expression "FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1])" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) )))) ;) (if_statement "if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }" if (parenthesized_expression "((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0'))" ( (binary_expression "(cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')" (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')" ( (comma_expression "cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0'" (assignment_expression "cVar8 = FUN_0001aaf0(*DAT_000292bc)" identifier = (call_expression "FUN_0001aaf0(*DAT_000292bc)" identifier (argument_list "(*DAT_000292bc)" ( (pointer_expression "*DAT_000292bc" * identifier) )))) , (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        FUN_00019f10("divide by zero");\n      }" { (expression_statement "FUN_00019f10("divide by zero");" (call_expression "FUN_00019f10("divide by zero")" identifier (argument_list "("divide by zero")" ( (string_literal ""divide by zero"" " string_content ") ))) ;) })) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00017db0(local_24);" (call_expression "FUN_00017db0(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "FUN_0001aaa0(&local_24);" (call_expression "FUN_0001aaa0(&local_24)" identifier (argument_list "(&local_24)" ( (pointer_expression "&local_24" & identifier) ))) ;) (goto_statement "goto code_r0x00016ba1;" goto statement_identifier ;) })) (goto_statement "goto code_r0x000160a5;" goto statement_identifier ;)) (case_statement "case 'c':\n    goto code_r0x00016658;" case (char_literal "'c'" ' character ') : (goto_statement "goto code_r0x00016658;" goto statement_identifier ;)) (case_statement "case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;" case (char_literal "'d'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_000186b0(uVar10);" (call_expression "FUN_000186b0(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;" case (char_literal "'h'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_0001a000(0);" (call_expression "FUN_0001a000(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;" case (char_literal "'i'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_000188a0(uVar10);" (call_expression "FUN_000188a0(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;" case (char_literal "'l'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_00018500(uVar10);" (call_expression "FUN_00018500(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;" case (char_literal "'n'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);" (call_expression "FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0)" identifier (argument_list "(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0)" ( identifier , (pointer_expression "*DAT_000292bc" * identifier) , identifier , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;" case (char_literal "'p'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (case_statement "case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;" case (char_literal "'s'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_000180f0(uVar10);" (call_expression "FUN_000180f0(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;" case (char_literal "'w'" ' character ') : (expression_statement "cVar8 = *(char *)(local_4c + uVar15);" (assignment_expression "cVar8 = *(char *)(local_4c + uVar15)" identifier = (pointer_expression "*(char *)(local_4c + uVar15)" * (cast_expression "(char *)(local_4c + uVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "DAT_000292b0 = DAT_000292b0 + 2;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (expression_statement "puVar3 = (undefined4 *)PTR_stdout_00028fec;" (assignment_expression "puVar3 = (undefined4 *)PTR_stdout_00028fec" identifier = (cast_expression "(undefined4 *)PTR_stdout_00028fec" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (while_statement "while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }" while (parenthesized_expression "(PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"')" ( (comma_expression "PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"'" (assignment_expression "PTR_stdout_00028fec = (undefined *)puVar3" identifier = (cast_expression "(undefined *)puVar3" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "cVar8 != '\"'" identifier != (char_literal "'\"'" ' escape_sequence '))) )) (compound_statement "{\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }" { (expression_statement "FUN_00019000(cVar8);" (call_expression "FUN_00019000(cVar8)" identifier (argument_list "(cVar8)" ( identifier ))) ;) (expression_statement "cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);" (assignment_expression "cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0)" identifier = (pointer_expression "*(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0)" * (cast_expression "(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0)" ( (binary_expression "*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0" (pointer_expression "*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4)" * (cast_expression "(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000292ac * 0x1c + DAT_00029278 + 4)" ( (binary_expression "DAT_000292ac * 0x1c + DAT_00029278 + 4" (binary_expression "DAT_000292ac * 0x1c + DAT_00029278" (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) + identifier) ))))) ;) (expression_statement "DAT_000292b0 = DAT_000292b0 + 1;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 1" identifier = (binary_expression "DAT_000292b0 + 1" identifier + number_literal)) ;) (expression_statement "puVar3 = (undefined4 *)PTR_stdout_00028fec;" (assignment_expression "puVar3 = (undefined4 *)PTR_stdout_00028fec" identifier = (cast_expression "(undefined4 *)PTR_stdout_00028fec" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "fflush((FILE *)*puVar3);" (call_expression "fflush((FILE *)*puVar3)" identifier (argument_list "((FILE *)*puVar3)" ( (cast_expression "(FILE *)*puVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier)) ))) ;) (expression_statement "FUN_0001d320(*puVar3);" (call_expression "FUN_0001d320(*puVar3)" identifier (argument_list "(*puVar3)" ( (pointer_expression "*puVar3" * identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;" case (char_literal "'x'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }" { (expression_statement "piVar1 = DAT_000292bc + 1;" (assignment_expression "piVar1 = DAT_000292bc + 1" identifier = (binary_expression "DAT_000292bc + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = *DAT_000292bc;" (assignment_expression "iVar12 = *DAT_000292bc" identifier = (pointer_expression "*DAT_000292bc" * identifier)) ;) (expression_statement "*DAT_000292bc = *(int *)*piVar1;" (assignment_expression "*DAT_000292bc = *(int *)*piVar1" (pointer_expression "*DAT_000292bc" * 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 = iVar12;" (assignment_expression "*(int *)*piVar1 = iVar12" (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_r0x00016168;" goto statement_identifier ;) })) (goto_statement "goto code_r0x000160a5;" goto statement_identifier ;)) (case_statement "case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;" case (char_literal "'{'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" { (expression_statement "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (assignment_expression "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier = (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "DAT_00029294 = iVar12 < 1;" (assignment_expression "DAT_00029294 = iVar12 < 1" identifier = (binary_expression "iVar12 < 1" identifier < number_literal)) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x00016b9c;" goto statement_identifier ;) })) (goto_statement "goto code_r0x000160a5;" goto statement_identifier ;)) (case_statement "case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;" case (char_literal "'|'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" { (expression_statement "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);" (assignment_expression "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" identifier = (call_expression "FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1])" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) )))) ;) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) (if_statement "if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }" { (expression_statement "cVar8 = FUN_0001ab00(*DAT_000292bc);" (assignment_expression "cVar8 = FUN_0001ab00(*DAT_000292bc)" identifier = (call_expression "FUN_0001ab00(*DAT_000292bc)" identifier (argument_list "(*DAT_000292bc)" ( (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "bVar16 = cVar8 == '\0';" (assignment_expression "bVar16 = cVar8 == '\0'" identifier = (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) })) (expression_statement "DAT_00029294 = bVar16;" (assignment_expression "DAT_00029294 = bVar16" identifier = identifier) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x00016b9c;" goto statement_identifier ;) })) (labeled_statement "code_r0x00016168:\n    local_5c = DAT_00029278;" statement_identifier : (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;)) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" identifier = (pointer_expression "*(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" * (cast_expression "(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (binary_expression "DAT_00029278 + 0xc + DAT_000292ac * 0x1c" (binary_expression "DAT_00029278 + 0xc" identifier + number_literal) + (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal)) ))))) ;) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" identifier = identifier) ;) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (case_statement "case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;" case (char_literal "'}'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" { (expression_statement "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) ))) ;) (expression_statement "DAT_00029294 = (byte)~extraout_var >> 7;" (assignment_expression "DAT_00029294 = (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_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x00016b9c;" goto statement_identifier ;) })) (goto_statement "goto code_r0x000160a5;" goto statement_identifier ;)) })) (goto_statement "goto LAB_00015f30;" goto statement_identifier ;) (labeled_statement "code_r0x00016658:\n  DAT_000292b0 = DAT_000292b0 + 2;" statement_identifier : (expression_statement "DAT_000292b0 = DAT_000292b0 + 2;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;)) (switch_statement "switch(*(undefined1 *)(local_4c + uVar15)) {\n  case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;\n  default:\n    goto LAB_00015e08;\n  case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;\n  case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;\n  case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;\n  case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  }" switch (parenthesized_expression "(*(undefined1 *)(local_4c + uVar15))" ( (pointer_expression "*(undefined1 *)(local_4c + uVar15)" * (cast_expression "(undefined1 *)(local_4c + uVar15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) )))) )) (compound_statement "{\n  case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;\n  default:\n    goto LAB_00015e08;\n  case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;\n  case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;\n  case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;\n  case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  }" { (case_statement "case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;" case number_literal : (expression_statement "FUN_00015720(FUN_00015600,DAT_000292a4);" (call_expression "FUN_00015720(FUN_00015600,DAT_000292a4)" identifier (argument_list "(FUN_00015600,DAT_000292a4)" ( identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    goto LAB_00015e08;" default : (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (case_statement "case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;" case number_literal : (expression_statement "iVar12 = *DAT_000292bc;" (assignment_expression "iVar12 = *DAT_000292bc" identifier = (pointer_expression "*DAT_000292bc" * identifier)) ;) (expression_statement "iVar14 = *(int *)(iVar12 + 8);" (assignment_expression "iVar14 = *(int *)(iVar12 + 8)" identifier = (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ;) (if_statement "if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }" if (parenthesized_expression "(((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0'))" ( (binary_expression "((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')" (parenthesized_expression "((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0))" ( (binary_expression "(*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)" (parenthesized_expression "(*(int *)(iVar12 + 4) == 1)" ( (binary_expression "*(int *)(iVar12 + 4) == 1" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(**(char **)(iVar12 + 0x18) == '\0')" ( (binary_expression "**(char **)(iVar12 + 0x18) == '\0'" (pointer_expression "**(char **)(iVar12 + 0x18)" * (pointer_expression "*(char **)(iVar12 + 0x18)" * (cast_expression "(char **)(iVar12 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) ))))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }" { (expression_statement "FUN_0001c5a0(DAT_000292bc,iVar14);" (call_expression "FUN_0001c5a0(DAT_000292bc,iVar14)" identifier (argument_list "(DAT_000292bc,iVar14)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }" else (compound_statement "{\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }" { (expression_statement "FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);" (call_expression "FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14)" identifier (argument_list "(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14)" ( identifier , (binary_expression "*(int *)(iVar12 + 4) + iVar14" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) + identifier) ))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;" case number_literal : (expression_statement "iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);" (assignment_expression "iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298)" identifier = (call_expression "FUN_0001c740(DAT_000292bc,DAT_00029298)" identifier (argument_list "(DAT_000292bc,DAT_00029298)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }" { (labeled_statement "code_r0x000160a5:\n      local_5c = DAT_00029278;" statement_identifier : (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;)) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" identifier = (pointer_expression "*(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" * (cast_expression "(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (binary_expression "DAT_00029278 + 0xc + DAT_000292ac * 0x1c" (binary_expression "DAT_00029278 + 0xc" identifier + number_literal) + (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal)) ))))) ;) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" identifier = identifier) ;) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;) })) (expression_statement "FUN_00019f10("Square root of a negative number");" (call_expression "FUN_00019f10("Square root of a negative number")" identifier (argument_list "("Square root of a negative number")" ( (string_literal ""Square root of a negative number"" " string_content ") ))) ;) (goto_statement "goto code_r0x00016ba1;" goto statement_identifier ;)) (case_statement "case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;" case number_literal : (expression_statement "FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));" (call_expression "FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8))" identifier (argument_list "(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8))" ( identifier , (pointer_expression "*(undefined4 *)(*DAT_000292bc + 8)" * (cast_expression "(undefined4 *)(*DAT_000292bc + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*DAT_000292bc + 8)" ( (binary_expression "*DAT_000292bc + 8" (pointer_expression "*DAT_000292bc" * identifier) + number_literal) )))) ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;" case number_literal : (expression_statement "FUN_00017d70(DAT_000292c8);" (call_expression "FUN_00017d70(DAT_000292c8)" identifier (argument_list "(DAT_000292c8)" ( identifier ))) ;) (expression_statement "uVar13 = func_0x000112e0();" (assignment_expression "uVar13 = func_0x000112e0()" identifier = (call_expression "func_0x000112e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0001c5a0(DAT_000292bc,uVar13);" (call_expression "FUN_0001c5a0(DAT_000292bc,uVar13)" identifier (argument_list "(DAT_000292bc,uVar13)" ( identifier , identifier ))) ;) (labeled_statement "code_r0x00016ba1:\n    local_5c = DAT_00029278;" statement_identifier : (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;)) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" identifier = (pointer_expression "*(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" * (cast_expression "(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (binary_expression "DAT_00029278 + 0xc + DAT_000292ac * 0x1c" (binary_expression "DAT_00029278 + 0xc" identifier + number_literal) + (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal)) ))))) ;) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" identifier = identifier) ;) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) })) (labeled_statement "LAB_00015f30:\n  local_5c = DAT_00029278;" statement_identifier : (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;)) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" identifier = (pointer_expression "*(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" * (cast_expression "(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (binary_expression "DAT_00029278 + 0xc + DAT_000292ac * 0x1c" (binary_expression "DAT_00029278 + 0xc" identifier + number_literal) + (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal)) ))))) ;) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" identifier = identifier) ;) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;) (labeled_statement "code_r0x0001688b:\n  switch(*(char *)(local_4c + uVar9)) {\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }" statement_identifier : (switch_statement "switch(*(char *)(local_4c + uVar9)) {\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }" switch (parenthesized_expression "(*(char *)(local_4c + uVar9))" ( (pointer_expression "*(char *)(local_4c + uVar9)" * (cast_expression "(char *)(local_4c + uVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar9)" ( (binary_expression "local_4c + uVar9" identifier + identifier) )))) )) (compound_statement "{\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }" { (case_statement "case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;" case (char_literal "'\\'" ' escape_sequence ') : (expression_statement "cVar8 = '\\';" (assignment_expression "cVar8 = '\\'" identifier = (char_literal "'\\'" ' escape_sequence ')) ;) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "default:\n    goto code_r0x0001685c;" default : (goto_statement "goto code_r0x0001685c;" goto statement_identifier ;)) (case_statement "case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;" case (char_literal "'a'" ' character ') : (expression_statement "cVar8 = '\a';" (assignment_expression "cVar8 = '\a'" identifier = (char_literal "'\a'" ' escape_sequence ')) ;) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;" case (char_literal "'b'" ' character ') : (expression_statement "cVar8 = '\b';" (assignment_expression "cVar8 = '\b'" identifier = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;" case (char_literal "'f'" ' character ') : (expression_statement "cVar8 = '\f';" (assignment_expression "cVar8 = '\f'" identifier = (char_literal "'\f'" ' escape_sequence ')) ;) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;" case (char_literal "'n'" ' character ') : (expression_statement "cVar8 = '\n';" (assignment_expression "cVar8 = '\n'" identifier = (char_literal "'\n'" ' escape_sequence ')) ;) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;" case (char_literal "'q'" ' character ') : (expression_statement "cVar8 = '\"';" (assignment_expression "cVar8 = '\"'" identifier = (char_literal "'\"'" ' escape_sequence ')) ;) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;" case (char_literal "'r'" ' character ') : (expression_statement "cVar8 = '\r';" (assignment_expression "cVar8 = '\r'" identifier = (char_literal "'\r'" ' escape_sequence ')) ;) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;" case (char_literal "'t'" ' character ') : (expression_statement "cVar8 = '\t';" (assignment_expression "cVar8 = '\t'" identifier = (char_literal "'\t'" ' escape_sequence ')) ;) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" identifier = identifier) ;)) }))) (labeled_statement "code_r0x00016844:\n  DAT_000292b0 = uVar9;" statement_identifier : (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;)) (expression_statement "FUN_00019000(cVar8);" (call_expression "FUN_00019000(cVar8)" identifier (argument_list "(cVar8)" ( identifier ))) ;) (expression_statement "local_4c = *(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4);" (assignment_expression "local_4c = *(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4)" identifier = (pointer_expression "*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4)" * (cast_expression "(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000292ac * 0x1c + DAT_00029278 + 4)" ( (binary_expression "DAT_000292ac * 0x1c + DAT_00029278 + 4" (binary_expression "DAT_000292ac * 0x1c + DAT_00029278" (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal) + identifier) + number_literal) ))))) ;) (goto_statement "goto code_r0x0001685c;" 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  undefined4 *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  uint uVar8;\n  char cVar9;\n  char cVar10;\n  bc_function *pbVar11;\n  uint uVar12;\n  int iVar13;\n  char *mesg;\n  int iVar14;\n  long val;\n  bc_label_group *pbVar15;\n  uint uVar16;\n  int in_GS_OFFSET;\n  bool bVar17;\n  bc_function *local_5c;\n  bc_function *local_58;\n  uint local_54;\n  char *local_4c;\n  bool local_3d;\n  bc_num temp_num;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x15d59;\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  puVar6 = PTR_stdout_00028fec;\n  had_sigint = 0;\n  local_5c = functions;\n  local_54 = functions[pc.pc_func].f_code_size;\n  pbVar11 = (bc_function *)pc.pc_func;\n_L138:\n  local_58 = local_5c + (int)pbVar11;\n  if (((local_54 <= pc.pc_addr) || (runtime_error != '\0')) || (had_sigint != 0)) {\n    if (pbVar11 != (bc_function *)0x0) {\n      do {\n        pop_vars(local_5c[(int)pbVar11].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar11 = (bc_function *)fpop();\n        local_5c = functions;\n        pc.pc_func = (uint)pbVar11;\n      } while (pbVar11 != (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_00028ff4), had_sigint != 0))\n    {\n      puts("\ninterrupted execution.");\n      checkferror_output(*(FILE **)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail_local();\n    }\n    return;\n  }\n  uVar16 = pc.pc_addr + 1;\n  local_4c = local_58->f_body;\n  cVar10 = local_4c[pc.pc_addr];\n  switch(cVar10) {\n  case '!':\n  case 'T':\n    pc.pc_addr = uVar16;\n    c_code = bc_is_zero(ex_stack->s_num);\n    assign(c_code);\n    break;\n  default:\n    mesg = "bad instruction: inst=%c";\n    pc.pc_addr = uVar16;\n    goto LAB_000168af;\n  case '#':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_000160a5;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 != 0;\n    pop();\nLAB_00016b9c:\n    assign(c_code);\n    goto LAB_00016ba1;\n  case '%':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    cVar10 = bc_is_zero(ex_stack->s_num);\n    if (cVar10 == '\0') {\n      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      goto LAB_0001656e;\n    }\n    mesg = "Modulo by zero";\n    goto LAB_000168af;\n  case '&':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n    local_3d = false;\n    if (cVar10 == '\0') {\n      cVar10 = bc_is_zero(ex_stack->s_num);\n      local_3d = cVar10 == '\0';\n    }\n    c_code = local_3d;\n    pop();\n    assign(c_code);\n    break;\n  case '*':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    bc_multiply(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\nLAB_0001642c:\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case '+':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_0001642c;\n    }\n    goto LAB_00016168;\n  case '-':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\nLAB_0001656e:\n      pop();\n      pop();\n      push_num(temp_num);\n      bc_init_num(&temp_num);\n      goto LAB_00016ba1;\n    }\n    goto LAB_00016168;\n  case '/':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    iVar13 = bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    if (iVar13 != 0) {\n      rt_error("Divide by zero");\n      goto LAB_00016ba1;\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 = uVar16;\n    push_copy(_zero_);\n    break;\n  case '1':\n    pc.pc_addr = uVar16;\n    push_copy(_one_);\n    break;\n  case '<':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == -1;\nLAB_00016236:\n    pop();\n    assign(c_code);\n    break;\n  case '=':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 == 0;\n      goto LAB_00016236;\n    }\n    goto LAB_00016168;\n  case '>':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 == 1;\n      goto LAB_00016236;\n    }\n    goto LAB_00016168;\n  case 'A':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    incr_array(uVar12);\n    break;\n  case 'B':\n  case 'Z':\n    pc.pc_addr = uVar16;\n    cVar9 = bc_is_zero(ex_stack->s_num);\n    c_code = cVar9 == '\0';\n    pop();\n    local_5c = functions;\n    local_58 = functions + pc.pc_func;\n    local_4c = local_58->f_body;\n    iVar13 = pc.pc_addr + 1;\n    cVar9 = local_4c[pc.pc_addr];\n    pc.pc_addr = pc.pc_addr + 2;\n    pbVar11 = (bc_function *)pc.pc_func;\n    if (cVar10 == 'J') goto LAB_0001696a;\n    if (cVar10 == 'B') {\n      if (c_code != '\0') goto LAB_0001696a;\n    }\n    else if ((cVar10 == 'Z') && (c_code == '\0')) goto LAB_0001696a;\n    local_54 = local_58->f_code_size;\n    goto _L138;\n  case 'C':\n    local_58 = (bc_function *)(uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      local_58 = (bc_function *)\n                 ((uint)(byte)local_4c[pc.pc_addr + 2] + ((uint)local_58 & 0x7f) * 0x100);\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    if (local_5c[(int)local_58].f_defined == '\0') {\n      mesg = "Function %s not defined.";\n      goto LAB_000168af;\n    }\n    process_params(&pc,(int)local_58);\n    for (paVar4 = functions[(int)local_58].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_58;\n    local_5c = functions;\n    local_54 = functions[(int)local_58].f_code_size;\n    pbVar11 = local_58;\n    goto _L138;\n  case 'D':\n    pc.pc_addr = uVar16;\n    push_copy(ex_stack->s_num);\n    break;\n  case 'J':\n    iVar13 = pc.pc_addr + 2;\n    cVar9 = local_4c[uVar16];\n    pc.pc_addr = pc.pc_addr + 3;\nLAB_0001696a:\n    uVar16 = (uint)(ushort)(CONCAT11(local_4c[iVar13],cVar9) >> 6);\n    pbVar15 = local_58->f_label;\n    iVar14 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar14 = iVar14 + -1;\n        pbVar15 = pbVar15->l_next;\n      } while (iVar14 != -1);\n    }\n    if (pbVar15 == (bc_label_group *)0x0) {\n      mesg = "Internal error.";\n      goto LAB_000168af;\n    }\n    pc.pc_addr = pbVar15->l_adrs[CONCAT11(local_4c[iVar13],cVar9) & 0x3f];\n    local_54 = local_58->f_code_size;\n    goto _L138;\n  case 'K':\n    iVar13 = i_base;\n    if (pbVar11 != (bc_function *)0x0) {\n      iVar13 = fn_stack->s_val;\n    }\n    if (iVar13 == 10) {\n      pc.pc_addr = uVar16;\n      push_b10_const(&pc);\n      goto LAB_00016ba1;\n    }\n    pc.pc_addr = uVar16;\n    push_constant(prog_char,iVar13);\n    break;\n  case 'L':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    load_array(uVar12);\n    break;\n  case 'M':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    decr_array(uVar12);\n    break;\n  case 'O':\n    pc.pc_addr = uVar16;\n_L160:\n    uVar16 = pc.pc_addr + 1;\n    bVar2 = local_4c[pc.pc_addr];\n    uVar12 = (uint)bVar2;\n    uVar8 = uVar16;\n    if (bVar2 != 0x22) {\n      if (bVar2 != 0x5c) goto LAB_00016844;\n      pc.pc_addr = pc.pc_addr + 2;\n      uVar8 = pc.pc_addr;\n      if (local_4c[uVar16] != '\"') goto code_r0x0001688b;\n    }\n    pc.pc_addr = uVar8;\n    fflush(*(FILE **)puVar6);\n    checkferror_output(*(FILE **)puVar6);\n    break;\n  case 'P':\n  case 'W':\n    pc.pc_addr = uVar16;\n    bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_00028ffc,std_only);\n    if (cVar10 == 'W') {\n      out_char(10);\n    }\n    store_var(4);\n    puVar7 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    checkferror_output(*(FILE **)puVar7);\n    pop();\n    break;\n  case 'R':\n    if (pbVar11 != (bc_function *)0x0) {\n      pc.pc_addr = uVar16;\n      pop_vars(local_58->f_autos);\n      pop_vars(functions[pc.pc_func].f_params);\n      fpop();\n      pc.pc_addr = fpop();\n      pbVar11 = (bc_function *)fpop();\n      local_5c = functions;\n      local_54 = functions[(int)pbVar11].f_code_size;\n      pc.pc_func = (uint)pbVar11;\n      goto _L138;\n    }\n    mesg = "Return from main program.";\n    pc.pc_addr = uVar16;\nLAB_000168af:\n    rt_error(mesg);\n    break;\n  case 'S':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    store_array(uVar12);\n    break;\n  case '^':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n      if ((cVar10 != '\0') && (cVar10 = bc_is_neg(ex_stack->s_num), cVar10 != '\0')) {\n        rt_error("divide by zero");\n      }\n      pop();\n      pop();\n      push_num(temp_num);\n      bc_init_num(&temp_num);\n      goto LAB_00016ba1;\n    }\n    goto LAB_000160a5;\n  case 'c':\n    goto _L153;\n  case 'd':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    decr_var(uVar12);\n    break;\n  case 'h':\n    pc.pc_addr = uVar16;\n    bc_exit(0);\n    break;\n  case 'i':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    incr_var(uVar12);\n    break;\n  case 'l':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    load_var(uVar12);\n    break;\n  case 'n':\n    pc.pc_addr = uVar16;\n    bc_sub(_zero_,ex_stack->s_num,&ex_stack->s_num,0);\n    break;\n  case 'p':\n    pc.pc_addr = uVar16;\n    pop();\n    goto LAB_00016168;\n  case 's':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    store_var(uVar12);\n    break;\n  case 'w':\n    bVar2 = local_4c[uVar16];\n    pc.pc_addr = pc.pc_addr + 2;\n    puVar5 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar5, 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      puVar5 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar5);\n    checkferror_output((FILE *)*puVar5);\n    break;\n  case 'x':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\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      goto LAB_00016168;\n    }\n    goto LAB_000160a5;\n  case '{':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 < 1;\n      pop();\n      goto LAB_00016b9c;\n    }\n    goto LAB_000160a5;\n  case '|':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n      bVar17 = true;\n      if (cVar10 != '\0') {\n        cVar10 = bc_is_zero(ex_stack->s_num);\n        bVar17 = cVar10 == '\0';\n      }\n      c_code = bVar17;\n      pop();\n      goto LAB_00016b9c;\n    }\nLAB_00016168:\n    local_5c = functions;\n    local_54 = functions[pc.pc_func].f_code_size;\n    pbVar11 = (bc_function *)pc.pc_func;\n    goto _L138;\n  case '}':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\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();\n      goto LAB_00016b9c;\n    }\n    goto LAB_000160a5;\n  }\n  goto LAB_00015f30;\n_L153:\n  pc.pc_addr = pc.pc_addr + 2;\n  switch(local_4c[uVar16]) {\n  case 'I':\n    push_constant(input_char,i_base);\n    break;\n  default:\n    goto _L138;\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_000160a5:\n      local_5c = functions;\n      local_54 = functions[pc.pc_func].f_code_size;\n      pbVar11 = (bc_function *)pc.pc_func;\n      goto _L138;\n    }\n    rt_error("Square root of a negative number");\n    goto LAB_00016ba1;\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);\nLAB_00016ba1:\n    local_5c = functions;\n    local_54 = functions[pc.pc_func].f_code_size;\n    pbVar11 = (bc_function *)pc.pc_func;\n    goto _L138;\n  }\nLAB_00015f30:\n  local_5c = functions;\n  local_54 = functions[pc.pc_func].f_code_size;\n  pbVar11 = (bc_function *)pc.pc_func;\n  goto _L138;\ncode_r0x0001688b:\n  switch(local_4c[uVar16]) {\n  case '\\':\n    uVar12 = 0x5c;\n    uVar16 = pc.pc_addr;\n    break;\n  default:\n    goto _L160;\n  case 'a':\n    uVar12 = 7;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'b':\n    uVar12 = 8;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'f':\n    uVar12 = 0xc;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'n':\n    uVar12 = 10;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'q':\n    uVar12 = 0x22;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'r':\n    uVar12 = 0xd;\n    uVar16 = pc.pc_addr;\n    break;\n  case 't':\n    uVar12 = 9;\n    uVar16 = pc.pc_addr;\n  }\nLAB_00016844:\n  pc.pc_addr = uVar16;\n  out_schar(uVar12);\n  local_4c = functions[pc.pc_func].f_body;\n  goto _L160;\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  undefined4 *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  uint uVar8;\n  char cVar9;\n  char cVar10;\n  bc_function *pbVar11;\n  uint uVar12;\n  int iVar13;\n  char *mesg;\n  int iVar14;\n  long val;\n  bc_label_group *pbVar15;\n  uint uVar16;\n  int in_GS_OFFSET;\n  bool bVar17;\n  bc_function *local_5c;\n  bc_function *local_58;\n  uint local_54;\n  char *local_4c;\n  bool local_3d;\n  bc_num temp_num;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x15d59;\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  puVar6 = PTR_stdout_00028fec;\n  had_sigint = 0;\n  local_5c = functions;\n  local_54 = functions[pc.pc_func].f_code_size;\n  pbVar11 = (bc_function *)pc.pc_func;\n_L138:\n  local_58 = local_5c + (int)pbVar11;\n  if (((local_54 <= pc.pc_addr) || (runtime_error != '\0')) || (had_sigint != 0)) {\n    if (pbVar11 != (bc_function *)0x0) {\n      do {\n        pop_vars(local_5c[(int)pbVar11].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar11 = (bc_function *)fpop();\n        local_5c = functions;\n        pc.pc_func = (uint)pbVar11;\n      } while (pbVar11 != (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_00028ff4), had_sigint != 0))\n    {\n      puts("\ninterrupted execution.");\n      checkferror_output(*(FILE **)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail_local();\n    }\n    return;\n  }\n  uVar16 = pc.pc_addr + 1;\n  local_4c = local_58->f_body;\n  cVar10 = local_4c[pc.pc_addr];\n  switch(cVar10) {\n  case '!':\n  case 'T':\n    pc.pc_addr = uVar16;\n    c_code = bc_is_zero(ex_stack->s_num);\n    assign(c_code);\n    break;\n  default:\n    mesg = "bad instruction: inst=%c";\n    pc.pc_addr = uVar16;\n    goto LAB_000168af;\n  case '#':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_000160a5;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 != 0;\n    pop();\nLAB_00016b9c:\n    assign(c_code);\n    goto LAB_00016ba1;\n  case '%':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    cVar10 = bc_is_zero(ex_stack->s_num);\n    if (cVar10 == '\0') {\n      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      goto LAB_0001656e;\n    }\n    mesg = "Modulo by zero";\n    goto LAB_000168af;\n  case '&':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n    local_3d = false;\n    if (cVar10 == '\0') {\n      cVar10 = bc_is_zero(ex_stack->s_num);\n      local_3d = cVar10 == '\0';\n    }\n    c_code = local_3d;\n    pop();\n    assign(c_code);\n    break;\n  case '*':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    bc_multiply(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\nLAB_0001642c:\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case '+':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_0001642c;\n    }\n    goto LAB_00016168;\n  case '-':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\nLAB_0001656e:\n      pop();\n      pop();\n      push_num(temp_num);\n      bc_init_num(&temp_num);\n      goto LAB_00016ba1;\n    }\n    goto LAB_00016168;\n  case '/':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    iVar13 = bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    if (iVar13 != 0) {\n      rt_error("Divide by zero");\n      goto LAB_00016ba1;\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 = uVar16;\n    push_copy(_zero_);\n    break;\n  case '1':\n    pc.pc_addr = uVar16;\n    push_copy(_one_);\n    break;\n  case '<':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == -1;\nLAB_00016236:\n    pop();\n    assign(c_code);\n    break;\n  case '=':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 == 0;\n      goto LAB_00016236;\n    }\n    goto LAB_00016168;\n  case '>':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 == 1;\n      goto LAB_00016236;\n    }\n    goto LAB_00016168;\n  case 'A':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    incr_array(uVar12);\n    break;\n  case 'B':\n  case 'Z':\n    pc.pc_addr = uVar16;\n    cVar9 = bc_is_zero(ex_stack->s_num);\n    c_code = cVar9 == '\0';\n    pop();\n    local_5c = functions;\n    local_58 = functions + pc.pc_func;\n    local_4c = local_58->f_body;\n    iVar13 = pc.pc_addr + 1;\n    cVar9 = local_4c[pc.pc_addr];\n    pc.pc_addr = pc.pc_addr + 2;\n    pbVar11 = (bc_function *)pc.pc_func;\n    if (cVar10 == 'J') goto LAB_0001696a;\n    if (cVar10 == 'B') {\n      if (c_code != '\0') goto LAB_0001696a;\n    }\n    else if ((cVar10 == 'Z') && (c_code == '\0')) goto LAB_0001696a;\n    local_54 = local_58->f_code_size;\n    goto _L138;\n  case 'C':\n    local_58 = (bc_function *)(uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      local_58 = (bc_function *)\n                 ((uint)(byte)local_4c[pc.pc_addr + 2] + ((uint)local_58 & 0x7f) * 0x100);\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    if (local_5c[(int)local_58].f_defined == '\0') {\n      mesg = "Function %s not defined.";\n      goto LAB_000168af;\n    }\n    process_params(&pc,(int)local_58);\n    for (paVar4 = functions[(int)local_58].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_58;\n    local_5c = functions;\n    local_54 = functions[(int)local_58].f_code_size;\n    pbVar11 = local_58;\n    goto _L138;\n  case 'D':\n    pc.pc_addr = uVar16;\n    push_copy(ex_stack->s_num);\n    break;\n  case 'J':\n    iVar13 = pc.pc_addr + 2;\n    cVar9 = local_4c[uVar16];\n    pc.pc_addr = pc.pc_addr + 3;\nLAB_0001696a:\n    uVar16 = (uint)(ushort)(CONCAT11(local_4c[iVar13],cVar9) >> 6);\n    pbVar15 = local_58->f_label;\n    iVar14 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar14 = iVar14 + -1;\n        pbVar15 = pbVar15->l_next;\n      } while (iVar14 != -1);\n    }\n    if (pbVar15 == (bc_label_group *)0x0) {\n      mesg = "Internal error.";\n      goto LAB_000168af;\n    }\n    pc.pc_addr = pbVar15->l_adrs[CONCAT11(local_4c[iVar13],cVar9) & 0x3f];\n    local_54 = local_58->f_code_size;\n    goto _L138;\n  case 'K':\n    iVar13 = i_base;\n    if (pbVar11 != (bc_function *)0x0) {\n      iVar13 = fn_stack->s_val;\n    }\n    if (iVar13 == 10) {\n      pc.pc_addr = uVar16;\n      push_b10_const(&pc);\n      goto LAB_00016ba1;\n    }\n    pc.pc_addr = uVar16;\n    push_constant(prog_char,iVar13);\n    break;\n  case 'L':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    load_array(uVar12);\n    break;\n  case 'M':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    decr_array(uVar12);\n    break;\n  case 'O':\n    pc.pc_addr = uVar16;\n_L160:\n    uVar16 = pc.pc_addr + 1;\n    bVar2 = local_4c[pc.pc_addr];\n    uVar12 = (uint)bVar2;\n    uVar8 = uVar16;\n    if (bVar2 != 0x22) {\n      if (bVar2 != 0x5c) goto LAB_00016844;\n      pc.pc_addr = pc.pc_addr + 2;\n      uVar8 = pc.pc_addr;\n      if (local_4c[uVar16] != '\"') goto code_r0x0001688b;\n    }\n    pc.pc_addr = uVar8;\n    fflush(*(FILE **)puVar6);\n    checkferror_output(*(FILE **)puVar6);\n    break;\n  case 'P':\n  case 'W':\n    pc.pc_addr = uVar16;\n    bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_00028ffc,std_only);\n    if (cVar10 == 'W') {\n      out_char(10);\n    }\n    store_var(4);\n    puVar7 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    checkferror_output(*(FILE **)puVar7);\n    pop();\n    break;\n  case 'R':\n    if (pbVar11 != (bc_function *)0x0) {\n      pc.pc_addr = uVar16;\n      pop_vars(local_58->f_autos);\n      pop_vars(functions[pc.pc_func].f_params);\n      fpop();\n      pc.pc_addr = fpop();\n      pbVar11 = (bc_function *)fpop();\n      local_5c = functions;\n      local_54 = functions[(int)pbVar11].f_code_size;\n      pc.pc_func = (uint)pbVar11;\n      goto _L138;\n    }\n    mesg = "Return from main program.";\n    pc.pc_addr = uVar16;\nLAB_000168af:\n    rt_error(mesg);\n    break;\n  case 'S':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    store_array(uVar12);\n    break;\n  case '^':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n      if ((cVar10 != '\0') && (cVar10 = bc_is_neg(ex_stack->s_num), cVar10 != '\0')) {\n        rt_error("divide by zero");\n      }\n      pop();\n      pop();\n      push_num(temp_num);\n      bc_init_num(&temp_num);\n      goto LAB_00016ba1;\n    }\n    goto LAB_000160a5;\n  case 'c':\n    goto _L153;\n  case 'd':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    decr_var(uVar12);\n    break;\n  case 'h':\n    pc.pc_addr = uVar16;\n    bc_exit(0);\n    break;\n  case 'i':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    incr_var(uVar12);\n    break;\n  case 'l':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    load_var(uVar12);\n    break;\n  case 'n':\n    pc.pc_addr = uVar16;\n    bc_sub(_zero_,ex_stack->s_num,&ex_stack->s_num,0);\n    break;\n  case 'p':\n    pc.pc_addr = uVar16;\n    pop();\n    goto LAB_00016168;\n  case 's':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    store_var(uVar12);\n    break;\n  case 'w':\n    bVar2 = local_4c[uVar16];\n    pc.pc_addr = pc.pc_addr + 2;\n    puVar5 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar5, 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      puVar5 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar5);\n    checkferror_output((FILE *)*puVar5);\n    break;\n  case 'x':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\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      goto LAB_00016168;\n    }\n    goto LAB_000160a5;\n  case '{':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 < 1;\n      pop();\n      goto LAB_00016b9c;\n    }\n    goto LAB_000160a5;\n  case '|':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n      bVar17 = true;\n      if (cVar10 != '\0') {\n        cVar10 = bc_is_zero(ex_stack->s_num);\n        bVar17 = cVar10 == '\0';\n      }\n      c_code = bVar17;\n      pop();\n      goto LAB_00016b9c;\n    }\nLAB_00016168:\n    local_5c = functions;\n    local_54 = functions[pc.pc_func].f_code_size;\n    pbVar11 = (bc_function *)pc.pc_func;\n    goto _L138;\n  case '}':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\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();\n      goto LAB_00016b9c;\n    }\n    goto LAB_000160a5;\n  }\n  goto LAB_00015f30;\n_L153:\n  pc.pc_addr = pc.pc_addr + 2;\n  switch(local_4c[uVar16]) {\n  case 'I':\n    push_constant(input_char,i_base);\n    break;\n  default:\n    goto _L138;\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_000160a5:\n      local_5c = functions;\n      local_54 = functions[pc.pc_func].f_code_size;\n      pbVar11 = (bc_function *)pc.pc_func;\n      goto _L138;\n    }\n    rt_error("Square root of a negative number");\n    goto LAB_00016ba1;\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);\nLAB_00016ba1:\n    local_5c = functions;\n    local_54 = functions[pc.pc_func].f_code_size;\n    pbVar11 = (bc_function *)pc.pc_func;\n    goto _L138;\n  }\nLAB_00015f30:\n  local_5c = functions;\n  local_54 = functions[pc.pc_func].f_code_size;\n  pbVar11 = (bc_function *)pc.pc_func;\n  goto _L138;\ncode_r0x0001688b:\n  switch(local_4c[uVar16]) {\n  case '\\':\n    uVar12 = 0x5c;\n    uVar16 = pc.pc_addr;\n    break;\n  default:\n    goto _L160;\n  case 'a':\n    uVar12 = 7;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'b':\n    uVar12 = 8;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'f':\n    uVar12 = 0xc;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'n':\n    uVar12 = 10;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'q':\n    uVar12 = 0x22;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'r':\n    uVar12 = 0xd;\n    uVar16 = pc.pc_addr;\n    break;\n  case 't':\n    uVar12 = 9;\n    uVar16 = pc.pc_addr;\n  }\nLAB_00016844:\n  pc.pc_addr = uVar16;\n  out_schar(uVar12);\n  local_4c = functions[pc.pc_func].f_body;\n  goto _L160;\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  undefined4 *puVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  uint uVar8;\n  char cVar9;\n  char cVar10;\n  bc_function *pbVar11;\n  uint uVar12;\n  int iVar13;\n  char *mesg;\n  int iVar14;\n  long val;\n  bc_label_group *pbVar15;\n  uint uVar16;\n  int in_GS_OFFSET;\n  bool bVar17;\n  bc_function *local_5c;\n  bc_function *local_58;\n  uint local_54;\n  char *local_4c;\n  bool local_3d;\n  bc_num temp_num;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x15d59;\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  puVar6 = PTR_stdout_00028fec;\n  had_sigint = 0;\n  local_5c = functions;\n  local_54 = functions[pc.pc_func].f_code_size;\n  pbVar11 = (bc_function *)pc.pc_func;\n_L138:\n  local_58 = local_5c + (int)pbVar11;\n  if (((local_54 <= pc.pc_addr) || (runtime_error != '\0')) || (had_sigint != 0)) {\n    if (pbVar11 != (bc_function *)0x0) {\n      do {\n        pop_vars(local_5c[(int)pbVar11].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar11 = (bc_function *)fpop();\n        local_5c = functions;\n        pc.pc_func = (uint)pbVar11;\n      } while (pbVar11 != (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_00028ff4), had_sigint != 0))\n    {\n      puts("\ninterrupted execution.");\n      checkferror_output(*(FILE **)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail_local();\n    }\n    return;\n  }\n  uVar16 = pc.pc_addr + 1;\n  local_4c = local_58->f_body;\n  cVar10 = local_4c[pc.pc_addr];\n  switch(cVar10) {\n  case '!':\n  case 'T':\n    pc.pc_addr = uVar16;\n    c_code = bc_is_zero(ex_stack->s_num);\n    assign(c_code);\n    break;\n  default:\n    mesg = "bad instruction: inst=%c";\n    pc.pc_addr = uVar16;\n    goto LAB_000168af;\n  case '#':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_000160a5;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 != 0;\n    pop();\nLAB_00016b9c:\n    assign(c_code);\n    goto LAB_00016ba1;\n  case '%':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    cVar10 = bc_is_zero(ex_stack->s_num);\n    if (cVar10 == '\0') {\n      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      goto LAB_0001656e;\n    }\n    mesg = "Modulo by zero";\n    goto LAB_000168af;\n  case '&':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n    local_3d = false;\n    if (cVar10 == '\0') {\n      cVar10 = bc_is_zero(ex_stack->s_num);\n      local_3d = cVar10 == '\0';\n    }\n    c_code = local_3d;\n    pop();\n    assign(c_code);\n    break;\n  case '*':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    bc_multiply(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\nLAB_0001642c:\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case '+':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_0001642c;\n    }\n    goto LAB_00016168;\n  case '-':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\nLAB_0001656e:\n      pop();\n      pop();\n      push_num(temp_num);\n      bc_init_num(&temp_num);\n      goto LAB_00016ba1;\n    }\n    goto LAB_00016168;\n  case '/':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    iVar13 = bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    if (iVar13 != 0) {\n      rt_error("Divide by zero");\n      goto LAB_00016ba1;\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 = uVar16;\n    push_copy(_zero_);\n    break;\n  case '1':\n    pc.pc_addr = uVar16;\n    push_copy(_one_);\n    break;\n  case '<':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == -1;\nLAB_00016236:\n    pop();\n    assign(c_code);\n    break;\n  case '=':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 == 0;\n      goto LAB_00016236;\n    }\n    goto LAB_00016168;\n  case '>':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 == 1;\n      goto LAB_00016236;\n    }\n    goto LAB_00016168;\n  case 'A':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    incr_array(uVar12);\n    break;\n  case 'B':\n  case 'Z':\n    pc.pc_addr = uVar16;\n    cVar9 = bc_is_zero(ex_stack->s_num);\n    c_code = cVar9 == '\0';\n    pop();\n    local_5c = functions;\n    local_58 = functions + pc.pc_func;\n    local_4c = local_58->f_body;\n    iVar13 = pc.pc_addr + 1;\n    cVar9 = local_4c[pc.pc_addr];\n    pc.pc_addr = pc.pc_addr + 2;\n    pbVar11 = (bc_function *)pc.pc_func;\n    if (cVar10 == 'J') goto LAB_0001696a;\n    if (cVar10 == 'B') {\n      if (c_code != '\0') goto LAB_0001696a;\n    }\n    else if ((cVar10 == 'Z') && (c_code == '\0')) goto LAB_0001696a;\n    local_54 = local_58->f_code_size;\n    goto _L138;\n  case 'C':\n    local_58 = (bc_function *)(uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      local_58 = (bc_function *)\n                 ((uint)(byte)local_4c[pc.pc_addr + 2] + ((uint)local_58 & 0x7f) * 0x100);\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    if (local_5c[(int)local_58].f_defined == '\0') {\n      mesg = "Function %s not defined.";\n      goto LAB_000168af;\n    }\n    process_params(&pc,(int)local_58);\n    for (paVar4 = functions[(int)local_58].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_58;\n    local_5c = functions;\n    local_54 = functions[(int)local_58].f_code_size;\n    pbVar11 = local_58;\n    goto _L138;\n  case 'D':\n    pc.pc_addr = uVar16;\n    push_copy(ex_stack->s_num);\n    break;\n  case 'J':\n    iVar13 = pc.pc_addr + 2;\n    cVar9 = local_4c[uVar16];\n    pc.pc_addr = pc.pc_addr + 3;\nLAB_0001696a:\n    uVar16 = (uint)(ushort)(CONCAT11(local_4c[iVar13],cVar9) >> 6);\n    pbVar15 = local_58->f_label;\n    iVar14 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar14 = iVar14 + -1;\n        pbVar15 = pbVar15->l_next;\n      } while (iVar14 != -1);\n    }\n    if (pbVar15 == (bc_label_group *)0x0) {\n      mesg = "Internal error.";\n      goto LAB_000168af;\n    }\n    pc.pc_addr = pbVar15->l_adrs[CONCAT11(local_4c[iVar13],cVar9) & 0x3f];\n    local_54 = local_58->f_code_size;\n    goto _L138;\n  case 'K':\n    iVar13 = i_base;\n    if (pbVar11 != (bc_function *)0x0) {\n      iVar13 = fn_stack->s_val;\n    }\n    if (iVar13 == 10) {\n      pc.pc_addr = uVar16;\n      push_b10_const(&pc);\n      goto LAB_00016ba1;\n    }\n    pc.pc_addr = uVar16;\n    push_constant(prog_char,iVar13);\n    break;\n  case 'L':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    load_array(uVar12);\n    break;\n  case 'M':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    decr_array(uVar12);\n    break;\n  case 'O':\n    pc.pc_addr = uVar16;\n_L160:\n    uVar16 = pc.pc_addr + 1;\n    bVar2 = local_4c[pc.pc_addr];\n    uVar12 = (uint)bVar2;\n    uVar8 = uVar16;\n    if (bVar2 != 0x22) {\n      if (bVar2 != 0x5c) goto LAB_00016844;\n      pc.pc_addr = pc.pc_addr + 2;\n      uVar8 = pc.pc_addr;\n      if (local_4c[uVar16] != '\"') goto code_r0x0001688b;\n    }\n    pc.pc_addr = uVar8;\n    fflush(*(FILE **)puVar6);\n    checkferror_output(*(FILE **)puVar6);\n    break;\n  case 'P':\n  case 'W':\n    pc.pc_addr = uVar16;\n    bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_00028ffc,std_only);\n    if (cVar10 == 'W') {\n      out_char(10);\n    }\n    store_var(4);\n    puVar7 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    checkferror_output(*(FILE **)puVar7);\n    pop();\n    break;\n  case 'R':\n    if (pbVar11 != (bc_function *)0x0) {\n      pc.pc_addr = uVar16;\n      pop_vars(local_58->f_autos);\n      pop_vars(functions[pc.pc_func].f_params);\n      fpop();\n      pc.pc_addr = fpop();\n      pbVar11 = (bc_function *)fpop();\n      local_5c = functions;\n      local_54 = functions[(int)pbVar11].f_code_size;\n      pc.pc_func = (uint)pbVar11;\n      goto _L138;\n    }\n    mesg = "Return from main program.";\n    pc.pc_addr = uVar16;\nLAB_000168af:\n    rt_error(mesg);\n    break;\n  case 'S':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    store_array(uVar12);\n    break;\n  case '^':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n      if ((cVar10 != '\0') && (cVar10 = bc_is_neg(ex_stack->s_num), cVar10 != '\0')) {\n        rt_error("divide by zero");\n      }\n      pop();\n      pop();\n      push_num(temp_num);\n      bc_init_num(&temp_num);\n      goto LAB_00016ba1;\n    }\n    goto LAB_000160a5;\n  case 'c':\n    goto _L153;\n  case 'd':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    decr_var(uVar12);\n    break;\n  case 'h':\n    pc.pc_addr = uVar16;\n    bc_exit(0);\n    break;\n  case 'i':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    incr_var(uVar12);\n    break;\n  case 'l':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    load_var(uVar12);\n    break;\n  case 'n':\n    pc.pc_addr = uVar16;\n    bc_sub(_zero_,ex_stack->s_num,&ex_stack->s_num,0);\n    break;\n  case 'p':\n    pc.pc_addr = uVar16;\n    pop();\n    goto LAB_00016168;\n  case 's':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    store_var(uVar12);\n    break;\n  case 'w':\n    bVar2 = local_4c[uVar16];\n    pc.pc_addr = pc.pc_addr + 2;\n    puVar5 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar5, 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      puVar5 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar5);\n    checkferror_output((FILE *)*puVar5);\n    break;\n  case 'x':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\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      goto LAB_00016168;\n    }\n    goto LAB_000160a5;\n  case '{':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 < 1;\n      pop();\n      goto LAB_00016b9c;\n    }\n    goto LAB_000160a5;\n  case '|':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n      bVar17 = true;\n      if (cVar10 != '\0') {\n        cVar10 = bc_is_zero(ex_stack->s_num);\n        bVar17 = cVar10 == '\0';\n      }\n      c_code = bVar17;\n      pop();\n      goto LAB_00016b9c;\n    }\nLAB_00016168:\n    local_5c = functions;\n    local_54 = functions[pc.pc_func].f_code_size;\n    pbVar11 = (bc_function *)pc.pc_func;\n    goto _L138;\n  case '}':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\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();\n      goto LAB_00016b9c;\n    }\n    goto LAB_000160a5;\n  }\n  goto LAB_00015f30;\n_L153:\n  pc.pc_addr = pc.pc_addr + 2;\n  switch(local_4c[uVar16]) {\n  case 'I':\n    push_constant(input_char,i_base);\n    break;\n  default:\n    goto _L138;\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_000160a5:\n      local_5c = functions;\n      local_54 = functions[pc.pc_func].f_code_size;\n      pbVar11 = (bc_function *)pc.pc_func;\n      goto _L138;\n    }\n    rt_error("Square root of a negative number");\n    goto LAB_00016ba1;\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);\nLAB_00016ba1:\n    local_5c = functions;\n    local_54 = functions[pc.pc_func].f_code_size;\n    pbVar11 = (bc_function *)pc.pc_func;\n    goto _L138;\n  }\nLAB_00015f30:\n  local_5c = functions;\n  local_54 = functions[pc.pc_func].f_code_size;\n  pbVar11 = (bc_function *)pc.pc_func;\n  goto _L138;\ncode_r0x0001688b:\n  switch(local_4c[uVar16]) {\n  case '\\':\n    uVar12 = 0x5c;\n    uVar16 = pc.pc_addr;\n    break;\n  default:\n    goto _L160;\n  case 'a':\n    uVar12 = 7;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'b':\n    uVar12 = 8;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'f':\n    uVar12 = 0xc;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'n':\n    uVar12 = 10;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'q':\n    uVar12 = 0x22;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'r':\n    uVar12 = 0xd;\n    uVar16 = pc.pc_addr;\n    break;\n  case 't':\n    uVar12 = 9;\n    uVar16 = pc.pc_addr;\n  }\nLAB_00016844:\n  pc.pc_addr = uVar16;\n  out_schar(uVar12);\n  local_4c = functions[pc.pc_func].f_body;\n  goto _L160;\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 "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char cVar9;" primitive_type identifier ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "bc_function *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "char *mesg;" primitive_type (pointer_declarator "*mesg" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "long val;" (sized_type_specifier "long" long) identifier ;) (declaration "bc_label_group *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "bc_function *local_5c;" type_identifier (pointer_declarator "*local_5c" * identifier) ;) (declaration "bc_function *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "char *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "bool local_3d;" primitive_type identifier ;) (declaration "bc_num temp_num;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x15d59;" (assignment_expression "uStack_14 = 0x15d59" 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 "puVar6 = PTR_stdout_00028fec;" (assignment_expression "puVar6 = PTR_stdout_00028fec" identifier = identifier) ;) (expression_statement "had_sigint = 0;" (assignment_expression "had_sigint = 0" identifier = number_literal) ;) (expression_statement "local_5c = functions;" (assignment_expression "local_5c = functions" identifier = identifier) ;) (expression_statement "local_54 = functions[pc.pc_func].f_code_size;" (assignment_expression "local_54 = functions[pc.pc_func].f_code_size" identifier = (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 "pbVar11 = (bc_function *)pc.pc_func;" (assignment_expression "pbVar11 = (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))) ;) (labeled_statement "_L138:\n  local_58 = local_5c + (int)pbVar11;" statement_identifier : (expression_statement "local_58 = local_5c + (int)pbVar11;" (assignment_expression "local_58 = local_5c + (int)pbVar11" identifier = (binary_expression "local_5c + (int)pbVar11" identifier + (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (if_statement "if (((local_54 <= pc.pc_addr) || (runtime_error != '\0')) || (had_sigint != 0)) {\n    if (pbVar11 != (bc_function *)0x0) {\n      do {\n        pop_vars(local_5c[(int)pbVar11].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar11 = (bc_function *)fpop();\n        local_5c = functions;\n        pc.pc_func = (uint)pbVar11;\n      } while (pbVar11 != (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_00028ff4), had_sigint != 0))\n    {\n      puts("\ninterrupted execution.");\n      checkferror_output(*(FILE **)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail_local();\n    }\n    return;\n  }" if (parenthesized_expression "(((local_54 <= pc.pc_addr) || (runtime_error != '\0')) || (had_sigint != 0))" ( (binary_expression "((local_54 <= pc.pc_addr) || (runtime_error != '\0')) || (had_sigint != 0)" (parenthesized_expression "((local_54 <= pc.pc_addr) || (runtime_error != '\0'))" ( (binary_expression "(local_54 <= pc.pc_addr) || (runtime_error != '\0')" (parenthesized_expression "(local_54 <= pc.pc_addr)" ( (binary_expression "local_54 <= 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 (pbVar11 != (bc_function *)0x0) {\n      do {\n        pop_vars(local_5c[(int)pbVar11].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar11 = (bc_function *)fpop();\n        local_5c = functions;\n        pc.pc_func = (uint)pbVar11;\n      } while (pbVar11 != (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_00028ff4), had_sigint != 0))\n    {\n      puts("\ninterrupted execution.");\n      checkferror_output(*(FILE **)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail_local();\n    }\n    return;\n  }" { (if_statement "if (pbVar11 != (bc_function *)0x0) {\n      do {\n        pop_vars(local_5c[(int)pbVar11].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar11 = (bc_function *)fpop();\n        local_5c = functions;\n        pc.pc_func = (uint)pbVar11;\n      } while (pbVar11 != (bc_function *)0x0);\n      pc.pc_func = 0;\n    }" if (parenthesized_expression "(pbVar11 != (bc_function *)0x0)" ( (binary_expression "pbVar11 != (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(local_5c[(int)pbVar11].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar11 = (bc_function *)fpop();\n        local_5c = functions;\n        pc.pc_func = (uint)pbVar11;\n      } while (pbVar11 != (bc_function *)0x0);\n      pc.pc_func = 0;\n    }" { (do_statement "do {\n        pop_vars(local_5c[(int)pbVar11].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar11 = (bc_function *)fpop();\n        local_5c = functions;\n        pc.pc_func = (uint)pbVar11;\n      } while (pbVar11 != (bc_function *)0x0);" do (compound_statement "{\n        pop_vars(local_5c[(int)pbVar11].f_autos);\n        pop_vars(functions[pc.pc_func].f_params);\n        fpop();\n        pc.pc_addr = fpop();\n        pbVar11 = (bc_function *)fpop();\n        local_5c = functions;\n        pc.pc_func = (uint)pbVar11;\n      }" { (expression_statement "pop_vars(local_5c[(int)pbVar11].f_autos);" (call_expression "pop_vars(local_5c[(int)pbVar11].f_autos)" identifier (argument_list "(local_5c[(int)pbVar11].f_autos)" ( (field_expression "local_5c[(int)pbVar11].f_autos" (subscript_expression "local_5c[(int)pbVar11]" identifier [ (cast_expression "(int)pbVar11" ( (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 "pbVar11 = (bc_function *)fpop();" (assignment_expression "pbVar11 = (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_5c = functions;" (assignment_expression "local_5c = functions" identifier = identifier) ;) (expression_statement "pc.pc_func = (uint)pbVar11;" (assignment_expression "pc.pc_func = (uint)pbVar11" (field_expression "pc.pc_func" identifier . field_identifier) = (cast_expression "(uint)pbVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(pbVar11 != (bc_function *)0x0)" ( (binary_expression "pbVar11 != (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_00028ff4), had_sigint != 0))\n    {\n      puts("\ninterrupted execution.");\n      checkferror_output(*(FILE **)PTR_stdout_00028fec);\n    }" if (parenthesized_expression "((interactive != '\0') && (signal(2,(__sighandler_t)PTR_use_quit_00028ff4), had_sigint != 0))" ( (binary_expression "(interactive != '\0') && (signal(2,(__sighandler_t)PTR_use_quit_00028ff4), 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_00028ff4), had_sigint != 0)" ( (comma_expression "signal(2,(__sighandler_t)PTR_use_quit_00028ff4), had_sigint != 0" (call_expression "signal(2,(__sighandler_t)PTR_use_quit_00028ff4)" identifier (argument_list "(2,(__sighandler_t)PTR_use_quit_00028ff4)" ( number_literal , (cast_expression "(__sighandler_t)PTR_use_quit_00028ff4" ( (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_00028fec);\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_00028fec);" (call_expression "checkferror_output(*(FILE **)PTR_stdout_00028fec)" identifier (argument_list "(*(FILE **)PTR_stdout_00028fec)" ( (pointer_expression "*(FILE **)PTR_stdout_00028fec" * (cast_expression "(FILE **)PTR_stdout_00028fec" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) })) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail_local();\n    }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __stack_chk_fail_local();\n    }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "uVar16 = pc.pc_addr + 1;" (assignment_expression "uVar16 = pc.pc_addr + 1" identifier = (binary_expression "pc.pc_addr + 1" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (expression_statement "local_4c = local_58->f_body;" (assignment_expression "local_4c = local_58->f_body" identifier = (field_expression "local_58->f_body" identifier -> field_identifier)) ;) (expression_statement "cVar10 = local_4c[pc.pc_addr];" (assignment_expression "cVar10 = local_4c[pc.pc_addr]" identifier = (subscript_expression "local_4c[pc.pc_addr]" identifier [ (field_expression "pc.pc_addr" identifier . field_identifier) ])) ;) (switch_statement "switch(cVar10) {\n  case '!':\n  case 'T':\n    pc.pc_addr = uVar16;\n    c_code = bc_is_zero(ex_stack->s_num);\n    assign(c_code);\n    break;\n  default:\n    mesg = "bad instruction: inst=%c";\n    pc.pc_addr = uVar16;\n    goto LAB_000168af;\n  case '#':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_000160a5;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 != 0;\n    pop();\nLAB_00016b9c:\n    assign(c_code);\n    goto LAB_00016ba1;\n  case '%':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    cVar10 = bc_is_zero(ex_stack->s_num);\n    if (cVar10 == '\0') {\n      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      goto LAB_0001656e;\n    }\n    mesg = "Modulo by zero";\n    goto LAB_000168af;\n  case '&':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n    local_3d = false;\n    if (cVar10 == '\0') {\n      cVar10 = bc_is_zero(ex_stack->s_num);\n      local_3d = cVar10 == '\0';\n    }\n    c_code = local_3d;\n    pop();\n    assign(c_code);\n    break;\n  case '*':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    bc_multiply(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\nLAB_0001642c:\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case '+':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_0001642c;\n    }\n    goto LAB_00016168;\n  case '-':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\nLAB_0001656e:\n      pop();\n      pop();\n      push_num(temp_num);\n      bc_init_num(&temp_num);\n      goto LAB_00016ba1;\n    }\n    goto LAB_00016168;\n  case '/':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    iVar13 = bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    if (iVar13 != 0) {\n      rt_error("Divide by zero");\n      goto LAB_00016ba1;\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 = uVar16;\n    push_copy(_zero_);\n    break;\n  case '1':\n    pc.pc_addr = uVar16;\n    push_copy(_one_);\n    break;\n  case '<':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == -1;\nLAB_00016236:\n    pop();\n    assign(c_code);\n    break;\n  case '=':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 == 0;\n      goto LAB_00016236;\n    }\n    goto LAB_00016168;\n  case '>':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 == 1;\n      goto LAB_00016236;\n    }\n    goto LAB_00016168;\n  case 'A':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    incr_array(uVar12);\n    break;\n  case 'B':\n  case 'Z':\n    pc.pc_addr = uVar16;\n    cVar9 = bc_is_zero(ex_stack->s_num);\n    c_code = cVar9 == '\0';\n    pop();\n    local_5c = functions;\n    local_58 = functions + pc.pc_func;\n    local_4c = local_58->f_body;\n    iVar13 = pc.pc_addr + 1;\n    cVar9 = local_4c[pc.pc_addr];\n    pc.pc_addr = pc.pc_addr + 2;\n    pbVar11 = (bc_function *)pc.pc_func;\n    if (cVar10 == 'J') goto LAB_0001696a;\n    if (cVar10 == 'B') {\n      if (c_code != '\0') goto LAB_0001696a;\n    }\n    else if ((cVar10 == 'Z') && (c_code == '\0')) goto LAB_0001696a;\n    local_54 = local_58->f_code_size;\n    goto _L138;\n  case 'C':\n    local_58 = (bc_function *)(uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      local_58 = (bc_function *)\n                 ((uint)(byte)local_4c[pc.pc_addr + 2] + ((uint)local_58 & 0x7f) * 0x100);\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    if (local_5c[(int)local_58].f_defined == '\0') {\n      mesg = "Function %s not defined.";\n      goto LAB_000168af;\n    }\n    process_params(&pc,(int)local_58);\n    for (paVar4 = functions[(int)local_58].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_58;\n    local_5c = functions;\n    local_54 = functions[(int)local_58].f_code_size;\n    pbVar11 = local_58;\n    goto _L138;\n  case 'D':\n    pc.pc_addr = uVar16;\n    push_copy(ex_stack->s_num);\n    break;\n  case 'J':\n    iVar13 = pc.pc_addr + 2;\n    cVar9 = local_4c[uVar16];\n    pc.pc_addr = pc.pc_addr + 3;\nLAB_0001696a:\n    uVar16 = (uint)(ushort)(CONCAT11(local_4c[iVar13],cVar9) >> 6);\n    pbVar15 = local_58->f_label;\n    iVar14 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar14 = iVar14 + -1;\n        pbVar15 = pbVar15->l_next;\n      } while (iVar14 != -1);\n    }\n    if (pbVar15 == (bc_label_group *)0x0) {\n      mesg = "Internal error.";\n      goto LAB_000168af;\n    }\n    pc.pc_addr = pbVar15->l_adrs[CONCAT11(local_4c[iVar13],cVar9) & 0x3f];\n    local_54 = local_58->f_code_size;\n    goto _L138;\n  case 'K':\n    iVar13 = i_base;\n    if (pbVar11 != (bc_function *)0x0) {\n      iVar13 = fn_stack->s_val;\n    }\n    if (iVar13 == 10) {\n      pc.pc_addr = uVar16;\n      push_b10_const(&pc);\n      goto LAB_00016ba1;\n    }\n    pc.pc_addr = uVar16;\n    push_constant(prog_char,iVar13);\n    break;\n  case 'L':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    load_array(uVar12);\n    break;\n  case 'M':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    decr_array(uVar12);\n    break;\n  case 'O':\n    pc.pc_addr = uVar16;\n_L160:\n    uVar16 = pc.pc_addr + 1;\n    bVar2 = local_4c[pc.pc_addr];\n    uVar12 = (uint)bVar2;\n    uVar8 = uVar16;\n    if (bVar2 != 0x22) {\n      if (bVar2 != 0x5c) goto LAB_00016844;\n      pc.pc_addr = pc.pc_addr + 2;\n      uVar8 = pc.pc_addr;\n      if (local_4c[uVar16] != '\"') goto code_r0x0001688b;\n    }\n    pc.pc_addr = uVar8;\n    fflush(*(FILE **)puVar6);\n    checkferror_output(*(FILE **)puVar6);\n    break;\n  case 'P':\n  case 'W':\n    pc.pc_addr = uVar16;\n    bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_00028ffc,std_only);\n    if (cVar10 == 'W') {\n      out_char(10);\n    }\n    store_var(4);\n    puVar7 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    checkferror_output(*(FILE **)puVar7);\n    pop();\n    break;\n  case 'R':\n    if (pbVar11 != (bc_function *)0x0) {\n      pc.pc_addr = uVar16;\n      pop_vars(local_58->f_autos);\n      pop_vars(functions[pc.pc_func].f_params);\n      fpop();\n      pc.pc_addr = fpop();\n      pbVar11 = (bc_function *)fpop();\n      local_5c = functions;\n      local_54 = functions[(int)pbVar11].f_code_size;\n      pc.pc_func = (uint)pbVar11;\n      goto _L138;\n    }\n    mesg = "Return from main program.";\n    pc.pc_addr = uVar16;\nLAB_000168af:\n    rt_error(mesg);\n    break;\n  case 'S':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    store_array(uVar12);\n    break;\n  case '^':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n      if ((cVar10 != '\0') && (cVar10 = bc_is_neg(ex_stack->s_num), cVar10 != '\0')) {\n        rt_error("divide by zero");\n      }\n      pop();\n      pop();\n      push_num(temp_num);\n      bc_init_num(&temp_num);\n      goto LAB_00016ba1;\n    }\n    goto LAB_000160a5;\n  case 'c':\n    goto _L153;\n  case 'd':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    decr_var(uVar12);\n    break;\n  case 'h':\n    pc.pc_addr = uVar16;\n    bc_exit(0);\n    break;\n  case 'i':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    incr_var(uVar12);\n    break;\n  case 'l':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    load_var(uVar12);\n    break;\n  case 'n':\n    pc.pc_addr = uVar16;\n    bc_sub(_zero_,ex_stack->s_num,&ex_stack->s_num,0);\n    break;\n  case 'p':\n    pc.pc_addr = uVar16;\n    pop();\n    goto LAB_00016168;\n  case 's':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    store_var(uVar12);\n    break;\n  case 'w':\n    bVar2 = local_4c[uVar16];\n    pc.pc_addr = pc.pc_addr + 2;\n    puVar5 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar5, 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      puVar5 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar5);\n    checkferror_output((FILE *)*puVar5);\n    break;\n  case 'x':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\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      goto LAB_00016168;\n    }\n    goto LAB_000160a5;\n  case '{':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 < 1;\n      pop();\n      goto LAB_00016b9c;\n    }\n    goto LAB_000160a5;\n  case '|':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n      bVar17 = true;\n      if (cVar10 != '\0') {\n        cVar10 = bc_is_zero(ex_stack->s_num);\n        bVar17 = cVar10 == '\0';\n      }\n      c_code = bVar17;\n      pop();\n      goto LAB_00016b9c;\n    }\nLAB_00016168:\n    local_5c = functions;\n    local_54 = functions[pc.pc_func].f_code_size;\n    pbVar11 = (bc_function *)pc.pc_func;\n    goto _L138;\n  case '}':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\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();\n      goto LAB_00016b9c;\n    }\n    goto LAB_000160a5;\n  }" switch (parenthesized_expression "(cVar10)" ( identifier )) (compound_statement "{\n  case '!':\n  case 'T':\n    pc.pc_addr = uVar16;\n    c_code = bc_is_zero(ex_stack->s_num);\n    assign(c_code);\n    break;\n  default:\n    mesg = "bad instruction: inst=%c";\n    pc.pc_addr = uVar16;\n    goto LAB_000168af;\n  case '#':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_000160a5;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 != 0;\n    pop();\nLAB_00016b9c:\n    assign(c_code);\n    goto LAB_00016ba1;\n  case '%':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    cVar10 = bc_is_zero(ex_stack->s_num);\n    if (cVar10 == '\0') {\n      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      goto LAB_0001656e;\n    }\n    mesg = "Modulo by zero";\n    goto LAB_000168af;\n  case '&':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n    local_3d = false;\n    if (cVar10 == '\0') {\n      cVar10 = bc_is_zero(ex_stack->s_num);\n      local_3d = cVar10 == '\0';\n    }\n    c_code = local_3d;\n    pop();\n    assign(c_code);\n    break;\n  case '*':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    bc_multiply(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\nLAB_0001642c:\n    pop();\n    pop();\n    push_num(temp_num);\n    bc_init_num(&temp_num);\n    break;\n  case '+':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_0001642c;\n    }\n    goto LAB_00016168;\n  case '-':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\nLAB_0001656e:\n      pop();\n      pop();\n      push_num(temp_num);\n      bc_init_num(&temp_num);\n      goto LAB_00016ba1;\n    }\n    goto LAB_00016168;\n  case '/':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    iVar13 = bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    if (iVar13 != 0) {\n      rt_error("Divide by zero");\n      goto LAB_00016ba1;\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 = uVar16;\n    push_copy(_zero_);\n    break;\n  case '1':\n    pc.pc_addr = uVar16;\n    push_copy(_one_);\n    break;\n  case '<':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == -1;\nLAB_00016236:\n    pop();\n    assign(c_code);\n    break;\n  case '=':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 == 0;\n      goto LAB_00016236;\n    }\n    goto LAB_00016168;\n  case '>':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 == 1;\n      goto LAB_00016236;\n    }\n    goto LAB_00016168;\n  case 'A':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    incr_array(uVar12);\n    break;\n  case 'B':\n  case 'Z':\n    pc.pc_addr = uVar16;\n    cVar9 = bc_is_zero(ex_stack->s_num);\n    c_code = cVar9 == '\0';\n    pop();\n    local_5c = functions;\n    local_58 = functions + pc.pc_func;\n    local_4c = local_58->f_body;\n    iVar13 = pc.pc_addr + 1;\n    cVar9 = local_4c[pc.pc_addr];\n    pc.pc_addr = pc.pc_addr + 2;\n    pbVar11 = (bc_function *)pc.pc_func;\n    if (cVar10 == 'J') goto LAB_0001696a;\n    if (cVar10 == 'B') {\n      if (c_code != '\0') goto LAB_0001696a;\n    }\n    else if ((cVar10 == 'Z') && (c_code == '\0')) goto LAB_0001696a;\n    local_54 = local_58->f_code_size;\n    goto _L138;\n  case 'C':\n    local_58 = (bc_function *)(uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      local_58 = (bc_function *)\n                 ((uint)(byte)local_4c[pc.pc_addr + 2] + ((uint)local_58 & 0x7f) * 0x100);\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    if (local_5c[(int)local_58].f_defined == '\0') {\n      mesg = "Function %s not defined.";\n      goto LAB_000168af;\n    }\n    process_params(&pc,(int)local_58);\n    for (paVar4 = functions[(int)local_58].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_58;\n    local_5c = functions;\n    local_54 = functions[(int)local_58].f_code_size;\n    pbVar11 = local_58;\n    goto _L138;\n  case 'D':\n    pc.pc_addr = uVar16;\n    push_copy(ex_stack->s_num);\n    break;\n  case 'J':\n    iVar13 = pc.pc_addr + 2;\n    cVar9 = local_4c[uVar16];\n    pc.pc_addr = pc.pc_addr + 3;\nLAB_0001696a:\n    uVar16 = (uint)(ushort)(CONCAT11(local_4c[iVar13],cVar9) >> 6);\n    pbVar15 = local_58->f_label;\n    iVar14 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar14 = iVar14 + -1;\n        pbVar15 = pbVar15->l_next;\n      } while (iVar14 != -1);\n    }\n    if (pbVar15 == (bc_label_group *)0x0) {\n      mesg = "Internal error.";\n      goto LAB_000168af;\n    }\n    pc.pc_addr = pbVar15->l_adrs[CONCAT11(local_4c[iVar13],cVar9) & 0x3f];\n    local_54 = local_58->f_code_size;\n    goto _L138;\n  case 'K':\n    iVar13 = i_base;\n    if (pbVar11 != (bc_function *)0x0) {\n      iVar13 = fn_stack->s_val;\n    }\n    if (iVar13 == 10) {\n      pc.pc_addr = uVar16;\n      push_b10_const(&pc);\n      goto LAB_00016ba1;\n    }\n    pc.pc_addr = uVar16;\n    push_constant(prog_char,iVar13);\n    break;\n  case 'L':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    load_array(uVar12);\n    break;\n  case 'M':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    decr_array(uVar12);\n    break;\n  case 'O':\n    pc.pc_addr = uVar16;\n_L160:\n    uVar16 = pc.pc_addr + 1;\n    bVar2 = local_4c[pc.pc_addr];\n    uVar12 = (uint)bVar2;\n    uVar8 = uVar16;\n    if (bVar2 != 0x22) {\n      if (bVar2 != 0x5c) goto LAB_00016844;\n      pc.pc_addr = pc.pc_addr + 2;\n      uVar8 = pc.pc_addr;\n      if (local_4c[uVar16] != '\"') goto code_r0x0001688b;\n    }\n    pc.pc_addr = uVar8;\n    fflush(*(FILE **)puVar6);\n    checkferror_output(*(FILE **)puVar6);\n    break;\n  case 'P':\n  case 'W':\n    pc.pc_addr = uVar16;\n    bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_00028ffc,std_only);\n    if (cVar10 == 'W') {\n      out_char(10);\n    }\n    store_var(4);\n    puVar7 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    checkferror_output(*(FILE **)puVar7);\n    pop();\n    break;\n  case 'R':\n    if (pbVar11 != (bc_function *)0x0) {\n      pc.pc_addr = uVar16;\n      pop_vars(local_58->f_autos);\n      pop_vars(functions[pc.pc_func].f_params);\n      fpop();\n      pc.pc_addr = fpop();\n      pbVar11 = (bc_function *)fpop();\n      local_5c = functions;\n      local_54 = functions[(int)pbVar11].f_code_size;\n      pc.pc_func = (uint)pbVar11;\n      goto _L138;\n    }\n    mesg = "Return from main program.";\n    pc.pc_addr = uVar16;\nLAB_000168af:\n    rt_error(mesg);\n    break;\n  case 'S':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    store_array(uVar12);\n    break;\n  case '^':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n      if ((cVar10 != '\0') && (cVar10 = bc_is_neg(ex_stack->s_num), cVar10 != '\0')) {\n        rt_error("divide by zero");\n      }\n      pop();\n      pop();\n      push_num(temp_num);\n      bc_init_num(&temp_num);\n      goto LAB_00016ba1;\n    }\n    goto LAB_000160a5;\n  case 'c':\n    goto _L153;\n  case 'd':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    decr_var(uVar12);\n    break;\n  case 'h':\n    pc.pc_addr = uVar16;\n    bc_exit(0);\n    break;\n  case 'i':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    incr_var(uVar12);\n    break;\n  case 'l':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    load_var(uVar12);\n    break;\n  case 'n':\n    pc.pc_addr = uVar16;\n    bc_sub(_zero_,ex_stack->s_num,&ex_stack->s_num,0);\n    break;\n  case 'p':\n    pc.pc_addr = uVar16;\n    pop();\n    goto LAB_00016168;\n  case 's':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    store_var(uVar12);\n    break;\n  case 'w':\n    bVar2 = local_4c[uVar16];\n    pc.pc_addr = pc.pc_addr + 2;\n    puVar5 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar5, 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      puVar5 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar5);\n    checkferror_output((FILE *)*puVar5);\n    break;\n  case 'x':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\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      goto LAB_00016168;\n    }\n    goto LAB_000160a5;\n  case '{':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 < 1;\n      pop();\n      goto LAB_00016b9c;\n    }\n    goto LAB_000160a5;\n  case '|':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n      bVar17 = true;\n      if (cVar10 != '\0') {\n        cVar10 = bc_is_zero(ex_stack->s_num);\n        bVar17 = cVar10 == '\0';\n      }\n      c_code = bVar17;\n      pop();\n      goto LAB_00016b9c;\n    }\nLAB_00016168:\n    local_5c = functions;\n    local_54 = functions[pc.pc_func].f_code_size;\n    pbVar11 = (bc_function *)pc.pc_func;\n    goto _L138;\n  case '}':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\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();\n      goto LAB_00016b9c;\n    }\n    goto LAB_000160a5;\n  }" { (case_statement "case '!':" case (char_literal "'!'" ' character ') :) (case_statement "case 'T':\n    pc.pc_addr = uVar16;\n    c_code = bc_is_zero(ex_stack->s_num);\n    assign(c_code);\n    break;" case (char_literal "'T'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (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) )))) ;) (expression_statement "assign(c_code);" (call_expression "assign(c_code)" identifier (argument_list "(c_code)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    mesg = "bad instruction: inst=%c";\n    pc.pc_addr = uVar16;\n    goto LAB_000168af;" default : (expression_statement "mesg = "bad instruction: inst=%c";" (assignment_expression "mesg = "bad instruction: inst=%c"" identifier = (string_literal ""bad instruction: inst=%c"" " string_content ")) ;) (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (goto_statement "goto LAB_000168af;" goto statement_identifier ;)) (case_statement "case '#':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_000160a5;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 != 0;\n    pop();\nLAB_00016b9c:\n    assign(c_code);\n    goto LAB_00016ba1;" case (char_literal "'#'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar10 = check_stack(2);" (assignment_expression "cVar10 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar10 == '\0') goto LAB_000160a5;" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000160a5;" 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 "()" ( ))) ;) (labeled_statement "LAB_00016b9c:\n    assign(c_code);" statement_identifier : (expression_statement "assign(c_code);" (call_expression "assign(c_code)" identifier (argument_list "(c_code)" ( identifier ))) ;)) (goto_statement "goto LAB_00016ba1;" goto statement_identifier ;)) (case_statement "case '%':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    cVar10 = bc_is_zero(ex_stack->s_num);\n    if (cVar10 == '\0') {\n      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      goto LAB_0001656e;\n    }\n    mesg = "Modulo by zero";\n    goto LAB_000168af;" case (char_literal "'%'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar10 = check_stack(2);" (assignment_expression "cVar10 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar10 == '\0') goto LAB_00016168;" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016168;" goto statement_identifier ;)) (expression_statement "cVar10 = bc_is_zero(ex_stack->s_num);" (assignment_expression "cVar10 = 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 (cVar10 == '\0') {\n      bc_modulo(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      goto LAB_0001656e;\n    }" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\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_0001656e;\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_0001656e;" goto statement_identifier ;) })) (expression_statement "mesg = "Modulo by zero";" (assignment_expression "mesg = "Modulo by zero"" identifier = (string_literal ""Modulo by zero"" " string_content ")) ;) (goto_statement "goto LAB_000168af;" goto statement_identifier ;)) (case_statement "case '&':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n    local_3d = false;\n    if (cVar10 == '\0') {\n      cVar10 = bc_is_zero(ex_stack->s_num);\n      local_3d = cVar10 == '\0';\n    }\n    c_code = local_3d;\n    pop();\n    assign(c_code);\n    break;" case (char_literal "'&'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar10 = check_stack(2);" (assignment_expression "cVar10 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar10 == '\0') goto LAB_00016168;" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016168;" goto statement_identifier ;)) (expression_statement "cVar10 = bc_is_zero(ex_stack->s_next->s_num);" (assignment_expression "cVar10 = 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 "local_3d = false;" (assignment_expression "local_3d = false" identifier = false) ;) (if_statement "if (cVar10 == '\0') {\n      cVar10 = bc_is_zero(ex_stack->s_num);\n      local_3d = cVar10 == '\0';\n    }" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar10 = bc_is_zero(ex_stack->s_num);\n      local_3d = cVar10 == '\0';\n    }" { (expression_statement "cVar10 = bc_is_zero(ex_stack->s_num);" (assignment_expression "cVar10 = 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 "local_3d = cVar10 == '\0';" (assignment_expression "local_3d = cVar10 == '\0'" identifier = (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) })) (expression_statement "c_code = local_3d;" (assignment_expression "c_code = local_3d" identifier = identifier) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (expression_statement "assign(c_code);" (call_expression "assign(c_code)" identifier (argument_list "(c_code)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '*':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    bc_multiply(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\nLAB_0001642c:\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 = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar10 = check_stack(2);" (assignment_expression "cVar10 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar10 == '\0') goto LAB_00016168;" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016168;" 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_0001642c:\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 = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_0001642c;\n    }\n    goto LAB_00016168;" case (char_literal "'+'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar10 = check_stack(2);" (assignment_expression "cVar10 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar10 != '\0') {\n      bc_add(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\n      goto LAB_0001642c;\n    }" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\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_0001642c;\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_0001642c;" goto statement_identifier ;) })) (goto_statement "goto LAB_00016168;" goto statement_identifier ;)) (case_statement "case '-':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\nLAB_0001656e:\n      pop();\n      pop();\n      push_num(temp_num);\n      bc_init_num(&temp_num);\n      goto LAB_00016ba1;\n    }\n    goto LAB_00016168;" case (char_literal "'-'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar10 = check_stack(2);" (assignment_expression "cVar10 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar10 != '\0') {\n      bc_sub(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,0);\nLAB_0001656e:\n      pop();\n      pop();\n      push_num(temp_num);\n      bc_init_num(&temp_num);\n      goto LAB_00016ba1;\n    }" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\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);\nLAB_0001656e:\n      pop();\n      pop();\n      push_num(temp_num);\n      bc_init_num(&temp_num);\n      goto LAB_00016ba1;\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 ))) ;) (labeled_statement "LAB_0001656e:\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) ))) ;) (goto_statement "goto LAB_00016ba1;" goto statement_identifier ;) })) (goto_statement "goto LAB_00016168;" goto statement_identifier ;)) (case_statement "case '/':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    iVar13 = bc_divide(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n    if (iVar13 != 0) {\n      rt_error("Divide by zero");\n      goto LAB_00016ba1;\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 = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar10 = check_stack(2);" (assignment_expression "cVar10 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar10 == '\0') goto LAB_00016168;" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016168;" 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      rt_error("Divide by zero");\n      goto LAB_00016ba1;\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n      rt_error("Divide by zero");\n      goto LAB_00016ba1;\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 ") ))) ;) (goto_statement "goto LAB_00016ba1;" 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 = uVar16;\n    push_copy(_zero_);\n    break;" case (char_literal "'0'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (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 = uVar16;\n    push_copy(_one_);\n    break;" case (char_literal "'1'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (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 = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 == '\0') goto LAB_00016168;\n    iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n    c_code = iVar13 == -1;\nLAB_00016236:\n    pop();\n    assign(c_code);\n    break;" case (char_literal "'<'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar10 = check_stack(2);" (assignment_expression "cVar10 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar10 == '\0') goto LAB_00016168;" if (parenthesized_expression "(cVar10 == '\0')" ( (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00016168;" 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)) ;) (labeled_statement "LAB_00016236:\n    pop();" statement_identifier : (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;)) (expression_statement "assign(c_code);" (call_expression "assign(c_code)" identifier (argument_list "(c_code)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '=':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 == 0;\n      goto LAB_00016236;\n    }\n    goto LAB_00016168;" case (char_literal "'='" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar10 = check_stack(2);" (assignment_expression "cVar10 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 == 0;\n      goto LAB_00016236;\n    }" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 == 0;\n      goto LAB_00016236;\n    }" { (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)) ;) (goto_statement "goto LAB_00016236;" goto statement_identifier ;) })) (goto_statement "goto LAB_00016168;" goto statement_identifier ;)) (case_statement "case '>':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 == 1;\n      goto LAB_00016236;\n    }\n    goto LAB_00016168;" case (char_literal "'>'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar10 = check_stack(2);" (assignment_expression "cVar10 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 == 1;\n      goto LAB_00016236;\n    }" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 == 1;\n      goto LAB_00016236;\n    }" { (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)) ;) (goto_statement "goto LAB_00016236;" goto statement_identifier ;) })) (goto_statement "goto LAB_00016168;" goto statement_identifier ;)) (case_statement "case 'A':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    incr_array(uVar12);\n    break;" case (char_literal "'A'" ' character ') : (expression_statement "uVar12 = (uint)(byte)local_4c[uVar16];" (assignment_expression "uVar12 = (uint)(byte)local_4c[uVar16]" identifier = (cast_expression "(uint)(byte)local_4c[uVar16]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[uVar16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[uVar16]" identifier [ identifier ])))) ;) (expression_statement "uVar8 = pc.pc_addr + 2;" (assignment_expression "uVar8 = 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_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_4c[uVar16] < '\0')" ( (binary_expression "local_4c[uVar16] < '\0'" (subscript_expression "local_4c[uVar16]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }" { (expression_statement "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];" (assignment_expression "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2]" identifier = (binary_expression "(uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[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_4c[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))))) ;) (expression_statement "uVar8 = pc.pc_addr + 3;" (assignment_expression "uVar8 = 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 = uVar8;" (assignment_expression "pc.pc_addr = uVar8" (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 = uVar16;\n    cVar9 = bc_is_zero(ex_stack->s_num);\n    c_code = cVar9 == '\0';\n    pop();\n    local_5c = functions;\n    local_58 = functions + pc.pc_func;\n    local_4c = local_58->f_body;\n    iVar13 = pc.pc_addr + 1;\n    cVar9 = local_4c[pc.pc_addr];\n    pc.pc_addr = pc.pc_addr + 2;\n    pbVar11 = (bc_function *)pc.pc_func;\n    if (cVar10 == 'J') goto LAB_0001696a;\n    if (cVar10 == 'B') {\n      if (c_code != '\0') goto LAB_0001696a;\n    }\n    else if ((cVar10 == 'Z') && (c_code == '\0')) goto LAB_0001696a;\n    local_54 = local_58->f_code_size;\n    goto _L138;" case (char_literal "'Z'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = 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) )))) ;) (expression_statement "c_code = cVar9 == '\0';" (assignment_expression "c_code = cVar9 == '\0'" identifier = (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_5c = functions;" (assignment_expression "local_5c = functions" identifier = identifier) ;) (expression_statement "local_58 = functions + pc.pc_func;" (assignment_expression "local_58 = functions + pc.pc_func" identifier = (binary_expression "functions + pc.pc_func" identifier + (field_expression "pc.pc_func" identifier . field_identifier))) ;) (expression_statement "local_4c = local_58->f_body;" (assignment_expression "local_4c = local_58->f_body" identifier = (field_expression "local_58->f_body" identifier -> field_identifier)) ;) (expression_statement "iVar13 = pc.pc_addr + 1;" (assignment_expression "iVar13 = pc.pc_addr + 1" identifier = (binary_expression "pc.pc_addr + 1" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (expression_statement "cVar9 = local_4c[pc.pc_addr];" (assignment_expression "cVar9 = local_4c[pc.pc_addr]" identifier = (subscript_expression "local_4c[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 "pbVar11 = (bc_function *)pc.pc_func;" (assignment_expression "pbVar11 = (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))) ;) (if_statement "if (cVar10 == 'J') goto LAB_0001696a;" if (parenthesized_expression "(cVar10 == 'J')" ( (binary_expression "cVar10 == 'J'" identifier == (char_literal "'J'" ' character ')) )) (goto_statement "goto LAB_0001696a;" goto statement_identifier ;)) (if_statement "if (cVar10 == 'B') {\n      if (c_code != '\0') goto LAB_0001696a;\n    }\n    else if ((cVar10 == 'Z') && (c_code == '\0')) goto LAB_0001696a;" if (parenthesized_expression "(cVar10 == 'B')" ( (binary_expression "cVar10 == 'B'" identifier == (char_literal "'B'" ' character ')) )) (compound_statement "{\n      if (c_code != '\0') goto LAB_0001696a;\n    }" { (if_statement "if (c_code != '\0') goto LAB_0001696a;" if (parenthesized_expression "(c_code != '\0')" ( (binary_expression "c_code != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001696a;" goto statement_identifier ;)) }) (else_clause "else if ((cVar10 == 'Z') && (c_code == '\0')) goto LAB_0001696a;" else (if_statement "if ((cVar10 == 'Z') && (c_code == '\0')) goto LAB_0001696a;" if (parenthesized_expression "((cVar10 == 'Z') && (c_code == '\0'))" ( (binary_expression "(cVar10 == 'Z') && (c_code == '\0')" (parenthesized_expression "(cVar10 == 'Z')" ( (binary_expression "cVar10 == '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_0001696a;" goto statement_identifier ;)))) (expression_statement "local_54 = local_58->f_code_size;" (assignment_expression "local_54 = local_58->f_code_size" identifier = (field_expression "local_58->f_code_size" identifier -> field_identifier)) ;) (goto_statement "goto _L138;" goto statement_identifier ;)) (case_statement "case 'C':\n    local_58 = (bc_function *)(uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      local_58 = (bc_function *)\n                 ((uint)(byte)local_4c[pc.pc_addr + 2] + ((uint)local_58 & 0x7f) * 0x100);\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    if (local_5c[(int)local_58].f_defined == '\0') {\n      mesg = "Function %s not defined.";\n      goto LAB_000168af;\n    }\n    process_params(&pc,(int)local_58);\n    for (paVar4 = functions[(int)local_58].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_58;\n    local_5c = functions;\n    local_54 = functions[(int)local_58].f_code_size;\n    pbVar11 = local_58;\n    goto _L138;" case (char_literal "'C'" ' character ') : (expression_statement "local_58 = (bc_function *)(uint)(byte)local_4c[uVar16];" (assignment_expression "local_58 = (bc_function *)(uint)(byte)local_4c[uVar16]" identifier = (cast_expression "(bc_function *)(uint)(byte)local_4c[uVar16]" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)local_4c[uVar16]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[uVar16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[uVar16]" identifier [ identifier ]))))) ;) (expression_statement "uVar8 = pc.pc_addr + 2;" (assignment_expression "uVar8 = 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_4c[uVar16] < '\0') {\n      local_58 = (bc_function *)\n                 ((uint)(byte)local_4c[pc.pc_addr + 2] + ((uint)local_58 & 0x7f) * 0x100);\n      uVar8 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_4c[uVar16] < '\0')" ( (binary_expression "local_4c[uVar16] < '\0'" (subscript_expression "local_4c[uVar16]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_58 = (bc_function *)\n                 ((uint)(byte)local_4c[pc.pc_addr + 2] + ((uint)local_58 & 0x7f) * 0x100);\n      uVar8 = pc.pc_addr + 3;\n    }" { (expression_statement "local_58 = (bc_function *)\n                 ((uint)(byte)local_4c[pc.pc_addr + 2] + ((uint)local_58 & 0x7f) * 0x100);" (assignment_expression "local_58 = (bc_function *)\n                 ((uint)(byte)local_4c[pc.pc_addr + 2] + ((uint)local_58 & 0x7f) * 0x100)" identifier = (cast_expression "(bc_function *)\n                 ((uint)(byte)local_4c[pc.pc_addr + 2] + ((uint)local_58 & 0x7f) * 0x100)" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(byte)local_4c[pc.pc_addr + 2] + ((uint)local_58 & 0x7f) * 0x100)" ( (binary_expression "(uint)(byte)local_4c[pc.pc_addr + 2] + ((uint)local_58 & 0x7f) * 0x100" (cast_expression "(uint)(byte)local_4c[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[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_58 & 0x7f) * 0x100" (parenthesized_expression "((uint)local_58 & 0x7f)" ( (binary_expression "(uint)local_58 & 0x7f" (cast_expression "(uint)local_58" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) * number_literal)) )))) ;) (expression_statement "uVar8 = pc.pc_addr + 3;" (assignment_expression "uVar8 = 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 = uVar8;" (assignment_expression "pc.pc_addr = uVar8" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (if_statement "if (local_5c[(int)local_58].f_defined == '\0') {\n      mesg = "Function %s not defined.";\n      goto LAB_000168af;\n    }" if (parenthesized_expression "(local_5c[(int)local_58].f_defined == '\0')" ( (binary_expression "local_5c[(int)local_58].f_defined == '\0'" (field_expression "local_5c[(int)local_58].f_defined" (subscript_expression "local_5c[(int)local_58]" identifier [ (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      mesg = "Function %s not defined.";\n      goto LAB_000168af;\n    }" { (expression_statement "mesg = "Function %s not defined.";" (assignment_expression "mesg = "Function %s not defined."" identifier = (string_literal ""Function %s not defined."" " string_content ")) ;) (goto_statement "goto LAB_000168af;" goto statement_identifier ;) })) (expression_statement "process_params(&pc,(int)local_58);" (call_expression "process_params(&pc,(int)local_58)" identifier (argument_list "(&pc,(int)local_58)" ( (pointer_expression "&pc" & identifier) , (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (for_statement "for (paVar4 = functions[(int)local_58].f_autos; paVar4 != (arg_list *)0x0; paVar4 = paVar4->next\n        ) {\n      auto_var(paVar4->av_name);\n    }" for ( (assignment_expression "paVar4 = functions[(int)local_58].f_autos" identifier = (field_expression "functions[(int)local_58].f_autos" (subscript_expression "functions[(int)local_58]" identifier [ (cast_expression "(int)local_58" ( (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_58;" (assignment_expression "pc.pc_func = (uint)local_58" (field_expression "pc.pc_func" identifier . field_identifier) = (cast_expression "(uint)local_58" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_5c = functions;" (assignment_expression "local_5c = functions" identifier = identifier) ;) (expression_statement "local_54 = functions[(int)local_58].f_code_size;" (assignment_expression "local_54 = functions[(int)local_58].f_code_size" identifier = (field_expression "functions[(int)local_58].f_code_size" (subscript_expression "functions[(int)local_58]" identifier [ (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier)) ;) (expression_statement "pbVar11 = local_58;" (assignment_expression "pbVar11 = local_58" identifier = identifier) ;) (goto_statement "goto _L138;" goto statement_identifier ;)) (case_statement "case 'D':\n    pc.pc_addr = uVar16;\n    push_copy(ex_stack->s_num);\n    break;" case (char_literal "'D'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (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    iVar13 = pc.pc_addr + 2;\n    cVar9 = local_4c[uVar16];\n    pc.pc_addr = pc.pc_addr + 3;\nLAB_0001696a:\n    uVar16 = (uint)(ushort)(CONCAT11(local_4c[iVar13],cVar9) >> 6);\n    pbVar15 = local_58->f_label;\n    iVar14 = uVar16 - 1;\n    if (uVar16 != 0) {\n      do {\n        iVar14 = iVar14 + -1;\n        pbVar15 = pbVar15->l_next;\n      } while (iVar14 != -1);\n    }\n    if (pbVar15 == (bc_label_group *)0x0) {\n      mesg = "Internal error.";\n      goto LAB_000168af;\n    }\n    pc.pc_addr = pbVar15->l_adrs[CONCAT11(local_4c[iVar13],cVar9) & 0x3f];\n    local_54 = local_58->f_code_size;\n    goto _L138;" case (char_literal "'J'" ' character ') : (expression_statement "iVar13 = pc.pc_addr + 2;" (assignment_expression "iVar13 = pc.pc_addr + 2" identifier = (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal)) ;) (expression_statement "cVar9 = local_4c[uVar16];" (assignment_expression "cVar9 = local_4c[uVar16]" identifier = (subscript_expression "local_4c[uVar16]" 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_0001696a:\n    uVar16 = (uint)(ushort)(CONCAT11(local_4c[iVar13],cVar9) >> 6);" statement_identifier : (expression_statement "uVar16 = (uint)(ushort)(CONCAT11(local_4c[iVar13],cVar9) >> 6);" (assignment_expression "uVar16 = (uint)(ushort)(CONCAT11(local_4c[iVar13],cVar9) >> 6)" identifier = (call_expression "(uint)(ushort)(CONCAT11(local_4c[iVar13],cVar9) >> 6)" (call_expression "(uint)(ushort)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(ushort)" ( identifier ))) (argument_list "(CONCAT11(local_4c[iVar13],cVar9) >> 6)" ( (binary_expression "CONCAT11(local_4c[iVar13],cVar9) >> 6" (call_expression "CONCAT11(local_4c[iVar13],cVar9)" identifier (argument_list "(local_4c[iVar13],cVar9)" ( (subscript_expression "local_4c[iVar13]" identifier [ identifier ]) , identifier ))) >> number_literal) )))) ;)) (expression_statement "pbVar15 = local_58->f_label;" (assignment_expression "pbVar15 = local_58->f_label" identifier = (field_expression "local_58->f_label" identifier -> field_identifier)) ;) (expression_statement "iVar14 = uVar16 - 1;" (assignment_expression "iVar14 = uVar16 - 1" identifier = (binary_expression "uVar16 - 1" identifier - number_literal)) ;) (if_statement "if (uVar16 != 0) {\n      do {\n        iVar14 = iVar14 + -1;\n        pbVar15 = pbVar15->l_next;\n      } while (iVar14 != -1);\n    }" if (parenthesized_expression "(uVar16 != 0)" ( (binary_expression "uVar16 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        iVar14 = iVar14 + -1;\n        pbVar15 = pbVar15->l_next;\n      } while (iVar14 != -1);\n    }" { (do_statement "do {\n        iVar14 = iVar14 + -1;\n        pbVar15 = pbVar15->l_next;\n      } while (iVar14 != -1);" do (compound_statement "{\n        iVar14 = iVar14 + -1;\n        pbVar15 = pbVar15->l_next;\n      }" { (expression_statement "iVar14 = iVar14 + -1;" (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ;) (expression_statement "pbVar15 = pbVar15->l_next;" (assignment_expression "pbVar15 = pbVar15->l_next" identifier = (field_expression "pbVar15->l_next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(iVar14 != -1)" ( (binary_expression "iVar14 != -1" identifier != number_literal) )) ;) })) (if_statement "if (pbVar15 == (bc_label_group *)0x0) {\n      mesg = "Internal error.";\n      goto LAB_000168af;\n    }" if (parenthesized_expression "(pbVar15 == (bc_label_group *)0x0)" ( (binary_expression "pbVar15 == (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      mesg = "Internal error.";\n      goto LAB_000168af;\n    }" { (expression_statement "mesg = "Internal error.";" (assignment_expression "mesg = "Internal error."" identifier = (string_literal ""Internal error."" " string_content ")) ;) (goto_statement "goto LAB_000168af;" goto statement_identifier ;) })) (expression_statement "pc.pc_addr = pbVar15->l_adrs[CONCAT11(local_4c[iVar13],cVar9) & 0x3f];" (assignment_expression "pc.pc_addr = pbVar15->l_adrs[CONCAT11(local_4c[iVar13],cVar9) & 0x3f]" (field_expression "pc.pc_addr" identifier . field_identifier) = (subscript_expression "pbVar15->l_adrs[CONCAT11(local_4c[iVar13],cVar9) & 0x3f]" (field_expression "pbVar15->l_adrs" identifier -> field_identifier) [ (binary_expression "CONCAT11(local_4c[iVar13],cVar9) & 0x3f" (call_expression "CONCAT11(local_4c[iVar13],cVar9)" identifier (argument_list "(local_4c[iVar13],cVar9)" ( (subscript_expression "local_4c[iVar13]" identifier [ identifier ]) , identifier ))) & number_literal) ])) ;) (expression_statement "local_54 = local_58->f_code_size;" (assignment_expression "local_54 = local_58->f_code_size" identifier = (field_expression "local_58->f_code_size" identifier -> field_identifier)) ;) (goto_statement "goto _L138;" goto statement_identifier ;)) (case_statement "case 'K':\n    iVar13 = i_base;\n    if (pbVar11 != (bc_function *)0x0) {\n      iVar13 = fn_stack->s_val;\n    }\n    if (iVar13 == 10) {\n      pc.pc_addr = uVar16;\n      push_b10_const(&pc);\n      goto LAB_00016ba1;\n    }\n    pc.pc_addr = uVar16;\n    push_constant(prog_char,iVar13);\n    break;" case (char_literal "'K'" ' character ') : (expression_statement "iVar13 = i_base;" (assignment_expression "iVar13 = i_base" identifier = identifier) ;) (if_statement "if (pbVar11 != (bc_function *)0x0) {\n      iVar13 = fn_stack->s_val;\n    }" if (parenthesized_expression "(pbVar11 != (bc_function *)0x0)" ( (binary_expression "pbVar11 != (bc_function *)0x0" identifier != (cast_expression "(bc_function *)0x0" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar13 = fn_stack->s_val;\n    }" { (expression_statement "iVar13 = fn_stack->s_val;" (assignment_expression "iVar13 = fn_stack->s_val" identifier = (field_expression "fn_stack->s_val" identifier -> field_identifier)) ;) })) (if_statement "if (iVar13 == 10) {\n      pc.pc_addr = uVar16;\n      push_b10_const(&pc);\n      goto LAB_00016ba1;\n    }" if (parenthesized_expression "(iVar13 == 10)" ( (binary_expression "iVar13 == 10" identifier == number_literal) )) (compound_statement "{\n      pc.pc_addr = uVar16;\n      push_b10_const(&pc);\n      goto LAB_00016ba1;\n    }" { (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (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) ))) ;) (goto_statement "goto LAB_00016ba1;" goto statement_identifier ;) })) (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "push_constant(prog_char,iVar13);" (call_expression "push_constant(prog_char,iVar13)" identifier (argument_list "(prog_char,iVar13)" ( identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'L':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    load_array(uVar12);\n    break;" case (char_literal "'L'" ' character ') : (expression_statement "uVar12 = (uint)(byte)local_4c[uVar16];" (assignment_expression "uVar12 = (uint)(byte)local_4c[uVar16]" identifier = (cast_expression "(uint)(byte)local_4c[uVar16]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[uVar16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[uVar16]" identifier [ identifier ])))) ;) (expression_statement "uVar8 = pc.pc_addr + 2;" (assignment_expression "uVar8 = 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_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_4c[uVar16] < '\0')" ( (binary_expression "local_4c[uVar16] < '\0'" (subscript_expression "local_4c[uVar16]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }" { (expression_statement "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];" (assignment_expression "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2]" identifier = (binary_expression "(uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[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_4c[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))))) ;) (expression_statement "uVar8 = pc.pc_addr + 3;" (assignment_expression "uVar8 = 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 = uVar8;" (assignment_expression "pc.pc_addr = uVar8" (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_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    decr_array(uVar12);\n    break;" case (char_literal "'M'" ' character ') : (expression_statement "uVar12 = (uint)(byte)local_4c[uVar16];" (assignment_expression "uVar12 = (uint)(byte)local_4c[uVar16]" identifier = (cast_expression "(uint)(byte)local_4c[uVar16]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[uVar16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[uVar16]" identifier [ identifier ])))) ;) (expression_statement "uVar8 = pc.pc_addr + 2;" (assignment_expression "uVar8 = 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_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_4c[uVar16] < '\0')" ( (binary_expression "local_4c[uVar16] < '\0'" (subscript_expression "local_4c[uVar16]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }" { (expression_statement "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];" (assignment_expression "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2]" identifier = (binary_expression "(uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[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_4c[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))))) ;) (expression_statement "uVar8 = pc.pc_addr + 3;" (assignment_expression "uVar8 = 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 = uVar8;" (assignment_expression "pc.pc_addr = uVar8" (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 = uVar16;\n_L160:\n    uVar16 = pc.pc_addr + 1;\n    bVar2 = local_4c[pc.pc_addr];\n    uVar12 = (uint)bVar2;\n    uVar8 = uVar16;\n    if (bVar2 != 0x22) {\n      if (bVar2 != 0x5c) goto LAB_00016844;\n      pc.pc_addr = pc.pc_addr + 2;\n      uVar8 = pc.pc_addr;\n      if (local_4c[uVar16] != '\"') goto code_r0x0001688b;\n    }\n    pc.pc_addr = uVar8;\n    fflush(*(FILE **)puVar6);\n    checkferror_output(*(FILE **)puVar6);\n    break;" case (char_literal "'O'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (labeled_statement "_L160:\n    uVar16 = pc.pc_addr + 1;" statement_identifier : (expression_statement "uVar16 = pc.pc_addr + 1;" (assignment_expression "uVar16 = 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_4c[pc.pc_addr];" (assignment_expression "bVar2 = local_4c[pc.pc_addr]" identifier = (subscript_expression "local_4c[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 "uVar8 = uVar16;" (assignment_expression "uVar8 = uVar16" identifier = identifier) ;) (if_statement "if (bVar2 != 0x22) {\n      if (bVar2 != 0x5c) goto LAB_00016844;\n      pc.pc_addr = pc.pc_addr + 2;\n      uVar8 = pc.pc_addr;\n      if (local_4c[uVar16] != '\"') goto code_r0x0001688b;\n    }" if (parenthesized_expression "(bVar2 != 0x22)" ( (binary_expression "bVar2 != 0x22" identifier != number_literal) )) (compound_statement "{\n      if (bVar2 != 0x5c) goto LAB_00016844;\n      pc.pc_addr = pc.pc_addr + 2;\n      uVar8 = pc.pc_addr;\n      if (local_4c[uVar16] != '\"') goto code_r0x0001688b;\n    }" { (if_statement "if (bVar2 != 0x5c) goto LAB_00016844;" if (parenthesized_expression "(bVar2 != 0x5c)" ( (binary_expression "bVar2 != 0x5c" identifier != number_literal) )) (goto_statement "goto LAB_00016844;" 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 "uVar8 = pc.pc_addr;" (assignment_expression "uVar8 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;) (if_statement "if (local_4c[uVar16] != '\"') goto code_r0x0001688b;" if (parenthesized_expression "(local_4c[uVar16] != '\"')" ( (binary_expression "local_4c[uVar16] != '\"'" (subscript_expression "local_4c[uVar16]" identifier [ identifier ]) != (char_literal "'\"'" ' escape_sequence ')) )) (goto_statement "goto code_r0x0001688b;" goto statement_identifier ;)) })) (expression_statement "pc.pc_addr = uVar8;" (assignment_expression "pc.pc_addr = uVar8" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "fflush(*(FILE **)puVar6);" (call_expression "fflush(*(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 "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 'P':" case (char_literal "'P'" ' character ') :) (case_statement "case 'W':\n    pc.pc_addr = uVar16;\n    bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_00028ffc,std_only);\n    if (cVar10 == 'W') {\n      out_char(10);\n    }\n    store_var(4);\n    puVar7 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    checkferror_output(*(FILE **)puVar7);\n    pop();\n    break;" case (char_literal "'W'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (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_00028ffc,std_only);" (call_expression "bc_out_num(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_00028ffc,std_only)" identifier (argument_list "(ex_stack->s_num,o_base,(_func_void_int *)PTR_out_char_00028ffc,std_only)" ( (field_expression "ex_stack->s_num" identifier -> field_identifier) , identifier , (cast_expression "(_func_void_int *)PTR_out_char_00028ffc" ( (type_descriptor "_func_void_int *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (if_statement "if (cVar10 == 'W') {\n      out_char(10);\n    }" if (parenthesized_expression "(cVar10 == 'W')" ( (binary_expression "cVar10 == '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 "puVar7 = PTR_stdout_00028fec;" (assignment_expression "puVar7 = PTR_stdout_00028fec" identifier = identifier) ;) (expression_statement "fflush(*(FILE **)PTR_stdout_00028fec);" (call_expression "fflush(*(FILE **)PTR_stdout_00028fec)" identifier (argument_list "(*(FILE **)PTR_stdout_00028fec)" ( (pointer_expression "*(FILE **)PTR_stdout_00028fec" * (cast_expression "(FILE **)PTR_stdout_00028fec" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "checkferror_output(*(FILE **)puVar7);" (call_expression "checkferror_output(*(FILE **)puVar7)" identifier (argument_list "(*(FILE **)puVar7)" ( (pointer_expression "*(FILE **)puVar7" * (cast_expression "(FILE **)puVar7" ( (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 (pbVar11 != (bc_function *)0x0) {\n      pc.pc_addr = uVar16;\n      pop_vars(local_58->f_autos);\n      pop_vars(functions[pc.pc_func].f_params);\n      fpop();\n      pc.pc_addr = fpop();\n      pbVar11 = (bc_function *)fpop();\n      local_5c = functions;\n      local_54 = functions[(int)pbVar11].f_code_size;\n      pc.pc_func = (uint)pbVar11;\n      goto _L138;\n    }\n    mesg = "Return from main program.";\n    pc.pc_addr = uVar16;\nLAB_000168af:\n    rt_error(mesg);\n    break;" case (char_literal "'R'" ' character ') : (if_statement "if (pbVar11 != (bc_function *)0x0) {\n      pc.pc_addr = uVar16;\n      pop_vars(local_58->f_autos);\n      pop_vars(functions[pc.pc_func].f_params);\n      fpop();\n      pc.pc_addr = fpop();\n      pbVar11 = (bc_function *)fpop();\n      local_5c = functions;\n      local_54 = functions[(int)pbVar11].f_code_size;\n      pc.pc_func = (uint)pbVar11;\n      goto _L138;\n    }" if (parenthesized_expression "(pbVar11 != (bc_function *)0x0)" ( (binary_expression "pbVar11 != (bc_function *)0x0" identifier != (cast_expression "(bc_function *)0x0" ( (type_descriptor "bc_function *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pc.pc_addr = uVar16;\n      pop_vars(local_58->f_autos);\n      pop_vars(functions[pc.pc_func].f_params);\n      fpop();\n      pc.pc_addr = fpop();\n      pbVar11 = (bc_function *)fpop();\n      local_5c = functions;\n      local_54 = functions[(int)pbVar11].f_code_size;\n      pc.pc_func = (uint)pbVar11;\n      goto _L138;\n    }" { (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "pop_vars(local_58->f_autos);" (call_expression "pop_vars(local_58->f_autos)" identifier (argument_list "(local_58->f_autos)" ( (field_expression "local_58->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 "pbVar11 = (bc_function *)fpop();" (assignment_expression "pbVar11 = (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_5c = functions;" (assignment_expression "local_5c = functions" identifier = identifier) ;) (expression_statement "local_54 = functions[(int)pbVar11].f_code_size;" (assignment_expression "local_54 = functions[(int)pbVar11].f_code_size" identifier = (field_expression "functions[(int)pbVar11].f_code_size" (subscript_expression "functions[(int)pbVar11]" identifier [ (cast_expression "(int)pbVar11" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier)) ;) (expression_statement "pc.pc_func = (uint)pbVar11;" (assignment_expression "pc.pc_func = (uint)pbVar11" (field_expression "pc.pc_func" identifier . field_identifier) = (cast_expression "(uint)pbVar11" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto _L138;" goto statement_identifier ;) })) (expression_statement "mesg = "Return from main program.";" (assignment_expression "mesg = "Return from main program."" identifier = (string_literal ""Return from main program."" " string_content ")) ;) (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (labeled_statement "LAB_000168af:\n    rt_error(mesg);" statement_identifier : (expression_statement "rt_error(mesg);" (call_expression "rt_error(mesg)" identifier (argument_list "(mesg)" ( identifier ))) ;)) (break_statement "break;" break ;)) (case_statement "case 'S':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    store_array(uVar12);\n    break;" case (char_literal "'S'" ' character ') : (expression_statement "uVar12 = (uint)(byte)local_4c[uVar16];" (assignment_expression "uVar12 = (uint)(byte)local_4c[uVar16]" identifier = (cast_expression "(uint)(byte)local_4c[uVar16]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[uVar16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[uVar16]" identifier [ identifier ])))) ;) (expression_statement "uVar8 = pc.pc_addr + 2;" (assignment_expression "uVar8 = 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_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_4c[uVar16] < '\0')" ( (binary_expression "local_4c[uVar16] < '\0'" (subscript_expression "local_4c[uVar16]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }" { (expression_statement "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];" (assignment_expression "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2]" identifier = (binary_expression "(uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[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_4c[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))))) ;) (expression_statement "uVar8 = pc.pc_addr + 3;" (assignment_expression "uVar8 = 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 = uVar8;" (assignment_expression "pc.pc_addr = uVar8" (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 = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n      if ((cVar10 != '\0') && (cVar10 = bc_is_neg(ex_stack->s_num), cVar10 != '\0')) {\n        rt_error("divide by zero");\n      }\n      pop();\n      pop();\n      push_num(temp_num);\n      bc_init_num(&temp_num);\n      goto LAB_00016ba1;\n    }\n    goto LAB_000160a5;" case (char_literal "'^'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar10 = check_stack(2);" (assignment_expression "cVar10 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar10 != '\0') {\n      bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n      if ((cVar10 != '\0') && (cVar10 = bc_is_neg(ex_stack->s_num), cVar10 != '\0')) {\n        rt_error("divide by zero");\n      }\n      pop();\n      pop();\n      push_num(temp_num);\n      bc_init_num(&temp_num);\n      goto LAB_00016ba1;\n    }" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      bc_raise(ex_stack->s_next->s_num,ex_stack->s_num,&temp_num,scale);\n      cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n      if ((cVar10 != '\0') && (cVar10 = bc_is_neg(ex_stack->s_num), cVar10 != '\0')) {\n        rt_error("divide by zero");\n      }\n      pop();\n      pop();\n      push_num(temp_num);\n      bc_init_num(&temp_num);\n      goto LAB_00016ba1;\n    }" { (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 "cVar10 = bc_is_zero(ex_stack->s_next->s_num);" (assignment_expression "cVar10 = 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 ((cVar10 != '\0') && (cVar10 = bc_is_neg(ex_stack->s_num), cVar10 != '\0')) {\n        rt_error("divide by zero");\n      }" if (parenthesized_expression "((cVar10 != '\0') && (cVar10 = bc_is_neg(ex_stack->s_num), cVar10 != '\0'))" ( (binary_expression "(cVar10 != '\0') && (cVar10 = bc_is_neg(ex_stack->s_num), cVar10 != '\0')" (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar10 = bc_is_neg(ex_stack->s_num), cVar10 != '\0')" ( (comma_expression "cVar10 = bc_is_neg(ex_stack->s_num), cVar10 != '\0'" (assignment_expression "cVar10 = 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 "cVar10 != '\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) ))) ;) (goto_statement "goto LAB_00016ba1;" goto statement_identifier ;) })) (goto_statement "goto LAB_000160a5;" goto statement_identifier ;)) (case_statement "case 'c':\n    goto _L153;" case (char_literal "'c'" ' character ') : (goto_statement "goto _L153;" goto statement_identifier ;)) (case_statement "case 'd':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    decr_var(uVar12);\n    break;" case (char_literal "'d'" ' character ') : (expression_statement "uVar12 = (uint)(byte)local_4c[uVar16];" (assignment_expression "uVar12 = (uint)(byte)local_4c[uVar16]" identifier = (cast_expression "(uint)(byte)local_4c[uVar16]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[uVar16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[uVar16]" identifier [ identifier ])))) ;) (expression_statement "uVar8 = pc.pc_addr + 2;" (assignment_expression "uVar8 = 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_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_4c[uVar16] < '\0')" ( (binary_expression "local_4c[uVar16] < '\0'" (subscript_expression "local_4c[uVar16]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }" { (expression_statement "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];" (assignment_expression "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2]" identifier = (binary_expression "(uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[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_4c[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))))) ;) (expression_statement "uVar8 = pc.pc_addr + 3;" (assignment_expression "uVar8 = 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 = uVar8;" (assignment_expression "pc.pc_addr = uVar8" (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 = uVar16;\n    bc_exit(0);\n    break;" case (char_literal "'h'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (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_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    incr_var(uVar12);\n    break;" case (char_literal "'i'" ' character ') : (expression_statement "uVar12 = (uint)(byte)local_4c[uVar16];" (assignment_expression "uVar12 = (uint)(byte)local_4c[uVar16]" identifier = (cast_expression "(uint)(byte)local_4c[uVar16]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[uVar16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[uVar16]" identifier [ identifier ])))) ;) (expression_statement "uVar8 = pc.pc_addr + 2;" (assignment_expression "uVar8 = 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_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_4c[uVar16] < '\0')" ( (binary_expression "local_4c[uVar16] < '\0'" (subscript_expression "local_4c[uVar16]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }" { (expression_statement "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];" (assignment_expression "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2]" identifier = (binary_expression "(uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[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_4c[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))))) ;) (expression_statement "uVar8 = pc.pc_addr + 3;" (assignment_expression "uVar8 = 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 = uVar8;" (assignment_expression "pc.pc_addr = uVar8" (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_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    load_var(uVar12);\n    break;" case (char_literal "'l'" ' character ') : (expression_statement "uVar12 = (uint)(byte)local_4c[uVar16];" (assignment_expression "uVar12 = (uint)(byte)local_4c[uVar16]" identifier = (cast_expression "(uint)(byte)local_4c[uVar16]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[uVar16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[uVar16]" identifier [ identifier ])))) ;) (expression_statement "uVar8 = pc.pc_addr + 2;" (assignment_expression "uVar8 = 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_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_4c[uVar16] < '\0')" ( (binary_expression "local_4c[uVar16] < '\0'" (subscript_expression "local_4c[uVar16]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }" { (expression_statement "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];" (assignment_expression "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2]" identifier = (binary_expression "(uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[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_4c[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))))) ;) (expression_statement "uVar8 = pc.pc_addr + 3;" (assignment_expression "uVar8 = 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 = uVar8;" (assignment_expression "pc.pc_addr = uVar8" (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 = uVar16;\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 = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (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 = uVar16;\n    pop();\n    goto LAB_00016168;" case (char_literal "'p'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_00016168;" goto statement_identifier ;)) (case_statement "case 's':\n    uVar12 = (uint)(byte)local_4c[uVar16];\n    uVar8 = pc.pc_addr + 2;\n    if (local_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }\n    pc.pc_addr = uVar8;\n    store_var(uVar12);\n    break;" case (char_literal "'s'" ' character ') : (expression_statement "uVar12 = (uint)(byte)local_4c[uVar16];" (assignment_expression "uVar12 = (uint)(byte)local_4c[uVar16]" identifier = (cast_expression "(uint)(byte)local_4c[uVar16]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[uVar16]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[uVar16]" identifier [ identifier ])))) ;) (expression_statement "uVar8 = pc.pc_addr + 2;" (assignment_expression "uVar8 = 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_4c[uVar16] < '\0') {\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }" if (parenthesized_expression "(local_4c[uVar16] < '\0')" ( (binary_expression "local_4c[uVar16] < '\0'" (subscript_expression "local_4c[uVar16]" identifier [ identifier ]) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];\n      uVar8 = pc.pc_addr + 3;\n    }" { (expression_statement "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2];" (assignment_expression "uVar12 = (uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[pc.pc_addr + 2]" identifier = (binary_expression "(uVar12 & 0x7f) * 0x100 + (uint)(byte)local_4c[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_4c[pc.pc_addr + 2]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)local_4c[pc.pc_addr + 2]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "local_4c[pc.pc_addr + 2]" identifier [ (binary_expression "pc.pc_addr + 2" (field_expression "pc.pc_addr" identifier . field_identifier) + number_literal) ]))))) ;) (expression_statement "uVar8 = pc.pc_addr + 3;" (assignment_expression "uVar8 = 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 = uVar8;" (assignment_expression "pc.pc_addr = uVar8" (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_4c[uVar16];\n    pc.pc_addr = pc.pc_addr + 2;\n    puVar5 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar5, 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      puVar5 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar5);\n    checkferror_output((FILE *)*puVar5);\n    break;" case (char_literal "'w'" ' character ') : (expression_statement "bVar2 = local_4c[uVar16];" (assignment_expression "bVar2 = local_4c[uVar16]" identifier = (subscript_expression "local_4c[uVar16]" 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)) ;) (expression_statement "puVar5 = (undefined4 *)PTR_stdout_00028fec;" (assignment_expression "puVar5 = (undefined4 *)PTR_stdout_00028fec" identifier = (cast_expression "(undefined4 *)PTR_stdout_00028fec" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (while_statement "while (PTR_stdout_00028fec = (undefined *)puVar5, 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      puVar5 = (undefined4 *)PTR_stdout_00028fec;\n    }" while (parenthesized_expression "(PTR_stdout_00028fec = (undefined *)puVar5, bVar2 != 0x22)" ( (comma_expression "PTR_stdout_00028fec = (undefined *)puVar5, bVar2 != 0x22" (assignment_expression "PTR_stdout_00028fec = (undefined *)puVar5" identifier = (cast_expression "(undefined *)puVar5" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) 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      puVar5 = (undefined4 *)PTR_stdout_00028fec;\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 "puVar5 = (undefined4 *)PTR_stdout_00028fec;" (assignment_expression "puVar5 = (undefined4 *)PTR_stdout_00028fec" identifier = (cast_expression "(undefined4 *)PTR_stdout_00028fec" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "fflush((FILE *)*puVar5);" (call_expression "fflush((FILE *)*puVar5)" identifier (argument_list "((FILE *)*puVar5)" ( (cast_expression "(FILE *)*puVar5" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier)) ))) ;) (expression_statement "checkferror_output((FILE *)*puVar5);" (call_expression "checkferror_output((FILE *)*puVar5)" identifier (argument_list "((FILE *)*puVar5)" ( (cast_expression "(FILE *)*puVar5" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar5" * identifier)) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'x':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\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      goto LAB_00016168;\n    }\n    goto LAB_000160a5;" case (char_literal "'x'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar10 = check_stack(2);" (assignment_expression "cVar10 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar10 != '\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      goto LAB_00016168;\n    }" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\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      goto LAB_00016168;\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_00016168;" goto statement_identifier ;) })) (goto_statement "goto LAB_000160a5;" goto statement_identifier ;)) (case_statement "case '{':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 < 1;\n      pop();\n      goto LAB_00016b9c;\n    }\n    goto LAB_000160a5;" case (char_literal "'{'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar10 = check_stack(2);" (assignment_expression "cVar10 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar10 != '\0') {\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 < 1;\n      pop();\n      goto LAB_00016b9c;\n    }" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar13 = bc_compare(ex_stack->s_next->s_num,ex_stack->s_num);\n      c_code = iVar13 < 1;\n      pop();\n      goto LAB_00016b9c;\n    }" { (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_00016b9c;" goto statement_identifier ;) })) (goto_statement "goto LAB_000160a5;" goto statement_identifier ;)) (case_statement "case '|':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\n      cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n      bVar17 = true;\n      if (cVar10 != '\0') {\n        cVar10 = bc_is_zero(ex_stack->s_num);\n        bVar17 = cVar10 == '\0';\n      }\n      c_code = bVar17;\n      pop();\n      goto LAB_00016b9c;\n    }\nLAB_00016168:\n    local_5c = functions;\n    local_54 = functions[pc.pc_func].f_code_size;\n    pbVar11 = (bc_function *)pc.pc_func;\n    goto _L138;" case (char_literal "'|'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar10 = check_stack(2);" (assignment_expression "cVar10 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar10 != '\0') {\n      cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n      bVar17 = true;\n      if (cVar10 != '\0') {\n        cVar10 = bc_is_zero(ex_stack->s_num);\n        bVar17 = cVar10 == '\0';\n      }\n      c_code = bVar17;\n      pop();\n      goto LAB_00016b9c;\n    }" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar10 = bc_is_zero(ex_stack->s_next->s_num);\n      bVar17 = true;\n      if (cVar10 != '\0') {\n        cVar10 = bc_is_zero(ex_stack->s_num);\n        bVar17 = cVar10 == '\0';\n      }\n      c_code = bVar17;\n      pop();\n      goto LAB_00016b9c;\n    }" { (expression_statement "cVar10 = bc_is_zero(ex_stack->s_next->s_num);" (assignment_expression "cVar10 = 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 "bVar17 = true;" (assignment_expression "bVar17 = true" identifier = true) ;) (if_statement "if (cVar10 != '\0') {\n        cVar10 = bc_is_zero(ex_stack->s_num);\n        bVar17 = cVar10 == '\0';\n      }" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar10 = bc_is_zero(ex_stack->s_num);\n        bVar17 = cVar10 == '\0';\n      }" { (expression_statement "cVar10 = bc_is_zero(ex_stack->s_num);" (assignment_expression "cVar10 = 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 "bVar17 = cVar10 == '\0';" (assignment_expression "bVar17 = cVar10 == '\0'" identifier = (binary_expression "cVar10 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) })) (expression_statement "c_code = bVar17;" (assignment_expression "c_code = bVar17" identifier = identifier) ;) (expression_statement "pop();" (call_expression "pop()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_00016b9c;" goto statement_identifier ;) })) (labeled_statement "LAB_00016168:\n    local_5c = functions;" statement_identifier : (expression_statement "local_5c = functions;" (assignment_expression "local_5c = functions" identifier = identifier) ;)) (expression_statement "local_54 = functions[pc.pc_func].f_code_size;" (assignment_expression "local_54 = functions[pc.pc_func].f_code_size" identifier = (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 "pbVar11 = (bc_function *)pc.pc_func;" (assignment_expression "pbVar11 = (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))) ;) (goto_statement "goto _L138;" goto statement_identifier ;)) (case_statement "case '}':\n    pc.pc_addr = uVar16;\n    cVar10 = check_stack(2);\n    if (cVar10 != '\0') {\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();\n      goto LAB_00016b9c;\n    }\n    goto LAB_000160a5;" case (char_literal "'}'" ' character ') : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (field_expression "pc.pc_addr" identifier . field_identifier) = identifier) ;) (expression_statement "cVar10 = check_stack(2);" (assignment_expression "cVar10 = check_stack(2)" identifier = (call_expression "check_stack(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar10 != '\0') {\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();\n      goto LAB_00016b9c;\n    }" if (parenthesized_expression "(cVar10 != '\0')" ( (binary_expression "cVar10 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\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();\n      goto LAB_00016b9c;\n    }" { (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 "()" ( ))) ;) (goto_statement "goto LAB_00016b9c;" goto statement_identifier ;) })) (goto_statement "goto LAB_000160a5;" goto statement_identifier ;)) })) (goto_statement "goto LAB_00015f30;" goto statement_identifier ;) (labeled_statement "_L153:\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_4c[uVar16]) {\n  case 'I':\n    push_constant(input_char,i_base);\n    break;\n  default:\n    goto _L138;\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_000160a5:\n      local_5c = functions;\n      local_54 = functions[pc.pc_func].f_code_size;\n      pbVar11 = (bc_function *)pc.pc_func;\n      goto _L138;\n    }\n    rt_error("Square root of a negative number");\n    goto LAB_00016ba1;\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);\nLAB_00016ba1:\n    local_5c = functions;\n    local_54 = functions[pc.pc_func].f_code_size;\n    pbVar11 = (bc_function *)pc.pc_func;\n    goto _L138;\n  }" switch (parenthesized_expression "(local_4c[uVar16])" ( (subscript_expression "local_4c[uVar16]" identifier [ identifier ]) )) (compound_statement "{\n  case 'I':\n    push_constant(input_char,i_base);\n    break;\n  default:\n    goto _L138;\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_000160a5:\n      local_5c = functions;\n      local_54 = functions[pc.pc_func].f_code_size;\n      pbVar11 = (bc_function *)pc.pc_func;\n      goto _L138;\n    }\n    rt_error("Square root of a negative number");\n    goto LAB_00016ba1;\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);\nLAB_00016ba1:\n    local_5c = functions;\n    local_54 = functions[pc.pc_func].f_code_size;\n    pbVar11 = (bc_function *)pc.pc_func;\n    goto _L138;\n  }" { (case_statement "case 'I':\n    push_constant(input_char,i_base);\n    break;" case (char_literal "'I'" ' character ') : (expression_statement "push_constant(input_char,i_base);" (call_expression "push_constant(input_char,i_base)" identifier (argument_list "(input_char,i_base)" ( identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    goto _L138;" default : (goto_statement "goto _L138;" 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_000160a5:\n      local_5c = functions;\n      local_54 = functions[pc.pc_func].f_code_size;\n      pbVar11 = (bc_function *)pc.pc_func;\n      goto _L138;\n    }\n    rt_error("Square root of a negative number");\n    goto LAB_00016ba1;" 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_000160a5:\n      local_5c = functions;\n      local_54 = functions[pc.pc_func].f_code_size;\n      pbVar11 = (bc_function *)pc.pc_func;\n      goto _L138;\n    }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000160a5:\n      local_5c = functions;\n      local_54 = functions[pc.pc_func].f_code_size;\n      pbVar11 = (bc_function *)pc.pc_func;\n      goto _L138;\n    }" { (labeled_statement "LAB_000160a5:\n      local_5c = functions;" statement_identifier : (expression_statement "local_5c = functions;" (assignment_expression "local_5c = functions" identifier = identifier) ;)) (expression_statement "local_54 = functions[pc.pc_func].f_code_size;" (assignment_expression "local_54 = functions[pc.pc_func].f_code_size" identifier = (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 "pbVar11 = (bc_function *)pc.pc_func;" (assignment_expression "pbVar11 = (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))) ;) (goto_statement "goto _L138;" goto statement_identifier ;) })) (expression_statement "rt_error("Square root of a negative number");" (call_expression "rt_error("Square root of a negative number")" identifier (argument_list "("Square root of a negative number")" ( (string_literal ""Square root of a negative number"" " string_content ") ))) ;) (goto_statement "goto LAB_00016ba1;" goto statement_identifier ;)) (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);\nLAB_00016ba1:\n    local_5c = functions;\n    local_54 = functions[pc.pc_func].f_code_size;\n    pbVar11 = (bc_function *)pc.pc_func;\n    goto _L138;" 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_00016ba1:\n    local_5c = functions;" statement_identifier : (expression_statement "local_5c = functions;" (assignment_expression "local_5c = functions" identifier = identifier) ;)) (expression_statement "local_54 = functions[pc.pc_func].f_code_size;" (assignment_expression "local_54 = functions[pc.pc_func].f_code_size" identifier = (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 "pbVar11 = (bc_function *)pc.pc_func;" (assignment_expression "pbVar11 = (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))) ;) (goto_statement "goto _L138;" goto statement_identifier ;)) })) (labeled_statement "LAB_00015f30:\n  local_5c = functions;" statement_identifier : (expression_statement "local_5c = functions;" (assignment_expression "local_5c = functions" identifier = identifier) ;)) (expression_statement "local_54 = functions[pc.pc_func].f_code_size;" (assignment_expression "local_54 = functions[pc.pc_func].f_code_size" identifier = (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 "pbVar11 = (bc_function *)pc.pc_func;" (assignment_expression "pbVar11 = (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))) ;) (goto_statement "goto _L138;" goto statement_identifier ;) (labeled_statement "code_r0x0001688b:\n  switch(local_4c[uVar16]) {\n  case '\\':\n    uVar12 = 0x5c;\n    uVar16 = pc.pc_addr;\n    break;\n  default:\n    goto _L160;\n  case 'a':\n    uVar12 = 7;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'b':\n    uVar12 = 8;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'f':\n    uVar12 = 0xc;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'n':\n    uVar12 = 10;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'q':\n    uVar12 = 0x22;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'r':\n    uVar12 = 0xd;\n    uVar16 = pc.pc_addr;\n    break;\n  case 't':\n    uVar12 = 9;\n    uVar16 = pc.pc_addr;\n  }" statement_identifier : (switch_statement "switch(local_4c[uVar16]) {\n  case '\\':\n    uVar12 = 0x5c;\n    uVar16 = pc.pc_addr;\n    break;\n  default:\n    goto _L160;\n  case 'a':\n    uVar12 = 7;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'b':\n    uVar12 = 8;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'f':\n    uVar12 = 0xc;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'n':\n    uVar12 = 10;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'q':\n    uVar12 = 0x22;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'r':\n    uVar12 = 0xd;\n    uVar16 = pc.pc_addr;\n    break;\n  case 't':\n    uVar12 = 9;\n    uVar16 = pc.pc_addr;\n  }" switch (parenthesized_expression "(local_4c[uVar16])" ( (subscript_expression "local_4c[uVar16]" identifier [ identifier ]) )) (compound_statement "{\n  case '\\':\n    uVar12 = 0x5c;\n    uVar16 = pc.pc_addr;\n    break;\n  default:\n    goto _L160;\n  case 'a':\n    uVar12 = 7;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'b':\n    uVar12 = 8;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'f':\n    uVar12 = 0xc;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'n':\n    uVar12 = 10;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'q':\n    uVar12 = 0x22;\n    uVar16 = pc.pc_addr;\n    break;\n  case 'r':\n    uVar12 = 0xd;\n    uVar16 = pc.pc_addr;\n    break;\n  case 't':\n    uVar12 = 9;\n    uVar16 = pc.pc_addr;\n  }" { (case_statement "case '\\':\n    uVar12 = 0x5c;\n    uVar16 = pc.pc_addr;\n    break;" case (char_literal "'\\'" ' escape_sequence ') : (expression_statement "uVar12 = 0x5c;" (assignment_expression "uVar12 = 0x5c" identifier = number_literal) ;) (expression_statement "uVar16 = pc.pc_addr;" (assignment_expression "uVar16 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "default:\n    goto _L160;" default : (goto_statement "goto _L160;" goto statement_identifier ;)) (case_statement "case 'a':\n    uVar12 = 7;\n    uVar16 = pc.pc_addr;\n    break;" case (char_literal "'a'" ' character ') : (expression_statement "uVar12 = 7;" (assignment_expression "uVar12 = 7" identifier = number_literal) ;) (expression_statement "uVar16 = pc.pc_addr;" (assignment_expression "uVar16 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 'b':\n    uVar12 = 8;\n    uVar16 = pc.pc_addr;\n    break;" case (char_literal "'b'" ' character ') : (expression_statement "uVar12 = 8;" (assignment_expression "uVar12 = 8" identifier = number_literal) ;) (expression_statement "uVar16 = pc.pc_addr;" (assignment_expression "uVar16 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 'f':\n    uVar12 = 0xc;\n    uVar16 = pc.pc_addr;\n    break;" case (char_literal "'f'" ' character ') : (expression_statement "uVar12 = 0xc;" (assignment_expression "uVar12 = 0xc" identifier = number_literal) ;) (expression_statement "uVar16 = pc.pc_addr;" (assignment_expression "uVar16 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 'n':\n    uVar12 = 10;\n    uVar16 = pc.pc_addr;\n    break;" case (char_literal "'n'" ' character ') : (expression_statement "uVar12 = 10;" (assignment_expression "uVar12 = 10" identifier = number_literal) ;) (expression_statement "uVar16 = pc.pc_addr;" (assignment_expression "uVar16 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 'q':\n    uVar12 = 0x22;\n    uVar16 = pc.pc_addr;\n    break;" case (char_literal "'q'" ' character ') : (expression_statement "uVar12 = 0x22;" (assignment_expression "uVar12 = 0x22" identifier = number_literal) ;) (expression_statement "uVar16 = pc.pc_addr;" (assignment_expression "uVar16 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 'r':\n    uVar12 = 0xd;\n    uVar16 = pc.pc_addr;\n    break;" case (char_literal "'r'" ' character ') : (expression_statement "uVar12 = 0xd;" (assignment_expression "uVar12 = 0xd" identifier = number_literal) ;) (expression_statement "uVar16 = pc.pc_addr;" (assignment_expression "uVar16 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 't':\n    uVar12 = 9;\n    uVar16 = pc.pc_addr;" case (char_literal "'t'" ' character ') : (expression_statement "uVar12 = 9;" (assignment_expression "uVar12 = 9" identifier = number_literal) ;) (expression_statement "uVar16 = pc.pc_addr;" (assignment_expression "uVar16 = pc.pc_addr" identifier = (field_expression "pc.pc_addr" identifier . field_identifier)) ;)) }))) (labeled_statement "LAB_00016844:\n  pc.pc_addr = uVar16;" statement_identifier : (expression_statement "pc.pc_addr = uVar16;" (assignment_expression "pc.pc_addr = uVar16" (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_4c = functions[pc.pc_func].f_body;" (assignment_expression "local_4c = 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 _L160;" goto statement_identifier ;) })))
(translation_unit "void FUN_00015d50(void)\n\n{\n  int *piVar1;\n  undefined1 uVar2;\n  undefined4 *puVar3;\n  ushort uVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char cVar7;\n  char cVar8;\n  uint uVar9;\n  uint uVar10;\n  byte extraout_var;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  uint uVar15;\n  int in_GS_OFFSET;\n  bool bVar16;\n  int local_5c;\n  uint local_58;\n  uint local_54;\n  int local_4c;\n  bool local_3d;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x15d59;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  DAT_0002928c = '\0';\n  DAT_000292ac = 0;\n  DAT_000292b0 = 0;\n  FUN_0001aaa0(&local_24);\n  if (DAT_000291fc != '\0') {\n    signal(2,FUN_000155b0);\n  }\n  puVar5 = PTR_stdout_00028fec;\n  DAT_00029220 = 0;\n  local_5c = DAT_00029278;\n  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n  uVar9 = DAT_000292ac;\nLAB_00015e08:\n  local_58 = uVar9 * 0x1c + local_5c;\n  if (((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0)) {\n    if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }\n    while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }\n    if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_0001d3e0();\n    }\n    return;\n  }\n  uVar15 = DAT_000292b0 + 1;\n  local_4c = *(int *)(local_58 + 4);\n  cVar8 = *(char *)(local_4c + DAT_000292b0);\n  switch(cVar8) {\n  case '!':\n  case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;\n  case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;\n  case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;\n  case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;\n  case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;\n  case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;\n  case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;\n  case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;\n  case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;\n  case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;\n  case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    DAT_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;\n  case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;\n  case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;\n  case 'c':\n    goto code_r0x00016658;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;\n  case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;\n  case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;\n  case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;\n  case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;\n  case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;\n  case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  }\n  goto LAB_00015f30;\ncode_r0x00016658:\n  DAT_000292b0 = DAT_000292b0 + 2;\n  switch(*(undefined1 *)(local_4c + uVar15)) {\n  case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;\n  default:\n    goto LAB_00015e08;\n  case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;\n  case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;\n  case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;\n  case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  }\nLAB_00015f30:\n  local_5c = DAT_00029278;\n  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n  uVar9 = DAT_000292ac;\n  goto LAB_00015e08;\ncode_r0x0001688b:\n  switch(*(char *)(local_4c + uVar9)) {\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }\ncode_r0x00016844:\n  DAT_000292b0 = uVar9;\n  FUN_00019000(cVar8);\n  local_4c = *(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4);\n  goto code_r0x0001685c;\n}\n\n" (function_definition "void FUN_00015d50(void)\n\n{\n  int *piVar1;\n  undefined1 uVar2;\n  undefined4 *puVar3;\n  ushort uVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char cVar7;\n  char cVar8;\n  uint uVar9;\n  uint uVar10;\n  byte extraout_var;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  uint uVar15;\n  int in_GS_OFFSET;\n  bool bVar16;\n  int local_5c;\n  uint local_58;\n  uint local_54;\n  int local_4c;\n  bool local_3d;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x15d59;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  DAT_0002928c = '\0';\n  DAT_000292ac = 0;\n  DAT_000292b0 = 0;\n  FUN_0001aaa0(&local_24);\n  if (DAT_000291fc != '\0') {\n    signal(2,FUN_000155b0);\n  }\n  puVar5 = PTR_stdout_00028fec;\n  DAT_00029220 = 0;\n  local_5c = DAT_00029278;\n  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n  uVar9 = DAT_000292ac;\nLAB_00015e08:\n  local_58 = uVar9 * 0x1c + local_5c;\n  if (((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0)) {\n    if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }\n    while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }\n    if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_0001d3e0();\n    }\n    return;\n  }\n  uVar15 = DAT_000292b0 + 1;\n  local_4c = *(int *)(local_58 + 4);\n  cVar8 = *(char *)(local_4c + DAT_000292b0);\n  switch(cVar8) {\n  case '!':\n  case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;\n  case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;\n  case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;\n  case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;\n  case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;\n  case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;\n  case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;\n  case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;\n  case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;\n  case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;\n  case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    DAT_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;\n  case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;\n  case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;\n  case 'c':\n    goto code_r0x00016658;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;\n  case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;\n  case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;\n  case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;\n  case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;\n  case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;\n  case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  }\n  goto LAB_00015f30;\ncode_r0x00016658:\n  DAT_000292b0 = DAT_000292b0 + 2;\n  switch(*(undefined1 *)(local_4c + uVar15)) {\n  case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;\n  default:\n    goto LAB_00015e08;\n  case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;\n  case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;\n  case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;\n  case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  }\nLAB_00015f30:\n  local_5c = DAT_00029278;\n  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n  uVar9 = DAT_000292ac;\n  goto LAB_00015e08;\ncode_r0x0001688b:\n  switch(*(char *)(local_4c + uVar9)) {\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }\ncode_r0x00016844:\n  DAT_000292b0 = uVar9;\n  FUN_00019000(cVar8);\n  local_4c = *(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4);\n  goto code_r0x0001685c;\n}" primitive_type (function_declarator "FUN_00015d50(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  undefined1 uVar2;\n  undefined4 *puVar3;\n  ushort uVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char cVar7;\n  char cVar8;\n  uint uVar9;\n  uint uVar10;\n  byte extraout_var;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  uint uVar15;\n  int in_GS_OFFSET;\n  bool bVar16;\n  int local_5c;\n  uint local_58;\n  uint local_54;\n  int local_4c;\n  bool local_3d;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x15d59;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  DAT_0002928c = '\0';\n  DAT_000292ac = 0;\n  DAT_000292b0 = 0;\n  FUN_0001aaa0(&local_24);\n  if (DAT_000291fc != '\0') {\n    signal(2,FUN_000155b0);\n  }\n  puVar5 = PTR_stdout_00028fec;\n  DAT_00029220 = 0;\n  local_5c = DAT_00029278;\n  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n  uVar9 = DAT_000292ac;\nLAB_00015e08:\n  local_58 = uVar9 * 0x1c + local_5c;\n  if (((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0)) {\n    if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }\n    while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }\n    if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_0001d3e0();\n    }\n    return;\n  }\n  uVar15 = DAT_000292b0 + 1;\n  local_4c = *(int *)(local_58 + 4);\n  cVar8 = *(char *)(local_4c + DAT_000292b0);\n  switch(cVar8) {\n  case '!':\n  case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;\n  case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;\n  case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;\n  case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;\n  case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;\n  case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;\n  case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;\n  case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;\n  case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;\n  case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;\n  case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    DAT_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;\n  case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;\n  case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;\n  case 'c':\n    goto code_r0x00016658;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;\n  case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;\n  case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;\n  case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;\n  case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;\n  case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;\n  case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  }\n  goto LAB_00015f30;\ncode_r0x00016658:\n  DAT_000292b0 = DAT_000292b0 + 2;\n  switch(*(undefined1 *)(local_4c + uVar15)) {\n  case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;\n  default:\n    goto LAB_00015e08;\n  case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;\n  case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;\n  case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;\n  case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  }\nLAB_00015f30:\n  local_5c = DAT_00029278;\n  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n  uVar9 = DAT_000292ac;\n  goto LAB_00015e08;\ncode_r0x0001688b:\n  switch(*(char *)(local_4c + uVar9)) {\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }\ncode_r0x00016844:\n  DAT_000292b0 = uVar9;\n  FUN_00019000(cVar8);\n  local_4c = *(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4);\n  goto code_r0x0001685c;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined1 uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "ushort uVar4;" type_identifier identifier ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier 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 "uint uVar15;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar16;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "bool local_3d;" primitive_type identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x15d59;" (assignment_expression "uStack_14 = 0x15d59" 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_0002928c = '\0';" (assignment_expression "DAT_0002928c = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "DAT_000292ac = 0;" (assignment_expression "DAT_000292ac = 0" identifier = number_literal) ;) (expression_statement "DAT_000292b0 = 0;" (assignment_expression "DAT_000292b0 = 0" identifier = number_literal) ;) (expression_statement "FUN_0001aaa0(&local_24);" (call_expression "FUN_0001aaa0(&local_24)" identifier (argument_list "(&local_24)" ( (pointer_expression "&local_24" & identifier) ))) ;) (if_statement "if (DAT_000291fc != '\0') {\n    signal(2,FUN_000155b0);\n  }" if (parenthesized_expression "(DAT_000291fc != '\0')" ( (binary_expression "DAT_000291fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    signal(2,FUN_000155b0);\n  }" { (expression_statement "signal(2,FUN_000155b0);" (call_expression "signal(2,FUN_000155b0)" identifier (argument_list "(2,FUN_000155b0)" ( number_literal , identifier ))) ;) })) (expression_statement "puVar5 = PTR_stdout_00028fec;" (assignment_expression "puVar5 = PTR_stdout_00028fec" identifier = identifier) ;) (expression_statement "DAT_00029220 = 0;" (assignment_expression "DAT_00029220 = 0" identifier = number_literal) ;) (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" identifier = (pointer_expression "*(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" * (cast_expression "(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (binary_expression "DAT_00029278 + 0xc + DAT_000292ac * 0x1c" (binary_expression "DAT_00029278 + 0xc" identifier + number_literal) + (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal)) ))))) ;) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" identifier = identifier) ;) (labeled_statement "LAB_00015e08:\n  local_58 = uVar9 * 0x1c + local_5c;" statement_identifier : (expression_statement "local_58 = uVar9 * 0x1c + local_5c;" (assignment_expression "local_58 = uVar9 * 0x1c + local_5c" identifier = (binary_expression "uVar9 * 0x1c + local_5c" (binary_expression "uVar9 * 0x1c" identifier * number_literal) + identifier)) ;)) (if_statement "if (((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0)) {\n    if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }\n    while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }\n    if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_0001d3e0();\n    }\n    return;\n  }" if (parenthesized_expression "(((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0))" ( (binary_expression "((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0)" (parenthesized_expression "((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0'))" ( (binary_expression "(local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')" (parenthesized_expression "(local_54 <= DAT_000292b0)" ( (binary_expression "local_54 <= DAT_000292b0" identifier <= identifier) )) || (parenthesized_expression "(DAT_0002928c != '\0')" ( (binary_expression "DAT_0002928c != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(DAT_00029220 != 0)" ( (binary_expression "DAT_00029220 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }\n    while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }\n    if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_0001d3e0();\n    }\n    return;\n  }" { (if_statement "if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }" { (do_statement "do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);" do (compound_statement "{\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      }" { (expression_statement "FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));" (call_expression "FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c))" identifier (argument_list "(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c))" ( (pointer_expression "*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c)" * (cast_expression "(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c + 0x18 + uVar9 * 0x1c)" ( (binary_expression "local_5c + 0x18 + uVar9 * 0x1c" (binary_expression "local_5c + 0x18" identifier + number_literal) + (binary_expression "uVar9 * 0x1c" identifier * number_literal)) )))) ))) ;) (expression_statement "FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));" (call_expression "FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14))" identifier (argument_list "(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14))" ( (pointer_expression "*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" * (cast_expression "(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" ( (binary_expression "DAT_000292ac * 0x1c + DAT_00029278 + 0x14" (binary_expression "DAT_000292ac * 0x1c + DAT_00029278" (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) ))) ;) (expression_statement "FUN_00017ca0();" (call_expression "FUN_00017ca0()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_000292b0 = FUN_00017ca0();" (assignment_expression "DAT_000292b0 = FUN_00017ca0()" identifier = (call_expression "FUN_00017ca0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar9 = FUN_00017ca0();" (assignment_expression "uVar9 = FUN_00017ca0()" identifier = (call_expression "FUN_00017ca0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;) (expression_statement "DAT_000292ac = uVar9;" (assignment_expression "DAT_000292ac = uVar9" identifier = identifier) ;) }) while (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) ;) (expression_statement "DAT_000292ac = 0;" (assignment_expression "DAT_000292ac = 0" identifier = number_literal) ;) })) (while_statement "while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }" while (parenthesized_expression "(DAT_000292bc != (int *)0x0)" ( (binary_expression "DAT_000292bc != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00017d30();\n    }" { (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }" if (parenthesized_expression "((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0))" ( (binary_expression "(DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)" (parenthesized_expression "(DAT_000291fc != '\0')" ( (binary_expression "DAT_000291fc != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)" ( (comma_expression "signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0" (call_expression "signal(2,(__sighandler_t)PTR_FUN_00028ff4)" identifier (argument_list "(2,(__sighandler_t)PTR_FUN_00028ff4)" ( number_literal , (cast_expression "(__sighandler_t)PTR_FUN_00028ff4" ( (type_descriptor "__sighandler_t" type_identifier) ) identifier) ))) , (binary_expression "DAT_00029220 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\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_0001d320(*(undefined4 *)PTR_stdout_00028fec);" (call_expression "FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec)" identifier (argument_list "(*(undefined4 *)PTR_stdout_00028fec)" ( (pointer_expression "*(undefined4 *)PTR_stdout_00028fec" * (cast_expression "(undefined4 *)PTR_stdout_00028fec" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) })) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_0001d3e0();\n    }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n      FUN_0001d3e0();\n    }" { (expression_statement "FUN_0001d3e0();" (call_expression "FUN_0001d3e0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) })) (expression_statement "uVar15 = DAT_000292b0 + 1;" (assignment_expression "uVar15 = DAT_000292b0 + 1" identifier = (binary_expression "DAT_000292b0 + 1" identifier + number_literal)) ;) (expression_statement "local_4c = *(int *)(local_58 + 4);" (assignment_expression "local_4c = *(int *)(local_58 + 4)" identifier = (pointer_expression "*(int *)(local_58 + 4)" * (cast_expression "(int *)(local_58 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 4)" ( (binary_expression "local_58 + 4" identifier + number_literal) ))))) ;) (expression_statement "cVar8 = *(char *)(local_4c + DAT_000292b0);" (assignment_expression "cVar8 = *(char *)(local_4c + DAT_000292b0)" identifier = (pointer_expression "*(char *)(local_4c + DAT_000292b0)" * (cast_expression "(char *)(local_4c + DAT_000292b0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + DAT_000292b0)" ( (binary_expression "local_4c + DAT_000292b0" identifier + identifier) ))))) ;) (switch_statement "switch(cVar8) {\n  case '!':\n  case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;\n  case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;\n  case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;\n  case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;\n  case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;\n  case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;\n  case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;\n  case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;\n  case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;\n  case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;\n  case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    DAT_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;\n  case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;\n  case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;\n  case 'c':\n    goto code_r0x00016658;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;\n  case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;\n  case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;\n  case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;\n  case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;\n  case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;\n  case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  }" switch (parenthesized_expression "(cVar8)" ( identifier )) (compound_statement "{\n  case '!':\n  case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;\n  case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;\n  case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;\n  case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;\n  case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;\n  case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;\n  case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;\n  case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;\n  case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;\n  case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;\n  case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    DAT_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;\n  case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;\n  case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;\n  case 'c':\n    goto code_r0x00016658;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;\n  case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;\n  case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;\n  case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;\n  case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;\n  case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;\n  case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  }" { (case_statement "case '!':" case (char_literal "'!'" ' character ') :) (case_statement "case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;" case (char_literal "'T'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "DAT_00029294 = FUN_0001ab00(*DAT_000292bc);" (assignment_expression "DAT_00029294 = FUN_0001ab00(*DAT_000292bc)" identifier = (call_expression "FUN_0001ab00(*DAT_000292bc)" identifier (argument_list "(*DAT_000292bc)" ( (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "FUN_00015ce0(DAT_00029294);" (call_expression "FUN_00015ce0(DAT_00029294)" identifier (argument_list "(DAT_00029294)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;" 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_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (goto_statement "goto code_r0x000168af;" goto statement_identifier ;)) (case_statement "case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;" case (char_literal "'#'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 == '\0') goto code_r0x000160a5;" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x000160a5;" goto statement_identifier ;)) (expression_statement "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (assignment_expression "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier = (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "DAT_00029294 = iVar12 != 0;" (assignment_expression "DAT_00029294 = iVar12 != 0" identifier = (binary_expression "iVar12 != 0" identifier != number_literal)) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (labeled_statement "code_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);" statement_identifier : (expression_statement "FUN_00015ce0(DAT_00029294);" (call_expression "FUN_00015ce0(DAT_00029294)" identifier (argument_list "(DAT_00029294)" ( identifier ))) ;)) (goto_statement "goto code_r0x00016ba1;" goto statement_identifier ;)) (case_statement "case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;" case (char_literal "'%'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 == '\0') goto code_r0x00016168;" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (expression_statement "cVar8 = FUN_0001ab00(*DAT_000292bc);" (assignment_expression "cVar8 = FUN_0001ab00(*DAT_000292bc)" identifier = (call_expression "FUN_0001ab00(*DAT_000292bc)" identifier (argument_list "(*DAT_000292bc)" ( (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (if_statement "if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }" { (expression_statement "FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);" (call_expression "FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) , (pointer_expression "&local_24" & identifier) , identifier ))) ;) (goto_statement "goto code_r0x0001656e;" 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_r0x000168af;" goto statement_identifier ;)) (case_statement "case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;" case (char_literal "'&'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 == '\0') goto code_r0x00016168;" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (expression_statement "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);" (assignment_expression "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" identifier = (call_expression "FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1])" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) )))) ;) (expression_statement "local_3d = false;" (assignment_expression "local_3d = false" identifier = false) ;) (if_statement "if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }" { (expression_statement "cVar8 = FUN_0001ab00(*DAT_000292bc);" (assignment_expression "cVar8 = FUN_0001ab00(*DAT_000292bc)" identifier = (call_expression "FUN_0001ab00(*DAT_000292bc)" identifier (argument_list "(*DAT_000292bc)" ( (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "local_3d = cVar8 == '\0';" (assignment_expression "local_3d = cVar8 == '\0'" identifier = (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) })) (expression_statement "DAT_00029294 = local_3d;" (assignment_expression "DAT_00029294 = local_3d" identifier = identifier) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00015ce0(DAT_00029294);" (call_expression "FUN_00015ce0(DAT_00029294)" identifier (argument_list "(DAT_00029294)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;" case (char_literal "'*'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 == '\0') goto code_r0x00016168;" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (expression_statement "FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);" (call_expression "FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) , (pointer_expression "&local_24" & identifier) , identifier ))) ;) (labeled_statement "code_r0x0001642c:\n    FUN_00017d30();" statement_identifier : (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00017db0(local_24);" (call_expression "FUN_00017db0(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "FUN_0001aaa0(&local_24);" (call_expression "FUN_0001aaa0(&local_24)" identifier (argument_list "(&local_24)" ( (pointer_expression "&local_24" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;" case (char_literal "'+'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }" { (expression_statement "FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);" (call_expression "FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) , (pointer_expression "&local_24" & identifier) , number_literal ))) ;) (goto_statement "goto code_r0x0001642c;" goto statement_identifier ;) })) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (case_statement "case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;" case (char_literal "'-'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }" { (expression_statement "FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);" (call_expression "FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) , (pointer_expression "&local_24" & identifier) , number_literal ))) ;) (labeled_statement "code_r0x0001656e:\n      FUN_00017d30();" statement_identifier : (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00017db0(local_24);" (call_expression "FUN_00017db0(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "FUN_0001aaa0(&local_24);" (call_expression "FUN_0001aaa0(&local_24)" identifier (argument_list "(&local_24)" ( (pointer_expression "&local_24" & identifier) ))) ;) (goto_statement "goto code_r0x00016ba1;" goto statement_identifier ;) })) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (case_statement "case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;" case (char_literal "'/'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 == '\0') goto code_r0x00016168;" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (expression_statement "iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);" (assignment_expression "iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" identifier = (call_expression "FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) , (pointer_expression "&local_24" & identifier) , identifier )))) ;) (if_statement "if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }" { (expression_statement "FUN_00019f10("Divide by zero");" (call_expression "FUN_00019f10("Divide by zero")" identifier (argument_list "("Divide by zero")" ( (string_literal ""Divide by zero"" " string_content ") ))) ;) (goto_statement "goto code_r0x00016ba1;" goto statement_identifier ;) })) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00017db0(local_24);" (call_expression "FUN_00017db0(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "FUN_0001aaa0(&local_24);" (call_expression "FUN_0001aaa0(&local_24)" identifier (argument_list "(&local_24)" ( (pointer_expression "&local_24" & identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;" case (char_literal "'0'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_00017d70(DAT_000292c8);" (call_expression "FUN_00017d70(DAT_000292c8)" identifier (argument_list "(DAT_000292c8)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;" case (char_literal "'1'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_00017d70(DAT_000292c0);" (call_expression "FUN_00017d70(DAT_000292c0)" identifier (argument_list "(DAT_000292c0)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;" case (char_literal "'<'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 == '\0') goto code_r0x00016168;" if (parenthesized_expression "(cVar8 == '\0')" ( (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (expression_statement "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (assignment_expression "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier = (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "DAT_00029294 = iVar12 == -1;" (assignment_expression "DAT_00029294 = iVar12 == -1" identifier = (binary_expression "iVar12 == -1" identifier == number_literal)) ;) (labeled_statement "code_r0x00016236:\n    FUN_00017d30();" statement_identifier : (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_00015ce0(DAT_00029294);" (call_expression "FUN_00015ce0(DAT_00029294)" identifier (argument_list "(DAT_00029294)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;" case (char_literal "'='" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }" { (expression_statement "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (assignment_expression "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier = (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "DAT_00029294 = iVar12 == 0;" (assignment_expression "DAT_00029294 = iVar12 == 0" identifier = (binary_expression "iVar12 == 0" identifier == number_literal)) ;) (goto_statement "goto code_r0x00016236;" goto statement_identifier ;) })) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (case_statement "case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;" case (char_literal "'>'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }" { (expression_statement "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (assignment_expression "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier = (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "DAT_00029294 = iVar12 == 1;" (assignment_expression "DAT_00029294 = iVar12 == 1" identifier = (binary_expression "iVar12 == 1" identifier == number_literal)) ;) (goto_statement "goto code_r0x00016236;" goto statement_identifier ;) })) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (case_statement "case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;" case (char_literal "'A'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_000189d0(uVar10);" (call_expression "FUN_000189d0(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_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;" case (char_literal "'Z'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar7 = FUN_0001ab00(*DAT_000292bc);" (assignment_expression "cVar7 = FUN_0001ab00(*DAT_000292bc)" identifier = (call_expression "FUN_0001ab00(*DAT_000292bc)" identifier (argument_list "(*DAT_000292bc)" ( (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "DAT_00029294 = cVar7 == '\0';" (assignment_expression "DAT_00029294 = cVar7 == '\0'" identifier = (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;) (expression_statement "local_58 = DAT_00029278 + DAT_000292ac * 0x1c;" (assignment_expression "local_58 = DAT_00029278 + DAT_000292ac * 0x1c" identifier = (binary_expression "DAT_00029278 + DAT_000292ac * 0x1c" identifier + (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal))) ;) (expression_statement "local_4c = *(int *)(local_58 + 4);" (assignment_expression "local_4c = *(int *)(local_58 + 4)" identifier = (pointer_expression "*(int *)(local_58 + 4)" * (cast_expression "(int *)(local_58 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 4)" ( (binary_expression "local_58 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = DAT_000292b0 + 1;" (assignment_expression "iVar12 = DAT_000292b0 + 1" identifier = (binary_expression "DAT_000292b0 + 1" identifier + number_literal)) ;) (expression_statement "uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);" (assignment_expression "uVar2 = *(undefined1 *)(local_4c + DAT_000292b0)" identifier = (pointer_expression "*(undefined1 *)(local_4c + DAT_000292b0)" * (cast_expression "(undefined1 *)(local_4c + DAT_000292b0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + DAT_000292b0)" ( (binary_expression "local_4c + DAT_000292b0" identifier + identifier) ))))) ;) (expression_statement "DAT_000292b0 = DAT_000292b0 + 2;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" identifier = identifier) ;) (if_statement "if (cVar8 == 'J') goto code_r0x0001696a;" if (parenthesized_expression "(cVar8 == 'J')" ( (binary_expression "cVar8 == 'J'" identifier == (char_literal "'J'" ' character ')) )) (goto_statement "goto code_r0x0001696a;" goto statement_identifier ;)) (if_statement "if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;" if (parenthesized_expression "(cVar8 == 'B')" ( (binary_expression "cVar8 == 'B'" identifier == (char_literal "'B'" ' character ')) )) (compound_statement "{\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }" { (if_statement "if (DAT_00029294 != 0) goto code_r0x0001696a;" if (parenthesized_expression "(DAT_00029294 != 0)" ( (binary_expression "DAT_00029294 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x0001696a;" goto statement_identifier ;)) }) (else_clause "else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;" else (if_statement "if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;" if (parenthesized_expression "((cVar8 == 'Z') && (DAT_00029294 == 0))" ( (binary_expression "(cVar8 == 'Z') && (DAT_00029294 == 0)" (parenthesized_expression "(cVar8 == 'Z')" ( (binary_expression "cVar8 == 'Z'" identifier == (char_literal "'Z'" ' character ')) )) && (parenthesized_expression "(DAT_00029294 == 0)" ( (binary_expression "DAT_00029294 == 0" identifier == number_literal) ))) )) (goto_statement "goto code_r0x0001696a;" goto statement_identifier ;)))) (expression_statement "local_54 = *(uint *)(local_58 + 0xc);" (assignment_expression "local_54 = *(uint *)(local_58 + 0xc)" identifier = (pointer_expression "*(uint *)(local_58 + 0xc)" * (cast_expression "(uint *)(local_58 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0xc)" ( (binary_expression "local_58 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (case_statement "case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;" case (char_literal "'C'" ' character ') : (expression_statement "local_58 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "local_58 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;" (assignment_expression "local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100" identifier = (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100" (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))) + (binary_expression "(local_58 & 0x7f) * 0x100" (parenthesized_expression "(local_58 & 0x7f)" ( (binary_expression "local_58 & 0x7f" identifier & number_literal) )) * number_literal))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "iVar12 = local_58 * 0x1c;" (assignment_expression "iVar12 = local_58 * 0x1c" identifier = (binary_expression "local_58 * 0x1c" identifier * number_literal)) ;) (if_statement "if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }" if (parenthesized_expression "(*(char *)(local_5c + iVar12) == '\0')" ( (binary_expression "*(char *)(local_5c + iVar12) == '\0'" (pointer_expression "*(char *)(local_5c + iVar12)" * (cast_expression "(char *)(local_5c + iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5c + iVar12)" ( (binary_expression "local_5c + iVar12" identifier + identifier) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\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_r0x000168af;" goto statement_identifier ;) })) (expression_statement "FUN_00018c90(&DAT_000292ac,local_58);" (call_expression "FUN_00018c90(&DAT_000292ac,local_58)" identifier (argument_list "(&DAT_000292ac,local_58)" ( (pointer_expression "&DAT_000292ac" & identifier) , identifier ))) ;) (for_statement "for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }" for ( (assignment_expression "puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12)" identifier = (pointer_expression "*(undefined4 **)(DAT_00029278 + 0x18 + iVar12)" * (cast_expression "(undefined4 **)(DAT_00029278 + 0x18 + iVar12)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00029278 + 0x18 + iVar12)" ( (binary_expression "DAT_00029278 + 0x18 + iVar12" (binary_expression "DAT_00029278 + 0x18" identifier + number_literal) + identifier) ))))) ; (binary_expression "puVar3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar3 = (undefined4 *)puVar3[2]" identifier = (cast_expression "(undefined4 *)puVar3[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar3[2]" identifier [ number_literal ]))) ) (compound_statement "{\n      FUN_00018a90(*puVar3);\n    }" { (expression_statement "FUN_00018a90(*puVar3);" (call_expression "FUN_00018a90(*puVar3)" identifier (argument_list "(*puVar3)" ( (pointer_expression "*puVar3" * identifier) ))) ;) })) (expression_statement "FUN_00017d00(DAT_000292ac);" (call_expression "FUN_00017d00(DAT_000292ac)" identifier (argument_list "(DAT_000292ac)" ( identifier ))) ;) (expression_statement "FUN_00017d00(DAT_000292b0);" (call_expression "FUN_00017d00(DAT_000292b0)" identifier (argument_list "(DAT_000292b0)" ( identifier ))) ;) (expression_statement "FUN_00017d00(DAT_000292a4);" (call_expression "FUN_00017d00(DAT_000292a4)" identifier (argument_list "(DAT_000292a4)" ( identifier ))) ;) (expression_statement "DAT_000292b0 = 0;" (assignment_expression "DAT_000292b0 = 0" identifier = number_literal) ;) (expression_statement "DAT_000292ac = local_58;" (assignment_expression "DAT_000292ac = local_58" identifier = identifier) ;) (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12)" identifier = (pointer_expression "*(uint *)(DAT_00029278 + 0xc + iVar12)" * (cast_expression "(uint *)(DAT_00029278 + 0xc + iVar12)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00029278 + 0xc + iVar12)" ( (binary_expression "DAT_00029278 + 0xc + iVar12" (binary_expression "DAT_00029278 + 0xc" identifier + number_literal) + identifier) ))))) ;) (expression_statement "uVar9 = local_58;" (assignment_expression "uVar9 = local_58" identifier = identifier) ;) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (case_statement "case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;" case (char_literal "'D'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_00017d70(*DAT_000292bc);" (call_expression "FUN_00017d70(*DAT_000292bc)" identifier (argument_list "(*DAT_000292bc)" ( (pointer_expression "*DAT_000292bc" * identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;" case (char_literal "'J'" ' character ') : (expression_statement "iVar12 = DAT_000292b0 + 2;" (assignment_expression "iVar12 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (expression_statement "uVar2 = *(undefined1 *)(local_4c + uVar15);" (assignment_expression "uVar2 = *(undefined1 *)(local_4c + uVar15)" identifier = (pointer_expression "*(undefined1 *)(local_4c + uVar15)" * (cast_expression "(undefined1 *)(local_4c + uVar15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "DAT_000292b0 = DAT_000292b0 + 3;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) (labeled_statement "code_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);" statement_identifier : (expression_statement "uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);" (assignment_expression "uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2)" identifier = (call_expression "CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2)" identifier (argument_list "(*(undefined1 *)(local_4c + iVar12),uVar2)" ( (pointer_expression "*(undefined1 *)(local_4c + iVar12)" * (cast_expression "(undefined1 *)(local_4c + iVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + iVar12)" ( (binary_expression "local_4c + iVar12" identifier + identifier) )))) , identifier )))) ;)) (expression_statement "uVar15 = (uint)(uVar4 >> 6);" (assignment_expression "uVar15 = (uint)(uVar4 >> 6)" identifier = (call_expression "(uint)(uVar4 >> 6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 >> 6)" ( (binary_expression "uVar4 >> 6" identifier >> number_literal) )))) ;) (expression_statement "iVar14 = *(int *)(local_58 + 0x10);" (assignment_expression "iVar14 = *(int *)(local_58 + 0x10)" identifier = (pointer_expression "*(int *)(local_58 + 0x10)" * (cast_expression "(int *)(local_58 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0x10)" ( (binary_expression "local_58 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = uVar15 - 1;" (assignment_expression "iVar12 = uVar15 - 1" identifier = (binary_expression "uVar15 - 1" identifier - number_literal)) ;) (if_statement "if (uVar15 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 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_r0x000168af;\n    }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar11 = "Internal error.";\n      goto code_r0x000168af;\n    }" { (expression_statement "pcVar11 = "Internal error.";" (assignment_expression "pcVar11 = "Internal error."" identifier = (string_literal ""Internal error."" " string_content ")) ;) (goto_statement "goto code_r0x000168af;" goto statement_identifier ;) })) (expression_statement "DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);" (assignment_expression "DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4)" identifier = (pointer_expression "*(uint *)(iVar14 + (uVar4 & 0x3f) * 4)" * (cast_expression "(uint *)(iVar14 + (uVar4 & 0x3f) * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + (uVar4 & 0x3f) * 4)" ( (binary_expression "iVar14 + (uVar4 & 0x3f) * 4" identifier + (binary_expression "(uVar4 & 0x3f) * 4" (parenthesized_expression "(uVar4 & 0x3f)" ( (binary_expression "uVar4 & 0x3f" identifier & number_literal) )) * number_literal)) ))))) ;) (expression_statement "local_54 = *(uint *)(local_58 + 0xc);" (assignment_expression "local_54 = *(uint *)(local_58 + 0xc)" identifier = (pointer_expression "*(uint *)(local_58 + 0xc)" * (cast_expression "(uint *)(local_58 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0xc)" ( (binary_expression "local_58 + 0xc" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (case_statement "case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;" case (char_literal "'K'" ' character ') : (expression_statement "iVar12 = DAT_000292a4;" (assignment_expression "iVar12 = DAT_000292a4" identifier = identifier) ;) (if_statement "if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar12 = *DAT_00029250;\n    }" { (expression_statement "iVar12 = *DAT_00029250;" (assignment_expression "iVar12 = *DAT_00029250" identifier = (pointer_expression "*DAT_00029250" * identifier)) ;) })) (if_statement "if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }" if (parenthesized_expression "(iVar12 == 10)" ( (binary_expression "iVar12 == 10" identifier == number_literal) )) (compound_statement "{\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }" { (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_00015a60(&DAT_000292ac);" (call_expression "FUN_00015a60(&DAT_000292ac)" identifier (argument_list "(&DAT_000292ac)" ( (pointer_expression "&DAT_000292ac" & identifier) ))) ;) (goto_statement "goto code_r0x00016ba1;" goto statement_identifier ;) })) (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_00015720(FUN_000155d0,iVar12);" (call_expression "FUN_00015720(FUN_000155d0,iVar12)" identifier (argument_list "(FUN_000155d0,iVar12)" ( identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;" case (char_literal "'L'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_000185f0(uVar10);" (call_expression "FUN_000185f0(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;" case (char_literal "'M'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_000187e0(uVar10);" (call_expression "FUN_000187e0(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;" case (char_literal "'O'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (labeled_statement "code_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;" statement_identifier : (expression_statement "uVar9 = DAT_000292b0 + 1;" (assignment_expression "uVar9 = DAT_000292b0 + 1" identifier = (binary_expression "DAT_000292b0 + 1" identifier + number_literal)) ;)) (expression_statement "cVar8 = *(char *)(local_4c + DAT_000292b0);" (assignment_expression "cVar8 = *(char *)(local_4c + DAT_000292b0)" identifier = (pointer_expression "*(char *)(local_4c + DAT_000292b0)" * (cast_expression "(char *)(local_4c + DAT_000292b0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + DAT_000292b0)" ( (binary_expression "local_4c + DAT_000292b0" identifier + identifier) ))))) ;) (expression_statement "uVar15 = uVar9;" (assignment_expression "uVar15 = uVar9" identifier = identifier) ;) (if_statement "if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }" if (parenthesized_expression "(cVar8 != '\"')" ( (binary_expression "cVar8 != '\"'" identifier != (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }" { (if_statement "if (cVar8 != '\\') goto code_r0x00016844;" if (parenthesized_expression "(cVar8 != '\\')" ( (binary_expression "cVar8 != '\\'" identifier != (char_literal "'\\'" ' escape_sequence ')) )) (goto_statement "goto code_r0x00016844;" goto statement_identifier ;)) (expression_statement "DAT_000292b0 = DAT_000292b0 + 2;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (expression_statement "uVar15 = DAT_000292b0;" (assignment_expression "uVar15 = DAT_000292b0" identifier = identifier) ;) (if_statement "if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;" if (parenthesized_expression "(*(char *)(local_4c + uVar9) != '\"')" ( (binary_expression "*(char *)(local_4c + uVar9) != '\"'" (pointer_expression "*(char *)(local_4c + uVar9)" * (cast_expression "(char *)(local_4c + uVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar9)" ( (binary_expression "local_4c + uVar9" identifier + identifier) )))) != (char_literal "'\"'" ' escape_sequence ')) )) (goto_statement "goto code_r0x0001688b;" goto statement_identifier ;)) })) (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" 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 "FUN_0001d320(*(undefined4 *)puVar5);" (call_expression "FUN_0001d320(*(undefined4 *)puVar5)" identifier (argument_list "(*(undefined4 *)puVar5)" ( (pointer_expression "*(undefined4 *)puVar5" * (cast_expression "(undefined4 *)puVar5" ( (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_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;" case (char_literal "'W'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);" (call_expression "FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec)" identifier (argument_list "(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec)" ( (pointer_expression "*DAT_000292bc" * identifier) , identifier , identifier , identifier ))) ;) (if_statement "if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }" if (parenthesized_expression "(cVar8 == 'W')" ( (binary_expression "cVar8 == 'W'" identifier == (char_literal "'W'" ' character ')) )) (compound_statement "{\n      FUN_00018f50(10);\n    }" { (expression_statement "FUN_00018f50(10);" (call_expression "FUN_00018f50(10)" identifier (argument_list "(10)" ( number_literal ))) ;) })) (expression_statement "FUN_000180f0(4);" (call_expression "FUN_000180f0(4)" identifier (argument_list "(4)" ( number_literal ))) ;) (expression_statement "puVar6 = PTR_stdout_00028fec;" (assignment_expression "puVar6 = PTR_stdout_00028fec" identifier = identifier) ;) (expression_statement "fflush(*(FILE **)PTR_stdout_00028fec);" (call_expression "fflush(*(FILE **)PTR_stdout_00028fec)" identifier (argument_list "(*(FILE **)PTR_stdout_00028fec)" ( (pointer_expression "*(FILE **)PTR_stdout_00028fec" * (cast_expression "(FILE **)PTR_stdout_00028fec" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) (expression_statement "FUN_0001d320(*(undefined4 *)puVar6);" (call_expression "FUN_0001d320(*(undefined4 *)puVar6)" identifier (argument_list "(*(undefined4 *)puVar6)" ( (pointer_expression "*(undefined4 *)puVar6" * (cast_expression "(undefined4 *)puVar6" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (break_statement "break;" break ;)) (case_statement "case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;" case (char_literal "'R'" ' character ') : (if_statement "if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }" { (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));" (call_expression "FUN_00018bc0(*(undefined4 *)(local_58 + 0x18))" identifier (argument_list "(*(undefined4 *)(local_58 + 0x18))" ( (pointer_expression "*(undefined4 *)(local_58 + 0x18)" * (cast_expression "(undefined4 *)(local_58 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_58 + 0x18)" ( (binary_expression "local_58 + 0x18" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));" (call_expression "FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14))" identifier (argument_list "(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14))" ( (pointer_expression "*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" * (cast_expression "(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" ( (binary_expression "DAT_000292ac * 0x1c + DAT_00029278 + 0x14" (binary_expression "DAT_000292ac * 0x1c + DAT_00029278" (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) ))) ;) (expression_statement "FUN_00017ca0();" (call_expression "FUN_00017ca0()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_000292b0 = FUN_00017ca0();" (assignment_expression "DAT_000292b0 = FUN_00017ca0()" identifier = (call_expression "FUN_00017ca0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar9 = FUN_00017ca0();" (assignment_expression "uVar9 = FUN_00017ca0()" identifier = (call_expression "FUN_00017ca0()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c)" identifier = (pointer_expression "*(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c)" * (cast_expression "(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00029278 + 0xc + uVar9 * 0x1c)" ( (binary_expression "DAT_00029278 + 0xc + uVar9 * 0x1c" (binary_expression "DAT_00029278 + 0xc" identifier + number_literal) + (binary_expression "uVar9 * 0x1c" identifier * number_literal)) ))))) ;) (expression_statement "DAT_000292ac = uVar9;" (assignment_expression "DAT_000292ac = uVar9" identifier = identifier) ;) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;) })) (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_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (labeled_statement "code_r0x000168af:\n    FUN_00019f10(pcVar11);" statement_identifier : (expression_statement "FUN_00019f10(pcVar11);" (call_expression "FUN_00019f10(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;)) (break_statement "break;" break ;)) (case_statement "case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;" case (char_literal "'S'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_00018420(uVar10);" (call_expression "FUN_00018420(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;" case (char_literal "'^'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }" { (expression_statement "FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);" (call_expression "FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) , (pointer_expression "&local_24" & identifier) , identifier ))) ;) (expression_statement "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);" (assignment_expression "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" identifier = (call_expression "FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1])" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) )))) ;) (if_statement "if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }" if (parenthesized_expression "((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0'))" ( (binary_expression "(cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')" (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')" ( (comma_expression "cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0'" (assignment_expression "cVar8 = FUN_0001aaf0(*DAT_000292bc)" identifier = (call_expression "FUN_0001aaf0(*DAT_000292bc)" identifier (argument_list "(*DAT_000292bc)" ( (pointer_expression "*DAT_000292bc" * identifier) )))) , (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n        FUN_00019f10("divide by zero");\n      }" { (expression_statement "FUN_00019f10("divide by zero");" (call_expression "FUN_00019f10("divide by zero")" identifier (argument_list "("divide by zero")" ( (string_literal ""divide by zero"" " string_content ") ))) ;) })) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00017db0(local_24);" (call_expression "FUN_00017db0(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) (expression_statement "FUN_0001aaa0(&local_24);" (call_expression "FUN_0001aaa0(&local_24)" identifier (argument_list "(&local_24)" ( (pointer_expression "&local_24" & identifier) ))) ;) (goto_statement "goto code_r0x00016ba1;" goto statement_identifier ;) })) (goto_statement "goto code_r0x000160a5;" goto statement_identifier ;)) (case_statement "case 'c':\n    goto code_r0x00016658;" case (char_literal "'c'" ' character ') : (goto_statement "goto code_r0x00016658;" goto statement_identifier ;)) (case_statement "case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;" case (char_literal "'d'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_000186b0(uVar10);" (call_expression "FUN_000186b0(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;" case (char_literal "'h'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_0001a000(0);" (call_expression "FUN_0001a000(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;" case (char_literal "'i'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_000188a0(uVar10);" (call_expression "FUN_000188a0(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;" case (char_literal "'l'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_00018500(uVar10);" (call_expression "FUN_00018500(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;" case (char_literal "'n'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);" (call_expression "FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0)" identifier (argument_list "(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0)" ( identifier , (pointer_expression "*DAT_000292bc" * identifier) , identifier , number_literal ))) ;) (break_statement "break;" break ;)) (case_statement "case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;" case (char_literal "'p'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x00016168;" goto statement_identifier ;)) (case_statement "case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;" case (char_literal "'s'" ' character ') : (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" identifier = (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" if (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" ( (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(byte *)(local_4c + uVar15)" * (cast_expression "(byte *)(local_4c + uVar15)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" { (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" identifier = (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (binary_expression "(uVar10 & 0x7f) * 0x100" (parenthesized_expression "(uVar10 & 0x7f)" ( (binary_expression "uVar10 & 0x7f" identifier & number_literal) )) * number_literal) + (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" ( (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" identifier + number_literal) + identifier) )))))) ;) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" identifier = (binary_expression "DAT_000292b0 + 3" identifier + number_literal)) ;) })) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;) (expression_statement "FUN_000180f0(uVar10);" (call_expression "FUN_000180f0(uVar10)" identifier (argument_list "(uVar10)" ( identifier ))) ;) (break_statement "break;" break ;)) (case_statement "case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;" case (char_literal "'w'" ' character ') : (expression_statement "cVar8 = *(char *)(local_4c + uVar15);" (assignment_expression "cVar8 = *(char *)(local_4c + uVar15)" identifier = (pointer_expression "*(char *)(local_4c + uVar15)" * (cast_expression "(char *)(local_4c + uVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) ))))) ;) (expression_statement "DAT_000292b0 = DAT_000292b0 + 2;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;) (expression_statement "puVar3 = (undefined4 *)PTR_stdout_00028fec;" (assignment_expression "puVar3 = (undefined4 *)PTR_stdout_00028fec" identifier = (cast_expression "(undefined4 *)PTR_stdout_00028fec" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (while_statement "while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }" while (parenthesized_expression "(PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"')" ( (comma_expression "PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"'" (assignment_expression "PTR_stdout_00028fec = (undefined *)puVar3" identifier = (cast_expression "(undefined *)puVar3" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "cVar8 != '\"'" identifier != (char_literal "'\"'" ' escape_sequence '))) )) (compound_statement "{\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }" { (expression_statement "FUN_00019000(cVar8);" (call_expression "FUN_00019000(cVar8)" identifier (argument_list "(cVar8)" ( identifier ))) ;) (expression_statement "cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);" (assignment_expression "cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0)" identifier = (pointer_expression "*(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0)" * (cast_expression "(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0)" ( (binary_expression "*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0" (pointer_expression "*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4)" * (cast_expression "(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000292ac * 0x1c + DAT_00029278 + 4)" ( (binary_expression "DAT_000292ac * 0x1c + DAT_00029278 + 4" (binary_expression "DAT_000292ac * 0x1c + DAT_00029278" (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal) + identifier) + number_literal) )))) + identifier) ))))) ;) (expression_statement "DAT_000292b0 = DAT_000292b0 + 1;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 1" identifier = (binary_expression "DAT_000292b0 + 1" identifier + number_literal)) ;) (expression_statement "puVar3 = (undefined4 *)PTR_stdout_00028fec;" (assignment_expression "puVar3 = (undefined4 *)PTR_stdout_00028fec" identifier = (cast_expression "(undefined4 *)PTR_stdout_00028fec" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "fflush((FILE *)*puVar3);" (call_expression "fflush((FILE *)*puVar3)" identifier (argument_list "((FILE *)*puVar3)" ( (cast_expression "(FILE *)*puVar3" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar3" * identifier)) ))) ;) (expression_statement "FUN_0001d320(*puVar3);" (call_expression "FUN_0001d320(*puVar3)" identifier (argument_list "(*puVar3)" ( (pointer_expression "*puVar3" * identifier) ))) ;) (break_statement "break;" break ;)) (case_statement "case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;" case (char_literal "'x'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }" { (expression_statement "piVar1 = DAT_000292bc + 1;" (assignment_expression "piVar1 = DAT_000292bc + 1" identifier = (binary_expression "DAT_000292bc + 1" identifier + number_literal)) ;) (expression_statement "iVar12 = *DAT_000292bc;" (assignment_expression "iVar12 = *DAT_000292bc" identifier = (pointer_expression "*DAT_000292bc" * identifier)) ;) (expression_statement "*DAT_000292bc = *(int *)*piVar1;" (assignment_expression "*DAT_000292bc = *(int *)*piVar1" (pointer_expression "*DAT_000292bc" * 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 = iVar12;" (assignment_expression "*(int *)*piVar1 = iVar12" (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_r0x00016168;" goto statement_identifier ;) })) (goto_statement "goto code_r0x000160a5;" goto statement_identifier ;)) (case_statement "case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;" case (char_literal "'{'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" { (expression_statement "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (assignment_expression "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier = (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "DAT_00029294 = iVar12 < 1;" (assignment_expression "DAT_00029294 = iVar12 < 1" identifier = (binary_expression "iVar12 < 1" identifier < number_literal)) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x00016b9c;" goto statement_identifier ;) })) (goto_statement "goto code_r0x000160a5;" goto statement_identifier ;)) (case_statement "case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;" case (char_literal "'|'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" { (expression_statement "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);" (assignment_expression "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" identifier = (call_expression "FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1])" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) )))) ;) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" identifier = true) ;) (if_statement "if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }" { (expression_statement "cVar8 = FUN_0001ab00(*DAT_000292bc);" (assignment_expression "cVar8 = FUN_0001ab00(*DAT_000292bc)" identifier = (call_expression "FUN_0001ab00(*DAT_000292bc)" identifier (argument_list "(*DAT_000292bc)" ( (pointer_expression "*DAT_000292bc" * identifier) )))) ;) (expression_statement "bVar16 = cVar8 == '\0';" (assignment_expression "bVar16 = cVar8 == '\0'" identifier = (binary_expression "cVar8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ;) })) (expression_statement "DAT_00029294 = bVar16;" (assignment_expression "DAT_00029294 = bVar16" identifier = identifier) ;) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x00016b9c;" goto statement_identifier ;) })) (labeled_statement "code_r0x00016168:\n    local_5c = DAT_00029278;" statement_identifier : (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;)) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" identifier = (pointer_expression "*(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" * (cast_expression "(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (binary_expression "DAT_00029278 + 0xc + DAT_000292ac * 0x1c" (binary_expression "DAT_00029278 + 0xc" identifier + number_literal) + (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal)) ))))) ;) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" identifier = identifier) ;) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (case_statement "case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;" case (char_literal "'}'" ' character ') : (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" identifier = identifier) ;) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" identifier = (call_expression "FUN_00017de0(2)" identifier (argument_list "(2)" ( number_literal )))) ;) (if_statement "if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" if (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" { (expression_statement "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" identifier (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" ( (pointer_expression "*(undefined4 *)DAT_000292bc[1]" * (cast_expression "(undefined4 *)DAT_000292bc[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "DAT_000292bc[1]" identifier [ number_literal ]))) , (pointer_expression "*DAT_000292bc" * identifier) ))) ;) (expression_statement "DAT_00029294 = (byte)~extraout_var >> 7;" (assignment_expression "DAT_00029294 = (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_00017d30();" (call_expression "FUN_00017d30()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto code_r0x00016b9c;" goto statement_identifier ;) })) (goto_statement "goto code_r0x000160a5;" goto statement_identifier ;)) })) (goto_statement "goto LAB_00015f30;" goto statement_identifier ;) (labeled_statement "code_r0x00016658:\n  DAT_000292b0 = DAT_000292b0 + 2;" statement_identifier : (expression_statement "DAT_000292b0 = DAT_000292b0 + 2;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 2" identifier = (binary_expression "DAT_000292b0 + 2" identifier + number_literal)) ;)) (switch_statement "switch(*(undefined1 *)(local_4c + uVar15)) {\n  case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;\n  default:\n    goto LAB_00015e08;\n  case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;\n  case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;\n  case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;\n  case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  }" switch (parenthesized_expression "(*(undefined1 *)(local_4c + uVar15))" ( (pointer_expression "*(undefined1 *)(local_4c + uVar15)" * (cast_expression "(undefined1 *)(local_4c + uVar15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar15)" ( (binary_expression "local_4c + uVar15" identifier + identifier) )))) )) (compound_statement "{\n  case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;\n  default:\n    goto LAB_00015e08;\n  case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;\n  case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;\n  case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;\n  case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  }" { (case_statement "case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;" case number_literal : (expression_statement "FUN_00015720(FUN_00015600,DAT_000292a4);" (call_expression "FUN_00015720(FUN_00015600,DAT_000292a4)" identifier (argument_list "(FUN_00015600,DAT_000292a4)" ( identifier , identifier ))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    goto LAB_00015e08;" default : (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) (case_statement "case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;" case number_literal : (expression_statement "iVar12 = *DAT_000292bc;" (assignment_expression "iVar12 = *DAT_000292bc" identifier = (pointer_expression "*DAT_000292bc" * identifier)) ;) (expression_statement "iVar14 = *(int *)(iVar12 + 8);" (assignment_expression "iVar14 = *(int *)(iVar12 + 8)" identifier = (pointer_expression "*(int *)(iVar12 + 8)" * (cast_expression "(int *)(iVar12 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ;) (if_statement "if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }" if (parenthesized_expression "(((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0'))" ( (binary_expression "((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')" (parenthesized_expression "((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0))" ( (binary_expression "(*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)" (parenthesized_expression "(*(int *)(iVar12 + 4) == 1)" ( (binary_expression "*(int *)(iVar12 + 4) == 1" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(**(char **)(iVar12 + 0x18) == '\0')" ( (binary_expression "**(char **)(iVar12 + 0x18) == '\0'" (pointer_expression "**(char **)(iVar12 + 0x18)" * (pointer_expression "*(char **)(iVar12 + 0x18)" * (cast_expression "(char **)(iVar12 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar12 + 0x18)" ( (binary_expression "iVar12 + 0x18" identifier + number_literal) ))))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }" { (expression_statement "FUN_0001c5a0(DAT_000292bc,iVar14);" (call_expression "FUN_0001c5a0(DAT_000292bc,iVar14)" identifier (argument_list "(DAT_000292bc,iVar14)" ( identifier , identifier ))) ;) }) (else_clause "else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }" else (compound_statement "{\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }" { (expression_statement "FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);" (call_expression "FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14)" identifier (argument_list "(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14)" ( identifier , (binary_expression "*(int *)(iVar12 + 4) + iVar14" (pointer_expression "*(int *)(iVar12 + 4)" * (cast_expression "(int *)(iVar12 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) + identifier) ))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;" case number_literal : (expression_statement "iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);" (assignment_expression "iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298)" identifier = (call_expression "FUN_0001c740(DAT_000292bc,DAT_00029298)" identifier (argument_list "(DAT_000292bc,DAT_00029298)" ( identifier , identifier )))) ;) (if_statement "if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }" { (labeled_statement "code_r0x000160a5:\n      local_5c = DAT_00029278;" statement_identifier : (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;)) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" identifier = (pointer_expression "*(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" * (cast_expression "(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (binary_expression "DAT_00029278 + 0xc + DAT_000292ac * 0x1c" (binary_expression "DAT_00029278 + 0xc" identifier + number_literal) + (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal)) ))))) ;) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" identifier = identifier) ;) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;) })) (expression_statement "FUN_00019f10("Square root of a negative number");" (call_expression "FUN_00019f10("Square root of a negative number")" identifier (argument_list "("Square root of a negative number")" ( (string_literal ""Square root of a negative number"" " string_content ") ))) ;) (goto_statement "goto code_r0x00016ba1;" goto statement_identifier ;)) (case_statement "case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;" case number_literal : (expression_statement "FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));" (call_expression "FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8))" identifier (argument_list "(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8))" ( identifier , (pointer_expression "*(undefined4 *)(*DAT_000292bc + 8)" * (cast_expression "(undefined4 *)(*DAT_000292bc + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*DAT_000292bc + 8)" ( (binary_expression "*DAT_000292bc + 8" (pointer_expression "*DAT_000292bc" * identifier) + number_literal) )))) ))) ;) (break_statement "break;" break ;)) (case_statement "case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;" case number_literal : (expression_statement "FUN_00017d70(DAT_000292c8);" (call_expression "FUN_00017d70(DAT_000292c8)" identifier (argument_list "(DAT_000292c8)" ( identifier ))) ;) (expression_statement "uVar13 = func_0x000112e0();" (assignment_expression "uVar13 = func_0x000112e0()" identifier = (call_expression "func_0x000112e0()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0001c5a0(DAT_000292bc,uVar13);" (call_expression "FUN_0001c5a0(DAT_000292bc,uVar13)" identifier (argument_list "(DAT_000292bc,uVar13)" ( identifier , identifier ))) ;) (labeled_statement "code_r0x00016ba1:\n    local_5c = DAT_00029278;" statement_identifier : (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;)) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" identifier = (pointer_expression "*(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" * (cast_expression "(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (binary_expression "DAT_00029278 + 0xc + DAT_000292ac * 0x1c" (binary_expression "DAT_00029278 + 0xc" identifier + number_literal) + (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal)) ))))) ;) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" identifier = identifier) ;) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;)) })) (labeled_statement "LAB_00015f30:\n  local_5c = DAT_00029278;" statement_identifier : (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" identifier = identifier) ;)) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" identifier = (pointer_expression "*(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" * (cast_expression "(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" ( (binary_expression "DAT_00029278 + 0xc + DAT_000292ac * 0x1c" (binary_expression "DAT_00029278 + 0xc" identifier + number_literal) + (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal)) ))))) ;) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" identifier = identifier) ;) (goto_statement "goto LAB_00015e08;" goto statement_identifier ;) (labeled_statement "code_r0x0001688b:\n  switch(*(char *)(local_4c + uVar9)) {\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }" statement_identifier : (switch_statement "switch(*(char *)(local_4c + uVar9)) {\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }" switch (parenthesized_expression "(*(char *)(local_4c + uVar9))" ( (pointer_expression "*(char *)(local_4c + uVar9)" * (cast_expression "(char *)(local_4c + uVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_4c + uVar9)" ( (binary_expression "local_4c + uVar9" identifier + identifier) )))) )) (compound_statement "{\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }" { (case_statement "case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;" case (char_literal "'\\'" ' escape_sequence ') : (expression_statement "cVar8 = '\\';" (assignment_expression "cVar8 = '\\'" identifier = (char_literal "'\\'" ' escape_sequence ')) ;) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "default:\n    goto code_r0x0001685c;" default : (goto_statement "goto code_r0x0001685c;" goto statement_identifier ;)) (case_statement "case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;" case (char_literal "'a'" ' character ') : (expression_statement "cVar8 = '\a';" (assignment_expression "cVar8 = '\a'" identifier = (char_literal "'\a'" ' escape_sequence ')) ;) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;" case (char_literal "'b'" ' character ') : (expression_statement "cVar8 = '\b';" (assignment_expression "cVar8 = '\b'" identifier = (char_literal "'\b'" ' escape_sequence ')) ;) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;" case (char_literal "'f'" ' character ') : (expression_statement "cVar8 = '\f';" (assignment_expression "cVar8 = '\f'" identifier = (char_literal "'\f'" ' escape_sequence ')) ;) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;" case (char_literal "'n'" ' character ') : (expression_statement "cVar8 = '\n';" (assignment_expression "cVar8 = '\n'" identifier = (char_literal "'\n'" ' escape_sequence ')) ;) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;" case (char_literal "'q'" ' character ') : (expression_statement "cVar8 = '\"';" (assignment_expression "cVar8 = '\"'" identifier = (char_literal "'\"'" ' escape_sequence ')) ;) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;" case (char_literal "'r'" ' character ') : (expression_statement "cVar8 = '\r';" (assignment_expression "cVar8 = '\r'" identifier = (char_literal "'\r'" ' escape_sequence ')) ;) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;" case (char_literal "'t'" ' character ') : (expression_statement "cVar8 = '\t';" (assignment_expression "cVar8 = '\t'" identifier = (char_literal "'\t'" ' escape_sequence ')) ;) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" identifier = identifier) ;)) }))) (labeled_statement "code_r0x00016844:\n  DAT_000292b0 = uVar9;" statement_identifier : (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" identifier = identifier) ;)) (expression_statement "FUN_00019000(cVar8);" (call_expression "FUN_00019000(cVar8)" identifier (argument_list "(cVar8)" ( identifier ))) ;) (expression_statement "local_4c = *(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4);" (assignment_expression "local_4c = *(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4)" identifier = (pointer_expression "*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4)" * (cast_expression "(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000292ac * 0x1c + DAT_00029278 + 4)" ( (binary_expression "DAT_000292ac * 0x1c + DAT_00029278 + 4" (binary_expression "DAT_000292ac * 0x1c + DAT_00029278" (binary_expression "DAT_000292ac * 0x1c" identifier * number_literal) + identifier) + number_literal) ))))) ;) (goto_statement "goto code_r0x0001685c;" 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (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 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + IDENT)) ;)) (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 != 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 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 = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != 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 { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return ;) })) (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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (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) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (break_statement break ;)) (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 ( ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( 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 * 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 ( ))) ;) (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 ))) ;) (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 ))) ;) (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) ))) ;) (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 (call_expression IDENT (argument_list ( (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)) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (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 ')) )) (compound_statement { (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)) ;) (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 (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)) ;) (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 ') :) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 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 = 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) + (binary_expression (parenthesized_expression ( (binary_expression 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 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + 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 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , 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 = (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 != LIT) )) (compound_statement { (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 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 = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (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 (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) , 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) ))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;)) (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)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * 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 (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 ;) })) (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 (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 ;) })) (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 (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 ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;) (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 ')) )) (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) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (unary_expression ~ IDENT)) >> LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;)) })) (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 ( IDENT , 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 = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (goto_statement goto statement_identifier ;)) (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 = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;) (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_00015d50(void)\n\n{\n  int *piVar1;\n  undefined1 uVar2;\n  undefined4 *puVar3;\n  ushort uVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char cVar7;\n  char cVar8;\n  uint uVar9;\n  uint uVar10;\n  byte extraout_var;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  uint uVar15;\n  int in_GS_OFFSET;\n  bool bVar16;\n  int local_5c;\n  uint local_58;\n  uint local_54;\n  int local_4c;\n  bool local_3d;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x15d59;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  DAT_0002928c = '\0';\n  DAT_000292ac = 0;\n  DAT_000292b0 = 0;\n  FUN_0001aaa0(&local_24);\n  if (DAT_000291fc != '\0') {\n    signal(2,FUN_000155b0);\n  }\n  puVar5 = PTR_stdout_00028fec;\n  DAT_00029220 = 0;\n  local_5c = DAT_00029278;\n  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n  uVar9 = DAT_000292ac;\nLAB_00015e08:\n  local_58 = uVar9 * 0x1c + local_5c;\n  if (((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0)) {\n    if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }\n    while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }\n    if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_0001d3e0();\n    }\n    return;\n  }\n  uVar15 = DAT_000292b0 + 1;\n  local_4c = *(int *)(local_58 + 4);\n  cVar8 = *(char *)(local_4c + DAT_000292b0);\n  switch(cVar8) {\n  case '!':\n  case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;\n  case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;\n  case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;\n  case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;\n  case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;\n  case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;\n  case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;\n  case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;\n  case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;\n  case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;\n  case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    DAT_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;\n  case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;\n  case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;\n  case 'c':\n    goto code_r0x00016658;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;\n  case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;\n  case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;\n  case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;\n  case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;\n  case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;\n  case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  }\n  goto LAB_00015f30;\ncode_r0x00016658:\n  DAT_000292b0 = DAT_000292b0 + 2;\n  switch(*(undefined1 *)(local_4c + uVar15)) {\n  case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;\n  default:\n    goto LAB_00015e08;\n  case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;\n  case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;\n  case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;\n  case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  }\nLAB_00015f30:\n  local_5c = DAT_00029278;\n  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n  uVar9 = DAT_000292ac;\n  goto LAB_00015e08;\ncode_r0x0001688b:\n  switch(*(char *)(local_4c + uVar9)) {\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }\ncode_r0x00016844:\n  DAT_000292b0 = uVar9;\n  FUN_00019000(cVar8);\n  local_4c = *(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4);\n  goto code_r0x0001685c;\n}" (primitive_type "void") (function_declarator "FUN_00015d50(void)" (identifier "FUN_00015d50") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int *piVar1;\n  undefined1 uVar2;\n  undefined4 *puVar3;\n  ushort uVar4;\n  undefined *puVar5;\n  undefined *puVar6;\n  char cVar7;\n  char cVar8;\n  uint uVar9;\n  uint uVar10;\n  byte extraout_var;\n  char *pcVar11;\n  int iVar12;\n  undefined4 uVar13;\n  int iVar14;\n  uint uVar15;\n  int in_GS_OFFSET;\n  bool bVar16;\n  int local_5c;\n  uint local_58;\n  uint local_54;\n  int local_4c;\n  bool local_3d;\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x15d59;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  DAT_0002928c = '\0';\n  DAT_000292ac = 0;\n  DAT_000292b0 = 0;\n  FUN_0001aaa0(&local_24);\n  if (DAT_000291fc != '\0') {\n    signal(2,FUN_000155b0);\n  }\n  puVar5 = PTR_stdout_00028fec;\n  DAT_00029220 = 0;\n  local_5c = DAT_00029278;\n  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n  uVar9 = DAT_000292ac;\nLAB_00015e08:\n  local_58 = uVar9 * 0x1c + local_5c;\n  if (((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0)) {\n    if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }\n    while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }\n    if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_0001d3e0();\n    }\n    return;\n  }\n  uVar15 = DAT_000292b0 + 1;\n  local_4c = *(int *)(local_58 + 4);\n  cVar8 = *(char *)(local_4c + DAT_000292b0);\n  switch(cVar8) {\n  case '!':\n  case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;\n  case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;\n  case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;\n  case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;\n  case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;\n  case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;\n  case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;\n  case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;\n  case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;\n  case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;\n  case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    DAT_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;\n  case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;\n  case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;\n  case 'c':\n    goto code_r0x00016658;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;\n  case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;\n  case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;\n  case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;\n  case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;\n  case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;\n  case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  }\n  goto LAB_00015f30;\ncode_r0x00016658:\n  DAT_000292b0 = DAT_000292b0 + 2;\n  switch(*(undefined1 *)(local_4c + uVar15)) {\n  case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;\n  default:\n    goto LAB_00015e08;\n  case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;\n  case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;\n  case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;\n  case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  }\nLAB_00015f30:\n  local_5c = DAT_00029278;\n  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n  uVar9 = DAT_000292ac;\n  goto LAB_00015e08;\ncode_r0x0001688b:\n  switch(*(char *)(local_4c + uVar9)) {\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }\ncode_r0x00016844:\n  DAT_000292b0 = uVar9;\n  FUN_00019000(cVar8);\n  local_4c = *(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4);\n  goto code_r0x0001685c;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "undefined1 uVar2;" (type_identifier "undefined1") (identifier "uVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "ushort uVar4;" (type_identifier "ushort") (identifier "uVar4") (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "char cVar7;" (primitive_type "char") (identifier "cVar7") (; ";")) (declaration "char cVar8;" (primitive_type "char") (identifier "cVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (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 "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar16;" (primitive_type "bool") (identifier "bVar16") (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (declaration "uint local_58;" (type_identifier "uint") (identifier "local_58") (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "bool local_3d;" (primitive_type "bool") (identifier "local_3d") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_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 = 0x15d59;" (assignment_expression "uStack_14 = 0x15d59" (identifier "uStack_14") (= "=") (number_literal "0x15d59")) (; ";")) (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_0002928c = '\0';" (assignment_expression "DAT_0002928c = '\0'" (identifier "DAT_0002928c") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "DAT_000292ac = 0;" (assignment_expression "DAT_000292ac = 0" (identifier "DAT_000292ac") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_000292b0 = 0;" (assignment_expression "DAT_000292b0 = 0" (identifier "DAT_000292b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0001aaa0(&local_24);" (call_expression "FUN_0001aaa0(&local_24)" (identifier "FUN_0001aaa0") (argument_list "(&local_24)" (( "(") (pointer_expression "&local_24" (& "&") (identifier "local_24")) () ")"))) (; ";")) (if_statement "if (DAT_000291fc != '\0') {\n    signal(2,FUN_000155b0);\n  }" (if "if") (parenthesized_expression "(DAT_000291fc != '\0')" (( "(") (binary_expression "DAT_000291fc != '\0'" (identifier "DAT_000291fc") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    signal(2,FUN_000155b0);\n  }" ({ "{") (expression_statement "signal(2,FUN_000155b0);" (call_expression "signal(2,FUN_000155b0)" (identifier "signal") (argument_list "(2,FUN_000155b0)" (( "(") (number_literal "2") (, ",") (identifier "FUN_000155b0") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar5 = PTR_stdout_00028fec;" (assignment_expression "puVar5 = PTR_stdout_00028fec" (identifier "puVar5") (= "=") (identifier "PTR_stdout_00028fec")) (; ";")) (expression_statement "DAT_00029220 = 0;" (assignment_expression "DAT_00029220 = 0" (identifier "DAT_00029220") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" (identifier "local_5c") (= "=") (identifier "DAT_00029278")) (; ";")) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (identifier "local_54") (= "=") (pointer_expression "*(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (* "*") (cast_expression "(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (( "(") (binary_expression "DAT_00029278 + 0xc + DAT_000292ac * 0x1c" (binary_expression "DAT_00029278 + 0xc" (identifier "DAT_00029278") (+ "+") (number_literal "0xc")) (+ "+") (binary_expression "DAT_000292ac * 0x1c" (identifier "DAT_000292ac") (* "*") (number_literal "0x1c"))) () ")"))))) (; ";")) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" (identifier "uVar9") (= "=") (identifier "DAT_000292ac")) (; ";")) (labeled_statement "LAB_00015e08:\n  local_58 = uVar9 * 0x1c + local_5c;" (statement_identifier "LAB_00015e08") (: ":") (expression_statement "local_58 = uVar9 * 0x1c + local_5c;" (assignment_expression "local_58 = uVar9 * 0x1c + local_5c" (identifier "local_58") (= "=") (binary_expression "uVar9 * 0x1c + local_5c" (binary_expression "uVar9 * 0x1c" (identifier "uVar9") (* "*") (number_literal "0x1c")) (+ "+") (identifier "local_5c"))) (; ";"))) (if_statement "if (((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0)) {\n    if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }\n    while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }\n    if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_0001d3e0();\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0))" (( "(") (binary_expression "((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0)" (parenthesized_expression "((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0'))" (( "(") (binary_expression "(local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')" (parenthesized_expression "(local_54 <= DAT_000292b0)" (( "(") (binary_expression "local_54 <= DAT_000292b0" (identifier "local_54") (<= "<=") (identifier "DAT_000292b0")) () ")")) (|| "||") (parenthesized_expression "(DAT_0002928c != '\0')" (( "(") (binary_expression "DAT_0002928c != '\0'" (identifier "DAT_0002928c") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(DAT_00029220 != 0)" (( "(") (binary_expression "DAT_00029220 != 0" (identifier "DAT_00029220") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }\n    while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }\n    if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }\n    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_0001d3e0();\n    }\n    return;\n  }" ({ "{") (if_statement "if (uVar9 != 0) {\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);\n      DAT_000292ac = 0;\n    }" ({ "{") (do_statement "do {\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      } while (uVar9 != 0);" (do "do") (compound_statement "{\n        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));\n        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n        FUN_00017ca0();\n        DAT_000292b0 = FUN_00017ca0();\n        uVar9 = FUN_00017ca0();\n        local_5c = DAT_00029278;\n        DAT_000292ac = uVar9;\n      }" ({ "{") (expression_statement "FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));" (call_expression "FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c))" (identifier "FUN_00018bc0") (argument_list "(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c))" (( "(") (pointer_expression "*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c)" (* "*") (cast_expression "(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_5c + 0x18 + uVar9 * 0x1c)" (( "(") (binary_expression "local_5c + 0x18 + uVar9 * 0x1c" (binary_expression "local_5c + 0x18" (identifier "local_5c") (+ "+") (number_literal "0x18")) (+ "+") (binary_expression "uVar9 * 0x1c" (identifier "uVar9") (* "*") (number_literal "0x1c"))) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));" (call_expression "FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14))" (identifier "FUN_00018bc0") (argument_list "(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14))" (( "(") (pointer_expression "*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" (* "*") (cast_expression "(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" (( "(") (binary_expression "DAT_000292ac * 0x1c + DAT_00029278 + 0x14" (binary_expression "DAT_000292ac * 0x1c + DAT_00029278" (binary_expression "DAT_000292ac * 0x1c" (identifier "DAT_000292ac") (* "*") (number_literal "0x1c")) (+ "+") (identifier "DAT_00029278")) (+ "+") (number_literal "0x14")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_00017ca0();" (call_expression "FUN_00017ca0()" (identifier "FUN_00017ca0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_000292b0 = FUN_00017ca0();" (assignment_expression "DAT_000292b0 = FUN_00017ca0()" (identifier "DAT_000292b0") (= "=") (call_expression "FUN_00017ca0()" (identifier "FUN_00017ca0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar9 = FUN_00017ca0();" (assignment_expression "uVar9 = FUN_00017ca0()" (identifier "uVar9") (= "=") (call_expression "FUN_00017ca0()" (identifier "FUN_00017ca0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" (identifier "local_5c") (= "=") (identifier "DAT_00029278")) (; ";")) (expression_statement "DAT_000292ac = uVar9;" (assignment_expression "DAT_000292ac = uVar9" (identifier "DAT_000292ac") (= "=") (identifier "uVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "DAT_000292ac = 0;" (assignment_expression "DAT_000292ac = 0" (identifier "DAT_000292ac") (= "=") (number_literal "0")) (; ";")) (} "}"))) (while_statement "while (DAT_000292bc != (int *)0x0) {\n      FUN_00017d30();\n    }" (while "while") (parenthesized_expression "(DAT_000292bc != (int *)0x0)" (( "(") (binary_expression "DAT_000292bc != (int *)0x0" (identifier "DAT_000292bc") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_00017d30();\n    }" ({ "{") (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\n    }" (if "if") (parenthesized_expression "((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0))" (( "(") (binary_expression "(DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)" (parenthesized_expression "(DAT_000291fc != '\0')" (( "(") (binary_expression "DAT_000291fc != '\0'" (identifier "DAT_000291fc") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)" (( "(") (comma_expression "signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0" (call_expression "signal(2,(__sighandler_t)PTR_FUN_00028ff4)" (identifier "signal") (argument_list "(2,(__sighandler_t)PTR_FUN_00028ff4)" (( "(") (number_literal "2") (, ",") (cast_expression "(__sighandler_t)PTR_FUN_00028ff4" (( "(") (type_descriptor "__sighandler_t" (type_identifier "__sighandler_t")) () ")") (identifier "PTR_FUN_00028ff4")) () ")"))) (, ",") (binary_expression "DAT_00029220 != 0" (identifier "DAT_00029220") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      puts("\ninterrupted execution.");\n      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);\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_0001d320(*(undefined4 *)PTR_stdout_00028fec);" (call_expression "FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec)" (identifier "FUN_0001d320") (argument_list "(*(undefined4 *)PTR_stdout_00028fec)" (( "(") (pointer_expression "*(undefined4 *)PTR_stdout_00028fec" (* "*") (cast_expression "(undefined4 *)PTR_stdout_00028fec" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdout_00028fec"))) () ")"))) (; ";")) (} "}"))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      FUN_0001d3e0();\n    }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n      FUN_0001d3e0();\n    }" ({ "{") (expression_statement "FUN_0001d3e0();" (call_expression "FUN_0001d3e0()" (identifier "FUN_0001d3e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar15 = DAT_000292b0 + 1;" (assignment_expression "uVar15 = DAT_000292b0 + 1" (identifier "uVar15") (= "=") (binary_expression "DAT_000292b0 + 1" (identifier "DAT_000292b0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_4c = *(int *)(local_58 + 4);" (assignment_expression "local_4c = *(int *)(local_58 + 4)" (identifier "local_4c") (= "=") (pointer_expression "*(int *)(local_58 + 4)" (* "*") (cast_expression "(int *)(local_58 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_58 + 4)" (( "(") (binary_expression "local_58 + 4" (identifier "local_58") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "cVar8 = *(char *)(local_4c + DAT_000292b0);" (assignment_expression "cVar8 = *(char *)(local_4c + DAT_000292b0)" (identifier "cVar8") (= "=") (pointer_expression "*(char *)(local_4c + DAT_000292b0)" (* "*") (cast_expression "(char *)(local_4c + DAT_000292b0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + DAT_000292b0)" (( "(") (binary_expression "local_4c + DAT_000292b0" (identifier "local_4c") (+ "+") (identifier "DAT_000292b0")) () ")"))))) (; ";")) (switch_statement "switch(cVar8) {\n  case '!':\n  case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;\n  case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;\n  case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;\n  case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;\n  case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;\n  case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;\n  case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;\n  case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;\n  case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;\n  case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;\n  case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    DAT_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;\n  case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;\n  case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;\n  case 'c':\n    goto code_r0x00016658;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;\n  case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;\n  case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;\n  case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;\n  case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;\n  case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;\n  case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  }" (switch "switch") (parenthesized_expression "(cVar8)" (( "(") (identifier "cVar8") () ")")) (compound_statement "{\n  case '!':\n  case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;\n  default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;\n  case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;\n  case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;\n  case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;\n  case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;\n  case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;\n  case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;\n  case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;\n  case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;\n  case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;\n  case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;\n  case 'B':\n  case 'Z':\n    DAT_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;\n  case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;\n  case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;\n  case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;\n  case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;\n  case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;\n  case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;\n  case 'P':\n  case 'W':\n    DAT_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;\n  case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;\n  case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;\n  case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;\n  case 'c':\n    goto code_r0x00016658;\n  case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;\n  case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;\n  case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;\n  case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;\n  case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;\n  case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;\n  case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;\n  case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;\n  case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;\n  case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;\n  }" ({ "{") (case_statement "case '!':" (case "case") (char_literal "'!'" (' "'") (character "!") (' "'")) (: ":")) (case_statement "case 'T':\n    DAT_000292b0 = uVar15;\n    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);\n    FUN_00015ce0(DAT_00029294);\n    break;" (case "case") (char_literal "'T'" (' "'") (character "T") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "DAT_00029294 = FUN_0001ab00(*DAT_000292bc);" (assignment_expression "DAT_00029294 = FUN_0001ab00(*DAT_000292bc)" (identifier "DAT_00029294") (= "=") (call_expression "FUN_0001ab00(*DAT_000292bc)" (identifier "FUN_0001ab00") (argument_list "(*DAT_000292bc)" (( "(") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) () ")")))) (; ";")) (expression_statement "FUN_00015ce0(DAT_00029294);" (call_expression "FUN_00015ce0(DAT_00029294)" (identifier "FUN_00015ce0") (argument_list "(DAT_00029294)" (( "(") (identifier "DAT_00029294") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    pcVar11 = "bad instruction: inst=%c";\n    DAT_000292b0 = uVar15;\n    goto code_r0x000168af;" (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_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (goto_statement "goto code_r0x000168af;" (goto "goto") (statement_identifier "code_r0x000168af") (; ";"))) (case_statement "case '#':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x000160a5;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 != 0;\n    FUN_00017d30();\ncode_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);\n    goto code_r0x00016ba1;" (case "case") (char_literal "'#'" (' "'") (character "#") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" (identifier "cVar8") (= "=") (call_expression "FUN_00017de0(2)" (identifier "FUN_00017de0") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar8 == '\0') goto code_r0x000160a5;" (if "if") (parenthesized_expression "(cVar8 == '\0')" (( "(") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x000160a5;" (goto "goto") (statement_identifier "code_r0x000160a5") (; ";"))) (expression_statement "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (assignment_expression "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (identifier "iVar12") (= "=") (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (identifier "FUN_0001aac0") (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (( "(") (pointer_expression "*(undefined4 *)DAT_000292bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_000292bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_000292bc[1]" (identifier "DAT_000292bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) () ")")))) (; ";")) (expression_statement "DAT_00029294 = iVar12 != 0;" (assignment_expression "DAT_00029294 = iVar12 != 0" (identifier "DAT_00029294") (= "=") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0"))) (; ";")) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "code_r0x00016b9c:\n    FUN_00015ce0(DAT_00029294);" (statement_identifier "code_r0x00016b9c") (: ":") (expression_statement "FUN_00015ce0(DAT_00029294);" (call_expression "FUN_00015ce0(DAT_00029294)" (identifier "FUN_00015ce0") (argument_list "(DAT_00029294)" (( "(") (identifier "DAT_00029294") () ")"))) (; ";"))) (goto_statement "goto code_r0x00016ba1;" (goto "goto") (statement_identifier "code_r0x00016ba1") (; ";"))) (case_statement "case '%':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*DAT_000292bc);\n    if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }\n    pcVar11 = "Modulo by zero";\n    goto code_r0x000168af;" (case "case") (char_literal "'%'" (' "'") (character "%") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" (identifier "cVar8") (= "=") (call_expression "FUN_00017de0(2)" (identifier "FUN_00017de0") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar8 == '\0') goto code_r0x00016168;" (if "if") (parenthesized_expression "(cVar8 == '\0')" (( "(") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016168;" (goto "goto") (statement_identifier "code_r0x00016168") (; ";"))) (expression_statement "cVar8 = FUN_0001ab00(*DAT_000292bc);" (assignment_expression "cVar8 = FUN_0001ab00(*DAT_000292bc)" (identifier "cVar8") (= "=") (call_expression "FUN_0001ab00(*DAT_000292bc)" (identifier "FUN_0001ab00") (argument_list "(*DAT_000292bc)" (( "(") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) () ")")))) (; ";")) (if_statement "if (cVar8 == '\0') {\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }" (if "if") (parenthesized_expression "(cVar8 == '\0')" (( "(") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      goto code_r0x0001656e;\n    }" ({ "{") (expression_statement "FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);" (call_expression "FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" (identifier "FUN_0001bf60") (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" (( "(") (pointer_expression "*(undefined4 *)DAT_000292bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_000292bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_000292bc[1]" (identifier "DAT_000292bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (identifier "DAT_00029298") () ")"))) (; ";")) (goto_statement "goto code_r0x0001656e;" (goto "goto") (statement_identifier "code_r0x0001656e") (; ";")) (} "}"))) (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_r0x000168af;" (goto "goto") (statement_identifier "code_r0x000168af") (; ";"))) (case_statement "case '&':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n    local_3d = false;\n    if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }\n    DAT_00029294 = local_3d;\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;" (case "case") (char_literal "'&'" (' "'") (character "&") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" (identifier "cVar8") (= "=") (call_expression "FUN_00017de0(2)" (identifier "FUN_00017de0") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar8 == '\0') goto code_r0x00016168;" (if "if") (parenthesized_expression "(cVar8 == '\0')" (( "(") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016168;" (goto "goto") (statement_identifier "code_r0x00016168") (; ";"))) (expression_statement "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);" (assignment_expression "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" (identifier "cVar8") (= "=") (call_expression "FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" (identifier "FUN_0001ab00") (argument_list "(*(undefined4 *)DAT_000292bc[1])" (( "(") (pointer_expression "*(undefined4 *)DAT_000292bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_000292bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_000292bc[1]" (identifier "DAT_000292bc") ([ "[") (number_literal "1") (] "]")))) () ")")))) (; ";")) (expression_statement "local_3d = false;" (assignment_expression "local_3d = false" (identifier "local_3d") (= "=") (false "false")) (; ";")) (if_statement "if (cVar8 == '\0') {\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }" (if "if") (parenthesized_expression "(cVar8 == '\0')" (( "(") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      cVar8 = FUN_0001ab00(*DAT_000292bc);\n      local_3d = cVar8 == '\0';\n    }" ({ "{") (expression_statement "cVar8 = FUN_0001ab00(*DAT_000292bc);" (assignment_expression "cVar8 = FUN_0001ab00(*DAT_000292bc)" (identifier "cVar8") (= "=") (call_expression "FUN_0001ab00(*DAT_000292bc)" (identifier "FUN_0001ab00") (argument_list "(*DAT_000292bc)" (( "(") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) () ")")))) (; ";")) (expression_statement "local_3d = cVar8 == '\0';" (assignment_expression "local_3d = cVar8 == '\0'" (identifier "local_3d") (= "=") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (} "}"))) (expression_statement "DAT_00029294 = local_3d;" (assignment_expression "DAT_00029294 = local_3d" (identifier "DAT_00029294") (= "=") (identifier "local_3d")) (; ";")) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00015ce0(DAT_00029294);" (call_expression "FUN_00015ce0(DAT_00029294)" (identifier "FUN_00015ce0") (argument_list "(DAT_00029294)" (( "(") (identifier "DAT_00029294") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '*':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\ncode_r0x0001642c:\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;" (case "case") (char_literal "'*'" (' "'") (character "*") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" (identifier "cVar8") (= "=") (call_expression "FUN_00017de0(2)" (identifier "FUN_00017de0") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar8 == '\0') goto code_r0x00016168;" (if "if") (parenthesized_expression "(cVar8 == '\0')" (( "(") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016168;" (goto "goto") (statement_identifier "code_r0x00016168") (; ";"))) (expression_statement "FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);" (call_expression "FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" (identifier "FUN_0001b600") (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" (( "(") (pointer_expression "*(undefined4 *)DAT_000292bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_000292bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_000292bc[1]" (identifier "DAT_000292bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (identifier "DAT_00029298") () ")"))) (; ";")) (labeled_statement "code_r0x0001642c:\n    FUN_00017d30();" (statement_identifier "code_r0x0001642c") (: ":") (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00017db0(local_24);" (call_expression "FUN_00017db0(local_24)" (identifier "FUN_00017db0") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")"))) (; ";")) (expression_statement "FUN_0001aaa0(&local_24);" (call_expression "FUN_0001aaa0(&local_24)" (identifier "FUN_0001aaa0") (argument_list "(&local_24)" (( "(") (pointer_expression "&local_24" (& "&") (identifier "local_24")) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '+':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }\n    goto code_r0x00016168;" (case "case") (char_literal "'+'" (' "'") (character "+") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" (identifier "cVar8") (= "=") (call_expression "FUN_00017de0(2)" (identifier "FUN_00017de0") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar8 != '\0') {\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }" (if "if") (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\n      goto code_r0x0001642c;\n    }" ({ "{") (expression_statement "FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);" (call_expression "FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0)" (identifier "FUN_0001b500") (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0)" (( "(") (pointer_expression "*(undefined4 *)DAT_000292bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_000292bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_000292bc[1]" (identifier "DAT_000292bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (number_literal "0") () ")"))) (; ";")) (goto_statement "goto code_r0x0001642c;" (goto "goto") (statement_identifier "code_r0x0001642c") (; ";")) (} "}"))) (goto_statement "goto code_r0x00016168;" (goto "goto") (statement_identifier "code_r0x00016168") (; ";"))) (case_statement "case '-':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x00016168;" (case "case") (char_literal "'-'" (' "'") (character "-") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" (identifier "cVar8") (= "=") (call_expression "FUN_00017de0(2)" (identifier "FUN_00017de0") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar8 != '\0') {\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }" (if "if") (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);\ncode_r0x0001656e:\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }" ({ "{") (expression_statement "FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);" (call_expression "FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0)" (identifier "FUN_0001abd0") (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0)" (( "(") (pointer_expression "*(undefined4 *)DAT_000292bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_000292bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_000292bc[1]" (identifier "DAT_000292bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (number_literal "0") () ")"))) (; ";")) (labeled_statement "code_r0x0001656e:\n      FUN_00017d30();" (statement_identifier "code_r0x0001656e") (: ":") (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00017db0(local_24);" (call_expression "FUN_00017db0(local_24)" (identifier "FUN_00017db0") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")"))) (; ";")) (expression_statement "FUN_0001aaa0(&local_24);" (call_expression "FUN_0001aaa0(&local_24)" (identifier "FUN_0001aaa0") (argument_list "(&local_24)" (( "(") (pointer_expression "&local_24" (& "&") (identifier "local_24")) () ")"))) (; ";")) (goto_statement "goto code_r0x00016ba1;" (goto "goto") (statement_identifier "code_r0x00016ba1") (; ";")) (} "}"))) (goto_statement "goto code_r0x00016168;" (goto "goto") (statement_identifier "code_r0x00016168") (; ";"))) (case_statement "case '/':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n    if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }\n    FUN_00017d30();\n    FUN_00017d30();\n    FUN_00017db0(local_24);\n    FUN_0001aaa0(&local_24);\n    break;" (case "case") (char_literal "'/'" (' "'") (character "/") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" (identifier "cVar8") (= "=") (call_expression "FUN_00017de0(2)" (identifier "FUN_00017de0") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar8 == '\0') goto code_r0x00016168;" (if "if") (parenthesized_expression "(cVar8 == '\0')" (( "(") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016168;" (goto "goto") (statement_identifier "code_r0x00016168") (; ";"))) (expression_statement "iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);" (assignment_expression "iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" (identifier "iVar12") (= "=") (call_expression "FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" (identifier "FUN_0001b730") (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" (( "(") (pointer_expression "*(undefined4 *)DAT_000292bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_000292bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_000292bc[1]" (identifier "DAT_000292bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (identifier "DAT_00029298") () ")")))) (; ";")) (if_statement "if (iVar12 != 0) {\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00019f10("Divide by zero");\n      goto code_r0x00016ba1;\n    }" ({ "{") (expression_statement "FUN_00019f10("Divide by zero");" (call_expression "FUN_00019f10("Divide by zero")" (identifier "FUN_00019f10") (argument_list "("Divide by zero")" (( "(") (string_literal ""Divide by zero"" (" """) (string_content "Divide by zero") (" """)) () ")"))) (; ";")) (goto_statement "goto code_r0x00016ba1;" (goto "goto") (statement_identifier "code_r0x00016ba1") (; ";")) (} "}"))) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00017db0(local_24);" (call_expression "FUN_00017db0(local_24)" (identifier "FUN_00017db0") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")"))) (; ";")) (expression_statement "FUN_0001aaa0(&local_24);" (call_expression "FUN_0001aaa0(&local_24)" (identifier "FUN_0001aaa0") (argument_list "(&local_24)" (( "(") (pointer_expression "&local_24" (& "&") (identifier "local_24")) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '0':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c8);\n    break;" (case "case") (char_literal "'0'" (' "'") (character "0") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "FUN_00017d70(DAT_000292c8);" (call_expression "FUN_00017d70(DAT_000292c8)" (identifier "FUN_00017d70") (argument_list "(DAT_000292c8)" (( "(") (identifier "DAT_000292c8") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '1':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(DAT_000292c0);\n    break;" (case "case") (char_literal "'1'" (' "'") (character "1") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "FUN_00017d70(DAT_000292c0);" (call_expression "FUN_00017d70(DAT_000292c0)" (identifier "FUN_00017d70") (argument_list "(DAT_000292c0)" (( "(") (identifier "DAT_000292c0") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '<':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 == '\0') goto code_r0x00016168;\n    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n    DAT_00029294 = iVar12 == -1;\ncode_r0x00016236:\n    FUN_00017d30();\n    FUN_00015ce0(DAT_00029294);\n    break;" (case "case") (char_literal "'<'" (' "'") (character "<") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" (identifier "cVar8") (= "=") (call_expression "FUN_00017de0(2)" (identifier "FUN_00017de0") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar8 == '\0') goto code_r0x00016168;" (if "if") (parenthesized_expression "(cVar8 == '\0')" (( "(") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto code_r0x00016168;" (goto "goto") (statement_identifier "code_r0x00016168") (; ";"))) (expression_statement "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (assignment_expression "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (identifier "iVar12") (= "=") (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (identifier "FUN_0001aac0") (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (( "(") (pointer_expression "*(undefined4 *)DAT_000292bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_000292bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_000292bc[1]" (identifier "DAT_000292bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) () ")")))) (; ";")) (expression_statement "DAT_00029294 = iVar12 == -1;" (assignment_expression "DAT_00029294 = iVar12 == -1" (identifier "DAT_00029294") (= "=") (binary_expression "iVar12 == -1" (identifier "iVar12") (== "==") (number_literal "-1"))) (; ";")) (labeled_statement "code_r0x00016236:\n    FUN_00017d30();" (statement_identifier "code_r0x00016236") (: ":") (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "FUN_00015ce0(DAT_00029294);" (call_expression "FUN_00015ce0(DAT_00029294)" (identifier "FUN_00015ce0") (argument_list "(DAT_00029294)" (( "(") (identifier "DAT_00029294") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '=':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;" (case "case") (char_literal "'='" (' "'") (character "=") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" (identifier "cVar8") (= "=") (call_expression "FUN_00017de0(2)" (identifier "FUN_00017de0") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }" (if "if") (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 0;\n      goto code_r0x00016236;\n    }" ({ "{") (expression_statement "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (assignment_expression "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (identifier "iVar12") (= "=") (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (identifier "FUN_0001aac0") (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (( "(") (pointer_expression "*(undefined4 *)DAT_000292bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_000292bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_000292bc[1]" (identifier "DAT_000292bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) () ")")))) (; ";")) (expression_statement "DAT_00029294 = iVar12 == 0;" (assignment_expression "DAT_00029294 = iVar12 == 0" (identifier "DAT_00029294") (= "=") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0"))) (; ";")) (goto_statement "goto code_r0x00016236;" (goto "goto") (statement_identifier "code_r0x00016236") (; ";")) (} "}"))) (goto_statement "goto code_r0x00016168;" (goto "goto") (statement_identifier "code_r0x00016168") (; ";"))) (case_statement "case '>':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }\n    goto code_r0x00016168;" (case "case") (char_literal "'>'" (' "'") (character ">") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" (identifier "cVar8") (= "=") (call_expression "FUN_00017de0(2)" (identifier "FUN_00017de0") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }" (if "if") (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 == 1;\n      goto code_r0x00016236;\n    }" ({ "{") (expression_statement "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (assignment_expression "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (identifier "iVar12") (= "=") (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (identifier "FUN_0001aac0") (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (( "(") (pointer_expression "*(undefined4 *)DAT_000292bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_000292bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_000292bc[1]" (identifier "DAT_000292bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) () ")")))) (; ";")) (expression_statement "DAT_00029294 = iVar12 == 1;" (assignment_expression "DAT_00029294 = iVar12 == 1" (identifier "DAT_00029294") (= "=") (binary_expression "iVar12 == 1" (identifier "iVar12") (== "==") (number_literal "1"))) (; ";")) (goto_statement "goto code_r0x00016236;" (goto "goto") (statement_identifier "code_r0x00016236") (; ";")) (} "}"))) (goto_statement "goto code_r0x00016168;" (goto "goto") (statement_identifier "code_r0x00016168") (; ";"))) (case_statement "case 'A':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000189d0(uVar10);\n    break;" (case "case") (char_literal "'A'" (' "'") (character "A") (' "'")) (: ":") (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 2" (identifier "DAT_000292b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_4c + uVar15)" (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" ({ "{") (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (identifier "uVar10") (= "=") (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (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_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" (( "(") (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" (identifier "local_4c") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_000292b0")) () ")")))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 3" (identifier "DAT_000292b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" (identifier "DAT_000292b0") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "FUN_000189d0(uVar10);" (call_expression "FUN_000189d0(uVar10)" (identifier "FUN_000189d0") (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_000292b0 = uVar15;\n    cVar7 = FUN_0001ab00(*DAT_000292bc);\n    DAT_00029294 = cVar7 == '\0';\n    FUN_00017d30();\n    local_5c = DAT_00029278;\n    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;\n    local_4c = *(int *)(local_58 + 4);\n    iVar12 = DAT_000292b0 + 1;\n    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    uVar9 = DAT_000292ac;\n    if (cVar8 == 'J') goto code_r0x0001696a;\n    if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;" (case "case") (char_literal "'Z'" (' "'") (character "Z") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar7 = FUN_0001ab00(*DAT_000292bc);" (assignment_expression "cVar7 = FUN_0001ab00(*DAT_000292bc)" (identifier "cVar7") (= "=") (call_expression "FUN_0001ab00(*DAT_000292bc)" (identifier "FUN_0001ab00") (argument_list "(*DAT_000292bc)" (( "(") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) () ")")))) (; ";")) (expression_statement "DAT_00029294 = cVar7 == '\0';" (assignment_expression "DAT_00029294 = cVar7 == '\0'" (identifier "DAT_00029294") (= "=") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" (identifier "local_5c") (= "=") (identifier "DAT_00029278")) (; ";")) (expression_statement "local_58 = DAT_00029278 + DAT_000292ac * 0x1c;" (assignment_expression "local_58 = DAT_00029278 + DAT_000292ac * 0x1c" (identifier "local_58") (= "=") (binary_expression "DAT_00029278 + DAT_000292ac * 0x1c" (identifier "DAT_00029278") (+ "+") (binary_expression "DAT_000292ac * 0x1c" (identifier "DAT_000292ac") (* "*") (number_literal "0x1c")))) (; ";")) (expression_statement "local_4c = *(int *)(local_58 + 4);" (assignment_expression "local_4c = *(int *)(local_58 + 4)" (identifier "local_4c") (= "=") (pointer_expression "*(int *)(local_58 + 4)" (* "*") (cast_expression "(int *)(local_58 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_58 + 4)" (( "(") (binary_expression "local_58 + 4" (identifier "local_58") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar12 = DAT_000292b0 + 1;" (assignment_expression "iVar12 = DAT_000292b0 + 1" (identifier "iVar12") (= "=") (binary_expression "DAT_000292b0 + 1" (identifier "DAT_000292b0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);" (assignment_expression "uVar2 = *(undefined1 *)(local_4c + DAT_000292b0)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined1 *)(local_4c + DAT_000292b0)" (* "*") (cast_expression "(undefined1 *)(local_4c + DAT_000292b0)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + DAT_000292b0)" (( "(") (binary_expression "local_4c + DAT_000292b0" (identifier "local_4c") (+ "+") (identifier "DAT_000292b0")) () ")"))))) (; ";")) (expression_statement "DAT_000292b0 = DAT_000292b0 + 2;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 2" (identifier "DAT_000292b0") (= "=") (binary_expression "DAT_000292b0 + 2" (identifier "DAT_000292b0") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" (identifier "uVar9") (= "=") (identifier "DAT_000292ac")) (; ";")) (if_statement "if (cVar8 == 'J') goto code_r0x0001696a;" (if "if") (parenthesized_expression "(cVar8 == 'J')" (( "(") (binary_expression "cVar8 == 'J'" (identifier "cVar8") (== "==") (char_literal "'J'" (' "'") (character "J") (' "'"))) () ")")) (goto_statement "goto code_r0x0001696a;" (goto "goto") (statement_identifier "code_r0x0001696a") (; ";"))) (if_statement "if (cVar8 == 'B') {\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }\n    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;" (if "if") (parenthesized_expression "(cVar8 == 'B')" (( "(") (binary_expression "cVar8 == 'B'" (identifier "cVar8") (== "==") (char_literal "'B'" (' "'") (character "B") (' "'"))) () ")")) (compound_statement "{\n      if (DAT_00029294 != 0) goto code_r0x0001696a;\n    }" ({ "{") (if_statement "if (DAT_00029294 != 0) goto code_r0x0001696a;" (if "if") (parenthesized_expression "(DAT_00029294 != 0)" (( "(") (binary_expression "DAT_00029294 != 0" (identifier "DAT_00029294") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x0001696a;" (goto "goto") (statement_identifier "code_r0x0001696a") (; ";"))) (} "}")) (else_clause "else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;" (else "else") (if_statement "if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;" (if "if") (parenthesized_expression "((cVar8 == 'Z') && (DAT_00029294 == 0))" (( "(") (binary_expression "(cVar8 == 'Z') && (DAT_00029294 == 0)" (parenthesized_expression "(cVar8 == 'Z')" (( "(") (binary_expression "cVar8 == 'Z'" (identifier "cVar8") (== "==") (char_literal "'Z'" (' "'") (character "Z") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(DAT_00029294 == 0)" (( "(") (binary_expression "DAT_00029294 == 0" (identifier "DAT_00029294") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto code_r0x0001696a;" (goto "goto") (statement_identifier "code_r0x0001696a") (; ";"))))) (expression_statement "local_54 = *(uint *)(local_58 + 0xc);" (assignment_expression "local_54 = *(uint *)(local_58 + 0xc)" (identifier "local_54") (= "=") (pointer_expression "*(uint *)(local_58 + 0xc)" (* "*") (cast_expression "(uint *)(local_58 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_58 + 0xc)" (( "(") (binary_expression "local_58 + 0xc" (identifier "local_58") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (goto_statement "goto LAB_00015e08;" (goto "goto") (statement_identifier "LAB_00015e08") (; ";"))) (case_statement "case 'C':\n    local_58 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    iVar12 = local_58 * 0x1c;\n    if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }\n    FUN_00018c90(&DAT_000292ac,local_58);\n    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }\n    FUN_00017d00(DAT_000292ac);\n    FUN_00017d00(DAT_000292b0);\n    FUN_00017d00(DAT_000292a4);\n    DAT_000292b0 = 0;\n    DAT_000292ac = local_58;\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);\n    uVar9 = local_58;\n    goto LAB_00015e08;" (case "case") (char_literal "'C'" (' "'") (character "C") (' "'")) (: ":") (expression_statement "local_58 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "local_58 = (uint)*(byte *)(local_4c + uVar15)" (identifier "local_58") (= "=") (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 2" (identifier "DAT_000292b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_4c + uVar15)" (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;\n      uVar9 = DAT_000292b0 + 3;\n    }" ({ "{") (expression_statement "local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;" (assignment_expression "local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100" (identifier "local_58") (= "=") (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100" (binary_expression "(uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" (( "(") (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" (identifier "local_4c") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_000292b0")) () ")")))) (+ "+") (binary_expression "(local_58 & 0x7f) * 0x100" (parenthesized_expression "(local_58 & 0x7f)" (( "(") (binary_expression "local_58 & 0x7f" (identifier "local_58") (& "&") (number_literal "0x7f")) () ")")) (* "*") (number_literal "0x100")))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 3" (identifier "DAT_000292b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" (identifier "DAT_000292b0") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "iVar12 = local_58 * 0x1c;" (assignment_expression "iVar12 = local_58 * 0x1c" (identifier "iVar12") (= "=") (binary_expression "local_58 * 0x1c" (identifier "local_58") (* "*") (number_literal "0x1c"))) (; ";")) (if_statement "if (*(char *)(local_5c + iVar12) == '\0') {\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\n    }" (if "if") (parenthesized_expression "(*(char *)(local_5c + iVar12) == '\0')" (( "(") (binary_expression "*(char *)(local_5c + iVar12) == '\0'" (pointer_expression "*(char *)(local_5c + iVar12)" (* "*") (cast_expression "(char *)(local_5c + iVar12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_5c + iVar12)" (( "(") (binary_expression "local_5c + iVar12" (identifier "local_5c") (+ "+") (identifier "iVar12")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      pcVar11 = "Function %s not defined.";\n      goto code_r0x000168af;\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_r0x000168af;" (goto "goto") (statement_identifier "code_r0x000168af") (; ";")) (} "}"))) (expression_statement "FUN_00018c90(&DAT_000292ac,local_58);" (call_expression "FUN_00018c90(&DAT_000292ac,local_58)" (identifier "FUN_00018c90") (argument_list "(&DAT_000292ac,local_58)" (( "(") (pointer_expression "&DAT_000292ac" (& "&") (identifier "DAT_000292ac")) (, ",") (identifier "local_58") () ")"))) (; ";")) (for_statement "for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;\n        puVar3 = (undefined4 *)puVar3[2]) {\n      FUN_00018a90(*puVar3);\n    }" (for "for") (( "(") (assignment_expression "puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(DAT_00029278 + 0x18 + iVar12)" (* "*") (cast_expression "(undefined4 **)(DAT_00029278 + 0x18 + iVar12)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_00029278 + 0x18 + iVar12)" (( "(") (binary_expression "DAT_00029278 + 0x18 + iVar12" (binary_expression "DAT_00029278 + 0x18" (identifier "DAT_00029278") (+ "+") (number_literal "0x18")) (+ "+") (identifier "iVar12")) () ")"))))) (; ";") (binary_expression "puVar3 != (undefined4 *)0x0" (identifier "puVar3") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar3 = (undefined4 *)puVar3[2]" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)puVar3[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")))) () ")") (compound_statement "{\n      FUN_00018a90(*puVar3);\n    }" ({ "{") (expression_statement "FUN_00018a90(*puVar3);" (call_expression "FUN_00018a90(*puVar3)" (identifier "FUN_00018a90") (argument_list "(*puVar3)" (( "(") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00017d00(DAT_000292ac);" (call_expression "FUN_00017d00(DAT_000292ac)" (identifier "FUN_00017d00") (argument_list "(DAT_000292ac)" (( "(") (identifier "DAT_000292ac") () ")"))) (; ";")) (expression_statement "FUN_00017d00(DAT_000292b0);" (call_expression "FUN_00017d00(DAT_000292b0)" (identifier "FUN_00017d00") (argument_list "(DAT_000292b0)" (( "(") (identifier "DAT_000292b0") () ")"))) (; ";")) (expression_statement "FUN_00017d00(DAT_000292a4);" (call_expression "FUN_00017d00(DAT_000292a4)" (identifier "FUN_00017d00") (argument_list "(DAT_000292a4)" (( "(") (identifier "DAT_000292a4") () ")"))) (; ";")) (expression_statement "DAT_000292b0 = 0;" (assignment_expression "DAT_000292b0 = 0" (identifier "DAT_000292b0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_000292ac = local_58;" (assignment_expression "DAT_000292ac = local_58" (identifier "DAT_000292ac") (= "=") (identifier "local_58")) (; ";")) (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" (identifier "local_5c") (= "=") (identifier "DAT_00029278")) (; ";")) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12)" (identifier "local_54") (= "=") (pointer_expression "*(uint *)(DAT_00029278 + 0xc + iVar12)" (* "*") (cast_expression "(uint *)(DAT_00029278 + 0xc + iVar12)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00029278 + 0xc + iVar12)" (( "(") (binary_expression "DAT_00029278 + 0xc + iVar12" (binary_expression "DAT_00029278 + 0xc" (identifier "DAT_00029278") (+ "+") (number_literal "0xc")) (+ "+") (identifier "iVar12")) () ")"))))) (; ";")) (expression_statement "uVar9 = local_58;" (assignment_expression "uVar9 = local_58" (identifier "uVar9") (= "=") (identifier "local_58")) (; ";")) (goto_statement "goto LAB_00015e08;" (goto "goto") (statement_identifier "LAB_00015e08") (; ";"))) (case_statement "case 'D':\n    DAT_000292b0 = uVar15;\n    FUN_00017d70(*DAT_000292bc);\n    break;" (case "case") (char_literal "'D'" (' "'") (character "D") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "FUN_00017d70(*DAT_000292bc);" (call_expression "FUN_00017d70(*DAT_000292bc)" (identifier "FUN_00017d70") (argument_list "(*DAT_000292bc)" (( "(") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'J':\n    iVar12 = DAT_000292b0 + 2;\n    uVar2 = *(undefined1 *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 3;\ncode_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);\n    uVar15 = (uint)(uVar4 >> 6);\n    iVar14 = *(int *)(local_58 + 0x10);\n    iVar12 = uVar15 - 1;\n    if (uVar15 != 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_r0x000168af;\n    }\n    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);\n    local_54 = *(uint *)(local_58 + 0xc);\n    goto LAB_00015e08;" (case "case") (char_literal "'J'" (' "'") (character "J") (' "'")) (: ":") (expression_statement "iVar12 = DAT_000292b0 + 2;" (assignment_expression "iVar12 = DAT_000292b0 + 2" (identifier "iVar12") (= "=") (binary_expression "DAT_000292b0 + 2" (identifier "DAT_000292b0") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar2 = *(undefined1 *)(local_4c + uVar15);" (assignment_expression "uVar2 = *(undefined1 *)(local_4c + uVar15)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined1 *)(local_4c + uVar15)" (* "*") (cast_expression "(undefined1 *)(local_4c + uVar15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (; ";")) (expression_statement "DAT_000292b0 = DAT_000292b0 + 3;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 3" (identifier "DAT_000292b0") (= "=") (binary_expression "DAT_000292b0 + 3" (identifier "DAT_000292b0") (+ "+") (number_literal "3"))) (; ";")) (labeled_statement "code_r0x0001696a:\n    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);" (statement_identifier "code_r0x0001696a") (: ":") (expression_statement "uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);" (assignment_expression "uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2)" (identifier "uVar4") (= "=") (call_expression "CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2)" (identifier "CONCAT11") (argument_list "(*(undefined1 *)(local_4c + iVar12),uVar2)" (( "(") (pointer_expression "*(undefined1 *)(local_4c + iVar12)" (* "*") (cast_expression "(undefined1 *)(local_4c + iVar12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + iVar12)" (( "(") (binary_expression "local_4c + iVar12" (identifier "local_4c") (+ "+") (identifier "iVar12")) () ")")))) (, ",") (identifier "uVar2") () ")")))) (; ";"))) (expression_statement "uVar15 = (uint)(uVar4 >> 6);" (assignment_expression "uVar15 = (uint)(uVar4 >> 6)" (identifier "uVar15") (= "=") (call_expression "(uint)(uVar4 >> 6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar4 >> 6)" (( "(") (binary_expression "uVar4 >> 6" (identifier "uVar4") (>> ">>") (number_literal "6")) () ")")))) (; ";")) (expression_statement "iVar14 = *(int *)(local_58 + 0x10);" (assignment_expression "iVar14 = *(int *)(local_58 + 0x10)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(local_58 + 0x10)" (* "*") (cast_expression "(int *)(local_58 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_58 + 0x10)" (( "(") (binary_expression "local_58 + 0x10" (identifier "local_58") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar12 = uVar15 - 1;" (assignment_expression "iVar12 = uVar15 - 1" (identifier "iVar12") (= "=") (binary_expression "uVar15 - 1" (identifier "uVar15") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (uVar15 != 0) {\n      do {\n        iVar12 = iVar12 + -1;\n        iVar14 = *(int *)(iVar14 + 0x100);\n      } while (iVar12 != -1);\n    }" (if "if") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (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_r0x000168af;\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_r0x000168af;\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_r0x000168af;" (goto "goto") (statement_identifier "code_r0x000168af") (; ";")) (} "}"))) (expression_statement "DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);" (assignment_expression "DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4)" (identifier "DAT_000292b0") (= "=") (pointer_expression "*(uint *)(iVar14 + (uVar4 & 0x3f) * 4)" (* "*") (cast_expression "(uint *)(iVar14 + (uVar4 & 0x3f) * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + (uVar4 & 0x3f) * 4)" (( "(") (binary_expression "iVar14 + (uVar4 & 0x3f) * 4" (identifier "iVar14") (+ "+") (binary_expression "(uVar4 & 0x3f) * 4" (parenthesized_expression "(uVar4 & 0x3f)" (( "(") (binary_expression "uVar4 & 0x3f" (identifier "uVar4") (& "&") (number_literal "0x3f")) () ")")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "local_54 = *(uint *)(local_58 + 0xc);" (assignment_expression "local_54 = *(uint *)(local_58 + 0xc)" (identifier "local_54") (= "=") (pointer_expression "*(uint *)(local_58 + 0xc)" (* "*") (cast_expression "(uint *)(local_58 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_58 + 0xc)" (( "(") (binary_expression "local_58 + 0xc" (identifier "local_58") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (goto_statement "goto LAB_00015e08;" (goto "goto") (statement_identifier "LAB_00015e08") (; ";"))) (case_statement "case 'K':\n    iVar12 = DAT_000292a4;\n    if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }\n    if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }\n    DAT_000292b0 = uVar15;\n    FUN_00015720(FUN_000155d0,iVar12);\n    break;" (case "case") (char_literal "'K'" (' "'") (character "K") (' "'")) (: ":") (expression_statement "iVar12 = DAT_000292a4;" (assignment_expression "iVar12 = DAT_000292a4" (identifier "iVar12") (= "=") (identifier "DAT_000292a4")) (; ";")) (if_statement "if (uVar9 != 0) {\n      iVar12 = *DAT_00029250;\n    }" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar12 = *DAT_00029250;\n    }" ({ "{") (expression_statement "iVar12 = *DAT_00029250;" (assignment_expression "iVar12 = *DAT_00029250" (identifier "iVar12") (= "=") (pointer_expression "*DAT_00029250" (* "*") (identifier "DAT_00029250"))) (; ";")) (} "}"))) (if_statement "if (iVar12 == 10) {\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }" (if "if") (parenthesized_expression "(iVar12 == 10)" (( "(") (binary_expression "iVar12 == 10" (identifier "iVar12") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n      DAT_000292b0 = uVar15;\n      FUN_00015a60(&DAT_000292ac);\n      goto code_r0x00016ba1;\n    }" ({ "{") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "FUN_00015a60(&DAT_000292ac);" (call_expression "FUN_00015a60(&DAT_000292ac)" (identifier "FUN_00015a60") (argument_list "(&DAT_000292ac)" (( "(") (pointer_expression "&DAT_000292ac" (& "&") (identifier "DAT_000292ac")) () ")"))) (; ";")) (goto_statement "goto code_r0x00016ba1;" (goto "goto") (statement_identifier "code_r0x00016ba1") (; ";")) (} "}"))) (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "FUN_00015720(FUN_000155d0,iVar12);" (call_expression "FUN_00015720(FUN_000155d0,iVar12)" (identifier "FUN_00015720") (argument_list "(FUN_000155d0,iVar12)" (( "(") (identifier "FUN_000155d0") (, ",") (identifier "iVar12") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'L':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000185f0(uVar10);\n    break;" (case "case") (char_literal "'L'" (' "'") (character "L") (' "'")) (: ":") (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 2" (identifier "DAT_000292b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_4c + uVar15)" (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" ({ "{") (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (identifier "uVar10") (= "=") (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (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_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" (( "(") (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" (identifier "local_4c") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_000292b0")) () ")")))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 3" (identifier "DAT_000292b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" (identifier "DAT_000292b0") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "FUN_000185f0(uVar10);" (call_expression "FUN_000185f0(uVar10)" (identifier "FUN_000185f0") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'M':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000187e0(uVar10);\n    break;" (case "case") (char_literal "'M'" (' "'") (character "M") (' "'")) (: ":") (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 2" (identifier "DAT_000292b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_4c + uVar15)" (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" ({ "{") (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (identifier "uVar10") (= "=") (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (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_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" (( "(") (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" (identifier "local_4c") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_000292b0")) () ")")))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 3" (identifier "DAT_000292b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" (identifier "DAT_000292b0") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "FUN_000187e0(uVar10);" (call_expression "FUN_000187e0(uVar10)" (identifier "FUN_000187e0") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'O':\n    DAT_000292b0 = uVar15;\ncode_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;\n    cVar8 = *(char *)(local_4c + DAT_000292b0);\n    uVar15 = uVar9;\n    if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }\n    DAT_000292b0 = uVar15;\n    fflush(*(FILE **)puVar5);\n    FUN_0001d320(*(undefined4 *)puVar5);\n    break;" (case "case") (char_literal "'O'" (' "'") (character "O") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (labeled_statement "code_r0x0001685c:\n    uVar9 = DAT_000292b0 + 1;" (statement_identifier "code_r0x0001685c") (: ":") (expression_statement "uVar9 = DAT_000292b0 + 1;" (assignment_expression "uVar9 = DAT_000292b0 + 1" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 1" (identifier "DAT_000292b0") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "cVar8 = *(char *)(local_4c + DAT_000292b0);" (assignment_expression "cVar8 = *(char *)(local_4c + DAT_000292b0)" (identifier "cVar8") (= "=") (pointer_expression "*(char *)(local_4c + DAT_000292b0)" (* "*") (cast_expression "(char *)(local_4c + DAT_000292b0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + DAT_000292b0)" (( "(") (binary_expression "local_4c + DAT_000292b0" (identifier "local_4c") (+ "+") (identifier "DAT_000292b0")) () ")"))))) (; ";")) (expression_statement "uVar15 = uVar9;" (assignment_expression "uVar15 = uVar9" (identifier "uVar15") (= "=") (identifier "uVar9")) (; ";")) (if_statement "if (cVar8 != '\"') {\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }" (if "if") (parenthesized_expression "(cVar8 != '\"')" (( "(") (binary_expression "cVar8 != '\"'" (identifier "cVar8") (!= "!=") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) () ")")) (compound_statement "{\n      if (cVar8 != '\\') goto code_r0x00016844;\n      DAT_000292b0 = DAT_000292b0 + 2;\n      uVar15 = DAT_000292b0;\n      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;\n    }" ({ "{") (if_statement "if (cVar8 != '\\') goto code_r0x00016844;" (if "if") (parenthesized_expression "(cVar8 != '\\')" (( "(") (binary_expression "cVar8 != '\\'" (identifier "cVar8") (!= "!=") (char_literal "'\\'" (' "'") (escape_sequence "\\") (' "'"))) () ")")) (goto_statement "goto code_r0x00016844;" (goto "goto") (statement_identifier "code_r0x00016844") (; ";"))) (expression_statement "DAT_000292b0 = DAT_000292b0 + 2;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 2" (identifier "DAT_000292b0") (= "=") (binary_expression "DAT_000292b0 + 2" (identifier "DAT_000292b0") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar15 = DAT_000292b0;" (assignment_expression "uVar15 = DAT_000292b0" (identifier "uVar15") (= "=") (identifier "DAT_000292b0")) (; ";")) (if_statement "if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;" (if "if") (parenthesized_expression "(*(char *)(local_4c + uVar9) != '\"')" (( "(") (binary_expression "*(char *)(local_4c + uVar9) != '\"'" (pointer_expression "*(char *)(local_4c + uVar9)" (* "*") (cast_expression "(char *)(local_4c + uVar9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar9)" (( "(") (binary_expression "local_4c + uVar9" (identifier "local_4c") (+ "+") (identifier "uVar9")) () ")")))) (!= "!=") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) () ")")) (goto_statement "goto code_r0x0001688b;" (goto "goto") (statement_identifier "code_r0x0001688b") (; ";"))) (} "}"))) (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "fflush(*(FILE **)puVar5);" (call_expression "fflush(*(FILE **)puVar5)" (identifier "fflush") (argument_list "(*(FILE **)puVar5)" (( "(") (pointer_expression "*(FILE **)puVar5" (* "*") (cast_expression "(FILE **)puVar5" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar5"))) () ")"))) (; ";")) (expression_statement "FUN_0001d320(*(undefined4 *)puVar5);" (call_expression "FUN_0001d320(*(undefined4 *)puVar5)" (identifier "FUN_0001d320") (argument_list "(*(undefined4 *)puVar5)" (( "(") (pointer_expression "*(undefined4 *)puVar5" (* "*") (cast_expression "(undefined4 *)puVar5" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5"))) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'P':" (case "case") (char_literal "'P'" (' "'") (character "P") (' "'")) (: ":")) (case_statement "case 'W':\n    DAT_000292b0 = uVar15;\n    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);\n    if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }\n    FUN_000180f0(4);\n    puVar6 = PTR_stdout_00028fec;\n    fflush(*(FILE **)PTR_stdout_00028fec);\n    FUN_0001d320(*(undefined4 *)puVar6);\n    FUN_00017d30();\n    break;" (case "case") (char_literal "'W'" (' "'") (character "W") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);" (call_expression "FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec)" (identifier "FUN_0001cab0") (argument_list "(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec)" (( "(") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) (, ",") (identifier "DAT_00029280") (, ",") (identifier "PTR_FUN_00028ffc") (, ",") (identifier "DAT_000291ec") () ")"))) (; ";")) (if_statement "if (cVar8 == 'W') {\n      FUN_00018f50(10);\n    }" (if "if") (parenthesized_expression "(cVar8 == 'W')" (( "(") (binary_expression "cVar8 == 'W'" (identifier "cVar8") (== "==") (char_literal "'W'" (' "'") (character "W") (' "'"))) () ")")) (compound_statement "{\n      FUN_00018f50(10);\n    }" ({ "{") (expression_statement "FUN_00018f50(10);" (call_expression "FUN_00018f50(10)" (identifier "FUN_00018f50") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000180f0(4);" (call_expression "FUN_000180f0(4)" (identifier "FUN_000180f0") (argument_list "(4)" (( "(") (number_literal "4") () ")"))) (; ";")) (expression_statement "puVar6 = PTR_stdout_00028fec;" (assignment_expression "puVar6 = PTR_stdout_00028fec" (identifier "puVar6") (= "=") (identifier "PTR_stdout_00028fec")) (; ";")) (expression_statement "fflush(*(FILE **)PTR_stdout_00028fec);" (call_expression "fflush(*(FILE **)PTR_stdout_00028fec)" (identifier "fflush") (argument_list "(*(FILE **)PTR_stdout_00028fec)" (( "(") (pointer_expression "*(FILE **)PTR_stdout_00028fec" (* "*") (cast_expression "(FILE **)PTR_stdout_00028fec" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_stdout_00028fec"))) () ")"))) (; ";")) (expression_statement "FUN_0001d320(*(undefined4 *)puVar6);" (call_expression "FUN_0001d320(*(undefined4 *)puVar6)" (identifier "FUN_0001d320") (argument_list "(*(undefined4 *)puVar6)" (( "(") (pointer_expression "*(undefined4 *)puVar6" (* "*") (cast_expression "(undefined4 *)puVar6" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6"))) () ")"))) (; ";")) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'R':\n    if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }\n    pcVar11 = "Return from main program.";\n    DAT_000292b0 = uVar15;\ncode_r0x000168af:\n    FUN_00019f10(pcVar11);\n    break;" (case "case") (char_literal "'R'" (' "'") (character "R") (' "'")) (: ":") (if_statement "if (uVar9 != 0) {\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }" (if "if") (parenthesized_expression "(uVar9 != 0)" (( "(") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_000292b0 = uVar15;\n      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));\n      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));\n      FUN_00017ca0();\n      DAT_000292b0 = FUN_00017ca0();\n      uVar9 = FUN_00017ca0();\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);\n      DAT_000292ac = uVar9;\n      goto LAB_00015e08;\n    }" ({ "{") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));" (call_expression "FUN_00018bc0(*(undefined4 *)(local_58 + 0x18))" (identifier "FUN_00018bc0") (argument_list "(*(undefined4 *)(local_58 + 0x18))" (( "(") (pointer_expression "*(undefined4 *)(local_58 + 0x18)" (* "*") (cast_expression "(undefined4 *)(local_58 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_58 + 0x18)" (( "(") (binary_expression "local_58 + 0x18" (identifier "local_58") (+ "+") (number_literal "0x18")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));" (call_expression "FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14))" (identifier "FUN_00018bc0") (argument_list "(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14))" (( "(") (pointer_expression "*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" (* "*") (cast_expression "(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000292ac * 0x1c + DAT_00029278 + 0x14)" (( "(") (binary_expression "DAT_000292ac * 0x1c + DAT_00029278 + 0x14" (binary_expression "DAT_000292ac * 0x1c + DAT_00029278" (binary_expression "DAT_000292ac * 0x1c" (identifier "DAT_000292ac") (* "*") (number_literal "0x1c")) (+ "+") (identifier "DAT_00029278")) (+ "+") (number_literal "0x14")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_00017ca0();" (call_expression "FUN_00017ca0()" (identifier "FUN_00017ca0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_000292b0 = FUN_00017ca0();" (assignment_expression "DAT_000292b0 = FUN_00017ca0()" (identifier "DAT_000292b0") (= "=") (call_expression "FUN_00017ca0()" (identifier "FUN_00017ca0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar9 = FUN_00017ca0();" (assignment_expression "uVar9 = FUN_00017ca0()" (identifier "uVar9") (= "=") (call_expression "FUN_00017ca0()" (identifier "FUN_00017ca0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" (identifier "local_5c") (= "=") (identifier "DAT_00029278")) (; ";")) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c)" (identifier "local_54") (= "=") (pointer_expression "*(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c)" (* "*") (cast_expression "(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00029278 + 0xc + uVar9 * 0x1c)" (( "(") (binary_expression "DAT_00029278 + 0xc + uVar9 * 0x1c" (binary_expression "DAT_00029278 + 0xc" (identifier "DAT_00029278") (+ "+") (number_literal "0xc")) (+ "+") (binary_expression "uVar9 * 0x1c" (identifier "uVar9") (* "*") (number_literal "0x1c"))) () ")"))))) (; ";")) (expression_statement "DAT_000292ac = uVar9;" (assignment_expression "DAT_000292ac = uVar9" (identifier "DAT_000292ac") (= "=") (identifier "uVar9")) (; ";")) (goto_statement "goto LAB_00015e08;" (goto "goto") (statement_identifier "LAB_00015e08") (; ";")) (} "}"))) (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_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (labeled_statement "code_r0x000168af:\n    FUN_00019f10(pcVar11);" (statement_identifier "code_r0x000168af") (: ":") (expression_statement "FUN_00019f10(pcVar11);" (call_expression "FUN_00019f10(pcVar11)" (identifier "FUN_00019f10") (argument_list "(pcVar11)" (( "(") (identifier "pcVar11") () ")"))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'S':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018420(uVar10);\n    break;" (case "case") (char_literal "'S'" (' "'") (character "S") (' "'")) (: ":") (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 2" (identifier "DAT_000292b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_4c + uVar15)" (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" ({ "{") (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (identifier "uVar10") (= "=") (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (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_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" (( "(") (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" (identifier "local_4c") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_000292b0")) () ")")))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 3" (identifier "DAT_000292b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" (identifier "DAT_000292b0") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "FUN_00018420(uVar10);" (call_expression "FUN_00018420(uVar10)" (identifier "FUN_00018420") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case '^':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }\n    goto code_r0x000160a5;" (case "case") (char_literal "'^'" (' "'") (character "^") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" (identifier "cVar8") (= "=") (call_expression "FUN_00017de0(2)" (identifier "FUN_00017de0") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar8 != '\0') {\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }" (if "if") (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }\n      FUN_00017d30();\n      FUN_00017d30();\n      FUN_00017db0(local_24);\n      FUN_0001aaa0(&local_24);\n      goto code_r0x00016ba1;\n    }" ({ "{") (expression_statement "FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);" (call_expression "FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" (identifier "FUN_0001c380") (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298)" (( "(") (pointer_expression "*(undefined4 *)DAT_000292bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_000292bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_000292bc[1]" (identifier "DAT_000292bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (identifier "DAT_00029298") () ")"))) (; ";")) (expression_statement "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);" (assignment_expression "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" (identifier "cVar8") (= "=") (call_expression "FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" (identifier "FUN_0001ab00") (argument_list "(*(undefined4 *)DAT_000292bc[1])" (( "(") (pointer_expression "*(undefined4 *)DAT_000292bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_000292bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_000292bc[1]" (identifier "DAT_000292bc") ([ "[") (number_literal "1") (] "]")))) () ")")))) (; ";")) (if_statement "if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {\n        FUN_00019f10("divide by zero");\n      }" (if "if") (parenthesized_expression "((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0'))" (( "(") (binary_expression "(cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')" (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')" (( "(") (comma_expression "cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0'" (assignment_expression "cVar8 = FUN_0001aaf0(*DAT_000292bc)" (identifier "cVar8") (= "=") (call_expression "FUN_0001aaf0(*DAT_000292bc)" (identifier "FUN_0001aaf0") (argument_list "(*DAT_000292bc)" (( "(") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) () ")")))) (, ",") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n        FUN_00019f10("divide by zero");\n      }" ({ "{") (expression_statement "FUN_00019f10("divide by zero");" (call_expression "FUN_00019f10("divide by zero")" (identifier "FUN_00019f10") (argument_list "("divide by zero")" (( "(") (string_literal ""divide by zero"" (" """) (string_content "divide by zero") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00017db0(local_24);" (call_expression "FUN_00017db0(local_24)" (identifier "FUN_00017db0") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")"))) (; ";")) (expression_statement "FUN_0001aaa0(&local_24);" (call_expression "FUN_0001aaa0(&local_24)" (identifier "FUN_0001aaa0") (argument_list "(&local_24)" (( "(") (pointer_expression "&local_24" (& "&") (identifier "local_24")) () ")"))) (; ";")) (goto_statement "goto code_r0x00016ba1;" (goto "goto") (statement_identifier "code_r0x00016ba1") (; ";")) (} "}"))) (goto_statement "goto code_r0x000160a5;" (goto "goto") (statement_identifier "code_r0x000160a5") (; ";"))) (case_statement "case 'c':\n    goto code_r0x00016658;" (case "case") (char_literal "'c'" (' "'") (character "c") (' "'")) (: ":") (goto_statement "goto code_r0x00016658;" (goto "goto") (statement_identifier "code_r0x00016658") (; ";"))) (case_statement "case 'd':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000186b0(uVar10);\n    break;" (case "case") (char_literal "'d'" (' "'") (character "d") (' "'")) (: ":") (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 2" (identifier "DAT_000292b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_4c + uVar15)" (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" ({ "{") (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (identifier "uVar10") (= "=") (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (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_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" (( "(") (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" (identifier "local_4c") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_000292b0")) () ")")))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 3" (identifier "DAT_000292b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" (identifier "DAT_000292b0") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "FUN_000186b0(uVar10);" (call_expression "FUN_000186b0(uVar10)" (identifier "FUN_000186b0") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'h':\n    DAT_000292b0 = uVar15;\n    FUN_0001a000(0);\n    break;" (case "case") (char_literal "'h'" (' "'") (character "h") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "FUN_0001a000(0);" (call_expression "FUN_0001a000(0)" (identifier "FUN_0001a000") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'i':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000188a0(uVar10);\n    break;" (case "case") (char_literal "'i'" (' "'") (character "i") (' "'")) (: ":") (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 2" (identifier "DAT_000292b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_4c + uVar15)" (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" ({ "{") (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (identifier "uVar10") (= "=") (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (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_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" (( "(") (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" (identifier "local_4c") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_000292b0")) () ")")))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 3" (identifier "DAT_000292b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" (identifier "DAT_000292b0") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "FUN_000188a0(uVar10);" (call_expression "FUN_000188a0(uVar10)" (identifier "FUN_000188a0") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'l':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_00018500(uVar10);\n    break;" (case "case") (char_literal "'l'" (' "'") (character "l") (' "'")) (: ":") (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 2" (identifier "DAT_000292b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_4c + uVar15)" (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" ({ "{") (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (identifier "uVar10") (= "=") (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (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_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" (( "(") (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" (identifier "local_4c") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_000292b0")) () ")")))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 3" (identifier "DAT_000292b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" (identifier "DAT_000292b0") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "FUN_00018500(uVar10);" (call_expression "FUN_00018500(uVar10)" (identifier "FUN_00018500") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'n':\n    DAT_000292b0 = uVar15;\n    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);\n    break;" (case "case") (char_literal "'n'" (' "'") (character "n") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);" (call_expression "FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0)" (identifier "FUN_0001abd0") (argument_list "(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0)" (( "(") (identifier "DAT_000292c8") (, ",") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) (, ",") (identifier "DAT_000292bc") (, ",") (number_literal "0") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'p':\n    DAT_000292b0 = uVar15;\n    FUN_00017d30();\n    goto code_r0x00016168;" (case "case") (char_literal "'p'" (' "'") (character "p") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x00016168;" (goto "goto") (statement_identifier "code_r0x00016168") (; ";"))) (case_statement "case 's':\n    uVar10 = (uint)*(byte *)(local_4c + uVar15);\n    uVar9 = DAT_000292b0 + 2;\n    if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }\n    DAT_000292b0 = uVar9;\n    FUN_000180f0(uVar10);\n    break;" (case "case") (char_literal "'s'" (' "'") (character "s") (' "'")) (: ":") (expression_statement "uVar10 = (uint)*(byte *)(local_4c + uVar15);" (assignment_expression "uVar10 = (uint)*(byte *)(local_4c + uVar15)" (identifier "uVar10") (= "=") (binary_expression "(uint)*(byte *)(local_4c + uVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 2;" (assignment_expression "uVar9 = DAT_000292b0 + 2" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 2" (identifier "DAT_000292b0") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((char)*(byte *)(local_4c + uVar15) < '\0') {\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" (if "if") (parenthesized_expression "((char)*(byte *)(local_4c + uVar15) < '\0')" (( "(") (binary_expression "(char)*(byte *)(local_4c + uVar15) < '\0'" (cast_expression "(char)*(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(byte *)(local_4c + uVar15)" (* "*") (cast_expression "(byte *)(local_4c + uVar15)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);\n      uVar9 = DAT_000292b0 + 3;\n    }" ({ "{") (expression_statement "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);" (assignment_expression "uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (identifier "uVar10") (= "=") (binary_expression "(uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0)" (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_4c + 2 + DAT_000292b0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(local_4c + 2 + DAT_000292b0)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + 2 + DAT_000292b0)" (( "(") (binary_expression "local_4c + 2 + DAT_000292b0" (binary_expression "local_4c + 2" (identifier "local_4c") (+ "+") (number_literal "2")) (+ "+") (identifier "DAT_000292b0")) () ")")))))) (; ";")) (expression_statement "uVar9 = DAT_000292b0 + 3;" (assignment_expression "uVar9 = DAT_000292b0 + 3" (identifier "uVar9") (= "=") (binary_expression "DAT_000292b0 + 3" (identifier "DAT_000292b0") (+ "+") (number_literal "3"))) (; ";")) (} "}"))) (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" (identifier "DAT_000292b0") (= "=") (identifier "uVar9")) (; ";")) (expression_statement "FUN_000180f0(uVar10);" (call_expression "FUN_000180f0(uVar10)" (identifier "FUN_000180f0") (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'w':\n    cVar8 = *(char *)(local_4c + uVar15);\n    DAT_000292b0 = DAT_000292b0 + 2;\n    puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }\n    fflush((FILE *)*puVar3);\n    FUN_0001d320(*puVar3);\n    break;" (case "case") (char_literal "'w'" (' "'") (character "w") (' "'")) (: ":") (expression_statement "cVar8 = *(char *)(local_4c + uVar15);" (assignment_expression "cVar8 = *(char *)(local_4c + uVar15)" (identifier "cVar8") (= "=") (pointer_expression "*(char *)(local_4c + uVar15)" (* "*") (cast_expression "(char *)(local_4c + uVar15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")"))))) (; ";")) (expression_statement "DAT_000292b0 = DAT_000292b0 + 2;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 2" (identifier "DAT_000292b0") (= "=") (binary_expression "DAT_000292b0 + 2" (identifier "DAT_000292b0") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar3 = (undefined4 *)PTR_stdout_00028fec;" (assignment_expression "puVar3 = (undefined4 *)PTR_stdout_00028fec" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)PTR_stdout_00028fec" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdout_00028fec"))) (; ";")) (while_statement "while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }" (while "while") (parenthesized_expression "(PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"')" (( "(") (comma_expression "PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"'" (assignment_expression "PTR_stdout_00028fec = (undefined *)puVar3" (identifier "PTR_stdout_00028fec") (= "=") (cast_expression "(undefined *)puVar3" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3"))) (, ",") (binary_expression "cVar8 != '\"'" (identifier "cVar8") (!= "!=") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'")))) () ")")) (compound_statement "{\n      FUN_00019000(cVar8);\n      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);\n      DAT_000292b0 = DAT_000292b0 + 1;\n      puVar3 = (undefined4 *)PTR_stdout_00028fec;\n    }" ({ "{") (expression_statement "FUN_00019000(cVar8);" (call_expression "FUN_00019000(cVar8)" (identifier "FUN_00019000") (argument_list "(cVar8)" (( "(") (identifier "cVar8") () ")"))) (; ";")) (expression_statement "cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);" (assignment_expression "cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0)" (identifier "cVar8") (= "=") (pointer_expression "*(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0)" (* "*") (cast_expression "(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0)" (( "(") (binary_expression "*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0" (pointer_expression "*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4)" (* "*") (cast_expression "(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000292ac * 0x1c + DAT_00029278 + 4)" (( "(") (binary_expression "DAT_000292ac * 0x1c + DAT_00029278 + 4" (binary_expression "DAT_000292ac * 0x1c + DAT_00029278" (binary_expression "DAT_000292ac * 0x1c" (identifier "DAT_000292ac") (* "*") (number_literal "0x1c")) (+ "+") (identifier "DAT_00029278")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (identifier "DAT_000292b0")) () ")"))))) (; ";")) (expression_statement "DAT_000292b0 = DAT_000292b0 + 1;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 1" (identifier "DAT_000292b0") (= "=") (binary_expression "DAT_000292b0 + 1" (identifier "DAT_000292b0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar3 = (undefined4 *)PTR_stdout_00028fec;" (assignment_expression "puVar3 = (undefined4 *)PTR_stdout_00028fec" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)PTR_stdout_00028fec" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdout_00028fec"))) (; ";")) (} "}"))) (expression_statement "fflush((FILE *)*puVar3);" (call_expression "fflush((FILE *)*puVar3)" (identifier "fflush") (argument_list "((FILE *)*puVar3)" (( "(") (cast_expression "(FILE *)*puVar3" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar3" (* "*") (identifier "puVar3"))) () ")"))) (; ";")) (expression_statement "FUN_0001d320(*puVar3);" (call_expression "FUN_0001d320(*puVar3)" (identifier "FUN_0001d320") (argument_list "(*puVar3)" (( "(") (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'x':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }\n    goto code_r0x000160a5;" (case "case") (char_literal "'x'" (' "'") (character "x") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" (identifier "cVar8") (= "=") (call_expression "FUN_00017de0(2)" (identifier "FUN_00017de0") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar8 != '\0') {\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }" (if "if") (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      piVar1 = DAT_000292bc + 1;\n      iVar12 = *DAT_000292bc;\n      *DAT_000292bc = *(int *)*piVar1;\n      *(int *)*piVar1 = iVar12;\n      goto code_r0x00016168;\n    }" ({ "{") (expression_statement "piVar1 = DAT_000292bc + 1;" (assignment_expression "piVar1 = DAT_000292bc + 1" (identifier "piVar1") (= "=") (binary_expression "DAT_000292bc + 1" (identifier "DAT_000292bc") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar12 = *DAT_000292bc;" (assignment_expression "iVar12 = *DAT_000292bc" (identifier "iVar12") (= "=") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc"))) (; ";")) (expression_statement "*DAT_000292bc = *(int *)*piVar1;" (assignment_expression "*DAT_000292bc = *(int *)*piVar1" (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) (= "=") (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 = iVar12;" (assignment_expression "*(int *)*piVar1 = iVar12" (pointer_expression "*(int *)*piVar1" (* "*") (cast_expression "(int *)*piVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar1" (* "*") (identifier "piVar1")))) (= "=") (identifier "iVar12")) (; ";")) (goto_statement "goto code_r0x00016168;" (goto "goto") (statement_identifier "code_r0x00016168") (; ";")) (} "}"))) (goto_statement "goto code_r0x000160a5;" (goto "goto") (statement_identifier "code_r0x000160a5") (; ";"))) (case_statement "case '{':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;" (case "case") (char_literal "'{'" (' "'") (character "{") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" (identifier "cVar8") (= "=") (call_expression "FUN_00017de0(2)" (identifier "FUN_00017de0") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar8 != '\0') {\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" (if "if") (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = iVar12 < 1;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" ({ "{") (expression_statement "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (assignment_expression "iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (identifier "iVar12") (= "=") (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (identifier "FUN_0001aac0") (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (( "(") (pointer_expression "*(undefined4 *)DAT_000292bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_000292bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_000292bc[1]" (identifier "DAT_000292bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) () ")")))) (; ";")) (expression_statement "DAT_00029294 = iVar12 < 1;" (assignment_expression "DAT_00029294 = iVar12 < 1" (identifier "DAT_00029294") (= "=") (binary_expression "iVar12 < 1" (identifier "iVar12") (< "<") (number_literal "1"))) (; ";")) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x00016b9c;" (goto "goto") (statement_identifier "code_r0x00016b9c") (; ";")) (} "}"))) (goto_statement "goto code_r0x000160a5;" (goto "goto") (statement_identifier "code_r0x000160a5") (; ";"))) (case_statement "case '|':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\ncode_r0x00016168:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;" (case "case") (char_literal "'|'" (' "'") (character "|") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" (identifier "cVar8") (= "=") (call_expression "FUN_00017de0(2)" (identifier "FUN_00017de0") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar8 != '\0') {\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" (if "if") (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);\n      bVar16 = true;\n      if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }\n      DAT_00029294 = bVar16;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" ({ "{") (expression_statement "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);" (assignment_expression "cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" (identifier "cVar8") (= "=") (call_expression "FUN_0001ab00(*(undefined4 *)DAT_000292bc[1])" (identifier "FUN_0001ab00") (argument_list "(*(undefined4 *)DAT_000292bc[1])" (( "(") (pointer_expression "*(undefined4 *)DAT_000292bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_000292bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_000292bc[1]" (identifier "DAT_000292bc") ([ "[") (number_literal "1") (] "]")))) () ")")))) (; ";")) (expression_statement "bVar16 = true;" (assignment_expression "bVar16 = true" (identifier "bVar16") (= "=") (true "true")) (; ";")) (if_statement "if (cVar8 != '\0') {\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }" (if "if") (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        cVar8 = FUN_0001ab00(*DAT_000292bc);\n        bVar16 = cVar8 == '\0';\n      }" ({ "{") (expression_statement "cVar8 = FUN_0001ab00(*DAT_000292bc);" (assignment_expression "cVar8 = FUN_0001ab00(*DAT_000292bc)" (identifier "cVar8") (= "=") (call_expression "FUN_0001ab00(*DAT_000292bc)" (identifier "FUN_0001ab00") (argument_list "(*DAT_000292bc)" (( "(") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) () ")")))) (; ";")) (expression_statement "bVar16 = cVar8 == '\0';" (assignment_expression "bVar16 = cVar8 == '\0'" (identifier "bVar16") (= "=") (binary_expression "cVar8 == '\0'" (identifier "cVar8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (} "}"))) (expression_statement "DAT_00029294 = bVar16;" (assignment_expression "DAT_00029294 = bVar16" (identifier "DAT_00029294") (= "=") (identifier "bVar16")) (; ";")) (expression_statement "FUN_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x00016b9c;" (goto "goto") (statement_identifier "code_r0x00016b9c") (; ";")) (} "}"))) (labeled_statement "code_r0x00016168:\n    local_5c = DAT_00029278;" (statement_identifier "code_r0x00016168") (: ":") (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" (identifier "local_5c") (= "=") (identifier "DAT_00029278")) (; ";"))) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (identifier "local_54") (= "=") (pointer_expression "*(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (* "*") (cast_expression "(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (( "(") (binary_expression "DAT_00029278 + 0xc + DAT_000292ac * 0x1c" (binary_expression "DAT_00029278 + 0xc" (identifier "DAT_00029278") (+ "+") (number_literal "0xc")) (+ "+") (binary_expression "DAT_000292ac * 0x1c" (identifier "DAT_000292ac") (* "*") (number_literal "0x1c"))) () ")"))))) (; ";")) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" (identifier "uVar9") (= "=") (identifier "DAT_000292ac")) (; ";")) (goto_statement "goto LAB_00015e08;" (goto "goto") (statement_identifier "LAB_00015e08") (; ";"))) (case_statement "case '}':\n    DAT_000292b0 = uVar15;\n    cVar8 = FUN_00017de0(2);\n    if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }\n    goto code_r0x000160a5;" (case "case") (char_literal "'}'" (' "'") (character "}") (' "'")) (: ":") (expression_statement "DAT_000292b0 = uVar15;" (assignment_expression "DAT_000292b0 = uVar15" (identifier "DAT_000292b0") (= "=") (identifier "uVar15")) (; ";")) (expression_statement "cVar8 = FUN_00017de0(2);" (assignment_expression "cVar8 = FUN_00017de0(2)" (identifier "cVar8") (= "=") (call_expression "FUN_00017de0(2)" (identifier "FUN_00017de0") (argument_list "(2)" (( "(") (number_literal "2") () ")")))) (; ";")) (if_statement "if (cVar8 != '\0') {\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" (if "if") (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);\n      DAT_00029294 = (byte)~extraout_var >> 7;\n      FUN_00017d30();\n      goto code_r0x00016b9c;\n    }" ({ "{") (expression_statement "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);" (call_expression "FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (identifier "FUN_0001aac0") (argument_list "(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc)" (( "(") (pointer_expression "*(undefined4 *)DAT_000292bc[1]" (* "*") (cast_expression "(undefined4 *)DAT_000292bc[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "DAT_000292bc[1]" (identifier "DAT_000292bc") ([ "[") (number_literal "1") (] "]")))) (, ",") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) () ")"))) (; ";")) (expression_statement "DAT_00029294 = (byte)~extraout_var >> 7;" (assignment_expression "DAT_00029294 = (byte)~extraout_var >> 7" (identifier "DAT_00029294") (= "=") (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_00017d30();" (call_expression "FUN_00017d30()" (identifier "FUN_00017d30") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto code_r0x00016b9c;" (goto "goto") (statement_identifier "code_r0x00016b9c") (; ";")) (} "}"))) (goto_statement "goto code_r0x000160a5;" (goto "goto") (statement_identifier "code_r0x000160a5") (; ";"))) (} "}"))) (goto_statement "goto LAB_00015f30;" (goto "goto") (statement_identifier "LAB_00015f30") (; ";")) (labeled_statement "code_r0x00016658:\n  DAT_000292b0 = DAT_000292b0 + 2;" (statement_identifier "code_r0x00016658") (: ":") (expression_statement "DAT_000292b0 = DAT_000292b0 + 2;" (assignment_expression "DAT_000292b0 = DAT_000292b0 + 2" (identifier "DAT_000292b0") (= "=") (binary_expression "DAT_000292b0 + 2" (identifier "DAT_000292b0") (+ "+") (number_literal "2"))) (; ";"))) (switch_statement "switch(*(undefined1 *)(local_4c + uVar15)) {\n  case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;\n  default:\n    goto LAB_00015e08;\n  case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;\n  case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;\n  case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;\n  case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  }" (switch "switch") (parenthesized_expression "(*(undefined1 *)(local_4c + uVar15))" (( "(") (pointer_expression "*(undefined1 *)(local_4c + uVar15)" (* "*") (cast_expression "(undefined1 *)(local_4c + uVar15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar15)" (( "(") (binary_expression "local_4c + uVar15" (identifier "local_4c") (+ "+") (identifier "uVar15")) () ")")))) () ")")) (compound_statement "{\n  case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;\n  default:\n    goto LAB_00015e08;\n  case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;\n  case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;\n  case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;\n  case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;\n  }" ({ "{") (case_statement "case 0x49:\n    FUN_00015720(FUN_00015600,DAT_000292a4);\n    break;" (case "case") (number_literal "0x49") (: ":") (expression_statement "FUN_00015720(FUN_00015600,DAT_000292a4);" (call_expression "FUN_00015720(FUN_00015600,DAT_000292a4)" (identifier "FUN_00015720") (argument_list "(FUN_00015600,DAT_000292a4)" (( "(") (identifier "FUN_00015600") (, ",") (identifier "DAT_000292a4") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    goto LAB_00015e08;" (default "default") (: ":") (goto_statement "goto LAB_00015e08;" (goto "goto") (statement_identifier "LAB_00015e08") (; ";"))) (case_statement "case 0x4c:\n    iVar12 = *DAT_000292bc;\n    iVar14 = *(int *)(iVar12 + 8);\n    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }\n    break;" (case "case") (number_literal "0x4c") (: ":") (expression_statement "iVar12 = *DAT_000292bc;" (assignment_expression "iVar12 = *DAT_000292bc" (identifier "iVar12") (= "=") (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc"))) (; ";")) (expression_statement "iVar14 = *(int *)(iVar12 + 8);" (assignment_expression "iVar14 = *(int *)(iVar12 + 8)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(iVar12 + 8)" (* "*") (cast_expression "(int *)(iVar12 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }\n    else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }" (if "if") (parenthesized_expression "(((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0'))" (( "(") (binary_expression "((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')" (parenthesized_expression "((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0))" (( "(") (binary_expression "(*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)" (parenthesized_expression "(*(int *)(iVar12 + 4) == 1)" (( "(") (binary_expression "*(int *)(iVar12 + 4) == 1" (pointer_expression "*(int *)(iVar12 + 4)" (* "*") (cast_expression "(int *)(iVar12 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(iVar14 != 0)" (( "(") (binary_expression "iVar14 != 0" (identifier "iVar14") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(**(char **)(iVar12 + 0x18) == '\0')" (( "(") (binary_expression "**(char **)(iVar12 + 0x18) == '\0'" (pointer_expression "**(char **)(iVar12 + 0x18)" (* "*") (pointer_expression "*(char **)(iVar12 + 0x18)" (* "*") (cast_expression "(char **)(iVar12 + 0x18)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar12 + 0x18)" (( "(") (binary_expression "iVar12 + 0x18" (identifier "iVar12") (+ "+") (number_literal "0x18")) () ")"))))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      FUN_0001c5a0(DAT_000292bc,iVar14);\n    }" ({ "{") (expression_statement "FUN_0001c5a0(DAT_000292bc,iVar14);" (call_expression "FUN_0001c5a0(DAT_000292bc,iVar14)" (identifier "FUN_0001c5a0") (argument_list "(DAT_000292bc,iVar14)" (( "(") (identifier "DAT_000292bc") (, ",") (identifier "iVar14") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }" (else "else") (compound_statement "{\n      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);\n    }" ({ "{") (expression_statement "FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);" (call_expression "FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14)" (identifier "FUN_0001c5a0") (argument_list "(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14)" (( "(") (identifier "DAT_000292bc") (, ",") (binary_expression "*(int *)(iVar12 + 4) + iVar14" (pointer_expression "*(int *)(iVar12 + 4)" (* "*") (cast_expression "(int *)(iVar12 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")")))) (+ "+") (identifier "iVar14")) () ")"))) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x52:\n    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);\n    if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }\n    FUN_00019f10("Square root of a negative number");\n    goto code_r0x00016ba1;" (case "case") (number_literal "0x52") (: ":") (expression_statement "iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);" (assignment_expression "iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298)" (identifier "iVar12") (= "=") (call_expression "FUN_0001c740(DAT_000292bc,DAT_00029298)" (identifier "FUN_0001c740") (argument_list "(DAT_000292bc,DAT_00029298)" (( "(") (identifier "DAT_000292bc") (, ",") (identifier "DAT_00029298") () ")")))) (; ";")) (if_statement "if (iVar12 != 0) {\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x000160a5:\n      local_5c = DAT_00029278;\n      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n      uVar9 = DAT_000292ac;\n      goto LAB_00015e08;\n    }" ({ "{") (labeled_statement "code_r0x000160a5:\n      local_5c = DAT_00029278;" (statement_identifier "code_r0x000160a5") (: ":") (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" (identifier "local_5c") (= "=") (identifier "DAT_00029278")) (; ";"))) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (identifier "local_54") (= "=") (pointer_expression "*(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (* "*") (cast_expression "(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (( "(") (binary_expression "DAT_00029278 + 0xc + DAT_000292ac * 0x1c" (binary_expression "DAT_00029278 + 0xc" (identifier "DAT_00029278") (+ "+") (number_literal "0xc")) (+ "+") (binary_expression "DAT_000292ac * 0x1c" (identifier "DAT_000292ac") (* "*") (number_literal "0x1c"))) () ")"))))) (; ";")) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" (identifier "uVar9") (= "=") (identifier "DAT_000292ac")) (; ";")) (goto_statement "goto LAB_00015e08;" (goto "goto") (statement_identifier "LAB_00015e08") (; ";")) (} "}"))) (expression_statement "FUN_00019f10("Square root of a negative number");" (call_expression "FUN_00019f10("Square root of a negative number")" (identifier "FUN_00019f10") (argument_list "("Square root of a negative number")" (( "(") (string_literal ""Square root of a negative number"" (" """) (string_content "Square root of a negative number") (" """)) () ")"))) (; ";")) (goto_statement "goto code_r0x00016ba1;" (goto "goto") (statement_identifier "code_r0x00016ba1") (; ";"))) (case_statement "case 0x53:\n    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));\n    break;" (case "case") (number_literal "0x53") (: ":") (expression_statement "FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));" (call_expression "FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8))" (identifier "FUN_0001c5a0") (argument_list "(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8))" (( "(") (identifier "DAT_000292bc") (, ",") (pointer_expression "*(undefined4 *)(*DAT_000292bc + 8)" (* "*") (cast_expression "(undefined4 *)(*DAT_000292bc + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*DAT_000292bc + 8)" (( "(") (binary_expression "*DAT_000292bc + 8" (pointer_expression "*DAT_000292bc" (* "*") (identifier "DAT_000292bc")) (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x58:\n    FUN_00017d70(DAT_000292c8);\n    uVar13 = func_0x000112e0();\n    FUN_0001c5a0(DAT_000292bc,uVar13);\ncode_r0x00016ba1:\n    local_5c = DAT_00029278;\n    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);\n    uVar9 = DAT_000292ac;\n    goto LAB_00015e08;" (case "case") (number_literal "0x58") (: ":") (expression_statement "FUN_00017d70(DAT_000292c8);" (call_expression "FUN_00017d70(DAT_000292c8)" (identifier "FUN_00017d70") (argument_list "(DAT_000292c8)" (( "(") (identifier "DAT_000292c8") () ")"))) (; ";")) (expression_statement "uVar13 = func_0x000112e0();" (assignment_expression "uVar13 = func_0x000112e0()" (identifier "uVar13") (= "=") (call_expression "func_0x000112e0()" (identifier "func_0x000112e0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_0001c5a0(DAT_000292bc,uVar13);" (call_expression "FUN_0001c5a0(DAT_000292bc,uVar13)" (identifier "FUN_0001c5a0") (argument_list "(DAT_000292bc,uVar13)" (( "(") (identifier "DAT_000292bc") (, ",") (identifier "uVar13") () ")"))) (; ";")) (labeled_statement "code_r0x00016ba1:\n    local_5c = DAT_00029278;" (statement_identifier "code_r0x00016ba1") (: ":") (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" (identifier "local_5c") (= "=") (identifier "DAT_00029278")) (; ";"))) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (identifier "local_54") (= "=") (pointer_expression "*(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (* "*") (cast_expression "(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (( "(") (binary_expression "DAT_00029278 + 0xc + DAT_000292ac * 0x1c" (binary_expression "DAT_00029278 + 0xc" (identifier "DAT_00029278") (+ "+") (number_literal "0xc")) (+ "+") (binary_expression "DAT_000292ac * 0x1c" (identifier "DAT_000292ac") (* "*") (number_literal "0x1c"))) () ")"))))) (; ";")) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" (identifier "uVar9") (= "=") (identifier "DAT_000292ac")) (; ";")) (goto_statement "goto LAB_00015e08;" (goto "goto") (statement_identifier "LAB_00015e08") (; ";"))) (} "}"))) (labeled_statement "LAB_00015f30:\n  local_5c = DAT_00029278;" (statement_identifier "LAB_00015f30") (: ":") (expression_statement "local_5c = DAT_00029278;" (assignment_expression "local_5c = DAT_00029278" (identifier "local_5c") (= "=") (identifier "DAT_00029278")) (; ";"))) (expression_statement "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);" (assignment_expression "local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (identifier "local_54") (= "=") (pointer_expression "*(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (* "*") (cast_expression "(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00029278 + 0xc + DAT_000292ac * 0x1c)" (( "(") (binary_expression "DAT_00029278 + 0xc + DAT_000292ac * 0x1c" (binary_expression "DAT_00029278 + 0xc" (identifier "DAT_00029278") (+ "+") (number_literal "0xc")) (+ "+") (binary_expression "DAT_000292ac * 0x1c" (identifier "DAT_000292ac") (* "*") (number_literal "0x1c"))) () ")"))))) (; ";")) (expression_statement "uVar9 = DAT_000292ac;" (assignment_expression "uVar9 = DAT_000292ac" (identifier "uVar9") (= "=") (identifier "DAT_000292ac")) (; ";")) (goto_statement "goto LAB_00015e08;" (goto "goto") (statement_identifier "LAB_00015e08") (; ";")) (labeled_statement "code_r0x0001688b:\n  switch(*(char *)(local_4c + uVar9)) {\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }" (statement_identifier "code_r0x0001688b") (: ":") (switch_statement "switch(*(char *)(local_4c + uVar9)) {\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }" (switch "switch") (parenthesized_expression "(*(char *)(local_4c + uVar9))" (( "(") (pointer_expression "*(char *)(local_4c + uVar9)" (* "*") (cast_expression "(char *)(local_4c + uVar9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_4c + uVar9)" (( "(") (binary_expression "local_4c + uVar9" (identifier "local_4c") (+ "+") (identifier "uVar9")) () ")")))) () ")")) (compound_statement "{\n  case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;\n  default:\n    goto code_r0x0001685c;\n  case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;\n  case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;\n  case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;\n  }" ({ "{") (case_statement "case '\\':\n    cVar8 = '\\';\n    uVar9 = DAT_000292b0;\n    break;" (case "case") (char_literal "'\\'" (' "'") (escape_sequence "\\") (' "'")) (: ":") (expression_statement "cVar8 = '\\';" (assignment_expression "cVar8 = '\\'" (identifier "cVar8") (= "=") (char_literal "'\\'" (' "'") (escape_sequence "\\") (' "'"))) (; ";")) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" (identifier "uVar9") (= "=") (identifier "DAT_000292b0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    goto code_r0x0001685c;" (default "default") (: ":") (goto_statement "goto code_r0x0001685c;" (goto "goto") (statement_identifier "code_r0x0001685c") (; ";"))) (case_statement "case 'a':\n    cVar8 = '\a';\n    uVar9 = DAT_000292b0;\n    break;" (case "case") (char_literal "'a'" (' "'") (character "a") (' "'")) (: ":") (expression_statement "cVar8 = '\a';" (assignment_expression "cVar8 = '\a'" (identifier "cVar8") (= "=") (char_literal "'\a'" (' "'") (escape_sequence "\a") (' "'"))) (; ";")) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" (identifier "uVar9") (= "=") (identifier "DAT_000292b0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'b':\n    cVar8 = '\b';\n    uVar9 = DAT_000292b0;\n    break;" (case "case") (char_literal "'b'" (' "'") (character "b") (' "'")) (: ":") (expression_statement "cVar8 = '\b';" (assignment_expression "cVar8 = '\b'" (identifier "cVar8") (= "=") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) (; ";")) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" (identifier "uVar9") (= "=") (identifier "DAT_000292b0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'f':\n    cVar8 = '\f';\n    uVar9 = DAT_000292b0;\n    break;" (case "case") (char_literal "'f'" (' "'") (character "f") (' "'")) (: ":") (expression_statement "cVar8 = '\f';" (assignment_expression "cVar8 = '\f'" (identifier "cVar8") (= "=") (char_literal "'\f'" (' "'") (escape_sequence "\f") (' "'"))) (; ";")) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" (identifier "uVar9") (= "=") (identifier "DAT_000292b0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'n':\n    cVar8 = '\n';\n    uVar9 = DAT_000292b0;\n    break;" (case "case") (char_literal "'n'" (' "'") (character "n") (' "'")) (: ":") (expression_statement "cVar8 = '\n';" (assignment_expression "cVar8 = '\n'" (identifier "cVar8") (= "=") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) (; ";")) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" (identifier "uVar9") (= "=") (identifier "DAT_000292b0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'q':\n    cVar8 = '\"';\n    uVar9 = DAT_000292b0;\n    break;" (case "case") (char_literal "'q'" (' "'") (character "q") (' "'")) (: ":") (expression_statement "cVar8 = '\"';" (assignment_expression "cVar8 = '\"'" (identifier "cVar8") (= "=") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) (; ";")) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" (identifier "uVar9") (= "=") (identifier "DAT_000292b0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'r':\n    cVar8 = '\r';\n    uVar9 = DAT_000292b0;\n    break;" (case "case") (char_literal "'r'" (' "'") (character "r") (' "'")) (: ":") (expression_statement "cVar8 = '\r';" (assignment_expression "cVar8 = '\r'" (identifier "cVar8") (= "=") (char_literal "'\r'" (' "'") (escape_sequence "\r") (' "'"))) (; ";")) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" (identifier "uVar9") (= "=") (identifier "DAT_000292b0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 't':\n    cVar8 = '\t';\n    uVar9 = DAT_000292b0;" (case "case") (char_literal "'t'" (' "'") (character "t") (' "'")) (: ":") (expression_statement "cVar8 = '\t';" (assignment_expression "cVar8 = '\t'" (identifier "cVar8") (= "=") (char_literal "'\t'" (' "'") (escape_sequence "\t") (' "'"))) (; ";")) (expression_statement "uVar9 = DAT_000292b0;" (assignment_expression "uVar9 = DAT_000292b0" (identifier "uVar9") (= "=") (identifier "DAT_000292b0")) (; ";"))) (} "}")))) (labeled_statement "code_r0x00016844:\n  DAT_000292b0 = uVar9;" (statement_identifier "code_r0x00016844") (: ":") (expression_statement "DAT_000292b0 = uVar9;" (assignment_expression "DAT_000292b0 = uVar9" (identifier "DAT_000292b0") (= "=") (identifier "uVar9")) (; ";"))) (expression_statement "FUN_00019000(cVar8);" (call_expression "FUN_00019000(cVar8)" (identifier "FUN_00019000") (argument_list "(cVar8)" (( "(") (identifier "cVar8") () ")"))) (; ";")) (expression_statement "local_4c = *(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4);" (assignment_expression "local_4c = *(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4)" (identifier "local_4c") (= "=") (pointer_expression "*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4)" (* "*") (cast_expression "(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000292ac * 0x1c + DAT_00029278 + 4)" (( "(") (binary_expression "DAT_000292ac * 0x1c + DAT_00029278 + 4" (binary_expression "DAT_000292ac * 0x1c + DAT_00029278" (binary_expression "DAT_000292ac * 0x1c" (identifier "DAT_000292ac") (* "*") (number_literal "0x1c")) (+ "+") (identifier "DAT_00029278")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (goto_statement "goto code_r0x0001685c;" (goto "goto") (statement_identifier "code_r0x0001685c") (; ";")) (} "}")))

/* 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_49;
  type_3 pbVar3;
  type_4 *var_38;
  type_5 *puVar5;
  type_6 *puVar6;
  type_6 *puVar7;
  type_7 uVar8;
  char var_34;
  char var_21;
  type_8 *var_9;
  type_7 var_32;
  int var_23;
  char *mesg;
  int var_43;
  long val;
  type_9 *var_44;
  type_7 var_42;
  int var_1;
  bool bVar17;
  type_8 *var_5;
  type_8 *local_58;
  type_7 var_6;
  char *local_4c;
  bool local_3d;
  type_10 temp_num;
  int var_16;
  type_5 uStack_14;
  
  uStack_14 = 0x15d59;
  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);
  }
  puVar6 = PTR_stdout_00028fec;
  var_8 = 0;
  var_5 = var_35;
  var_6 = var_35[pc.pc_func].f_code_size;
  var_9 = (type_8 *)pc.pc_func;
_L138:
  local_58 = var_5 + (int)var_9;
  if (((var_6 <= pc.pc_addr) || (var_7 != '\0')) || (var_8 != 0)) {
    if (var_9 != (type_8 *)0x0) {
      do {
        var_10(var_5[(int)var_9].f_autos);
        var_10(var_35[pc.pc_func].f_params);
        var_11();
        pc.pc_addr = var_11();
        var_9 = (type_8 *)var_11();
        var_5 = var_35;
        pc.pc_func = (type_7)var_9;
      } while (var_9 != (type_8 *)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_00028ff4), var_8 != 0))
    {
      var_14("\ninterrupted execution.");
      var_15(*(type_12 **)PTR_stdout_00028fec);
    }
    if (var_16 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
      var_17();
    }
    return;
  }
  var_42 = pc.pc_addr + 1;
  local_4c = local_58->f_body;
  var_21 = local_4c[pc.pc_addr];
  switch(var_21) {
  case '!':
  case 'T':
    pc.pc_addr = var_42;
    var_36 = var_18(var_12->s_num);
    var_19(var_36);
    break;
  default:
    mesg = "bad instruction: inst=%c";
    pc.pc_addr = var_42;
    goto LAB_000168af;
  case '#':
    pc.pc_addr = var_42;
    var_21 = var_20(2);
    if (var_21 == '\0') goto LAB_000160a5;
    var_23 = var_22(var_12->s_next->s_num,var_12->s_num);
    var_36 = var_23 != 0;
    var_13();
LAB_00016b9c:
    var_19(var_36);
    goto LAB_00016ba1;
  case '%':
    pc.pc_addr = var_42;
    var_21 = var_20(2);
    if (var_21 == '\0') goto LAB_00016168;
    var_21 = var_18(var_12->s_num);
    if (var_21 == '\0') {
      var_24(var_12->s_next->s_num,var_12->s_num,&temp_num,scale);
      goto LAB_0001656e;
    }
    mesg = "Modulo by zero";
    goto LAB_000168af;
  case '&':
    pc.pc_addr = var_42;
    var_21 = var_20(2);
    if (var_21 == '\0') goto LAB_00016168;
    var_21 = var_18(var_12->s_next->s_num);
    local_3d = false;
    if (var_21 == '\0') {
      var_21 = var_18(var_12->s_num);
      local_3d = var_21 == '\0';
    }
    var_36 = local_3d;
    var_13();
    var_19(var_36);
    break;
  case '*':
    pc.pc_addr = var_42;
    var_21 = var_20(2);
    if (var_21 == '\0') goto LAB_00016168;
    var_25(var_12->s_next->s_num,var_12->s_num,&temp_num,scale);
LAB_0001642c:
    var_13();
    var_13();
    var_26(temp_num);
    var_2(&temp_num);
    break;
  case '+':
    pc.pc_addr = var_42;
    var_21 = var_20(2);
    if (var_21 != '\0') {
      var_27(var_12->s_next->s_num,var_12->s_num,&temp_num,0);
      goto LAB_0001642c;
    }
    goto LAB_00016168;
  case '-':
    pc.pc_addr = var_42;
    var_21 = var_20(2);
    if (var_21 != '\0') {
      var_28(var_12->s_next->s_num,var_12->s_num,&temp_num,0);
LAB_0001656e:
      var_13();
      var_13();
      var_26(temp_num);
      var_2(&temp_num);
      goto LAB_00016ba1;
    }
    goto LAB_00016168;
  case '/':
    pc.pc_addr = var_42;
    var_21 = var_20(2);
    if (var_21 == '\0') goto LAB_00016168;
    var_23 = var_29(var_12->s_next->s_num,var_12->s_num,&temp_num,scale);
    if (var_23 != 0) {
      var_30("Divide by zero");
      goto LAB_00016ba1;
    }
    var_13();
    var_13();
    var_26(temp_num);
    var_2(&temp_num);
    break;
  case '0':
    pc.pc_addr = var_42;
    var_31(_zero_);
    break;
  case '1':
    pc.pc_addr = var_42;
    var_31(_one_);
    break;
  case '<':
    pc.pc_addr = var_42;
    var_21 = var_20(2);
    if (var_21 == '\0') goto LAB_00016168;
    var_23 = var_22(var_12->s_next->s_num,var_12->s_num);
    var_36 = var_23 == -1;
LAB_00016236:
    var_13();
    var_19(var_36);
    break;
  case '=':
    pc.pc_addr = var_42;
    var_21 = var_20(2);
    if (var_21 != '\0') {
      var_23 = var_22(var_12->s_next->s_num,var_12->s_num);
      var_36 = var_23 == 0;
      goto LAB_00016236;
    }
    goto LAB_00016168;
  case '>':
    pc.pc_addr = var_42;
    var_21 = var_20(2);
    if (var_21 != '\0') {
      var_23 = var_22(var_12->s_next->s_num,var_12->s_num);
      var_36 = var_23 == 1;
      goto LAB_00016236;
    }
    goto LAB_00016168;
  case 'A':
    var_32 = (type_7)(type_2)local_4c[var_42];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[var_42] < '\0') {
      var_32 = (var_32 & 0x7f) * 0x100 + (type_7)(type_2)local_4c[pc.pc_addr + 2];
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    var_33(var_32);
    break;
  case 'B':
  case 'Z':
    pc.pc_addr = var_42;
    var_34 = var_18(var_12->s_num);
    var_36 = var_34 == '\0';
    var_13();
    var_5 = var_35;
    local_58 = var_35 + pc.pc_func;
    local_4c = local_58->f_body;
    var_23 = pc.pc_addr + 1;
    var_34 = local_4c[pc.pc_addr];
    pc.pc_addr = pc.pc_addr + 2;
    var_9 = (type_8 *)pc.pc_func;
    if (var_21 == 'J') goto LAB_0001696a;
    if (var_21 == 'B') {
      if (var_36 != '\0') goto LAB_0001696a;
    }
    else if ((var_21 == 'Z') && (var_36 == '\0')) goto LAB_0001696a;
    var_6 = local_58->f_code_size;
    goto _L138;
  case 'C':
    local_58 = (type_8 *)(type_7)(type_2)local_4c[var_42];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[var_42] < '\0') {
      local_58 = (type_8 *)
                 ((type_7)(type_2)local_4c[pc.pc_addr + 2] + ((type_7)local_58 & 0x7f) * 0x100);
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    if (var_5[(int)local_58].f_defined == '\0') {
      mesg = "Function %s not defined.";
      goto LAB_000168af;
    }
    var_37(&pc,(int)local_58);
    for (var_38 = var_35[(int)local_58].f_autos; var_38 != (type_4 *)0x0; var_38 = var_38->next
        ) {
      var_39(var_38->av_name);
    }
    var_40(pc.pc_func);
    var_40(pc.pc_addr);
    var_40(i_base);
    pc.pc_addr = 0;
    pc.pc_func = (type_7)local_58;
    var_5 = var_35;
    var_6 = var_35[(int)local_58].f_code_size;
    var_9 = local_58;
    goto _L138;
  case 'D':
    pc.pc_addr = var_42;
    var_31(var_12->s_num);
    break;
  case 'J':
    var_23 = pc.pc_addr + 2;
    var_34 = local_4c[var_42];
    pc.pc_addr = pc.pc_addr + 3;
LAB_0001696a:
    var_42 = (type_7)(ushort)(var_41(local_4c[var_23],var_34) >> 6);
    var_44 = local_58->f_label;
    var_43 = var_42 - 1;
    if (var_42 != 0) {
      do {
        var_43 = var_43 + -1;
        var_44 = var_44->l_next;
      } while (var_43 != -1);
    }
    if (var_44 == (type_9 *)0x0) {
      mesg = "Internal error.";
      goto LAB_000168af;
    }
    pc.pc_addr = var_44->l_adrs[var_41(local_4c[var_23],var_34) & 0x3f];
    var_6 = local_58->f_code_size;
    goto _L138;
  case 'K':
    var_23 = i_base;
    if (var_9 != (type_8 *)0x0) {
      var_23 = fn_stack->s_val;
    }
    if (var_23 == 10) {
      pc.pc_addr = var_42;
      var_45(&pc);
      goto LAB_00016ba1;
    }
    pc.pc_addr = var_42;
    var_46(prog_char,var_23);
    break;
  case 'L':
    var_32 = (type_7)(type_2)local_4c[var_42];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[var_42] < '\0') {
      var_32 = (var_32 & 0x7f) * 0x100 + (type_7)(type_2)local_4c[pc.pc_addr + 2];
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    var_47(var_32);
    break;
  case 'M':
    var_32 = (type_7)(type_2)local_4c[var_42];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[var_42] < '\0') {
      var_32 = (var_32 & 0x7f) * 0x100 + (type_7)(type_2)local_4c[pc.pc_addr + 2];
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    var_48(var_32);
    break;
  case 'O':
    pc.pc_addr = var_42;
_L160:
    var_42 = pc.pc_addr + 1;
    var_49 = local_4c[pc.pc_addr];
    var_32 = (type_7)var_49;
    uVar8 = var_42;
    if (var_49 != 0x22) {
      if (var_49 != 0x5c) goto LAB_00016844;
      pc.pc_addr = pc.pc_addr + 2;
      uVar8 = pc.pc_addr;
      if (local_4c[var_42] != '\"') goto code_r0x0001688b;
    }
    pc.pc_addr = uVar8;
    var_50(*(type_12 **)puVar6);
    var_15(*(type_12 **)puVar6);
    break;
  case 'P':
  case 'W':
    pc.pc_addr = var_42;
    var_51(var_12->s_num,o_base,(type_13 *)PTR_out_char_00028ffc,std_only);
    if (var_21 == 'W') {
      var_52(10);
    }
    var_53(4);
    puVar7 = PTR_stdout_00028fec;
    var_50(*(type_12 **)PTR_stdout_00028fec);
    var_15(*(type_12 **)puVar7);
    var_13();
    break;
  case 'R':
    if (var_9 != (type_8 *)0x0) {
      pc.pc_addr = var_42;
      var_10(local_58->f_autos);
      var_10(var_35[pc.pc_func].f_params);
      var_11();
      pc.pc_addr = var_11();
      var_9 = (type_8 *)var_11();
      var_5 = var_35;
      var_6 = var_35[(int)var_9].f_code_size;
      pc.pc_func = (type_7)var_9;
      goto _L138;
    }
    mesg = "Return from main program.";
    pc.pc_addr = var_42;
LAB_000168af:
    var_30(mesg);
    break;
  case 'S':
    var_32 = (type_7)(type_2)local_4c[var_42];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[var_42] < '\0') {
      var_32 = (var_32 & 0x7f) * 0x100 + (type_7)(type_2)local_4c[pc.pc_addr + 2];
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    var_54(var_32);
    break;
  case '^':
    pc.pc_addr = var_42;
    var_21 = var_20(2);
    if (var_21 != '\0') {
      var_55(var_12->s_next->s_num,var_12->s_num,&temp_num,scale);
      var_21 = var_18(var_12->s_next->s_num);
      if ((var_21 != '\0') && (var_21 = var_56(var_12->s_num), var_21 != '\0')) {
        var_30("divide by zero");
      }
      var_13();
      var_13();
      var_26(temp_num);
      var_2(&temp_num);
      goto LAB_00016ba1;
    }
    goto LAB_000160a5;
  case 'c':
    goto _L153;
  case 'd':
    var_32 = (type_7)(type_2)local_4c[var_42];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[var_42] < '\0') {
      var_32 = (var_32 & 0x7f) * 0x100 + (type_7)(type_2)local_4c[pc.pc_addr + 2];
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    var_57(var_32);
    break;
  case 'h':
    pc.pc_addr = var_42;
    var_58(0);
    break;
  case 'i':
    var_32 = (type_7)(type_2)local_4c[var_42];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[var_42] < '\0') {
      var_32 = (var_32 & 0x7f) * 0x100 + (type_7)(type_2)local_4c[pc.pc_addr + 2];
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    var_59(var_32);
    break;
  case 'l':
    var_32 = (type_7)(type_2)local_4c[var_42];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[var_42] < '\0') {
      var_32 = (var_32 & 0x7f) * 0x100 + (type_7)(type_2)local_4c[pc.pc_addr + 2];
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    var_60(var_32);
    break;
  case 'n':
    pc.pc_addr = var_42;
    var_28(_zero_,var_12->s_num,&var_12->s_num,0);
    break;
  case 'p':
    pc.pc_addr = var_42;
    var_13();
    goto LAB_00016168;
  case 's':
    var_32 = (type_7)(type_2)local_4c[var_42];
    uVar8 = pc.pc_addr + 2;
    if (local_4c[var_42] < '\0') {
      var_32 = (var_32 & 0x7f) * 0x100 + (type_7)(type_2)local_4c[pc.pc_addr + 2];
      uVar8 = pc.pc_addr + 3;
    }
    pc.pc_addr = uVar8;
    var_53(var_32);
    break;
  case 'w':
    var_49 = local_4c[var_42];
    pc.pc_addr = pc.pc_addr + 2;
    puVar5 = (type_5 *)PTR_stdout_00028fec;
    while (PTR_stdout_00028fec = (type_6 *)puVar5, var_49 != 0x22) {
      var_61((type_7)var_49);
      var_49 = var_35[pc.pc_func].f_body[pc.pc_addr];
      pc.pc_addr = pc.pc_addr + 1;
      puVar5 = (type_5 *)PTR_stdout_00028fec;
    }
    var_50((type_12 *)*puVar5);
    var_15((type_12 *)*puVar5);
    break;
  case 'x':
    pc.pc_addr = var_42;
    var_21 = var_20(2);
    if (var_21 != '\0') {
      ppeVar1 = &var_12->s_next;
      pbVar3 = var_12->s_num;
      var_12->s_num = (*ppeVar1)->s_num;
      (*ppeVar1)->s_num = pbVar3;
      goto LAB_00016168;
    }
    goto LAB_000160a5;
  case '{':
    pc.pc_addr = var_42;
    var_21 = var_20(2);
    if (var_21 != '\0') {
      var_23 = var_22(var_12->s_next->s_num,var_12->s_num);
      var_36 = var_23 < 1;
      var_13();
      goto LAB_00016b9c;
    }
    goto LAB_000160a5;
  case '|':
    pc.pc_addr = var_42;
    var_21 = var_20(2);
    if (var_21 != '\0') {
      var_21 = var_18(var_12->s_next->s_num);
      bVar17 = true;
      if (var_21 != '\0') {
        var_21 = var_18(var_12->s_num);
        bVar17 = var_21 == '\0';
      }
      var_36 = bVar17;
      var_13();
      goto LAB_00016b9c;
    }
LAB_00016168:
    var_5 = var_35;
    var_6 = var_35[pc.pc_func].f_code_size;
    var_9 = (type_8 *)pc.pc_func;
    goto _L138;
  case '}':
    pc.pc_addr = var_42;
    var_21 = var_20(2);
    if (var_21 != '\0') {
      var_23 = var_22(var_12->s_next->s_num,var_12->s_num);
      var_36 = (type_2)~(type_2)((type_7)var_23 >> 0x18) >> 7;
      var_13();
      goto LAB_00016b9c;
    }
    goto LAB_000160a5;
  }
  goto LAB_00015f30;
_L153:
  pc.pc_addr = pc.pc_addr + 2;
  switch(local_4c[var_42]) {
  case 'I':
    var_46(input_char,i_base);
    break;
  default:
    goto _L138;
  case 'L':
    pbVar3 = var_12->s_num;
    var_23 = pbVar3->n_scale;
    if (((pbVar3->n_len == 1) && (var_23 != 0)) && (*pbVar3->n_value == '\0')) {
      var_62(&var_12->s_num,var_23);
    }
    else {
      var_62(&var_12->s_num,pbVar3->n_len + var_23);
    }
    break;
  case 'R':
    var_23 = var_63(&var_12->s_num,scale);
    if (var_23 != 0) {
LAB_000160a5:
      var_5 = var_35;
      var_6 = var_35[pc.pc_func].f_code_size;
      var_9 = (type_8 *)pc.pc_func;
      goto _L138;
    }
    var_30("Square root of a negative number");
    goto LAB_00016ba1;
  case 'S':
    var_62(&var_12->s_num,var_12->s_num->n_scale);
    break;
  case 'X':
    var_31(_zero_);
    val = var_64();
    var_62(&var_12->s_num,val);
LAB_00016ba1:
    var_5 = var_35;
    var_6 = var_35[pc.pc_func].f_code_size;
    var_9 = (type_8 *)pc.pc_func;
    goto _L138;
  }
LAB_00015f30:
  var_5 = var_35;
  var_6 = var_35[pc.pc_func].f_code_size;
  var_9 = (type_8 *)pc.pc_func;
  goto _L138;
code_r0x0001688b:
  switch(local_4c[var_42]) {
  case '\\':
    var_32 = 0x5c;
    var_42 = pc.pc_addr;
    break;
  default:
    goto _L160;
  case 'a':
    var_32 = 7;
    var_42 = pc.pc_addr;
    break;
  case 'b':
    var_32 = 8;
    var_42 = pc.pc_addr;
    break;
  case 'f':
    var_32 = 0xc;
    var_42 = pc.pc_addr;
    break;
  case 'n':
    var_32 = 10;
    var_42 = pc.pc_addr;
    break;
  case 'q':
    var_32 = 0x22;
    var_42 = pc.pc_addr;
    break;
  case 'r':
    var_32 = 0xd;
    var_42 = pc.pc_addr;
    break;
  case 't':
    var_32 = 9;
    var_42 = pc.pc_addr;
  }
LAB_00016844:
  pc.pc_addr = var_42;
  var_61(var_32);
  local_4c = var_35[pc.pc_func].f_body;
  goto _L160;
}


(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: (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: (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: (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) 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)) (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: (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: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))) (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: (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: (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: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_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))))))) (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))))))) (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)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (break_statement)) (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))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (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))) (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)))) (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)))) (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))))) (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 (call_expression function: (identifier) arguments: (argument_list (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)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))) (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: (compound_statement (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)))) (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 (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)))) (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))) (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (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)) value: (parenthesized_expression (binary_expression left: (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: (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 (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: (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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) 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: (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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier))) (case_statement value: (char_literal (character)) (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: (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))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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)) 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: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_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 (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)) (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))))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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 (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)))) (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 (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)))) (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 (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)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (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))))) (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))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_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 (identifier) (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: (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: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (goto_statement label: (statement_identifier))) (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: (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: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) (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;
  undefined1 uVar2;
  undefined4 *puVar3;
  ushort uVar4;
  undefined *puVar5;
  undefined *puVar6;
  char cVar7;
  char cVar8;
  uint uVar9;
  uint uVar10;
  byte extraout_var;
  char *pcVar11;
  int iVar12;
  undefined4 uVar13;
  int iVar14;
  uint uVar15;
  int in_GS_OFFSET;
  bool bVar16;
  int local_5c;
  uint local_58;
  uint local_54;
  int local_4c;
  bool local_3d;
  undefined4 local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x15d59;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  DAT_0002928c = '\0';
  DAT_000292ac = 0;
  DAT_000292b0 = 0;
  FUN_0001aaa0(&local_24);
  if (DAT_000291fc != '\0') {
    signal(2,FUN_000155b0);
  }
  puVar5 = PTR_stdout_00028fec;
  DAT_00029220 = 0;
  local_5c = DAT_00029278;
  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);
  uVar9 = DAT_000292ac;
LAB_00015e08:
  local_58 = uVar9 * 0x1c + local_5c;
  if (((local_54 <= DAT_000292b0) || (DAT_0002928c != '\0')) || (DAT_00029220 != 0)) {
    if (uVar9 != 0) {
      do {
        FUN_00018bc0(*(undefined4 *)(local_5c + 0x18 + uVar9 * 0x1c));
        FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));
        FUN_00017ca0();
        DAT_000292b0 = FUN_00017ca0();
        uVar9 = FUN_00017ca0();
        local_5c = DAT_00029278;
        DAT_000292ac = uVar9;
      } while (uVar9 != 0);
      DAT_000292ac = 0;
    }
    while (DAT_000292bc != (int *)0x0) {
      FUN_00017d30();
    }
    if ((DAT_000291fc != '\0') && (signal(2,(__sighandler_t)PTR_FUN_00028ff4), DAT_00029220 != 0)) {
      puts("\ninterrupted execution.");
      FUN_0001d320(*(undefined4 *)PTR_stdout_00028fec);
    }
    if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
      FUN_0001d3e0();
    }
    return;
  }
  uVar15 = DAT_000292b0 + 1;
  local_4c = *(int *)(local_58 + 4);
  cVar8 = *(char *)(local_4c + DAT_000292b0);
  switch(cVar8) {
  case '!':
  case 'T':
    DAT_000292b0 = uVar15;
    DAT_00029294 = FUN_0001ab00(*DAT_000292bc);
    FUN_00015ce0(DAT_00029294);
    break;
  default:
    pcVar11 = "bad instruction: inst=%c";
    DAT_000292b0 = uVar15;
    goto code_r0x000168af;
  case '#':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 == '\0') goto code_r0x000160a5;
    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);
    DAT_00029294 = iVar12 != 0;
    FUN_00017d30();
code_r0x00016b9c:
    FUN_00015ce0(DAT_00029294);
    goto code_r0x00016ba1;
  case '%':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 == '\0') goto code_r0x00016168;
    cVar8 = FUN_0001ab00(*DAT_000292bc);
    if (cVar8 == '\0') {
      FUN_0001bf60(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);
      goto code_r0x0001656e;
    }
    pcVar11 = "Modulo by zero";
    goto code_r0x000168af;
  case '&':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 == '\0') goto code_r0x00016168;
    cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);
    local_3d = false;
    if (cVar8 == '\0') {
      cVar8 = FUN_0001ab00(*DAT_000292bc);
      local_3d = cVar8 == '\0';
    }
    DAT_00029294 = local_3d;
    FUN_00017d30();
    FUN_00015ce0(DAT_00029294);
    break;
  case '*':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 == '\0') goto code_r0x00016168;
    FUN_0001b600(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);
code_r0x0001642c:
    FUN_00017d30();
    FUN_00017d30();
    FUN_00017db0(local_24);
    FUN_0001aaa0(&local_24);
    break;
  case '+':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      FUN_0001b500(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);
      goto code_r0x0001642c;
    }
    goto code_r0x00016168;
  case '-':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      FUN_0001abd0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,0);
code_r0x0001656e:
      FUN_00017d30();
      FUN_00017d30();
      FUN_00017db0(local_24);
      FUN_0001aaa0(&local_24);
      goto code_r0x00016ba1;
    }
    goto code_r0x00016168;
  case '/':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 == '\0') goto code_r0x00016168;
    iVar12 = FUN_0001b730(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);
    if (iVar12 != 0) {
      FUN_00019f10("Divide by zero");
      goto code_r0x00016ba1;
    }
    FUN_00017d30();
    FUN_00017d30();
    FUN_00017db0(local_24);
    FUN_0001aaa0(&local_24);
    break;
  case '0':
    DAT_000292b0 = uVar15;
    FUN_00017d70(DAT_000292c8);
    break;
  case '1':
    DAT_000292b0 = uVar15;
    FUN_00017d70(DAT_000292c0);
    break;
  case '<':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 == '\0') goto code_r0x00016168;
    iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);
    DAT_00029294 = iVar12 == -1;
code_r0x00016236:
    FUN_00017d30();
    FUN_00015ce0(DAT_00029294);
    break;
  case '=':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);
      DAT_00029294 = iVar12 == 0;
      goto code_r0x00016236;
    }
    goto code_r0x00016168;
  case '>':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);
      DAT_00029294 = iVar12 == 1;
      goto code_r0x00016236;
    }
    goto code_r0x00016168;
  case 'A':
    uVar10 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    FUN_000189d0(uVar10);
    break;
  case 'B':
  case 'Z':
    DAT_000292b0 = uVar15;
    cVar7 = FUN_0001ab00(*DAT_000292bc);
    DAT_00029294 = cVar7 == '\0';
    FUN_00017d30();
    local_5c = DAT_00029278;
    local_58 = DAT_00029278 + DAT_000292ac * 0x1c;
    local_4c = *(int *)(local_58 + 4);
    iVar12 = DAT_000292b0 + 1;
    uVar2 = *(undefined1 *)(local_4c + DAT_000292b0);
    DAT_000292b0 = DAT_000292b0 + 2;
    uVar9 = DAT_000292ac;
    if (cVar8 == 'J') goto code_r0x0001696a;
    if (cVar8 == 'B') {
      if (DAT_00029294 != 0) goto code_r0x0001696a;
    }
    else if ((cVar8 == 'Z') && (DAT_00029294 == 0)) goto code_r0x0001696a;
    local_54 = *(uint *)(local_58 + 0xc);
    goto LAB_00015e08;
  case 'C':
    local_58 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      local_58 = (uint)*(byte *)(local_4c + 2 + DAT_000292b0) + (local_58 & 0x7f) * 0x100;
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    iVar12 = local_58 * 0x1c;
    if (*(char *)(local_5c + iVar12) == '\0') {
      pcVar11 = "Function %s not defined.";
      goto code_r0x000168af;
    }
    FUN_00018c90(&DAT_000292ac,local_58);
    for (puVar3 = *(undefined4 **)(DAT_00029278 + 0x18 + iVar12); puVar3 != (undefined4 *)0x0;
        puVar3 = (undefined4 *)puVar3[2]) {
      FUN_00018a90(*puVar3);
    }
    FUN_00017d00(DAT_000292ac);
    FUN_00017d00(DAT_000292b0);
    FUN_00017d00(DAT_000292a4);
    DAT_000292b0 = 0;
    DAT_000292ac = local_58;
    local_5c = DAT_00029278;
    local_54 = *(uint *)(DAT_00029278 + 0xc + iVar12);
    uVar9 = local_58;
    goto LAB_00015e08;
  case 'D':
    DAT_000292b0 = uVar15;
    FUN_00017d70(*DAT_000292bc);
    break;
  case 'J':
    iVar12 = DAT_000292b0 + 2;
    uVar2 = *(undefined1 *)(local_4c + uVar15);
    DAT_000292b0 = DAT_000292b0 + 3;
code_r0x0001696a:
    uVar4 = CONCAT11(*(undefined1 *)(local_4c + iVar12),uVar2);
    uVar15 = (uint)(uVar4 >> 6);
    iVar14 = *(int *)(local_58 + 0x10);
    iVar12 = uVar15 - 1;
    if (uVar15 != 0) {
      do {
        iVar12 = iVar12 + -1;
        iVar14 = *(int *)(iVar14 + 0x100);
      } while (iVar12 != -1);
    }
    if (iVar14 == 0) {
      pcVar11 = "Internal error.";
      goto code_r0x000168af;
    }
    DAT_000292b0 = *(uint *)(iVar14 + (uVar4 & 0x3f) * 4);
    local_54 = *(uint *)(local_58 + 0xc);
    goto LAB_00015e08;
  case 'K':
    iVar12 = DAT_000292a4;
    if (uVar9 != 0) {
      iVar12 = *DAT_00029250;
    }
    if (iVar12 == 10) {
      DAT_000292b0 = uVar15;
      FUN_00015a60(&DAT_000292ac);
      goto code_r0x00016ba1;
    }
    DAT_000292b0 = uVar15;
    FUN_00015720(FUN_000155d0,iVar12);
    break;
  case 'L':
    uVar10 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    FUN_000185f0(uVar10);
    break;
  case 'M':
    uVar10 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    FUN_000187e0(uVar10);
    break;
  case 'O':
    DAT_000292b0 = uVar15;
code_r0x0001685c:
    uVar9 = DAT_000292b0 + 1;
    cVar8 = *(char *)(local_4c + DAT_000292b0);
    uVar15 = uVar9;
    if (cVar8 != '\"') {
      if (cVar8 != '\\') goto code_r0x00016844;
      DAT_000292b0 = DAT_000292b0 + 2;
      uVar15 = DAT_000292b0;
      if (*(char *)(local_4c + uVar9) != '\"') goto code_r0x0001688b;
    }
    DAT_000292b0 = uVar15;
    fflush(*(FILE **)puVar5);
    FUN_0001d320(*(undefined4 *)puVar5);
    break;
  case 'P':
  case 'W':
    DAT_000292b0 = uVar15;
    FUN_0001cab0(*DAT_000292bc,DAT_00029280,PTR_FUN_00028ffc,DAT_000291ec);
    if (cVar8 == 'W') {
      FUN_00018f50(10);
    }
    FUN_000180f0(4);
    puVar6 = PTR_stdout_00028fec;
    fflush(*(FILE **)PTR_stdout_00028fec);
    FUN_0001d320(*(undefined4 *)puVar6);
    FUN_00017d30();
    break;
  case 'R':
    if (uVar9 != 0) {
      DAT_000292b0 = uVar15;
      FUN_00018bc0(*(undefined4 *)(local_58 + 0x18));
      FUN_00018bc0(*(undefined4 *)(DAT_000292ac * 0x1c + DAT_00029278 + 0x14));
      FUN_00017ca0();
      DAT_000292b0 = FUN_00017ca0();
      uVar9 = FUN_00017ca0();
      local_5c = DAT_00029278;
      local_54 = *(uint *)(DAT_00029278 + 0xc + uVar9 * 0x1c);
      DAT_000292ac = uVar9;
      goto LAB_00015e08;
    }
    pcVar11 = "Return from main program.";
    DAT_000292b0 = uVar15;
code_r0x000168af:
    FUN_00019f10(pcVar11);
    break;
  case 'S':
    uVar10 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    FUN_00018420(uVar10);
    break;
  case '^':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      FUN_0001c380(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc,&local_24,DAT_00029298);
      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);
      if ((cVar8 != '\0') && (cVar8 = FUN_0001aaf0(*DAT_000292bc), cVar8 != '\0')) {
        FUN_00019f10("divide by zero");
      }
      FUN_00017d30();
      FUN_00017d30();
      FUN_00017db0(local_24);
      FUN_0001aaa0(&local_24);
      goto code_r0x00016ba1;
    }
    goto code_r0x000160a5;
  case 'c':
    goto code_r0x00016658;
  case 'd':
    uVar10 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    FUN_000186b0(uVar10);
    break;
  case 'h':
    DAT_000292b0 = uVar15;
    FUN_0001a000(0);
    break;
  case 'i':
    uVar10 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    FUN_000188a0(uVar10);
    break;
  case 'l':
    uVar10 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    FUN_00018500(uVar10);
    break;
  case 'n':
    DAT_000292b0 = uVar15;
    FUN_0001abd0(DAT_000292c8,*DAT_000292bc,DAT_000292bc,0);
    break;
  case 'p':
    DAT_000292b0 = uVar15;
    FUN_00017d30();
    goto code_r0x00016168;
  case 's':
    uVar10 = (uint)*(byte *)(local_4c + uVar15);
    uVar9 = DAT_000292b0 + 2;
    if ((char)*(byte *)(local_4c + uVar15) < '\0') {
      uVar10 = (uVar10 & 0x7f) * 0x100 + (uint)*(byte *)(local_4c + 2 + DAT_000292b0);
      uVar9 = DAT_000292b0 + 3;
    }
    DAT_000292b0 = uVar9;
    FUN_000180f0(uVar10);
    break;
  case 'w':
    cVar8 = *(char *)(local_4c + uVar15);
    DAT_000292b0 = DAT_000292b0 + 2;
    puVar3 = (undefined4 *)PTR_stdout_00028fec;
    while (PTR_stdout_00028fec = (undefined *)puVar3, cVar8 != '\"') {
      FUN_00019000(cVar8);
      cVar8 = *(char *)(*(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4) + DAT_000292b0);
      DAT_000292b0 = DAT_000292b0 + 1;
      puVar3 = (undefined4 *)PTR_stdout_00028fec;
    }
    fflush((FILE *)*puVar3);
    FUN_0001d320(*puVar3);
    break;
  case 'x':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      piVar1 = DAT_000292bc + 1;
      iVar12 = *DAT_000292bc;
      *DAT_000292bc = *(int *)*piVar1;
      *(int *)*piVar1 = iVar12;
      goto code_r0x00016168;
    }
    goto code_r0x000160a5;
  case '{':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      iVar12 = FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);
      DAT_00029294 = iVar12 < 1;
      FUN_00017d30();
      goto code_r0x00016b9c;
    }
    goto code_r0x000160a5;
  case '|':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      cVar8 = FUN_0001ab00(*(undefined4 *)DAT_000292bc[1]);
      bVar16 = true;
      if (cVar8 != '\0') {
        cVar8 = FUN_0001ab00(*DAT_000292bc);
        bVar16 = cVar8 == '\0';
      }
      DAT_00029294 = bVar16;
      FUN_00017d30();
      goto code_r0x00016b9c;
    }
code_r0x00016168:
    local_5c = DAT_00029278;
    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);
    uVar9 = DAT_000292ac;
    goto LAB_00015e08;
  case '}':
    DAT_000292b0 = uVar15;
    cVar8 = FUN_00017de0(2);
    if (cVar8 != '\0') {
      FUN_0001aac0(*(undefined4 *)DAT_000292bc[1],*DAT_000292bc);
      DAT_00029294 = (byte)~extraout_var >> 7;
      FUN_00017d30();
      goto code_r0x00016b9c;
    }
    goto code_r0x000160a5;
  }
  goto LAB_00015f30;
code_r0x00016658:
  DAT_000292b0 = DAT_000292b0 + 2;
  switch(*(undefined1 *)(local_4c + uVar15)) {
  case 0x49:
    FUN_00015720(FUN_00015600,DAT_000292a4);
    break;
  default:
    goto LAB_00015e08;
  case 0x4c:
    iVar12 = *DAT_000292bc;
    iVar14 = *(int *)(iVar12 + 8);
    if (((*(int *)(iVar12 + 4) == 1) && (iVar14 != 0)) && (**(char **)(iVar12 + 0x18) == '\0')) {
      FUN_0001c5a0(DAT_000292bc,iVar14);
    }
    else {
      FUN_0001c5a0(DAT_000292bc,*(int *)(iVar12 + 4) + iVar14);
    }
    break;
  case 0x52:
    iVar12 = FUN_0001c740(DAT_000292bc,DAT_00029298);
    if (iVar12 != 0) {
code_r0x000160a5:
      local_5c = DAT_00029278;
      local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);
      uVar9 = DAT_000292ac;
      goto LAB_00015e08;
    }
    FUN_00019f10("Square root of a negative number");
    goto code_r0x00016ba1;
  case 0x53:
    FUN_0001c5a0(DAT_000292bc,*(undefined4 *)(*DAT_000292bc + 8));
    break;
  case 0x58:
    FUN_00017d70(DAT_000292c8);
    uVar13 = func_0x000112e0();
    FUN_0001c5a0(DAT_000292bc,uVar13);
code_r0x00016ba1:
    local_5c = DAT_00029278;
    local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);
    uVar9 = DAT_000292ac;
    goto LAB_00015e08;
  }
LAB_00015f30:
  local_5c = DAT_00029278;
  local_54 = *(uint *)(DAT_00029278 + 0xc + DAT_000292ac * 0x1c);
  uVar9 = DAT_000292ac;
  goto LAB_00015e08;
code_r0x0001688b:
  switch(*(char *)(local_4c + uVar9)) {
  case '\\':
    cVar8 = '\\';
    uVar9 = DAT_000292b0;
    break;
  default:
    goto code_r0x0001685c;
  case 'a':
    cVar8 = '\a';
    uVar9 = DAT_000292b0;
    break;
  case 'b':
    cVar8 = '\b';
    uVar9 = DAT_000292b0;
    break;
  case 'f':
    cVar8 = '\f';
    uVar9 = DAT_000292b0;
    break;
  case 'n':
    cVar8 = '\n';
    uVar9 = DAT_000292b0;
    break;
  case 'q':
    cVar8 = '\"';
    uVar9 = DAT_000292b0;
    break;
  case 'r':
    cVar8 = '\r';
    uVar9 = DAT_000292b0;
    break;
  case 't':
    cVar8 = '\t';
    uVar9 = DAT_000292b0;
  }
code_r0x00016844:
  DAT_000292b0 = uVar9;
  FUN_00019000(cVar8);
  local_4c = *(int *)(DAT_000292ac * 0x1c + DAT_00029278 + 4);
  goto code_r0x0001685c;
}

