
/* WARNING: Removing unreachable block (ram,0x000b6ce0) */

int parse_string(char *string,char *from_file,int flags,char **endp)

{
  bool bVar1;
  undefined *puVar2;
  sigset_t *psVar3;
  int iVar4;
  undefined4 uVar5;
  char *pcVar6;
  int iVar7;
  undefined *puVar8;
  int old_running_trap;
  int iVar9;
  sigset_t *flags_00;
  int *piVar10;
  sigset_t *string_00;
  undefined *puVar11;
  code *pcVar12;
  int iStack_e8;
  int should_jump_to_top_level;
  COMMAND *command;
  sigset_t ps_sigmask;
  
  flags_00 = &ps_sigmask;
  psVar3 = *(sigset_t **)PTR___stack_chk_guard_001464dc;
  parse_prologue(string,flags,PTR_DAT_001445ac + -0x6c70);
  (*(code *)PTR_sigemptyset_001462d4)(flags_00);
  (*(code *)PTR_sigprocmask_00146514)(1,0);
  (*(code *)PTR_push_stream_00144a70)(0);
  iVar4 = (*(code *)PTR_parser_expanding_alias_00144818)();
  if (iVar4 != 0) {
    (*(code *)PTR_parser_save_alias_00145950)();
  }
  puVar2 = PTR_current_token_001448e8;
  puVar11 = PTR_global_command_00144830;
  string_00 = (sigset_t *)0x0;
  uVar5 = *(undefined4 *)PTR_global_command_00144830;
  (*(code *)PTR_with_input_from_string_00145948)(string);
  pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);
  puVar8 = PTR_DAT_001445ac + -0x6c5c;
  while (bVar1 = false, *pcVar6 != '\0') {
    string_00 = (sigset_t *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);
    if (string_00 != (sigset_t *)0x0) {
      if ((char *)((int)string_00[-1].__val + 0x7f) < &DAT_00000004) {
        bVar1 = true;
        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);
        break;
      }
      (*(code *)PTR_sigprocmask_00146514)(3,&ps_sigmask,0);
      from_file = (char *)0x3;
      flags_00 = string_00;
      (*(code *)PTR_command_error_001445e4)(puVar8,3,string_00,0);
    }
    bVar1 = false;
    iVar4 = (*(code *)PTR_parse_command_00144844)();
    if (iVar4 != 0) {
      if ((flags & 0x40U) == 0) {
        string_00 = (sigset_t *)0x2;
        bVar1 = true;
        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);
      }
      else {
        (*(code *)PTR_reset_parser_00144934)();
        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);
      }
      break;
    }
    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar11);
    *(undefined4 *)puVar11 = 0;
    pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);
    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))
    break;
  }
  iVar4 = (int)pcVar6 - (int)string;
  *(undefined4 *)PTR_global_command_00144830 = uVar5;
  if (endp != (char **)0x0) {
    *endp = pcVar6;
  }
  (*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);
  if (bVar1) {
    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {
      (*(code *)PTR_top_level_cleanup_00144fb0)();
    }
    iVar4 = -2;
    if (string_00 != (sigset_t *)0x2) {
      (*(code *)PTR_jump_to_top_level_00144808)();
      goto LAB_000b6e6c;
    }
  }
  string_00 = psVar3;
  if (psVar3 == *(sigset_t **)PTR___stack_chk_guard_001464dc) {
    return iVar4;
  }
LAB_000b6e6c:
  puVar11 = PTR___stack_chk_fail_00146488;
  (*(code *)PTR___stack_chk_fail_00146488)();
  piVar10 = *(int **)(puVar11 + 0x8de44);
  old_running_trap = **(int **)(puVar11 + 0x8dd38);
  iStack_e8 = 0;
  iVar4 = *piVar10;
  iVar9 = *(int *)(puVar11 + 0x8d734);
  if (iVar4 != 0) goto LAB_000b6f80;
  while( true ) {
    if (iStack_e8 == 0) {
      iVar7 = parse_and_execute((char *)string_00,from_file,(int)flags_00);
    }
    else {
      parse_and_execute_cleanup(old_running_trap);
      iVar7 = **(int **)(puVar11 + 0x8deb0);
    }
    if (((iVar4 == 0) ||
        ((**(code **)(puVar11 + 0x8ddbc))(*(int *)(puVar11 + 0x8d734) + -0x6c4c), iStack_e8 == 0))
       || (**(int **)(puVar11 + 0x8de44) == 0)) break;
    iVar9 = *(int *)(puVar11 + 0x8deac);
    pcVar12 = *(code **)(puVar11 + 0x8f46c);
    **(int **)(puVar11 + 0x8deb0) = iVar7;
    (*pcVar12)(iVar9,1);
LAB_000b6f80:
    (**(code **)(puVar11 + 0x8ddb4))(iVar9 + -0x6c4c);
    (**(code **)(puVar11 + 0x8ddc4))(piVar10,4);
    (**(code **)(puVar11 + 0x8ddc4))(*(undefined4 *)(puVar11 + 0x8deac),0xf0);
    uVar5 = *(undefined4 *)(puVar11 + 0x8deac);
    pcVar12 = *(code **)(puVar11 + 0x8f68c);
    *piVar10 = *piVar10 + 1;
    iStack_e8 = (*pcVar12)(uVar5);
  }
  return iVar7;
}



/* WARNING: Removing unreachable block (ram,0x000b6ce0) */

int parse_string(int param_1,undefined4 param_2,uint param_3,undefined4 *param_4)

{
  bool bVar1;
  undefined *puVar2;
  int iVar3;
  undefined4 uVar4;
  char *pcVar5;
  int iVar6;
  undefined *puVar7;
  int iVar8;
  undefined4 uVar9;
  undefined1 *puVar10;
  int *piVar11;
  undefined1 *puVar12;
  undefined *puVar13;
  code *pcVar14;
  int iStack_e8;
  undefined1 auStack_94 [128];
  undefined1 *local_14;
  
  puVar10 = auStack_94;
  local_14 = *(undefined1 **)PTR___stack_chk_guard_001464dc;
  FUN_000b5cf4(param_1,param_3,PTR_DAT_001445ac + -0x6c70);
  (*(code *)PTR_sigemptyset_001462d4)(puVar10);
  (*(code *)PTR_sigprocmask_00146514)(1,0);
  (*(code *)PTR_push_stream_00144a70)(0);
  iVar3 = (*(code *)PTR_parser_expanding_alias_00144818)();
  if (iVar3 != 0) {
    (*(code *)PTR_parser_save_alias_00145950)();
  }
  puVar2 = PTR_current_token_001448e8;
  puVar13 = PTR_global_command_00144830;
  puVar12 = (undefined1 *)0x0;
  uVar4 = *(undefined4 *)PTR_global_command_00144830;
  (*(code *)PTR_with_input_from_string_00145948)(param_1);
  pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);
  puVar7 = PTR_DAT_001445ac + -0x6c5c;
  while (bVar1 = false, *pcVar5 != '\0') {
    puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);
    if (puVar12 != (undefined1 *)0x0) {
      if (puVar12 + -1 < &DAT_00000004) {
        bVar1 = true;
        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);
        break;
      }
      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);
      param_2 = 3;
      puVar10 = puVar12;
      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);
    }
    bVar1 = false;
    iVar3 = (*(code *)PTR_parse_command_00144844)();
    if (iVar3 != 0) {
      if ((param_3 & 0x40) == 0) {
        puVar12 = (undefined1 *)0x2;
        bVar1 = true;
        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);
      }
      else {
        (*(code *)PTR_reset_parser_00144934)();
        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);
      }
      break;
    }
    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);
    *(undefined4 *)puVar13 = 0;
    pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);
    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))
    break;
  }
  param_1 = (int)pcVar5 - param_1;
  *(undefined4 *)PTR_global_command_00144830 = uVar4;
  if (param_4 != (undefined4 *)0x0) {
    *param_4 = pcVar5;
  }
  (*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);
  if (bVar1) {
    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {
      (*(code *)PTR_top_level_cleanup_00144fb0)();
    }
    param_1 = -2;
    if (puVar12 != (undefined1 *)0x2) {
      (*(code *)PTR_jump_to_top_level_00144808)();
      goto LAB_000b6e6c;
    }
  }
  puVar12 = local_14;
  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc) {
    return param_1;
  }
LAB_000b6e6c:
  puVar13 = PTR___stack_chk_fail_00146488;
  (*(code *)PTR___stack_chk_fail_00146488)();
  piVar11 = *(int **)(puVar13 + 0x8de44);
  uVar4 = **(undefined4 **)(puVar13 + 0x8dd38);
  iStack_e8 = 0;
  iVar3 = *piVar11;
  iVar8 = *(int *)(puVar13 + 0x8d734);
  if (iVar3 != 0) goto LAB_000b6f80;
  while( true ) {
    if (iStack_e8 == 0) {
      iVar6 = parse_and_execute(puVar12,param_2,puVar10);
    }
    else {
      parse_and_execute_cleanup(uVar4);
      iVar6 = **(int **)(puVar13 + 0x8deb0);
    }
    if (((iVar3 == 0) ||
        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))
       || (**(int **)(puVar13 + 0x8de44) == 0)) break;
    iVar8 = *(int *)(puVar13 + 0x8deac);
    pcVar14 = *(code **)(puVar13 + 0x8f46c);
    **(int **)(puVar13 + 0x8deb0) = iVar6;
    (*pcVar14)(iVar8,1);
LAB_000b6f80:
    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);
    (**(code **)(puVar13 + 0x8ddc4))(piVar11,4);
    (**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);
    uVar9 = *(undefined4 *)(puVar13 + 0x8deac);
    pcVar14 = *(code **)(puVar13 + 0x8f68c);
    *piVar11 = *piVar11 + 1;
    iStack_e8 = (*pcVar14)(uVar9);
  }
  return iVar6;
}


lui gp,0x9
addiu gp,gp,0x59b4
addu gp,gp,t9
addiu sp,sp,-0xd8
lw v0,-0x6064(gp)
lw t9,-0x6d9c(gp)
sw s1,0xd0(sp)
or s1,a1,zero
sw a2,0xe0(sp)
or a1,a2,zero
sw ra,0xd4(sp)
addiu t9,t9,0x5cf4
sw a3,0x20(sp)
sw gp,0x10(sp)
sw s0,0xcc(sp)
addiu s0,sp,0x44
sw a0,0x1c(sp)
lw a2,-0x7f94(gp)
lw v0,0x0(v0)
addiu a2,a2,-0x6c70
sw v0,0xc4(sp)
bal 0x000b5cf4
_nop
lw gp,0x10(sp)
lw t9,-0x626c(gp)
jalr t9
_or a0,s0,zero
or a1,zero,zero
lw gp,0x10(sp)
li a0,0x1
lw t9,-0x602c(gp)
jalr t9
_or a2,s0,zero
lw gp,0x10(sp)
lw t9,-0x7ad0(gp)
jalr t9
_or a0,zero,zero
lw gp,0x10(sp)
lw t9,-0x7d28(gp)
jalr t9
_nop
beq v0,zero,0x000b6c48
_lw gp,0x10(sp)
lw t9,-0x6bf0(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw v0,-0x7c58(gp)
or a1,s1,zero
lw s0,-0x7d10(gp)
or s1,zero,zero
lw t9,-0x6bf8(gp)
lw a0,0x1c(sp)
sw v0,0x34(sp)
addiu v0,sp,0x44
sw zero,0x3c(sp)
sw v0,0x28(sp)
lw v0,0x0(s0)
jalr t9
_sw v0,0x24(sp)
lw gp,0x10(sp)
sw s0,0x30(sp)
lw v0,-0x7e9c(gp)
lw v1,-0x7f94(gp)
lw v0,0x8(v0)
addiu v1,v1,-0x6c5c
sw v1,0x2c(sp)
lb v1,0x0(v0)
beq v1,zero,0x000b6d00
_lw a0,-0x7f68(gp)
lw t9,-0x603c(gp)
sw zero,0x40(sp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x000b6db4
_or s1,v0,zero
addiu v0,v0,-0x1
sw zero,0x3c(sp)
sltiu v0,v0,0x4
beq v0,zero,0x000b6d84
_lw t9,-0x602c(gp)
lw v0,0x40(sp)
beq v0,zero,0x000b6cf0
_lw t9,-0x7ce0(gp)
lw a0,0x40(sp)
jalr t9
_nop
lw gp,0x10(sp)
li v0,0x1
sw v0,0x3c(sp)
lw v0,-0x7e9c(gp)
lw v0,0x8(v0)
lw v1,0x1c(sp)
lw a0,0x24(sp)
subu s0,v0,v1
lw v1,-0x7d10(gp)
sw a0,0x0(v1)
lw v1,0x20(sp)
beq v1,zero,0x000b6d24
_nop
sw v0,0x0(v1)
lw a0,-0x7f94(gp)
lw t9,-0x790c(gp)
jalr t9
_addiu a0,a0,-0x6c70
lw v0,0x3c(sp)
beq v0,zero,0x000b6d5c
_lw gp,0x10(sp)
lw v0,-0x7c44(gp)
lw v0,0x0(v0)
beq v0,zero,0x000b6e38
_lw t9,-0x7590(gp)
li v0,0x2
bne s1,v0,0x000b6e60
_li s0,-0x2
lw v1,-0x6064(gp)
or v0,s0,zero
lw a0,0xc4(sp)
lw v1,0x0(v1)
bne a0,v1,0x000b6e6c
_lw ra,0xd4(sp)
lw s1,0xd0(sp)
lw s0,0xcc(sp)
jr ra
_addiu sp,sp,0xd8
or a2,zero,zero
lw a1,0x28(sp)
jalr t9
_li a0,0x3
or a3,zero,zero
lw gp,0x10(sp)
li a1,0x3
lw a0,0x2c(sp)
lw t9,-0x7f5c(gp)
jalr t9
_or a2,s1,zero
lw gp,0x10(sp)
lw t9,-0x7cfc(gp)
jalr t9
_nop
beq v0,zero,0x000b6df0
_lw gp,0x10(sp)
lw v0,0xe0(sp)
andi v0,v0,0x40
bne v0,zero,0x000b6e48
_lw t9,-0x7c0c(gp)
li v0,0x1
li s1,0x2
sw v0,0x3c(sp)
lw v0,-0x7e9c(gp)
b 0x000b6d00
_lw v0,0x8(v0)
lw s0,0x30(sp)
lw t9,-0x7ce0(gp)
jalr t9
_lw a0,0x0(s0)
li a0,0x130
lw gp,0x10(sp)
lw v0,0x34(sp)
sw zero,0x0(s0)
lw v1,0x0(v0)
lw v0,-0x7e9c(gp)
beq v1,a0,0x000b6d00
_lw v0,0x8(v0)
lw a0,-0x7ba0(gp)
lw a0,0x0(a0)
bne v1,a0,0x000b6c98
_lw v1,0x1c(sp)
b 0x000b6d08
_lw a0,0x24(sp)
jalr t9
_nop
b 0x000b6d50
_lw gp,0x10(sp)
jalr t9
_nop
lw gp,0x10(sp)
lw v0,-0x7e9c(gp)
b 0x000b6d00
_lw v0,0x8(v0)
lw t9,-0x7d38(gp)
jalr t9
_or a0,s1,zero
lw t9,-0x60b8(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Removing unreachable block (ram,0x000b6ce0) */\n\nint parse_string(int param_1,undefined4 param_2,uint param_3,undefined4 *param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined1 *puVar10;\n  int *piVar11;\n  undefined1 *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int iStack_e8;\n  undefined1 auStack_94 [128];\n  undefined1 *local_14;\n  \n  puVar10 = auStack_94;\n  local_14 = *(undefined1 **)PTR___stack_chk_guard_001464dc;\n  FUN_000b5cf4(param_1,param_3,PTR_DAT_001445ac + -0x6c70);\n  (*(code *)PTR_sigemptyset_001462d4)(puVar10);\n  (*(code *)PTR_sigprocmask_00146514)(1,0);\n  (*(code *)PTR_push_stream_00144a70)(0);\n  iVar3 = (*(code *)PTR_parser_expanding_alias_00144818)();\n  if (iVar3 != 0) {\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }\n  puVar2 = PTR_current_token_001448e8;\n  puVar13 = PTR_global_command_00144830;\n  puVar12 = (undefined1 *)0x0;\n  uVar4 = *(undefined4 *)PTR_global_command_00144830;\n  (*(code *)PTR_with_input_from_string_00145948)(param_1);\n  pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n  puVar7 = PTR_DAT_001445ac + -0x6c5c;\n  while (bVar1 = false, *pcVar5 != '\0') {\n    puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }\n    bVar1 = false;\n    iVar3 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);\n    *(undefined4 *)puVar13 = 0;\n    pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }\n  param_1 = (int)pcVar5 - param_1;\n  *(undefined4 *)PTR_global_command_00144830 = uVar4;\n  if (param_4 != (undefined4 *)0x0) {\n    *param_4 = pcVar5;\n  }\n  (*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);\n  if (bVar1) {\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    param_1 = -2;\n    if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }\n  puVar12 = local_14;\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc) {\n    return param_1;\n  }\nLAB_000b6e6c:\n  puVar13 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  piVar11 = *(int **)(puVar13 + 0x8de44);\n  uVar4 = **(undefined4 **)(puVar13 + 0x8dd38);\n  iStack_e8 = 0;\n  iVar3 = *piVar11;\n  iVar8 = *(int *)(puVar13 + 0x8d734);\n  if (iVar3 != 0) goto LAB_000b6f80;\n  while( true ) {\n    if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }\n    if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;\n    iVar8 = *(int *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f46c);\n    **(int **)(puVar13 + 0x8deb0) = iVar6;\n    (*pcVar14)(iVar8,1);\nLAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);\n    (**(code **)(puVar13 + 0x8ddc4))(piVar11,4);\n    (**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);\n    uVar9 = *(undefined4 *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f68c);\n    *piVar11 = *piVar11 + 1;\n    iStack_e8 = (*pcVar14)(uVar9);\n  }\n  return iVar6;\n}\n\n" comment (function_definition "int parse_string(int param_1,undefined4 param_2,uint param_3,undefined4 *param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined1 *puVar10;\n  int *piVar11;\n  undefined1 *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int iStack_e8;\n  undefined1 auStack_94 [128];\n  undefined1 *local_14;\n  \n  puVar10 = auStack_94;\n  local_14 = *(undefined1 **)PTR___stack_chk_guard_001464dc;\n  FUN_000b5cf4(param_1,param_3,PTR_DAT_001445ac + -0x6c70);\n  (*(code *)PTR_sigemptyset_001462d4)(puVar10);\n  (*(code *)PTR_sigprocmask_00146514)(1,0);\n  (*(code *)PTR_push_stream_00144a70)(0);\n  iVar3 = (*(code *)PTR_parser_expanding_alias_00144818)();\n  if (iVar3 != 0) {\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }\n  puVar2 = PTR_current_token_001448e8;\n  puVar13 = PTR_global_command_00144830;\n  puVar12 = (undefined1 *)0x0;\n  uVar4 = *(undefined4 *)PTR_global_command_00144830;\n  (*(code *)PTR_with_input_from_string_00145948)(param_1);\n  pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n  puVar7 = PTR_DAT_001445ac + -0x6c5c;\n  while (bVar1 = false, *pcVar5 != '\0') {\n    puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }\n    bVar1 = false;\n    iVar3 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);\n    *(undefined4 *)puVar13 = 0;\n    pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }\n  param_1 = (int)pcVar5 - param_1;\n  *(undefined4 *)PTR_global_command_00144830 = uVar4;\n  if (param_4 != (undefined4 *)0x0) {\n    *param_4 = pcVar5;\n  }\n  (*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);\n  if (bVar1) {\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    param_1 = -2;\n    if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }\n  puVar12 = local_14;\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc) {\n    return param_1;\n  }\nLAB_000b6e6c:\n  puVar13 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  piVar11 = *(int **)(puVar13 + 0x8de44);\n  uVar4 = **(undefined4 **)(puVar13 + 0x8dd38);\n  iStack_e8 = 0;\n  iVar3 = *piVar11;\n  iVar8 = *(int *)(puVar13 + 0x8d734);\n  if (iVar3 != 0) goto LAB_000b6f80;\n  while( true ) {\n    if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }\n    if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;\n    iVar8 = *(int *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f46c);\n    **(int **)(puVar13 + 0x8deb0) = iVar6;\n    (*pcVar14)(iVar8,1);\nLAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);\n    (**(code **)(puVar13 + 0x8ddc4))(piVar11,4);\n    (**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);\n    uVar9 = *(undefined4 *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f68c);\n    *piVar11 = *piVar11 + 1;\n    iStack_e8 = (*pcVar14)(uVar9);\n  }\n  return iVar6;\n}" primitive_type (function_declarator "parse_string(int param_1,undefined4 param_2,uint param_3,undefined4 *param_4)" identifier (parameter_list "(int param_1,undefined4 param_2,uint param_3,undefined4 *param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined1 *puVar10;\n  int *piVar11;\n  undefined1 *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int iStack_e8;\n  undefined1 auStack_94 [128];\n  undefined1 *local_14;\n  \n  puVar10 = auStack_94;\n  local_14 = *(undefined1 **)PTR___stack_chk_guard_001464dc;\n  FUN_000b5cf4(param_1,param_3,PTR_DAT_001445ac + -0x6c70);\n  (*(code *)PTR_sigemptyset_001462d4)(puVar10);\n  (*(code *)PTR_sigprocmask_00146514)(1,0);\n  (*(code *)PTR_push_stream_00144a70)(0);\n  iVar3 = (*(code *)PTR_parser_expanding_alias_00144818)();\n  if (iVar3 != 0) {\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }\n  puVar2 = PTR_current_token_001448e8;\n  puVar13 = PTR_global_command_00144830;\n  puVar12 = (undefined1 *)0x0;\n  uVar4 = *(undefined4 *)PTR_global_command_00144830;\n  (*(code *)PTR_with_input_from_string_00145948)(param_1);\n  pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n  puVar7 = PTR_DAT_001445ac + -0x6c5c;\n  while (bVar1 = false, *pcVar5 != '\0') {\n    puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }\n    bVar1 = false;\n    iVar3 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);\n    *(undefined4 *)puVar13 = 0;\n    pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }\n  param_1 = (int)pcVar5 - param_1;\n  *(undefined4 *)PTR_global_command_00144830 = uVar4;\n  if (param_4 != (undefined4 *)0x0) {\n    *param_4 = pcVar5;\n  }\n  (*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);\n  if (bVar1) {\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    param_1 = -2;\n    if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }\n  puVar12 = local_14;\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc) {\n    return param_1;\n  }\nLAB_000b6e6c:\n  puVar13 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  piVar11 = *(int **)(puVar13 + 0x8de44);\n  uVar4 = **(undefined4 **)(puVar13 + 0x8dd38);\n  iStack_e8 = 0;\n  iVar3 = *piVar11;\n  iVar8 = *(int *)(puVar13 + 0x8d734);\n  if (iVar3 != 0) goto LAB_000b6f80;\n  while( true ) {\n    if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }\n    if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;\n    iVar8 = *(int *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f46c);\n    **(int **)(puVar13 + 0x8deb0) = iVar6;\n    (*pcVar14)(iVar8,1);\nLAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);\n    (**(code **)(puVar13 + 0x8ddc4))(piVar11,4);\n    (**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);\n    uVar9 = *(undefined4 *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f68c);\n    *piVar11 = *piVar11 + 1;\n    iStack_e8 = (*pcVar14)(uVar9);\n  }\n  return iVar6;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int iStack_e8;" primitive_type identifier ;) (declaration "undefined1 auStack_94 [128];" type_identifier (array_declarator "auStack_94 [128]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_14;" type_identifier (pointer_declarator "*local_14" * identifier) ;) (expression_statement "puVar10 = auStack_94;" (assignment_expression "puVar10 = auStack_94" identifier = identifier) ;) (expression_statement "local_14 = *(undefined1 **)PTR___stack_chk_guard_001464dc;" (assignment_expression "local_14 = *(undefined1 **)PTR___stack_chk_guard_001464dc" identifier = (pointer_expression "*(undefined1 **)PTR___stack_chk_guard_001464dc" * (cast_expression "(undefined1 **)PTR___stack_chk_guard_001464dc" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "FUN_000b5cf4(param_1,param_3,PTR_DAT_001445ac + -0x6c70);" (call_expression "FUN_000b5cf4(param_1,param_3,PTR_DAT_001445ac + -0x6c70)" identifier (argument_list "(param_1,param_3,PTR_DAT_001445ac + -0x6c70)" ( identifier , identifier , (binary_expression "PTR_DAT_001445ac + -0x6c70" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(puVar10);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(puVar10)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar10)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,0)" ( number_literal , number_literal ))) ;) (expression_statement "(*(code *)PTR_push_stream_00144a70)(0);" (call_expression "(*(code *)PTR_push_stream_00144a70)(0)" (parenthesized_expression "(*(code *)PTR_push_stream_00144a70)" ( (pointer_expression "*(code *)PTR_push_stream_00144a70" * (cast_expression "(code *)PTR_push_stream_00144a70" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))) ;) (expression_statement "iVar3 = (*(code *)PTR_parser_expanding_alias_00144818)();" (assignment_expression "iVar3 = (*(code *)PTR_parser_expanding_alias_00144818)()" identifier = (call_expression "(*(code *)PTR_parser_expanding_alias_00144818)()" (parenthesized_expression "(*(code *)PTR_parser_expanding_alias_00144818)" ( (pointer_expression "*(code *)PTR_parser_expanding_alias_00144818" * (cast_expression "(code *)PTR_parser_expanding_alias_00144818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 != 0) {\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }" { (expression_statement "(*(code *)PTR_parser_save_alias_00145950)();" (call_expression "(*(code *)PTR_parser_save_alias_00145950)()" (parenthesized_expression "(*(code *)PTR_parser_save_alias_00145950)" ( (pointer_expression "*(code *)PTR_parser_save_alias_00145950" * (cast_expression "(code *)PTR_parser_save_alias_00145950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "puVar2 = PTR_current_token_001448e8;" (assignment_expression "puVar2 = PTR_current_token_001448e8" identifier = identifier) ;) (expression_statement "puVar13 = PTR_global_command_00144830;" (assignment_expression "puVar13 = PTR_global_command_00144830" identifier = identifier) ;) (expression_statement "puVar12 = (undefined1 *)0x0;" (assignment_expression "puVar12 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar4 = *(undefined4 *)PTR_global_command_00144830;" (assignment_expression "uVar4 = *(undefined4 *)PTR_global_command_00144830" identifier = (pointer_expression "*(undefined4 *)PTR_global_command_00144830" * (cast_expression "(undefined4 *)PTR_global_command_00144830" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)PTR_with_input_from_string_00145948)(param_1);" (call_expression "(*(code *)PTR_with_input_from_string_00145948)(param_1)" (parenthesized_expression "(*(code *)PTR_with_input_from_string_00145948)" ( (pointer_expression "*(code *)PTR_with_input_from_string_00145948" * (cast_expression "(code *)PTR_with_input_from_string_00145948" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8)" identifier = (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" * (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" ( (binary_expression "PTR_bash_input_001446a4 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = PTR_DAT_001445ac + -0x6c5c;" (assignment_expression "puVar7 = PTR_DAT_001445ac + -0x6c5c" identifier = (binary_expression "PTR_DAT_001445ac + -0x6c5c" identifier + number_literal)) ;) (while_statement "while (bVar1 = false, *pcVar5 != '\0') {\n    puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }\n    bVar1 = false;\n    iVar3 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);\n    *(undefined4 *)puVar13 = 0;\n    pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }" while (parenthesized_expression "(bVar1 = false, *pcVar5 != '\0')" ( (comma_expression "bVar1 = false, *pcVar5 != '\0'" (assignment_expression "bVar1 = false" identifier = false) , (binary_expression "*pcVar5 != '\0'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n    puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }\n    bVar1 = false;\n    iVar3 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);\n    *(undefined4 *)puVar13 = 0;\n    pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }" { (expression_statement "puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);" (assignment_expression "puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8)" (parenthesized_expression "(*(code *)PTR__setjmp_00146504)" ( (pointer_expression "*(code *)PTR__setjmp_00146504" * (cast_expression "(code *)PTR__setjmp_00146504" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_top_level_001445d8)" ( identifier ))))) ;) (if_statement "if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }" if (parenthesized_expression "(puVar12 != (undefined1 *)0x0)" ( (binary_expression "puVar12 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }" { (if_statement "if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }" if (parenthesized_expression "(puVar12 + -1 < &DAT_00000004)" ( (binary_expression "puVar12 + -1 < &DAT_00000004" (binary_expression "puVar12 + -1" identifier + number_literal) < (pointer_expression "&DAT_00000004" & identifier)) )) (compound_statement "{\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8)" identifier = (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" * (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" ( (binary_expression "PTR_bash_input_001446a4 + 8" identifier + number_literal) ))))) ;) (break_statement "break;" break ;) })) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,auStack_94,0)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "param_2 = 3;" (assignment_expression "param_2 = 3" identifier = number_literal) ;) (expression_statement "puVar10 = puVar12;" (assignment_expression "puVar10 = puVar12" identifier = identifier) ;) (expression_statement "(*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);" (call_expression "(*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0)" (parenthesized_expression "(*(code *)PTR_command_error_001445e4)" ( (pointer_expression "*(code *)PTR_command_error_001445e4" * (cast_expression "(code *)PTR_command_error_001445e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar7,3,puVar12,0)" ( identifier , number_literal , identifier , number_literal ))) ;) })) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "iVar3 = (*(code *)PTR_parse_command_00144844)();" (assignment_expression "iVar3 = (*(code *)PTR_parse_command_00144844)()" identifier = (call_expression "(*(code *)PTR_parse_command_00144844)()" (parenthesized_expression "(*(code *)PTR_parse_command_00144844)" ( (pointer_expression "*(code *)PTR_parse_command_00144844" * (cast_expression "(code *)PTR_parse_command_00144844" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }" { (if_statement "if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }" if (parenthesized_expression "((param_3 & 0x40) == 0)" ( (binary_expression "(param_3 & 0x40) == 0" (parenthesized_expression "(param_3 & 0x40)" ( (binary_expression "param_3 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }" { (expression_statement "puVar12 = (undefined1 *)0x2;" (assignment_expression "puVar12 = (undefined1 *)0x2" identifier = (cast_expression "(undefined1 *)0x2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8)" identifier = (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" * (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" ( (binary_expression "PTR_bash_input_001446a4 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }" else (compound_statement "{\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }" { (expression_statement "(*(code *)PTR_reset_parser_00144934)();" (call_expression "(*(code *)PTR_reset_parser_00144934)()" (parenthesized_expression "(*(code *)PTR_reset_parser_00144934)" ( (pointer_expression "*(code *)PTR_reset_parser_00144934" * (cast_expression "(code *)PTR_reset_parser_00144934" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8)" identifier = (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" * (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" ( (binary_expression "PTR_bash_input_001446a4 + 8" identifier + number_literal) ))))) ;) }))) (break_statement "break;" break ;) })) (expression_statement "(*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);" (call_expression "(*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13)" (parenthesized_expression "(*(code *)PTR_dispose_command_00144860)" ( (pointer_expression "*(code *)PTR_dispose_command_00144860" * (cast_expression "(code *)PTR_dispose_command_00144860" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)puVar13)" ( (pointer_expression "*(undefined4 *)puVar13" * (cast_expression "(undefined4 *)puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "*(undefined4 *)puVar13 = 0;" (assignment_expression "*(undefined4 *)puVar13 = 0" (pointer_expression "*(undefined4 *)puVar13" * (cast_expression "(undefined4 *)puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8)" identifier = (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" * (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" ( (binary_expression "PTR_bash_input_001446a4 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;" if (parenthesized_expression "((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))" ( (binary_expression "(*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0)" (parenthesized_expression "(*(int *)puVar2 == 0x130)" ( (binary_expression "*(int *)puVar2 == 0x130" (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) || (parenthesized_expression "(*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0)" ( (binary_expression "*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0" (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*(int *)PTR_shell_eof_token_001449a0" * (cast_expression "(int *)PTR_shell_eof_token_001449a0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) (break_statement "break;" break ;)) })) (expression_statement "param_1 = (int)pcVar5 - param_1;" (assignment_expression "param_1 = (int)pcVar5 - param_1" identifier = (binary_expression "(int)pcVar5 - param_1" (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "*(undefined4 *)PTR_global_command_00144830 = uVar4;" (assignment_expression "*(undefined4 *)PTR_global_command_00144830 = uVar4" (pointer_expression "*(undefined4 *)PTR_global_command_00144830" * (cast_expression "(undefined4 *)PTR_global_command_00144830" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (param_4 != (undefined4 *)0x0) {\n    *param_4 = pcVar5;\n  }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_4 = pcVar5;\n  }" { (expression_statement "*param_4 = pcVar5;" (assignment_expression "*param_4 = pcVar5" (pointer_expression "*param_4" * identifier) = identifier) ;) })) (expression_statement "(*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);" (call_expression "(*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70)" (parenthesized_expression "(*(code *)PTR_run_unwind_frame_00144c34)" ( (pointer_expression "*(code *)PTR_run_unwind_frame_00144c34" * (cast_expression "(code *)PTR_run_unwind_frame_00144c34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_001445ac + -0x6c70)" ( (binary_expression "PTR_DAT_001445ac + -0x6c70" identifier + number_literal) ))) ;) (if_statement "if (bVar1) {\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    param_1 = -2;\n    if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    param_1 = -2;\n    if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }" { (if_statement "if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }" if (parenthesized_expression "(*(int *)PTR_parse_and_execute_level_001448fc == 0)" ( (binary_expression "*(int *)PTR_parse_and_execute_level_001448fc == 0" (pointer_expression "*(int *)PTR_parse_and_execute_level_001448fc" * (cast_expression "(int *)PTR_parse_and_execute_level_001448fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }" { (expression_statement "(*(code *)PTR_top_level_cleanup_00144fb0)();" (call_expression "(*(code *)PTR_top_level_cleanup_00144fb0)()" (parenthesized_expression "(*(code *)PTR_top_level_cleanup_00144fb0)" ( (pointer_expression "*(code *)PTR_top_level_cleanup_00144fb0" * (cast_expression "(code *)PTR_top_level_cleanup_00144fb0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "param_1 = -2;" (assignment_expression "param_1 = -2" identifier = number_literal) ;) (if_statement "if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }" if (parenthesized_expression "(puVar12 != (undefined1 *)0x2)" ( (binary_expression "puVar12 != (undefined1 *)0x2" identifier != (cast_expression "(undefined1 *)0x2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }" { (expression_statement "(*(code *)PTR_jump_to_top_level_00144808)();" (call_expression "(*(code *)PTR_jump_to_top_level_00144808)()" (parenthesized_expression "(*(code *)PTR_jump_to_top_level_00144808)" ( (pointer_expression "*(code *)PTR_jump_to_top_level_00144808" * (cast_expression "(code *)PTR_jump_to_top_level_00144808" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_000b6e6c;" goto statement_identifier ;) })) })) (expression_statement "puVar12 = local_14;" (assignment_expression "puVar12 = local_14" identifier = identifier) ;) (if_statement "if (local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc) {\n    return param_1;\n  }" if (parenthesized_expression "(local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc)" ( (binary_expression "local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc" identifier == (pointer_expression "*(undefined1 **)PTR___stack_chk_guard_001464dc" * (cast_expression "(undefined1 **)PTR___stack_chk_guard_001464dc" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return param_1;\n  }" { (return_statement "return param_1;" return identifier ;) })) (labeled_statement "LAB_000b6e6c:\n  puVar13 = PTR___stack_chk_fail_00146488;" statement_identifier : (expression_statement "puVar13 = PTR___stack_chk_fail_00146488;" (assignment_expression "puVar13 = PTR___stack_chk_fail_00146488" identifier = identifier) ;)) (expression_statement "(*(code *)PTR___stack_chk_fail_00146488)();" (call_expression "(*(code *)PTR___stack_chk_fail_00146488)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00146488)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00146488" * (cast_expression "(code *)PTR___stack_chk_fail_00146488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar11 = *(int **)(puVar13 + 0x8de44);" (assignment_expression "piVar11 = *(int **)(puVar13 + 0x8de44)" identifier = (pointer_expression "*(int **)(puVar13 + 0x8de44)" * (cast_expression "(int **)(puVar13 + 0x8de44)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8de44)" ( (binary_expression "puVar13 + 0x8de44" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = **(undefined4 **)(puVar13 + 0x8dd38);" (assignment_expression "uVar4 = **(undefined4 **)(puVar13 + 0x8dd38)" identifier = (pointer_expression "**(undefined4 **)(puVar13 + 0x8dd38)" * (pointer_expression "*(undefined4 **)(puVar13 + 0x8dd38)" * (cast_expression "(undefined4 **)(puVar13 + 0x8dd38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8dd38)" ( (binary_expression "puVar13 + 0x8dd38" identifier + number_literal) )))))) ;) (expression_statement "iStack_e8 = 0;" (assignment_expression "iStack_e8 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = *piVar11;" (assignment_expression "iVar3 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "iVar8 = *(int *)(puVar13 + 0x8d734);" (assignment_expression "iVar8 = *(int *)(puVar13 + 0x8d734)" identifier = (pointer_expression "*(int *)(puVar13 + 0x8d734)" * (cast_expression "(int *)(puVar13 + 0x8d734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x8d734)" ( (binary_expression "puVar13 + 0x8d734" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) goto LAB_000b6f80;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b6f80;" goto statement_identifier ;)) (while_statement "while( true ) {\n    if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }\n    if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;\n    iVar8 = *(int *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f46c);\n    **(int **)(puVar13 + 0x8deb0) = iVar6;\n    (*pcVar14)(iVar8,1);\nLAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);\n    (**(code **)(puVar13 + 0x8ddc4))(piVar11,4);\n    (**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);\n    uVar9 = *(undefined4 *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f68c);\n    *piVar11 = *piVar11 + 1;\n    iStack_e8 = (*pcVar14)(uVar9);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }\n    if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;\n    iVar8 = *(int *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f46c);\n    **(int **)(puVar13 + 0x8deb0) = iVar6;\n    (*pcVar14)(iVar8,1);\nLAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);\n    (**(code **)(puVar13 + 0x8ddc4))(piVar11,4);\n    (**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);\n    uVar9 = *(undefined4 *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f68c);\n    *piVar11 = *piVar11 + 1;\n    iStack_e8 = (*pcVar14)(uVar9);\n  }" { (if_statement "if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }" if (parenthesized_expression "(iStack_e8 == 0)" ( (binary_expression "iStack_e8 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }" { (expression_statement "iVar6 = parse_and_execute(puVar12,param_2,puVar10);" (assignment_expression "iVar6 = parse_and_execute(puVar12,param_2,puVar10)" identifier = (call_expression "parse_and_execute(puVar12,param_2,puVar10)" identifier (argument_list "(puVar12,param_2,puVar10)" ( identifier , identifier , identifier )))) ;) }) (else_clause "else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }" else (compound_statement "{\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }" { (expression_statement "parse_and_execute_cleanup(uVar4);" (call_expression "parse_and_execute_cleanup(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "iVar6 = **(int **)(puVar13 + 0x8deb0);" (assignment_expression "iVar6 = **(int **)(puVar13 + 0x8deb0)" identifier = (pointer_expression "**(int **)(puVar13 + 0x8deb0)" * (pointer_expression "*(int **)(puVar13 + 0x8deb0)" * (cast_expression "(int **)(puVar13 + 0x8deb0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8deb0)" ( (binary_expression "puVar13 + 0x8deb0" identifier + number_literal) )))))) ;) }))) (if_statement "if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;" if (parenthesized_expression "(((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0))" ( (binary_expression "((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)" (parenthesized_expression "((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))" ( (binary_expression "(iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0)" ( (comma_expression "(**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0" (call_expression "(**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c)" (parenthesized_expression "(**(code **)(puVar13 + 0x8ddbc))" ( (pointer_expression "**(code **)(puVar13 + 0x8ddbc)" * (pointer_expression "*(code **)(puVar13 + 0x8ddbc)" * (cast_expression "(code **)(puVar13 + 0x8ddbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8ddbc)" ( (binary_expression "puVar13 + 0x8ddbc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar13 + 0x8d734) + -0x6c4c)" ( (binary_expression "*(int *)(puVar13 + 0x8d734) + -0x6c4c" (pointer_expression "*(int *)(puVar13 + 0x8d734)" * (cast_expression "(int *)(puVar13 + 0x8d734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x8d734)" ( (binary_expression "puVar13 + 0x8d734" identifier + number_literal) )))) + number_literal) ))) , (binary_expression "iStack_e8 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(**(int **)(puVar13 + 0x8de44) == 0)" ( (binary_expression "**(int **)(puVar13 + 0x8de44) == 0" (pointer_expression "**(int **)(puVar13 + 0x8de44)" * (pointer_expression "*(int **)(puVar13 + 0x8de44)" * (cast_expression "(int **)(puVar13 + 0x8de44)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8de44)" ( (binary_expression "puVar13 + 0x8de44" identifier + number_literal) ))))) == number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = *(int *)(puVar13 + 0x8deac);" (assignment_expression "iVar8 = *(int *)(puVar13 + 0x8deac)" identifier = (pointer_expression "*(int *)(puVar13 + 0x8deac)" * (cast_expression "(int *)(puVar13 + 0x8deac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x8deac)" ( (binary_expression "puVar13 + 0x8deac" identifier + number_literal) ))))) ;) (expression_statement "pcVar14 = *(code **)(puVar13 + 0x8f46c);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x8f46c)" identifier = (pointer_expression "*(code **)(puVar13 + 0x8f46c)" * (cast_expression "(code **)(puVar13 + 0x8f46c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8f46c)" ( (binary_expression "puVar13 + 0x8f46c" identifier + number_literal) ))))) ;) (expression_statement "**(int **)(puVar13 + 0x8deb0) = iVar6;" (assignment_expression "**(int **)(puVar13 + 0x8deb0) = iVar6" (pointer_expression "**(int **)(puVar13 + 0x8deb0)" * (pointer_expression "*(int **)(puVar13 + 0x8deb0)" * (cast_expression "(int **)(puVar13 + 0x8deb0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8deb0)" ( (binary_expression "puVar13 + 0x8deb0" identifier + number_literal) ))))) = identifier) ;) (expression_statement "(*pcVar14)(iVar8,1);" (call_expression "(*pcVar14)(iVar8,1)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar8,1)" ( identifier , number_literal ))) ;) (labeled_statement "LAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);" statement_identifier : (expression_statement "(**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);" (call_expression "(**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c)" (parenthesized_expression "(**(code **)(puVar13 + 0x8ddb4))" ( (pointer_expression "**(code **)(puVar13 + 0x8ddb4)" * (pointer_expression "*(code **)(puVar13 + 0x8ddb4)" * (cast_expression "(code **)(puVar13 + 0x8ddb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8ddb4)" ( (binary_expression "puVar13 + 0x8ddb4" identifier + number_literal) ))))) )) (argument_list "(iVar8 + -0x6c4c)" ( (binary_expression "iVar8 + -0x6c4c" identifier + number_literal) ))) ;)) (expression_statement "(**(code **)(puVar13 + 0x8ddc4))(piVar11,4);" (call_expression "(**(code **)(puVar13 + 0x8ddc4))(piVar11,4)" (parenthesized_expression "(**(code **)(puVar13 + 0x8ddc4))" ( (pointer_expression "**(code **)(puVar13 + 0x8ddc4)" * (pointer_expression "*(code **)(puVar13 + 0x8ddc4)" * (cast_expression "(code **)(puVar13 + 0x8ddc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8ddc4)" ( (binary_expression "puVar13 + 0x8ddc4" identifier + number_literal) ))))) )) (argument_list "(piVar11,4)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);" (call_expression "(**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0)" (parenthesized_expression "(**(code **)(puVar13 + 0x8ddc4))" ( (pointer_expression "**(code **)(puVar13 + 0x8ddc4)" * (pointer_expression "*(code **)(puVar13 + 0x8ddc4)" * (cast_expression "(code **)(puVar13 + 0x8ddc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8ddc4)" ( (binary_expression "puVar13 + 0x8ddc4" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar13 + 0x8deac),0xf0)" ( (pointer_expression "*(undefined4 *)(puVar13 + 0x8deac)" * (cast_expression "(undefined4 *)(puVar13 + 0x8deac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x8deac)" ( (binary_expression "puVar13 + 0x8deac" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "uVar9 = *(undefined4 *)(puVar13 + 0x8deac);" (assignment_expression "uVar9 = *(undefined4 *)(puVar13 + 0x8deac)" identifier = (pointer_expression "*(undefined4 *)(puVar13 + 0x8deac)" * (cast_expression "(undefined4 *)(puVar13 + 0x8deac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x8deac)" ( (binary_expression "puVar13 + 0x8deac" identifier + number_literal) ))))) ;) (expression_statement "pcVar14 = *(code **)(puVar13 + 0x8f68c);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x8f68c)" identifier = (pointer_expression "*(code **)(puVar13 + 0x8f68c)" * (cast_expression "(code **)(puVar13 + 0x8f68c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8f68c)" ( (binary_expression "puVar13 + 0x8f68c" identifier + number_literal) ))))) ;) (expression_statement "*piVar11 = *piVar11 + 1;" (assignment_expression "*piVar11 = *piVar11 + 1" (pointer_expression "*piVar11" * identifier) = (binary_expression "*piVar11 + 1" (pointer_expression "*piVar11" * identifier) + number_literal)) ;) (expression_statement "iStack_e8 = (*pcVar14)(uVar9);" (assignment_expression "iStack_e8 = (*pcVar14)(uVar9)" identifier = (call_expression "(*pcVar14)(uVar9)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(uVar9)" ( identifier )))) ;) })) (return_statement "return iVar6;" return identifier ;) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x000b6ce0) */\n\nint parse_string(char *string,char *from_file,int flags,char **endp)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  sigset_t *psVar3;\n  int iVar4;\n  undefined4 uVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined *puVar8;\n  int old_running_trap;\n  int iVar9;\n  sigset_t *flags_00;\n  int *piVar10;\n  sigset_t *string_00;\n  undefined *puVar11;\n  code *pcVar12;\n  int iStack_e8;\n  int should_jump_to_top_level;\n  COMMAND *command;\n  sigset_t ps_sigmask;\n  \n  flags_00 = &ps_sigmask;\n  psVar3 = *(sigset_t **)PTR___stack_chk_guard_001464dc;\n  parse_prologue(string,flags,PTR_DAT_001445ac + -0x6c70);\n  (*(code *)PTR_sigemptyset_001462d4)(flags_00);\n  (*(code *)PTR_sigprocmask_00146514)(1,0);\n  (*(code *)PTR_push_stream_00144a70)(0);\n  iVar4 = (*(code *)PTR_parser_expanding_alias_00144818)();\n  if (iVar4 != 0) {\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }\n  puVar2 = PTR_current_token_001448e8;\n  puVar11 = PTR_global_command_00144830;\n  string_00 = (sigset_t *)0x0;\n  uVar5 = *(undefined4 *)PTR_global_command_00144830;\n  (*(code *)PTR_with_input_from_string_00145948)(string);\n  pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n  puVar8 = PTR_DAT_001445ac + -0x6c5c;\n  while (bVar1 = false, *pcVar6 != '\0') {\n    string_00 = (sigset_t *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (string_00 != (sigset_t *)0x0) {\n      if ((char *)((int)string_00[-1].__val + 0x7f) < &DAT_00000004) {\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,&ps_sigmask,0);\n      from_file = (char *)0x3;\n      flags_00 = string_00;\n      (*(code *)PTR_command_error_001445e4)(puVar8,3,string_00,0);\n    }\n    bVar1 = false;\n    iVar4 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar4 != 0) {\n      if ((flags & 0x40U) == 0) {\n        string_00 = (sigset_t *)0x2;\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar11);\n    *(undefined4 *)puVar11 = 0;\n    pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }\n  iVar4 = (int)pcVar6 - (int)string;\n  *(undefined4 *)PTR_global_command_00144830 = uVar5;\n  if (endp != (char **)0x0) {\n    *endp = pcVar6;\n  }\n  (*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);\n  if (bVar1) {\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    iVar4 = -2;\n    if (string_00 != (sigset_t *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }\n  string_00 = psVar3;\n  if (psVar3 == *(sigset_t **)PTR___stack_chk_guard_001464dc) {\n    return iVar4;\n  }\nLAB_000b6e6c:\n  puVar11 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  piVar10 = *(int **)(puVar11 + 0x8de44);\n  old_running_trap = **(int **)(puVar11 + 0x8dd38);\n  iStack_e8 = 0;\n  iVar4 = *piVar10;\n  iVar9 = *(int *)(puVar11 + 0x8d734);\n  if (iVar4 != 0) goto LAB_000b6f80;\n  while( true ) {\n    if (iStack_e8 == 0) {\n      iVar7 = parse_and_execute((char *)string_00,from_file,(int)flags_00);\n    }\n    else {\n      parse_and_execute_cleanup(old_running_trap);\n      iVar7 = **(int **)(puVar11 + 0x8deb0);\n    }\n    if (((iVar4 == 0) ||\n        ((**(code **)(puVar11 + 0x8ddbc))(*(int *)(puVar11 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar11 + 0x8de44) == 0)) break;\n    iVar9 = *(int *)(puVar11 + 0x8deac);\n    pcVar12 = *(code **)(puVar11 + 0x8f46c);\n    **(int **)(puVar11 + 0x8deb0) = iVar7;\n    (*pcVar12)(iVar9,1);\nLAB_000b6f80:\n    (**(code **)(puVar11 + 0x8ddb4))(iVar9 + -0x6c4c);\n    (**(code **)(puVar11 + 0x8ddc4))(piVar10,4);\n    (**(code **)(puVar11 + 0x8ddc4))(*(undefined4 *)(puVar11 + 0x8deac),0xf0);\n    uVar5 = *(undefined4 *)(puVar11 + 0x8deac);\n    pcVar12 = *(code **)(puVar11 + 0x8f68c);\n    *piVar10 = *piVar10 + 1;\n    iStack_e8 = (*pcVar12)(uVar5);\n  }\n  return iVar7;\n}\n\n" comment (function_definition "int parse_string(char *string,char *from_file,int flags,char **endp)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  sigset_t *psVar3;\n  int iVar4;\n  undefined4 uVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined *puVar8;\n  int old_running_trap;\n  int iVar9;\n  sigset_t *flags_00;\n  int *piVar10;\n  sigset_t *string_00;\n  undefined *puVar11;\n  code *pcVar12;\n  int iStack_e8;\n  int should_jump_to_top_level;\n  COMMAND *command;\n  sigset_t ps_sigmask;\n  \n  flags_00 = &ps_sigmask;\n  psVar3 = *(sigset_t **)PTR___stack_chk_guard_001464dc;\n  parse_prologue(string,flags,PTR_DAT_001445ac + -0x6c70);\n  (*(code *)PTR_sigemptyset_001462d4)(flags_00);\n  (*(code *)PTR_sigprocmask_00146514)(1,0);\n  (*(code *)PTR_push_stream_00144a70)(0);\n  iVar4 = (*(code *)PTR_parser_expanding_alias_00144818)();\n  if (iVar4 != 0) {\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }\n  puVar2 = PTR_current_token_001448e8;\n  puVar11 = PTR_global_command_00144830;\n  string_00 = (sigset_t *)0x0;\n  uVar5 = *(undefined4 *)PTR_global_command_00144830;\n  (*(code *)PTR_with_input_from_string_00145948)(string);\n  pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n  puVar8 = PTR_DAT_001445ac + -0x6c5c;\n  while (bVar1 = false, *pcVar6 != '\0') {\n    string_00 = (sigset_t *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (string_00 != (sigset_t *)0x0) {\n      if ((char *)((int)string_00[-1].__val + 0x7f) < &DAT_00000004) {\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,&ps_sigmask,0);\n      from_file = (char *)0x3;\n      flags_00 = string_00;\n      (*(code *)PTR_command_error_001445e4)(puVar8,3,string_00,0);\n    }\n    bVar1 = false;\n    iVar4 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar4 != 0) {\n      if ((flags & 0x40U) == 0) {\n        string_00 = (sigset_t *)0x2;\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar11);\n    *(undefined4 *)puVar11 = 0;\n    pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }\n  iVar4 = (int)pcVar6 - (int)string;\n  *(undefined4 *)PTR_global_command_00144830 = uVar5;\n  if (endp != (char **)0x0) {\n    *endp = pcVar6;\n  }\n  (*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);\n  if (bVar1) {\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    iVar4 = -2;\n    if (string_00 != (sigset_t *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }\n  string_00 = psVar3;\n  if (psVar3 == *(sigset_t **)PTR___stack_chk_guard_001464dc) {\n    return iVar4;\n  }\nLAB_000b6e6c:\n  puVar11 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  piVar10 = *(int **)(puVar11 + 0x8de44);\n  old_running_trap = **(int **)(puVar11 + 0x8dd38);\n  iStack_e8 = 0;\n  iVar4 = *piVar10;\n  iVar9 = *(int *)(puVar11 + 0x8d734);\n  if (iVar4 != 0) goto LAB_000b6f80;\n  while( true ) {\n    if (iStack_e8 == 0) {\n      iVar7 = parse_and_execute((char *)string_00,from_file,(int)flags_00);\n    }\n    else {\n      parse_and_execute_cleanup(old_running_trap);\n      iVar7 = **(int **)(puVar11 + 0x8deb0);\n    }\n    if (((iVar4 == 0) ||\n        ((**(code **)(puVar11 + 0x8ddbc))(*(int *)(puVar11 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar11 + 0x8de44) == 0)) break;\n    iVar9 = *(int *)(puVar11 + 0x8deac);\n    pcVar12 = *(code **)(puVar11 + 0x8f46c);\n    **(int **)(puVar11 + 0x8deb0) = iVar7;\n    (*pcVar12)(iVar9,1);\nLAB_000b6f80:\n    (**(code **)(puVar11 + 0x8ddb4))(iVar9 + -0x6c4c);\n    (**(code **)(puVar11 + 0x8ddc4))(piVar10,4);\n    (**(code **)(puVar11 + 0x8ddc4))(*(undefined4 *)(puVar11 + 0x8deac),0xf0);\n    uVar5 = *(undefined4 *)(puVar11 + 0x8deac);\n    pcVar12 = *(code **)(puVar11 + 0x8f68c);\n    *piVar10 = *piVar10 + 1;\n    iStack_e8 = (*pcVar12)(uVar5);\n  }\n  return iVar7;\n}" primitive_type (function_declarator "parse_string(char *string,char *from_file,int flags,char **endp)" identifier (parameter_list "(char *string,char *from_file,int flags,char **endp)" ( (parameter_declaration "char *string" primitive_type (pointer_declarator "*string" * identifier)) , (parameter_declaration "char *from_file" primitive_type (pointer_declarator "*from_file" * identifier)) , (parameter_declaration "int flags" primitive_type identifier) , (parameter_declaration "char **endp" primitive_type (pointer_declarator "**endp" * (pointer_declarator "*endp" * identifier))) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  sigset_t *psVar3;\n  int iVar4;\n  undefined4 uVar5;\n  char *pcVar6;\n  int iVar7;\n  undefined *puVar8;\n  int old_running_trap;\n  int iVar9;\n  sigset_t *flags_00;\n  int *piVar10;\n  sigset_t *string_00;\n  undefined *puVar11;\n  code *pcVar12;\n  int iStack_e8;\n  int should_jump_to_top_level;\n  COMMAND *command;\n  sigset_t ps_sigmask;\n  \n  flags_00 = &ps_sigmask;\n  psVar3 = *(sigset_t **)PTR___stack_chk_guard_001464dc;\n  parse_prologue(string,flags,PTR_DAT_001445ac + -0x6c70);\n  (*(code *)PTR_sigemptyset_001462d4)(flags_00);\n  (*(code *)PTR_sigprocmask_00146514)(1,0);\n  (*(code *)PTR_push_stream_00144a70)(0);\n  iVar4 = (*(code *)PTR_parser_expanding_alias_00144818)();\n  if (iVar4 != 0) {\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }\n  puVar2 = PTR_current_token_001448e8;\n  puVar11 = PTR_global_command_00144830;\n  string_00 = (sigset_t *)0x0;\n  uVar5 = *(undefined4 *)PTR_global_command_00144830;\n  (*(code *)PTR_with_input_from_string_00145948)(string);\n  pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n  puVar8 = PTR_DAT_001445ac + -0x6c5c;\n  while (bVar1 = false, *pcVar6 != '\0') {\n    string_00 = (sigset_t *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (string_00 != (sigset_t *)0x0) {\n      if ((char *)((int)string_00[-1].__val + 0x7f) < &DAT_00000004) {\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,&ps_sigmask,0);\n      from_file = (char *)0x3;\n      flags_00 = string_00;\n      (*(code *)PTR_command_error_001445e4)(puVar8,3,string_00,0);\n    }\n    bVar1 = false;\n    iVar4 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar4 != 0) {\n      if ((flags & 0x40U) == 0) {\n        string_00 = (sigset_t *)0x2;\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar11);\n    *(undefined4 *)puVar11 = 0;\n    pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }\n  iVar4 = (int)pcVar6 - (int)string;\n  *(undefined4 *)PTR_global_command_00144830 = uVar5;\n  if (endp != (char **)0x0) {\n    *endp = pcVar6;\n  }\n  (*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);\n  if (bVar1) {\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    iVar4 = -2;\n    if (string_00 != (sigset_t *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }\n  string_00 = psVar3;\n  if (psVar3 == *(sigset_t **)PTR___stack_chk_guard_001464dc) {\n    return iVar4;\n  }\nLAB_000b6e6c:\n  puVar11 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  piVar10 = *(int **)(puVar11 + 0x8de44);\n  old_running_trap = **(int **)(puVar11 + 0x8dd38);\n  iStack_e8 = 0;\n  iVar4 = *piVar10;\n  iVar9 = *(int *)(puVar11 + 0x8d734);\n  if (iVar4 != 0) goto LAB_000b6f80;\n  while( true ) {\n    if (iStack_e8 == 0) {\n      iVar7 = parse_and_execute((char *)string_00,from_file,(int)flags_00);\n    }\n    else {\n      parse_and_execute_cleanup(old_running_trap);\n      iVar7 = **(int **)(puVar11 + 0x8deb0);\n    }\n    if (((iVar4 == 0) ||\n        ((**(code **)(puVar11 + 0x8ddbc))(*(int *)(puVar11 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar11 + 0x8de44) == 0)) break;\n    iVar9 = *(int *)(puVar11 + 0x8deac);\n    pcVar12 = *(code **)(puVar11 + 0x8f46c);\n    **(int **)(puVar11 + 0x8deb0) = iVar7;\n    (*pcVar12)(iVar9,1);\nLAB_000b6f80:\n    (**(code **)(puVar11 + 0x8ddb4))(iVar9 + -0x6c4c);\n    (**(code **)(puVar11 + 0x8ddc4))(piVar10,4);\n    (**(code **)(puVar11 + 0x8ddc4))(*(undefined4 *)(puVar11 + 0x8deac),0xf0);\n    uVar5 = *(undefined4 *)(puVar11 + 0x8deac);\n    pcVar12 = *(code **)(puVar11 + 0x8f68c);\n    *piVar10 = *piVar10 + 1;\n    iStack_e8 = (*pcVar12)(uVar5);\n  }\n  return iVar7;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "sigset_t *psVar3;" type_identifier (pointer_declarator "*psVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int old_running_trap;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "sigset_t *flags_00;" type_identifier (pointer_declarator "*flags_00" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "sigset_t *string_00;" type_identifier (pointer_declarator "*string_00" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "int iStack_e8;" primitive_type identifier ;) (declaration "int should_jump_to_top_level;" primitive_type identifier ;) (declaration "COMMAND *command;" type_identifier (pointer_declarator "*command" * identifier) ;) (declaration "sigset_t ps_sigmask;" type_identifier identifier ;) (expression_statement "flags_00 = &ps_sigmask;" (assignment_expression "flags_00 = &ps_sigmask" identifier = (pointer_expression "&ps_sigmask" & identifier)) ;) (expression_statement "psVar3 = *(sigset_t **)PTR___stack_chk_guard_001464dc;" (assignment_expression "psVar3 = *(sigset_t **)PTR___stack_chk_guard_001464dc" identifier = (pointer_expression "*(sigset_t **)PTR___stack_chk_guard_001464dc" * (cast_expression "(sigset_t **)PTR___stack_chk_guard_001464dc" ( (type_descriptor "sigset_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "parse_prologue(string,flags,PTR_DAT_001445ac + -0x6c70);" (call_expression "parse_prologue(string,flags,PTR_DAT_001445ac + -0x6c70)" identifier (argument_list "(string,flags,PTR_DAT_001445ac + -0x6c70)" ( identifier , identifier , (binary_expression "PTR_DAT_001445ac + -0x6c70" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(flags_00);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(flags_00)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(flags_00)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,0)" ( number_literal , number_literal ))) ;) (expression_statement "(*(code *)PTR_push_stream_00144a70)(0);" (call_expression "(*(code *)PTR_push_stream_00144a70)(0)" (parenthesized_expression "(*(code *)PTR_push_stream_00144a70)" ( (pointer_expression "*(code *)PTR_push_stream_00144a70" * (cast_expression "(code *)PTR_push_stream_00144a70" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))) ;) (expression_statement "iVar4 = (*(code *)PTR_parser_expanding_alias_00144818)();" (assignment_expression "iVar4 = (*(code *)PTR_parser_expanding_alias_00144818)()" identifier = (call_expression "(*(code *)PTR_parser_expanding_alias_00144818)()" (parenthesized_expression "(*(code *)PTR_parser_expanding_alias_00144818)" ( (pointer_expression "*(code *)PTR_parser_expanding_alias_00144818" * (cast_expression "(code *)PTR_parser_expanding_alias_00144818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0) {\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }" { (expression_statement "(*(code *)PTR_parser_save_alias_00145950)();" (call_expression "(*(code *)PTR_parser_save_alias_00145950)()" (parenthesized_expression "(*(code *)PTR_parser_save_alias_00145950)" ( (pointer_expression "*(code *)PTR_parser_save_alias_00145950" * (cast_expression "(code *)PTR_parser_save_alias_00145950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "puVar2 = PTR_current_token_001448e8;" (assignment_expression "puVar2 = PTR_current_token_001448e8" identifier = identifier) ;) (expression_statement "puVar11 = PTR_global_command_00144830;" (assignment_expression "puVar11 = PTR_global_command_00144830" identifier = identifier) ;) (expression_statement "string_00 = (sigset_t *)0x0;" (assignment_expression "string_00 = (sigset_t *)0x0" identifier = (cast_expression "(sigset_t *)0x0" ( (type_descriptor "sigset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar5 = *(undefined4 *)PTR_global_command_00144830;" (assignment_expression "uVar5 = *(undefined4 *)PTR_global_command_00144830" identifier = (pointer_expression "*(undefined4 *)PTR_global_command_00144830" * (cast_expression "(undefined4 *)PTR_global_command_00144830" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)PTR_with_input_from_string_00145948)(string);" (call_expression "(*(code *)PTR_with_input_from_string_00145948)(string)" (parenthesized_expression "(*(code *)PTR_with_input_from_string_00145948)" ( (pointer_expression "*(code *)PTR_with_input_from_string_00145948" * (cast_expression "(code *)PTR_with_input_from_string_00145948" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(string)" ( identifier ))) ;) (expression_statement "pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8)" identifier = (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" * (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" ( (binary_expression "PTR_bash_input_001446a4 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar8 = PTR_DAT_001445ac + -0x6c5c;" (assignment_expression "puVar8 = PTR_DAT_001445ac + -0x6c5c" identifier = (binary_expression "PTR_DAT_001445ac + -0x6c5c" identifier + number_literal)) ;) (while_statement "while (bVar1 = false, *pcVar6 != '\0') {\n    string_00 = (sigset_t *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (string_00 != (sigset_t *)0x0) {\n      if ((char *)((int)string_00[-1].__val + 0x7f) < &DAT_00000004) {\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,&ps_sigmask,0);\n      from_file = (char *)0x3;\n      flags_00 = string_00;\n      (*(code *)PTR_command_error_001445e4)(puVar8,3,string_00,0);\n    }\n    bVar1 = false;\n    iVar4 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar4 != 0) {\n      if ((flags & 0x40U) == 0) {\n        string_00 = (sigset_t *)0x2;\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar11);\n    *(undefined4 *)puVar11 = 0;\n    pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }" while (parenthesized_expression "(bVar1 = false, *pcVar6 != '\0')" ( (comma_expression "bVar1 = false, *pcVar6 != '\0'" (assignment_expression "bVar1 = false" identifier = false) , (binary_expression "*pcVar6 != '\0'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n    string_00 = (sigset_t *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (string_00 != (sigset_t *)0x0) {\n      if ((char *)((int)string_00[-1].__val + 0x7f) < &DAT_00000004) {\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,&ps_sigmask,0);\n      from_file = (char *)0x3;\n      flags_00 = string_00;\n      (*(code *)PTR_command_error_001445e4)(puVar8,3,string_00,0);\n    }\n    bVar1 = false;\n    iVar4 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar4 != 0) {\n      if ((flags & 0x40U) == 0) {\n        string_00 = (sigset_t *)0x2;\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar11);\n    *(undefined4 *)puVar11 = 0;\n    pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }" { (expression_statement "string_00 = (sigset_t *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);" (assignment_expression "string_00 = (sigset_t *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8)" identifier = (cast_expression "(sigset_t *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8)" ( (type_descriptor "sigset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8)" (parenthesized_expression "(*(code *)PTR__setjmp_00146504)" ( (pointer_expression "*(code *)PTR__setjmp_00146504" * (cast_expression "(code *)PTR__setjmp_00146504" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_top_level_001445d8)" ( identifier ))))) ;) (if_statement "if (string_00 != (sigset_t *)0x0) {\n      if ((char *)((int)string_00[-1].__val + 0x7f) < &DAT_00000004) {\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,&ps_sigmask,0);\n      from_file = (char *)0x3;\n      flags_00 = string_00;\n      (*(code *)PTR_command_error_001445e4)(puVar8,3,string_00,0);\n    }" if (parenthesized_expression "(string_00 != (sigset_t *)0x0)" ( (binary_expression "string_00 != (sigset_t *)0x0" identifier != (cast_expression "(sigset_t *)0x0" ( (type_descriptor "sigset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if ((char *)((int)string_00[-1].__val + 0x7f) < &DAT_00000004) {\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,&ps_sigmask,0);\n      from_file = (char *)0x3;\n      flags_00 = string_00;\n      (*(code *)PTR_command_error_001445e4)(puVar8,3,string_00,0);\n    }" { (if_statement "if ((char *)((int)string_00[-1].__val + 0x7f) < &DAT_00000004) {\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }" if (parenthesized_expression "((char *)((int)string_00[-1].__val + 0x7f) < &DAT_00000004)" ( (binary_expression "(char *)((int)string_00[-1].__val + 0x7f) < &DAT_00000004" (cast_expression "(char *)((int)string_00[-1].__val + 0x7f)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)string_00[-1].__val + 0x7f)" ( (binary_expression "(int)string_00[-1].__val + 0x7f" (cast_expression "(int)string_00[-1].__val" ( (type_descriptor "int" primitive_type) ) (field_expression "string_00[-1].__val" (subscript_expression "string_00[-1]" identifier [ number_literal ]) . field_identifier)) + number_literal) ))) < (pointer_expression "&DAT_00000004" & identifier)) )) (compound_statement "{\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8)" identifier = (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" * (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" ( (binary_expression "PTR_bash_input_001446a4 + 8" identifier + number_literal) ))))) ;) (break_statement "break;" break ;) })) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,&ps_sigmask,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,&ps_sigmask,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,&ps_sigmask,0)" ( number_literal , (pointer_expression "&ps_sigmask" & identifier) , number_literal ))) ;) (expression_statement "from_file = (char *)0x3;" (assignment_expression "from_file = (char *)0x3" identifier = (cast_expression "(char *)0x3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "flags_00 = string_00;" (assignment_expression "flags_00 = string_00" identifier = identifier) ;) (expression_statement "(*(code *)PTR_command_error_001445e4)(puVar8,3,string_00,0);" (call_expression "(*(code *)PTR_command_error_001445e4)(puVar8,3,string_00,0)" (parenthesized_expression "(*(code *)PTR_command_error_001445e4)" ( (pointer_expression "*(code *)PTR_command_error_001445e4" * (cast_expression "(code *)PTR_command_error_001445e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8,3,string_00,0)" ( identifier , number_literal , identifier , number_literal ))) ;) })) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "iVar4 = (*(code *)PTR_parse_command_00144844)();" (assignment_expression "iVar4 = (*(code *)PTR_parse_command_00144844)()" identifier = (call_expression "(*(code *)PTR_parse_command_00144844)()" (parenthesized_expression "(*(code *)PTR_parse_command_00144844)" ( (pointer_expression "*(code *)PTR_parse_command_00144844" * (cast_expression "(code *)PTR_parse_command_00144844" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar4 != 0) {\n      if ((flags & 0x40U) == 0) {\n        string_00 = (sigset_t *)0x2;\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((flags & 0x40U) == 0) {\n        string_00 = (sigset_t *)0x2;\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }" { (if_statement "if ((flags & 0x40U) == 0) {\n        string_00 = (sigset_t *)0x2;\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }" if (parenthesized_expression "((flags & 0x40U) == 0)" ( (binary_expression "(flags & 0x40U) == 0" (parenthesized_expression "(flags & 0x40U)" ( (binary_expression "flags & 0x40U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        string_00 = (sigset_t *)0x2;\n        bVar1 = true;\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }" { (expression_statement "string_00 = (sigset_t *)0x2;" (assignment_expression "string_00 = (sigset_t *)0x2" identifier = (cast_expression "(sigset_t *)0x2" ( (type_descriptor "sigset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8)" identifier = (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" * (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" ( (binary_expression "PTR_bash_input_001446a4 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }" else (compound_statement "{\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }" { (expression_statement "(*(code *)PTR_reset_parser_00144934)();" (call_expression "(*(code *)PTR_reset_parser_00144934)()" (parenthesized_expression "(*(code *)PTR_reset_parser_00144934)" ( (pointer_expression "*(code *)PTR_reset_parser_00144934" * (cast_expression "(code *)PTR_reset_parser_00144934" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8)" identifier = (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" * (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" ( (binary_expression "PTR_bash_input_001446a4 + 8" identifier + number_literal) ))))) ;) }))) (break_statement "break;" break ;) })) (expression_statement "(*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar11);" (call_expression "(*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar11)" (parenthesized_expression "(*(code *)PTR_dispose_command_00144860)" ( (pointer_expression "*(code *)PTR_dispose_command_00144860" * (cast_expression "(code *)PTR_dispose_command_00144860" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)puVar11)" ( (pointer_expression "*(undefined4 *)puVar11" * (cast_expression "(undefined4 *)puVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "*(undefined4 *)puVar11 = 0;" (assignment_expression "*(undefined4 *)puVar11 = 0" (pointer_expression "*(undefined4 *)puVar11" * (cast_expression "(undefined4 *)puVar11" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar6 = *(char **)(PTR_bash_input_001446a4 + 8)" identifier = (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" * (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" ( (binary_expression "PTR_bash_input_001446a4 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;" if (parenthesized_expression "((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))" ( (binary_expression "(*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0)" (parenthesized_expression "(*(int *)puVar2 == 0x130)" ( (binary_expression "*(int *)puVar2 == 0x130" (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) || (parenthesized_expression "(*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0)" ( (binary_expression "*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0" (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*(int *)PTR_shell_eof_token_001449a0" * (cast_expression "(int *)PTR_shell_eof_token_001449a0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) (break_statement "break;" break ;)) })) (expression_statement "iVar4 = (int)pcVar6 - (int)string;" (assignment_expression "iVar4 = (int)pcVar6 - (int)string" identifier = (binary_expression "(int)pcVar6 - (int)string" (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)string" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(undefined4 *)PTR_global_command_00144830 = uVar5;" (assignment_expression "*(undefined4 *)PTR_global_command_00144830 = uVar5" (pointer_expression "*(undefined4 *)PTR_global_command_00144830" * (cast_expression "(undefined4 *)PTR_global_command_00144830" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (endp != (char **)0x0) {\n    *endp = pcVar6;\n  }" if (parenthesized_expression "(endp != (char **)0x0)" ( (binary_expression "endp != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    *endp = pcVar6;\n  }" { (expression_statement "*endp = pcVar6;" (assignment_expression "*endp = pcVar6" (pointer_expression "*endp" * identifier) = identifier) ;) })) (expression_statement "(*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);" (call_expression "(*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70)" (parenthesized_expression "(*(code *)PTR_run_unwind_frame_00144c34)" ( (pointer_expression "*(code *)PTR_run_unwind_frame_00144c34" * (cast_expression "(code *)PTR_run_unwind_frame_00144c34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_001445ac + -0x6c70)" ( (binary_expression "PTR_DAT_001445ac + -0x6c70" identifier + number_literal) ))) ;) (if_statement "if (bVar1) {\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    iVar4 = -2;\n    if (string_00 != (sigset_t *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    iVar4 = -2;\n    if (string_00 != (sigset_t *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }" { (if_statement "if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }" if (parenthesized_expression "(*(int *)PTR_parse_and_execute_level_001448fc == 0)" ( (binary_expression "*(int *)PTR_parse_and_execute_level_001448fc == 0" (pointer_expression "*(int *)PTR_parse_and_execute_level_001448fc" * (cast_expression "(int *)PTR_parse_and_execute_level_001448fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }" { (expression_statement "(*(code *)PTR_top_level_cleanup_00144fb0)();" (call_expression "(*(code *)PTR_top_level_cleanup_00144fb0)()" (parenthesized_expression "(*(code *)PTR_top_level_cleanup_00144fb0)" ( (pointer_expression "*(code *)PTR_top_level_cleanup_00144fb0" * (cast_expression "(code *)PTR_top_level_cleanup_00144fb0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar4 = -2;" (assignment_expression "iVar4 = -2" identifier = number_literal) ;) (if_statement "if (string_00 != (sigset_t *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }" if (parenthesized_expression "(string_00 != (sigset_t *)0x2)" ( (binary_expression "string_00 != (sigset_t *)0x2" identifier != (cast_expression "(sigset_t *)0x2" ( (type_descriptor "sigset_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }" { (expression_statement "(*(code *)PTR_jump_to_top_level_00144808)();" (call_expression "(*(code *)PTR_jump_to_top_level_00144808)()" (parenthesized_expression "(*(code *)PTR_jump_to_top_level_00144808)" ( (pointer_expression "*(code *)PTR_jump_to_top_level_00144808" * (cast_expression "(code *)PTR_jump_to_top_level_00144808" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_000b6e6c;" goto statement_identifier ;) })) })) (expression_statement "string_00 = psVar3;" (assignment_expression "string_00 = psVar3" identifier = identifier) ;) (if_statement "if (psVar3 == *(sigset_t **)PTR___stack_chk_guard_001464dc) {\n    return iVar4;\n  }" if (parenthesized_expression "(psVar3 == *(sigset_t **)PTR___stack_chk_guard_001464dc)" ( (binary_expression "psVar3 == *(sigset_t **)PTR___stack_chk_guard_001464dc" identifier == (pointer_expression "*(sigset_t **)PTR___stack_chk_guard_001464dc" * (cast_expression "(sigset_t **)PTR___stack_chk_guard_001464dc" ( (type_descriptor "sigset_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return iVar4;\n  }" { (return_statement "return iVar4;" return identifier ;) })) (labeled_statement "LAB_000b6e6c:\n  puVar11 = PTR___stack_chk_fail_00146488;" statement_identifier : (expression_statement "puVar11 = PTR___stack_chk_fail_00146488;" (assignment_expression "puVar11 = PTR___stack_chk_fail_00146488" identifier = identifier) ;)) (expression_statement "(*(code *)PTR___stack_chk_fail_00146488)();" (call_expression "(*(code *)PTR___stack_chk_fail_00146488)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00146488)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00146488" * (cast_expression "(code *)PTR___stack_chk_fail_00146488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar10 = *(int **)(puVar11 + 0x8de44);" (assignment_expression "piVar10 = *(int **)(puVar11 + 0x8de44)" identifier = (pointer_expression "*(int **)(puVar11 + 0x8de44)" * (cast_expression "(int **)(puVar11 + 0x8de44)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x8de44)" ( (binary_expression "puVar11 + 0x8de44" identifier + number_literal) ))))) ;) (expression_statement "old_running_trap = **(int **)(puVar11 + 0x8dd38);" (assignment_expression "old_running_trap = **(int **)(puVar11 + 0x8dd38)" identifier = (pointer_expression "**(int **)(puVar11 + 0x8dd38)" * (pointer_expression "*(int **)(puVar11 + 0x8dd38)" * (cast_expression "(int **)(puVar11 + 0x8dd38)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x8dd38)" ( (binary_expression "puVar11 + 0x8dd38" identifier + number_literal) )))))) ;) (expression_statement "iStack_e8 = 0;" (assignment_expression "iStack_e8 = 0" identifier = number_literal) ;) (expression_statement "iVar4 = *piVar10;" (assignment_expression "iVar4 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "iVar9 = *(int *)(puVar11 + 0x8d734);" (assignment_expression "iVar9 = *(int *)(puVar11 + 0x8d734)" identifier = (pointer_expression "*(int *)(puVar11 + 0x8d734)" * (cast_expression "(int *)(puVar11 + 0x8d734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x8d734)" ( (binary_expression "puVar11 + 0x8d734" identifier + number_literal) ))))) ;) (if_statement "if (iVar4 != 0) goto LAB_000b6f80;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b6f80;" goto statement_identifier ;)) (while_statement "while( true ) {\n    if (iStack_e8 == 0) {\n      iVar7 = parse_and_execute((char *)string_00,from_file,(int)flags_00);\n    }\n    else {\n      parse_and_execute_cleanup(old_running_trap);\n      iVar7 = **(int **)(puVar11 + 0x8deb0);\n    }\n    if (((iVar4 == 0) ||\n        ((**(code **)(puVar11 + 0x8ddbc))(*(int *)(puVar11 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar11 + 0x8de44) == 0)) break;\n    iVar9 = *(int *)(puVar11 + 0x8deac);\n    pcVar12 = *(code **)(puVar11 + 0x8f46c);\n    **(int **)(puVar11 + 0x8deb0) = iVar7;\n    (*pcVar12)(iVar9,1);\nLAB_000b6f80:\n    (**(code **)(puVar11 + 0x8ddb4))(iVar9 + -0x6c4c);\n    (**(code **)(puVar11 + 0x8ddc4))(piVar10,4);\n    (**(code **)(puVar11 + 0x8ddc4))(*(undefined4 *)(puVar11 + 0x8deac),0xf0);\n    uVar5 = *(undefined4 *)(puVar11 + 0x8deac);\n    pcVar12 = *(code **)(puVar11 + 0x8f68c);\n    *piVar10 = *piVar10 + 1;\n    iStack_e8 = (*pcVar12)(uVar5);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (iStack_e8 == 0) {\n      iVar7 = parse_and_execute((char *)string_00,from_file,(int)flags_00);\n    }\n    else {\n      parse_and_execute_cleanup(old_running_trap);\n      iVar7 = **(int **)(puVar11 + 0x8deb0);\n    }\n    if (((iVar4 == 0) ||\n        ((**(code **)(puVar11 + 0x8ddbc))(*(int *)(puVar11 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar11 + 0x8de44) == 0)) break;\n    iVar9 = *(int *)(puVar11 + 0x8deac);\n    pcVar12 = *(code **)(puVar11 + 0x8f46c);\n    **(int **)(puVar11 + 0x8deb0) = iVar7;\n    (*pcVar12)(iVar9,1);\nLAB_000b6f80:\n    (**(code **)(puVar11 + 0x8ddb4))(iVar9 + -0x6c4c);\n    (**(code **)(puVar11 + 0x8ddc4))(piVar10,4);\n    (**(code **)(puVar11 + 0x8ddc4))(*(undefined4 *)(puVar11 + 0x8deac),0xf0);\n    uVar5 = *(undefined4 *)(puVar11 + 0x8deac);\n    pcVar12 = *(code **)(puVar11 + 0x8f68c);\n    *piVar10 = *piVar10 + 1;\n    iStack_e8 = (*pcVar12)(uVar5);\n  }" { (if_statement "if (iStack_e8 == 0) {\n      iVar7 = parse_and_execute((char *)string_00,from_file,(int)flags_00);\n    }\n    else {\n      parse_and_execute_cleanup(old_running_trap);\n      iVar7 = **(int **)(puVar11 + 0x8deb0);\n    }" if (parenthesized_expression "(iStack_e8 == 0)" ( (binary_expression "iStack_e8 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar7 = parse_and_execute((char *)string_00,from_file,(int)flags_00);\n    }" { (expression_statement "iVar7 = parse_and_execute((char *)string_00,from_file,(int)flags_00);" (assignment_expression "iVar7 = parse_and_execute((char *)string_00,from_file,(int)flags_00)" identifier = (call_expression "parse_and_execute((char *)string_00,from_file,(int)flags_00)" identifier (argument_list "((char *)string_00,from_file,(int)flags_00)" ( (cast_expression "(char *)string_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (cast_expression "(int)flags_00" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) }) (else_clause "else {\n      parse_and_execute_cleanup(old_running_trap);\n      iVar7 = **(int **)(puVar11 + 0x8deb0);\n    }" else (compound_statement "{\n      parse_and_execute_cleanup(old_running_trap);\n      iVar7 = **(int **)(puVar11 + 0x8deb0);\n    }" { (expression_statement "parse_and_execute_cleanup(old_running_trap);" (call_expression "parse_and_execute_cleanup(old_running_trap)" identifier (argument_list "(old_running_trap)" ( identifier ))) ;) (expression_statement "iVar7 = **(int **)(puVar11 + 0x8deb0);" (assignment_expression "iVar7 = **(int **)(puVar11 + 0x8deb0)" identifier = (pointer_expression "**(int **)(puVar11 + 0x8deb0)" * (pointer_expression "*(int **)(puVar11 + 0x8deb0)" * (cast_expression "(int **)(puVar11 + 0x8deb0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x8deb0)" ( (binary_expression "puVar11 + 0x8deb0" identifier + number_literal) )))))) ;) }))) (if_statement "if (((iVar4 == 0) ||\n        ((**(code **)(puVar11 + 0x8ddbc))(*(int *)(puVar11 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar11 + 0x8de44) == 0)) break;" if (parenthesized_expression "(((iVar4 == 0) ||\n        ((**(code **)(puVar11 + 0x8ddbc))(*(int *)(puVar11 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar11 + 0x8de44) == 0))" ( (binary_expression "((iVar4 == 0) ||\n        ((**(code **)(puVar11 + 0x8ddbc))(*(int *)(puVar11 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar11 + 0x8de44) == 0)" (parenthesized_expression "((iVar4 == 0) ||\n        ((**(code **)(puVar11 + 0x8ddbc))(*(int *)(puVar11 + 0x8d734) + -0x6c4c), iStack_e8 == 0))" ( (binary_expression "(iVar4 == 0) ||\n        ((**(code **)(puVar11 + 0x8ddbc))(*(int *)(puVar11 + 0x8d734) + -0x6c4c), iStack_e8 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "((**(code **)(puVar11 + 0x8ddbc))(*(int *)(puVar11 + 0x8d734) + -0x6c4c), iStack_e8 == 0)" ( (comma_expression "(**(code **)(puVar11 + 0x8ddbc))(*(int *)(puVar11 + 0x8d734) + -0x6c4c), iStack_e8 == 0" (call_expression "(**(code **)(puVar11 + 0x8ddbc))(*(int *)(puVar11 + 0x8d734) + -0x6c4c)" (parenthesized_expression "(**(code **)(puVar11 + 0x8ddbc))" ( (pointer_expression "**(code **)(puVar11 + 0x8ddbc)" * (pointer_expression "*(code **)(puVar11 + 0x8ddbc)" * (cast_expression "(code **)(puVar11 + 0x8ddbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x8ddbc)" ( (binary_expression "puVar11 + 0x8ddbc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar11 + 0x8d734) + -0x6c4c)" ( (binary_expression "*(int *)(puVar11 + 0x8d734) + -0x6c4c" (pointer_expression "*(int *)(puVar11 + 0x8d734)" * (cast_expression "(int *)(puVar11 + 0x8d734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x8d734)" ( (binary_expression "puVar11 + 0x8d734" identifier + number_literal) )))) + number_literal) ))) , (binary_expression "iStack_e8 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(**(int **)(puVar11 + 0x8de44) == 0)" ( (binary_expression "**(int **)(puVar11 + 0x8de44) == 0" (pointer_expression "**(int **)(puVar11 + 0x8de44)" * (pointer_expression "*(int **)(puVar11 + 0x8de44)" * (cast_expression "(int **)(puVar11 + 0x8de44)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x8de44)" ( (binary_expression "puVar11 + 0x8de44" identifier + number_literal) ))))) == number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = *(int *)(puVar11 + 0x8deac);" (assignment_expression "iVar9 = *(int *)(puVar11 + 0x8deac)" identifier = (pointer_expression "*(int *)(puVar11 + 0x8deac)" * (cast_expression "(int *)(puVar11 + 0x8deac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x8deac)" ( (binary_expression "puVar11 + 0x8deac" identifier + number_literal) ))))) ;) (expression_statement "pcVar12 = *(code **)(puVar11 + 0x8f46c);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x8f46c)" identifier = (pointer_expression "*(code **)(puVar11 + 0x8f46c)" * (cast_expression "(code **)(puVar11 + 0x8f46c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x8f46c)" ( (binary_expression "puVar11 + 0x8f46c" identifier + number_literal) ))))) ;) (expression_statement "**(int **)(puVar11 + 0x8deb0) = iVar7;" (assignment_expression "**(int **)(puVar11 + 0x8deb0) = iVar7" (pointer_expression "**(int **)(puVar11 + 0x8deb0)" * (pointer_expression "*(int **)(puVar11 + 0x8deb0)" * (cast_expression "(int **)(puVar11 + 0x8deb0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x8deb0)" ( (binary_expression "puVar11 + 0x8deb0" identifier + number_literal) ))))) = identifier) ;) (expression_statement "(*pcVar12)(iVar9,1);" (call_expression "(*pcVar12)(iVar9,1)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(iVar9,1)" ( identifier , number_literal ))) ;) (labeled_statement "LAB_000b6f80:\n    (**(code **)(puVar11 + 0x8ddb4))(iVar9 + -0x6c4c);" statement_identifier : (expression_statement "(**(code **)(puVar11 + 0x8ddb4))(iVar9 + -0x6c4c);" (call_expression "(**(code **)(puVar11 + 0x8ddb4))(iVar9 + -0x6c4c)" (parenthesized_expression "(**(code **)(puVar11 + 0x8ddb4))" ( (pointer_expression "**(code **)(puVar11 + 0x8ddb4)" * (pointer_expression "*(code **)(puVar11 + 0x8ddb4)" * (cast_expression "(code **)(puVar11 + 0x8ddb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x8ddb4)" ( (binary_expression "puVar11 + 0x8ddb4" identifier + number_literal) ))))) )) (argument_list "(iVar9 + -0x6c4c)" ( (binary_expression "iVar9 + -0x6c4c" identifier + number_literal) ))) ;)) (expression_statement "(**(code **)(puVar11 + 0x8ddc4))(piVar10,4);" (call_expression "(**(code **)(puVar11 + 0x8ddc4))(piVar10,4)" (parenthesized_expression "(**(code **)(puVar11 + 0x8ddc4))" ( (pointer_expression "**(code **)(puVar11 + 0x8ddc4)" * (pointer_expression "*(code **)(puVar11 + 0x8ddc4)" * (cast_expression "(code **)(puVar11 + 0x8ddc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x8ddc4)" ( (binary_expression "puVar11 + 0x8ddc4" identifier + number_literal) ))))) )) (argument_list "(piVar10,4)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar11 + 0x8ddc4))(*(undefined4 *)(puVar11 + 0x8deac),0xf0);" (call_expression "(**(code **)(puVar11 + 0x8ddc4))(*(undefined4 *)(puVar11 + 0x8deac),0xf0)" (parenthesized_expression "(**(code **)(puVar11 + 0x8ddc4))" ( (pointer_expression "**(code **)(puVar11 + 0x8ddc4)" * (pointer_expression "*(code **)(puVar11 + 0x8ddc4)" * (cast_expression "(code **)(puVar11 + 0x8ddc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x8ddc4)" ( (binary_expression "puVar11 + 0x8ddc4" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar11 + 0x8deac),0xf0)" ( (pointer_expression "*(undefined4 *)(puVar11 + 0x8deac)" * (cast_expression "(undefined4 *)(puVar11 + 0x8deac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x8deac)" ( (binary_expression "puVar11 + 0x8deac" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "uVar5 = *(undefined4 *)(puVar11 + 0x8deac);" (assignment_expression "uVar5 = *(undefined4 *)(puVar11 + 0x8deac)" identifier = (pointer_expression "*(undefined4 *)(puVar11 + 0x8deac)" * (cast_expression "(undefined4 *)(puVar11 + 0x8deac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0x8deac)" ( (binary_expression "puVar11 + 0x8deac" identifier + number_literal) ))))) ;) (expression_statement "pcVar12 = *(code **)(puVar11 + 0x8f68c);" (assignment_expression "pcVar12 = *(code **)(puVar11 + 0x8f68c)" identifier = (pointer_expression "*(code **)(puVar11 + 0x8f68c)" * (cast_expression "(code **)(puVar11 + 0x8f68c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar11 + 0x8f68c)" ( (binary_expression "puVar11 + 0x8f68c" identifier + number_literal) ))))) ;) (expression_statement "*piVar10 = *piVar10 + 1;" (assignment_expression "*piVar10 = *piVar10 + 1" (pointer_expression "*piVar10" * identifier) = (binary_expression "*piVar10 + 1" (pointer_expression "*piVar10" * identifier) + number_literal)) ;) (expression_statement "iStack_e8 = (*pcVar12)(uVar5);" (assignment_expression "iStack_e8 = (*pcVar12)(uVar5)" identifier = (call_expression "(*pcVar12)(uVar5)" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "(uVar5)" ( identifier )))) ;) })) (return_statement "return iVar7;" return identifier ;) })))
(translation_unit "int parse_string(int param_1,undefined4 param_2,uint param_3,undefined4 *param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined1 *puVar10;\n  int *piVar11;\n  undefined1 *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int iStack_e8;\n  undefined1 auStack_94 [128];\n  undefined1 *local_14;\n  \n  puVar10 = auStack_94;\n  local_14 = *(undefined1 **)PTR___stack_chk_guard_001464dc;\n  FUN_000b5cf4(param_1,param_3,PTR_DAT_001445ac + -0x6c70);\n  (*(code *)PTR_sigemptyset_001462d4)(puVar10);\n  (*(code *)PTR_sigprocmask_00146514)(1,0);\n  (*(code *)PTR_push_stream_00144a70)(0);\n  iVar3 = (*(code *)PTR_parser_expanding_alias_00144818)();\n  if (iVar3 != 0) {\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }\n  puVar2 = PTR_current_token_001448e8;\n  puVar13 = PTR_global_command_00144830;\n  puVar12 = (undefined1 *)0x0;\n  uVar4 = *(undefined4 *)PTR_global_command_00144830;\n  (*(code *)PTR_with_input_from_string_00145948)(param_1);\n  pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n  puVar7 = PTR_DAT_001445ac + -0x6c5c;\n  while (bVar1 = false, *pcVar5 != '\0') {\n    puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }\n    bVar1 = false;\n    iVar3 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);\n    *(undefined4 *)puVar13 = 0;\n    pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }\n  param_1 = (int)pcVar5 - param_1;\n  *(undefined4 *)PTR_global_command_00144830 = uVar4;\n  if (param_4 != (undefined4 *)0x0) {\n    *param_4 = pcVar5;\n  }\n  (*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);\n  if (bVar1) {\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    param_1 = -2;\n    if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }\n  puVar12 = local_14;\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc) {\n    return param_1;\n  }\nLAB_000b6e6c:\n  puVar13 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  piVar11 = *(int **)(puVar13 + 0x8de44);\n  uVar4 = **(undefined4 **)(puVar13 + 0x8dd38);\n  iStack_e8 = 0;\n  iVar3 = *piVar11;\n  iVar8 = *(int *)(puVar13 + 0x8d734);\n  if (iVar3 != 0) goto LAB_000b6f80;\n  while( true ) {\n    if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }\n    if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;\n    iVar8 = *(int *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f46c);\n    **(int **)(puVar13 + 0x8deb0) = iVar6;\n    (*pcVar14)(iVar8,1);\nLAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);\n    (**(code **)(puVar13 + 0x8ddc4))(piVar11,4);\n    (**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);\n    uVar9 = *(undefined4 *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f68c);\n    *piVar11 = *piVar11 + 1;\n    iStack_e8 = (*pcVar14)(uVar9);\n  }\n  return iVar6;\n}\n\n" (function_definition "int parse_string(int param_1,undefined4 param_2,uint param_3,undefined4 *param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined1 *puVar10;\n  int *piVar11;\n  undefined1 *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int iStack_e8;\n  undefined1 auStack_94 [128];\n  undefined1 *local_14;\n  \n  puVar10 = auStack_94;\n  local_14 = *(undefined1 **)PTR___stack_chk_guard_001464dc;\n  FUN_000b5cf4(param_1,param_3,PTR_DAT_001445ac + -0x6c70);\n  (*(code *)PTR_sigemptyset_001462d4)(puVar10);\n  (*(code *)PTR_sigprocmask_00146514)(1,0);\n  (*(code *)PTR_push_stream_00144a70)(0);\n  iVar3 = (*(code *)PTR_parser_expanding_alias_00144818)();\n  if (iVar3 != 0) {\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }\n  puVar2 = PTR_current_token_001448e8;\n  puVar13 = PTR_global_command_00144830;\n  puVar12 = (undefined1 *)0x0;\n  uVar4 = *(undefined4 *)PTR_global_command_00144830;\n  (*(code *)PTR_with_input_from_string_00145948)(param_1);\n  pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n  puVar7 = PTR_DAT_001445ac + -0x6c5c;\n  while (bVar1 = false, *pcVar5 != '\0') {\n    puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }\n    bVar1 = false;\n    iVar3 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);\n    *(undefined4 *)puVar13 = 0;\n    pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }\n  param_1 = (int)pcVar5 - param_1;\n  *(undefined4 *)PTR_global_command_00144830 = uVar4;\n  if (param_4 != (undefined4 *)0x0) {\n    *param_4 = pcVar5;\n  }\n  (*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);\n  if (bVar1) {\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    param_1 = -2;\n    if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }\n  puVar12 = local_14;\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc) {\n    return param_1;\n  }\nLAB_000b6e6c:\n  puVar13 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  piVar11 = *(int **)(puVar13 + 0x8de44);\n  uVar4 = **(undefined4 **)(puVar13 + 0x8dd38);\n  iStack_e8 = 0;\n  iVar3 = *piVar11;\n  iVar8 = *(int *)(puVar13 + 0x8d734);\n  if (iVar3 != 0) goto LAB_000b6f80;\n  while( true ) {\n    if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }\n    if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;\n    iVar8 = *(int *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f46c);\n    **(int **)(puVar13 + 0x8deb0) = iVar6;\n    (*pcVar14)(iVar8,1);\nLAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);\n    (**(code **)(puVar13 + 0x8ddc4))(piVar11,4);\n    (**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);\n    uVar9 = *(undefined4 *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f68c);\n    *piVar11 = *piVar11 + 1;\n    iStack_e8 = (*pcVar14)(uVar9);\n  }\n  return iVar6;\n}" primitive_type (function_declarator "parse_string(int param_1,undefined4 param_2,uint param_3,undefined4 *param_4)" identifier (parameter_list "(int param_1,undefined4 param_2,uint param_3,undefined4 *param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined1 *puVar10;\n  int *piVar11;\n  undefined1 *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int iStack_e8;\n  undefined1 auStack_94 [128];\n  undefined1 *local_14;\n  \n  puVar10 = auStack_94;\n  local_14 = *(undefined1 **)PTR___stack_chk_guard_001464dc;\n  FUN_000b5cf4(param_1,param_3,PTR_DAT_001445ac + -0x6c70);\n  (*(code *)PTR_sigemptyset_001462d4)(puVar10);\n  (*(code *)PTR_sigprocmask_00146514)(1,0);\n  (*(code *)PTR_push_stream_00144a70)(0);\n  iVar3 = (*(code *)PTR_parser_expanding_alias_00144818)();\n  if (iVar3 != 0) {\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }\n  puVar2 = PTR_current_token_001448e8;\n  puVar13 = PTR_global_command_00144830;\n  puVar12 = (undefined1 *)0x0;\n  uVar4 = *(undefined4 *)PTR_global_command_00144830;\n  (*(code *)PTR_with_input_from_string_00145948)(param_1);\n  pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n  puVar7 = PTR_DAT_001445ac + -0x6c5c;\n  while (bVar1 = false, *pcVar5 != '\0') {\n    puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }\n    bVar1 = false;\n    iVar3 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);\n    *(undefined4 *)puVar13 = 0;\n    pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }\n  param_1 = (int)pcVar5 - param_1;\n  *(undefined4 *)PTR_global_command_00144830 = uVar4;\n  if (param_4 != (undefined4 *)0x0) {\n    *param_4 = pcVar5;\n  }\n  (*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);\n  if (bVar1) {\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    param_1 = -2;\n    if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }\n  puVar12 = local_14;\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc) {\n    return param_1;\n  }\nLAB_000b6e6c:\n  puVar13 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  piVar11 = *(int **)(puVar13 + 0x8de44);\n  uVar4 = **(undefined4 **)(puVar13 + 0x8dd38);\n  iStack_e8 = 0;\n  iVar3 = *piVar11;\n  iVar8 = *(int *)(puVar13 + 0x8d734);\n  if (iVar3 != 0) goto LAB_000b6f80;\n  while( true ) {\n    if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }\n    if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;\n    iVar8 = *(int *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f46c);\n    **(int **)(puVar13 + 0x8deb0) = iVar6;\n    (*pcVar14)(iVar8,1);\nLAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);\n    (**(code **)(puVar13 + 0x8ddc4))(piVar11,4);\n    (**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);\n    uVar9 = *(undefined4 *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f68c);\n    *piVar11 = *piVar11 + 1;\n    iStack_e8 = (*pcVar14)(uVar9);\n  }\n  return iVar6;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "undefined1 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int iStack_e8;" primitive_type identifier ;) (declaration "undefined1 auStack_94 [128];" type_identifier (array_declarator "auStack_94 [128]" identifier [ number_literal ]) ;) (declaration "undefined1 *local_14;" type_identifier (pointer_declarator "*local_14" * identifier) ;) (expression_statement "puVar10 = auStack_94;" (assignment_expression "puVar10 = auStack_94" identifier = identifier) ;) (expression_statement "local_14 = *(undefined1 **)PTR___stack_chk_guard_001464dc;" (assignment_expression "local_14 = *(undefined1 **)PTR___stack_chk_guard_001464dc" identifier = (pointer_expression "*(undefined1 **)PTR___stack_chk_guard_001464dc" * (cast_expression "(undefined1 **)PTR___stack_chk_guard_001464dc" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "FUN_000b5cf4(param_1,param_3,PTR_DAT_001445ac + -0x6c70);" (call_expression "FUN_000b5cf4(param_1,param_3,PTR_DAT_001445ac + -0x6c70)" identifier (argument_list "(param_1,param_3,PTR_DAT_001445ac + -0x6c70)" ( identifier , identifier , (binary_expression "PTR_DAT_001445ac + -0x6c70" identifier + number_literal) ))) ;) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(puVar10);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(puVar10)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" ( (pointer_expression "*(code *)PTR_sigemptyset_001462d4" * (cast_expression "(code *)PTR_sigemptyset_001462d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar10)" ( identifier ))) ;) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,0)" ( number_literal , number_literal ))) ;) (expression_statement "(*(code *)PTR_push_stream_00144a70)(0);" (call_expression "(*(code *)PTR_push_stream_00144a70)(0)" (parenthesized_expression "(*(code *)PTR_push_stream_00144a70)" ( (pointer_expression "*(code *)PTR_push_stream_00144a70" * (cast_expression "(code *)PTR_push_stream_00144a70" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0)" ( number_literal ))) ;) (expression_statement "iVar3 = (*(code *)PTR_parser_expanding_alias_00144818)();" (assignment_expression "iVar3 = (*(code *)PTR_parser_expanding_alias_00144818)()" identifier = (call_expression "(*(code *)PTR_parser_expanding_alias_00144818)()" (parenthesized_expression "(*(code *)PTR_parser_expanding_alias_00144818)" ( (pointer_expression "*(code *)PTR_parser_expanding_alias_00144818" * (cast_expression "(code *)PTR_parser_expanding_alias_00144818" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 != 0) {\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }" { (expression_statement "(*(code *)PTR_parser_save_alias_00145950)();" (call_expression "(*(code *)PTR_parser_save_alias_00145950)()" (parenthesized_expression "(*(code *)PTR_parser_save_alias_00145950)" ( (pointer_expression "*(code *)PTR_parser_save_alias_00145950" * (cast_expression "(code *)PTR_parser_save_alias_00145950" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "puVar2 = PTR_current_token_001448e8;" (assignment_expression "puVar2 = PTR_current_token_001448e8" identifier = identifier) ;) (expression_statement "puVar13 = PTR_global_command_00144830;" (assignment_expression "puVar13 = PTR_global_command_00144830" identifier = identifier) ;) (expression_statement "puVar12 = (undefined1 *)0x0;" (assignment_expression "puVar12 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar4 = *(undefined4 *)PTR_global_command_00144830;" (assignment_expression "uVar4 = *(undefined4 *)PTR_global_command_00144830" identifier = (pointer_expression "*(undefined4 *)PTR_global_command_00144830" * (cast_expression "(undefined4 *)PTR_global_command_00144830" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)PTR_with_input_from_string_00145948)(param_1);" (call_expression "(*(code *)PTR_with_input_from_string_00145948)(param_1)" (parenthesized_expression "(*(code *)PTR_with_input_from_string_00145948)" ( (pointer_expression "*(code *)PTR_with_input_from_string_00145948" * (cast_expression "(code *)PTR_with_input_from_string_00145948" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8)" identifier = (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" * (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" ( (binary_expression "PTR_bash_input_001446a4 + 8" identifier + number_literal) ))))) ;) (expression_statement "puVar7 = PTR_DAT_001445ac + -0x6c5c;" (assignment_expression "puVar7 = PTR_DAT_001445ac + -0x6c5c" identifier = (binary_expression "PTR_DAT_001445ac + -0x6c5c" identifier + number_literal)) ;) (while_statement "while (bVar1 = false, *pcVar5 != '\0') {\n    puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }\n    bVar1 = false;\n    iVar3 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);\n    *(undefined4 *)puVar13 = 0;\n    pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }" while (parenthesized_expression "(bVar1 = false, *pcVar5 != '\0')" ( (comma_expression "bVar1 = false, *pcVar5 != '\0'" (assignment_expression "bVar1 = false" identifier = false) , (binary_expression "*pcVar5 != '\0'" (pointer_expression "*pcVar5" * identifier) != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n    puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }\n    bVar1 = false;\n    iVar3 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);\n    *(undefined4 *)puVar13 = 0;\n    pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }" { (expression_statement "puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);" (assignment_expression "puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8)" identifier = (cast_expression "(undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8)" (parenthesized_expression "(*(code *)PTR__setjmp_00146504)" ( (pointer_expression "*(code *)PTR__setjmp_00146504" * (cast_expression "(code *)PTR__setjmp_00146504" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_top_level_001445d8)" ( identifier ))))) ;) (if_statement "if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }" if (parenthesized_expression "(puVar12 != (undefined1 *)0x0)" ( (binary_expression "puVar12 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }" { (if_statement "if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }" if (parenthesized_expression "(puVar12 + -1 < &DAT_00000004)" ( (binary_expression "puVar12 + -1 < &DAT_00000004" (binary_expression "puVar12 + -1" identifier + number_literal) < (pointer_expression "&DAT_00000004" & identifier)) )) (compound_statement "{\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }" { (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8)" identifier = (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" * (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" ( (binary_expression "PTR_bash_input_001446a4 + 8" identifier + number_literal) ))))) ;) (break_statement "break;" break ;) })) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" ( (pointer_expression "*(code *)PTR_sigprocmask_00146514" * (cast_expression "(code *)PTR_sigprocmask_00146514" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(3,auStack_94,0)" ( number_literal , identifier , number_literal ))) ;) (expression_statement "param_2 = 3;" (assignment_expression "param_2 = 3" identifier = number_literal) ;) (expression_statement "puVar10 = puVar12;" (assignment_expression "puVar10 = puVar12" identifier = identifier) ;) (expression_statement "(*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);" (call_expression "(*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0)" (parenthesized_expression "(*(code *)PTR_command_error_001445e4)" ( (pointer_expression "*(code *)PTR_command_error_001445e4" * (cast_expression "(code *)PTR_command_error_001445e4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar7,3,puVar12,0)" ( identifier , number_literal , identifier , number_literal ))) ;) })) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (expression_statement "iVar3 = (*(code *)PTR_parse_command_00144844)();" (assignment_expression "iVar3 = (*(code *)PTR_parse_command_00144844)()" identifier = (call_expression "(*(code *)PTR_parse_command_00144844)()" (parenthesized_expression "(*(code *)PTR_parse_command_00144844)" ( (pointer_expression "*(code *)PTR_parse_command_00144844" * (cast_expression "(code *)PTR_parse_command_00144844" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }" { (if_statement "if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }" if (parenthesized_expression "((param_3 & 0x40) == 0)" ( (binary_expression "(param_3 & 0x40) == 0" (parenthesized_expression "(param_3 & 0x40)" ( (binary_expression "param_3 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }" { (expression_statement "puVar12 = (undefined1 *)0x2;" (assignment_expression "puVar12 = (undefined1 *)0x2" identifier = (cast_expression "(undefined1 *)0x2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (expression_statement "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8)" identifier = (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" * (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" ( (binary_expression "PTR_bash_input_001446a4 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }" else (compound_statement "{\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }" { (expression_statement "(*(code *)PTR_reset_parser_00144934)();" (call_expression "(*(code *)PTR_reset_parser_00144934)()" (parenthesized_expression "(*(code *)PTR_reset_parser_00144934)" ( (pointer_expression "*(code *)PTR_reset_parser_00144934" * (cast_expression "(code *)PTR_reset_parser_00144934" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8)" identifier = (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" * (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" ( (binary_expression "PTR_bash_input_001446a4 + 8" identifier + number_literal) ))))) ;) }))) (break_statement "break;" break ;) })) (expression_statement "(*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);" (call_expression "(*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13)" (parenthesized_expression "(*(code *)PTR_dispose_command_00144860)" ( (pointer_expression "*(code *)PTR_dispose_command_00144860" * (cast_expression "(code *)PTR_dispose_command_00144860" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)puVar13)" ( (pointer_expression "*(undefined4 *)puVar13" * (cast_expression "(undefined4 *)puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ))) ;) (expression_statement "*(undefined4 *)puVar13 = 0;" (assignment_expression "*(undefined4 *)puVar13 = 0" (pointer_expression "*(undefined4 *)puVar13" * (cast_expression "(undefined4 *)puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8)" identifier = (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" * (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" ( (binary_expression "PTR_bash_input_001446a4 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;" if (parenthesized_expression "((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))" ( (binary_expression "(*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0)" (parenthesized_expression "(*(int *)puVar2 == 0x130)" ( (binary_expression "*(int *)puVar2 == 0x130" (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) || (parenthesized_expression "(*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0)" ( (binary_expression "*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0" (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == (pointer_expression "*(int *)PTR_shell_eof_token_001449a0" * (cast_expression "(int *)PTR_shell_eof_token_001449a0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ))) )) (break_statement "break;" break ;)) })) (expression_statement "param_1 = (int)pcVar5 - param_1;" (assignment_expression "param_1 = (int)pcVar5 - param_1" identifier = (binary_expression "(int)pcVar5 - param_1" (cast_expression "(int)pcVar5" ( (type_descriptor "int" primitive_type) ) identifier) - identifier)) ;) (expression_statement "*(undefined4 *)PTR_global_command_00144830 = uVar4;" (assignment_expression "*(undefined4 *)PTR_global_command_00144830 = uVar4" (pointer_expression "*(undefined4 *)PTR_global_command_00144830" * (cast_expression "(undefined4 *)PTR_global_command_00144830" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (param_4 != (undefined4 *)0x0) {\n    *param_4 = pcVar5;\n  }" if (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_4 = pcVar5;\n  }" { (expression_statement "*param_4 = pcVar5;" (assignment_expression "*param_4 = pcVar5" (pointer_expression "*param_4" * identifier) = identifier) ;) })) (expression_statement "(*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);" (call_expression "(*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70)" (parenthesized_expression "(*(code *)PTR_run_unwind_frame_00144c34)" ( (pointer_expression "*(code *)PTR_run_unwind_frame_00144c34" * (cast_expression "(code *)PTR_run_unwind_frame_00144c34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_001445ac + -0x6c70)" ( (binary_expression "PTR_DAT_001445ac + -0x6c70" identifier + number_literal) ))) ;) (if_statement "if (bVar1) {\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    param_1 = -2;\n    if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    param_1 = -2;\n    if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }" { (if_statement "if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }" if (parenthesized_expression "(*(int *)PTR_parse_and_execute_level_001448fc == 0)" ( (binary_expression "*(int *)PTR_parse_and_execute_level_001448fc == 0" (pointer_expression "*(int *)PTR_parse_and_execute_level_001448fc" * (cast_expression "(int *)PTR_parse_and_execute_level_001448fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }" { (expression_statement "(*(code *)PTR_top_level_cleanup_00144fb0)();" (call_expression "(*(code *)PTR_top_level_cleanup_00144fb0)()" (parenthesized_expression "(*(code *)PTR_top_level_cleanup_00144fb0)" ( (pointer_expression "*(code *)PTR_top_level_cleanup_00144fb0" * (cast_expression "(code *)PTR_top_level_cleanup_00144fb0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "param_1 = -2;" (assignment_expression "param_1 = -2" identifier = number_literal) ;) (if_statement "if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }" if (parenthesized_expression "(puVar12 != (undefined1 *)0x2)" ( (binary_expression "puVar12 != (undefined1 *)0x2" identifier != (cast_expression "(undefined1 *)0x2" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }" { (expression_statement "(*(code *)PTR_jump_to_top_level_00144808)();" (call_expression "(*(code *)PTR_jump_to_top_level_00144808)()" (parenthesized_expression "(*(code *)PTR_jump_to_top_level_00144808)" ( (pointer_expression "*(code *)PTR_jump_to_top_level_00144808" * (cast_expression "(code *)PTR_jump_to_top_level_00144808" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (goto_statement "goto LAB_000b6e6c;" goto statement_identifier ;) })) })) (expression_statement "puVar12 = local_14;" (assignment_expression "puVar12 = local_14" identifier = identifier) ;) (if_statement "if (local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc) {\n    return param_1;\n  }" if (parenthesized_expression "(local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc)" ( (binary_expression "local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc" identifier == (pointer_expression "*(undefined1 **)PTR___stack_chk_guard_001464dc" * (cast_expression "(undefined1 **)PTR___stack_chk_guard_001464dc" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return param_1;\n  }" { (return_statement "return param_1;" return identifier ;) })) (labeled_statement "LAB_000b6e6c:\n  puVar13 = PTR___stack_chk_fail_00146488;" statement_identifier : (expression_statement "puVar13 = PTR___stack_chk_fail_00146488;" (assignment_expression "puVar13 = PTR___stack_chk_fail_00146488" identifier = identifier) ;)) (expression_statement "(*(code *)PTR___stack_chk_fail_00146488)();" (call_expression "(*(code *)PTR___stack_chk_fail_00146488)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00146488)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00146488" * (cast_expression "(code *)PTR___stack_chk_fail_00146488" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar11 = *(int **)(puVar13 + 0x8de44);" (assignment_expression "piVar11 = *(int **)(puVar13 + 0x8de44)" identifier = (pointer_expression "*(int **)(puVar13 + 0x8de44)" * (cast_expression "(int **)(puVar13 + 0x8de44)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8de44)" ( (binary_expression "puVar13 + 0x8de44" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = **(undefined4 **)(puVar13 + 0x8dd38);" (assignment_expression "uVar4 = **(undefined4 **)(puVar13 + 0x8dd38)" identifier = (pointer_expression "**(undefined4 **)(puVar13 + 0x8dd38)" * (pointer_expression "*(undefined4 **)(puVar13 + 0x8dd38)" * (cast_expression "(undefined4 **)(puVar13 + 0x8dd38)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8dd38)" ( (binary_expression "puVar13 + 0x8dd38" identifier + number_literal) )))))) ;) (expression_statement "iStack_e8 = 0;" (assignment_expression "iStack_e8 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = *piVar11;" (assignment_expression "iVar3 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "iVar8 = *(int *)(puVar13 + 0x8d734);" (assignment_expression "iVar8 = *(int *)(puVar13 + 0x8d734)" identifier = (pointer_expression "*(int *)(puVar13 + 0x8d734)" * (cast_expression "(int *)(puVar13 + 0x8d734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x8d734)" ( (binary_expression "puVar13 + 0x8d734" identifier + number_literal) ))))) ;) (if_statement "if (iVar3 != 0) goto LAB_000b6f80;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b6f80;" goto statement_identifier ;)) (while_statement "while( true ) {\n    if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }\n    if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;\n    iVar8 = *(int *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f46c);\n    **(int **)(puVar13 + 0x8deb0) = iVar6;\n    (*pcVar14)(iVar8,1);\nLAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);\n    (**(code **)(puVar13 + 0x8ddc4))(piVar11,4);\n    (**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);\n    uVar9 = *(undefined4 *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f68c);\n    *piVar11 = *piVar11 + 1;\n    iStack_e8 = (*pcVar14)(uVar9);\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }\n    if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;\n    iVar8 = *(int *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f46c);\n    **(int **)(puVar13 + 0x8deb0) = iVar6;\n    (*pcVar14)(iVar8,1);\nLAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);\n    (**(code **)(puVar13 + 0x8ddc4))(piVar11,4);\n    (**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);\n    uVar9 = *(undefined4 *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f68c);\n    *piVar11 = *piVar11 + 1;\n    iStack_e8 = (*pcVar14)(uVar9);\n  }" { (if_statement "if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }" if (parenthesized_expression "(iStack_e8 == 0)" ( (binary_expression "iStack_e8 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }" { (expression_statement "iVar6 = parse_and_execute(puVar12,param_2,puVar10);" (assignment_expression "iVar6 = parse_and_execute(puVar12,param_2,puVar10)" identifier = (call_expression "parse_and_execute(puVar12,param_2,puVar10)" identifier (argument_list "(puVar12,param_2,puVar10)" ( identifier , identifier , identifier )))) ;) }) (else_clause "else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }" else (compound_statement "{\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }" { (expression_statement "parse_and_execute_cleanup(uVar4);" (call_expression "parse_and_execute_cleanup(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "iVar6 = **(int **)(puVar13 + 0x8deb0);" (assignment_expression "iVar6 = **(int **)(puVar13 + 0x8deb0)" identifier = (pointer_expression "**(int **)(puVar13 + 0x8deb0)" * (pointer_expression "*(int **)(puVar13 + 0x8deb0)" * (cast_expression "(int **)(puVar13 + 0x8deb0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8deb0)" ( (binary_expression "puVar13 + 0x8deb0" identifier + number_literal) )))))) ;) }))) (if_statement "if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;" if (parenthesized_expression "(((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0))" ( (binary_expression "((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)" (parenthesized_expression "((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))" ( (binary_expression "(iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0)" ( (comma_expression "(**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0" (call_expression "(**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c)" (parenthesized_expression "(**(code **)(puVar13 + 0x8ddbc))" ( (pointer_expression "**(code **)(puVar13 + 0x8ddbc)" * (pointer_expression "*(code **)(puVar13 + 0x8ddbc)" * (cast_expression "(code **)(puVar13 + 0x8ddbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8ddbc)" ( (binary_expression "puVar13 + 0x8ddbc" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar13 + 0x8d734) + -0x6c4c)" ( (binary_expression "*(int *)(puVar13 + 0x8d734) + -0x6c4c" (pointer_expression "*(int *)(puVar13 + 0x8d734)" * (cast_expression "(int *)(puVar13 + 0x8d734)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x8d734)" ( (binary_expression "puVar13 + 0x8d734" identifier + number_literal) )))) + number_literal) ))) , (binary_expression "iStack_e8 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(**(int **)(puVar13 + 0x8de44) == 0)" ( (binary_expression "**(int **)(puVar13 + 0x8de44) == 0" (pointer_expression "**(int **)(puVar13 + 0x8de44)" * (pointer_expression "*(int **)(puVar13 + 0x8de44)" * (cast_expression "(int **)(puVar13 + 0x8de44)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8de44)" ( (binary_expression "puVar13 + 0x8de44" identifier + number_literal) ))))) == number_literal) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar8 = *(int *)(puVar13 + 0x8deac);" (assignment_expression "iVar8 = *(int *)(puVar13 + 0x8deac)" identifier = (pointer_expression "*(int *)(puVar13 + 0x8deac)" * (cast_expression "(int *)(puVar13 + 0x8deac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x8deac)" ( (binary_expression "puVar13 + 0x8deac" identifier + number_literal) ))))) ;) (expression_statement "pcVar14 = *(code **)(puVar13 + 0x8f46c);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x8f46c)" identifier = (pointer_expression "*(code **)(puVar13 + 0x8f46c)" * (cast_expression "(code **)(puVar13 + 0x8f46c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8f46c)" ( (binary_expression "puVar13 + 0x8f46c" identifier + number_literal) ))))) ;) (expression_statement "**(int **)(puVar13 + 0x8deb0) = iVar6;" (assignment_expression "**(int **)(puVar13 + 0x8deb0) = iVar6" (pointer_expression "**(int **)(puVar13 + 0x8deb0)" * (pointer_expression "*(int **)(puVar13 + 0x8deb0)" * (cast_expression "(int **)(puVar13 + 0x8deb0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8deb0)" ( (binary_expression "puVar13 + 0x8deb0" identifier + number_literal) ))))) = identifier) ;) (expression_statement "(*pcVar14)(iVar8,1);" (call_expression "(*pcVar14)(iVar8,1)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(iVar8,1)" ( identifier , number_literal ))) ;) (labeled_statement "LAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);" statement_identifier : (expression_statement "(**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);" (call_expression "(**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c)" (parenthesized_expression "(**(code **)(puVar13 + 0x8ddb4))" ( (pointer_expression "**(code **)(puVar13 + 0x8ddb4)" * (pointer_expression "*(code **)(puVar13 + 0x8ddb4)" * (cast_expression "(code **)(puVar13 + 0x8ddb4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8ddb4)" ( (binary_expression "puVar13 + 0x8ddb4" identifier + number_literal) ))))) )) (argument_list "(iVar8 + -0x6c4c)" ( (binary_expression "iVar8 + -0x6c4c" identifier + number_literal) ))) ;)) (expression_statement "(**(code **)(puVar13 + 0x8ddc4))(piVar11,4);" (call_expression "(**(code **)(puVar13 + 0x8ddc4))(piVar11,4)" (parenthesized_expression "(**(code **)(puVar13 + 0x8ddc4))" ( (pointer_expression "**(code **)(puVar13 + 0x8ddc4)" * (pointer_expression "*(code **)(puVar13 + 0x8ddc4)" * (cast_expression "(code **)(puVar13 + 0x8ddc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8ddc4)" ( (binary_expression "puVar13 + 0x8ddc4" identifier + number_literal) ))))) )) (argument_list "(piVar11,4)" ( identifier , number_literal ))) ;) (expression_statement "(**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);" (call_expression "(**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0)" (parenthesized_expression "(**(code **)(puVar13 + 0x8ddc4))" ( (pointer_expression "**(code **)(puVar13 + 0x8ddc4)" * (pointer_expression "*(code **)(puVar13 + 0x8ddc4)" * (cast_expression "(code **)(puVar13 + 0x8ddc4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8ddc4)" ( (binary_expression "puVar13 + 0x8ddc4" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar13 + 0x8deac),0xf0)" ( (pointer_expression "*(undefined4 *)(puVar13 + 0x8deac)" * (cast_expression "(undefined4 *)(puVar13 + 0x8deac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x8deac)" ( (binary_expression "puVar13 + 0x8deac" identifier + number_literal) )))) , number_literal ))) ;) (expression_statement "uVar9 = *(undefined4 *)(puVar13 + 0x8deac);" (assignment_expression "uVar9 = *(undefined4 *)(puVar13 + 0x8deac)" identifier = (pointer_expression "*(undefined4 *)(puVar13 + 0x8deac)" * (cast_expression "(undefined4 *)(puVar13 + 0x8deac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0x8deac)" ( (binary_expression "puVar13 + 0x8deac" identifier + number_literal) ))))) ;) (expression_statement "pcVar14 = *(code **)(puVar13 + 0x8f68c);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x8f68c)" identifier = (pointer_expression "*(code **)(puVar13 + 0x8f68c)" * (cast_expression "(code **)(puVar13 + 0x8f68c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0x8f68c)" ( (binary_expression "puVar13 + 0x8f68c" identifier + number_literal) ))))) ;) (expression_statement "*piVar11 = *piVar11 + 1;" (assignment_expression "*piVar11 = *piVar11 + 1" (pointer_expression "*piVar11" * identifier) = (binary_expression "*piVar11 + 1" (pointer_expression "*piVar11" * identifier) + number_literal)) ;) (expression_statement "iStack_e8 = (*pcVar14)(uVar9);" (assignment_expression "iStack_e8 = (*pcVar14)(uVar9)" identifier = (call_expression "(*pcVar14)(uVar9)" (parenthesized_expression "(*pcVar14)" ( (pointer_expression "*pcVar14" * identifier) )) (argument_list "(uVar9)" ( identifier )))) ;) })) (return_statement "return iVar6;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = BOOL) , (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence '))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (break_statement break ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (break_statement break ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ))) )) (break_statement break ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = 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 IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) , (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) ))))) == LIT) ))) )) (break_statement break ;)) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) })) (return_statement return IDENT ;) })))
(function_definition "int parse_string(int param_1,undefined4 param_2,uint param_3,undefined4 *param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined1 *puVar10;\n  int *piVar11;\n  undefined1 *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int iStack_e8;\n  undefined1 auStack_94 [128];\n  undefined1 *local_14;\n  \n  puVar10 = auStack_94;\n  local_14 = *(undefined1 **)PTR___stack_chk_guard_001464dc;\n  FUN_000b5cf4(param_1,param_3,PTR_DAT_001445ac + -0x6c70);\n  (*(code *)PTR_sigemptyset_001462d4)(puVar10);\n  (*(code *)PTR_sigprocmask_00146514)(1,0);\n  (*(code *)PTR_push_stream_00144a70)(0);\n  iVar3 = (*(code *)PTR_parser_expanding_alias_00144818)();\n  if (iVar3 != 0) {\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }\n  puVar2 = PTR_current_token_001448e8;\n  puVar13 = PTR_global_command_00144830;\n  puVar12 = (undefined1 *)0x0;\n  uVar4 = *(undefined4 *)PTR_global_command_00144830;\n  (*(code *)PTR_with_input_from_string_00145948)(param_1);\n  pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n  puVar7 = PTR_DAT_001445ac + -0x6c5c;\n  while (bVar1 = false, *pcVar5 != '\0') {\n    puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }\n    bVar1 = false;\n    iVar3 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);\n    *(undefined4 *)puVar13 = 0;\n    pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }\n  param_1 = (int)pcVar5 - param_1;\n  *(undefined4 *)PTR_global_command_00144830 = uVar4;\n  if (param_4 != (undefined4 *)0x0) {\n    *param_4 = pcVar5;\n  }\n  (*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);\n  if (bVar1) {\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    param_1 = -2;\n    if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }\n  puVar12 = local_14;\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc) {\n    return param_1;\n  }\nLAB_000b6e6c:\n  puVar13 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  piVar11 = *(int **)(puVar13 + 0x8de44);\n  uVar4 = **(undefined4 **)(puVar13 + 0x8dd38);\n  iStack_e8 = 0;\n  iVar3 = *piVar11;\n  iVar8 = *(int *)(puVar13 + 0x8d734);\n  if (iVar3 != 0) goto LAB_000b6f80;\n  while( true ) {\n    if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }\n    if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;\n    iVar8 = *(int *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f46c);\n    **(int **)(puVar13 + 0x8deb0) = iVar6;\n    (*pcVar14)(iVar8,1);\nLAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);\n    (**(code **)(puVar13 + 0x8ddc4))(piVar11,4);\n    (**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);\n    uVar9 = *(undefined4 *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f68c);\n    *piVar11 = *piVar11 + 1;\n    iStack_e8 = (*pcVar14)(uVar9);\n  }\n  return iVar6;\n}" (primitive_type "int") (function_declarator "parse_string(int param_1,undefined4 param_2,uint param_3,undefined4 *param_4)" (identifier "parse_string") (parameter_list "(int param_1,undefined4 param_2,uint param_3,undefined4 *param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 uVar4;\n  char *pcVar5;\n  int iVar6;\n  undefined *puVar7;\n  int iVar8;\n  undefined4 uVar9;\n  undefined1 *puVar10;\n  int *piVar11;\n  undefined1 *puVar12;\n  undefined *puVar13;\n  code *pcVar14;\n  int iStack_e8;\n  undefined1 auStack_94 [128];\n  undefined1 *local_14;\n  \n  puVar10 = auStack_94;\n  local_14 = *(undefined1 **)PTR___stack_chk_guard_001464dc;\n  FUN_000b5cf4(param_1,param_3,PTR_DAT_001445ac + -0x6c70);\n  (*(code *)PTR_sigemptyset_001462d4)(puVar10);\n  (*(code *)PTR_sigprocmask_00146514)(1,0);\n  (*(code *)PTR_push_stream_00144a70)(0);\n  iVar3 = (*(code *)PTR_parser_expanding_alias_00144818)();\n  if (iVar3 != 0) {\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }\n  puVar2 = PTR_current_token_001448e8;\n  puVar13 = PTR_global_command_00144830;\n  puVar12 = (undefined1 *)0x0;\n  uVar4 = *(undefined4 *)PTR_global_command_00144830;\n  (*(code *)PTR_with_input_from_string_00145948)(param_1);\n  pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n  puVar7 = PTR_DAT_001445ac + -0x6c5c;\n  while (bVar1 = false, *pcVar5 != '\0') {\n    puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }\n    bVar1 = false;\n    iVar3 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);\n    *(undefined4 *)puVar13 = 0;\n    pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }\n  param_1 = (int)pcVar5 - param_1;\n  *(undefined4 *)PTR_global_command_00144830 = uVar4;\n  if (param_4 != (undefined4 *)0x0) {\n    *param_4 = pcVar5;\n  }\n  (*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);\n  if (bVar1) {\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    param_1 = -2;\n    if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }\n  puVar12 = local_14;\n  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc) {\n    return param_1;\n  }\nLAB_000b6e6c:\n  puVar13 = PTR___stack_chk_fail_00146488;\n  (*(code *)PTR___stack_chk_fail_00146488)();\n  piVar11 = *(int **)(puVar13 + 0x8de44);\n  uVar4 = **(undefined4 **)(puVar13 + 0x8dd38);\n  iStack_e8 = 0;\n  iVar3 = *piVar11;\n  iVar8 = *(int *)(puVar13 + 0x8d734);\n  if (iVar3 != 0) goto LAB_000b6f80;\n  while( true ) {\n    if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }\n    if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;\n    iVar8 = *(int *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f46c);\n    **(int **)(puVar13 + 0x8deb0) = iVar6;\n    (*pcVar14)(iVar8,1);\nLAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);\n    (**(code **)(puVar13 + 0x8ddc4))(piVar11,4);\n    (**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);\n    uVar9 = *(undefined4 *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f68c);\n    *piVar11 = *piVar11 + 1;\n    iStack_e8 = (*pcVar14)(uVar9);\n  }\n  return iVar6;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined1 *puVar10;" (type_identifier "undefined1") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "undefined1 *puVar12;" (type_identifier "undefined1") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "undefined *puVar13;" (type_identifier "undefined") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "code *pcVar14;" (type_identifier "code") (pointer_declarator "*pcVar14" (* "*") (identifier "pcVar14")) (; ";")) (declaration "int iStack_e8;" (primitive_type "int") (identifier "iStack_e8") (; ";")) (declaration "undefined1 auStack_94 [128];" (type_identifier "undefined1") (array_declarator "auStack_94 [128]" (identifier "auStack_94") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "undefined1 *local_14;" (type_identifier "undefined1") (pointer_declarator "*local_14" (* "*") (identifier "local_14")) (; ";")) (expression_statement "puVar10 = auStack_94;" (assignment_expression "puVar10 = auStack_94" (identifier "puVar10") (= "=") (identifier "auStack_94")) (; ";")) (expression_statement "local_14 = *(undefined1 **)PTR___stack_chk_guard_001464dc;" (assignment_expression "local_14 = *(undefined1 **)PTR___stack_chk_guard_001464dc" (identifier "local_14") (= "=") (pointer_expression "*(undefined1 **)PTR___stack_chk_guard_001464dc" (* "*") (cast_expression "(undefined1 **)PTR___stack_chk_guard_001464dc" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_001464dc")))) (; ";")) (expression_statement "FUN_000b5cf4(param_1,param_3,PTR_DAT_001445ac + -0x6c70);" (call_expression "FUN_000b5cf4(param_1,param_3,PTR_DAT_001445ac + -0x6c70)" (identifier "FUN_000b5cf4") (argument_list "(param_1,param_3,PTR_DAT_001445ac + -0x6c70)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (binary_expression "PTR_DAT_001445ac + -0x6c70" (identifier "PTR_DAT_001445ac") (+ "+") (number_literal "-0x6c70")) () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigemptyset_001462d4)(puVar10);" (call_expression "(*(code *)PTR_sigemptyset_001462d4)(puVar10)" (parenthesized_expression "(*(code *)PTR_sigemptyset_001462d4)" (( "(") (pointer_expression "*(code *)PTR_sigemptyset_001462d4" (* "*") (cast_expression "(code *)PTR_sigemptyset_001462d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigemptyset_001462d4"))) () ")")) (argument_list "(puVar10)" (( "(") (identifier "puVar10") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(1,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(1,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" (( "(") (pointer_expression "*(code *)PTR_sigprocmask_00146514" (* "*") (cast_expression "(code *)PTR_sigprocmask_00146514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigprocmask_00146514"))) () ")")) (argument_list "(1,0)" (( "(") (number_literal "1") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_push_stream_00144a70)(0);" (call_expression "(*(code *)PTR_push_stream_00144a70)(0)" (parenthesized_expression "(*(code *)PTR_push_stream_00144a70)" (( "(") (pointer_expression "*(code *)PTR_push_stream_00144a70" (* "*") (cast_expression "(code *)PTR_push_stream_00144a70" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_push_stream_00144a70"))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_parser_expanding_alias_00144818)();" (assignment_expression "iVar3 = (*(code *)PTR_parser_expanding_alias_00144818)()" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_parser_expanding_alias_00144818)()" (parenthesized_expression "(*(code *)PTR_parser_expanding_alias_00144818)" (( "(") (pointer_expression "*(code *)PTR_parser_expanding_alias_00144818" (* "*") (cast_expression "(code *)PTR_parser_expanding_alias_00144818" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parser_expanding_alias_00144818"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_parser_save_alias_00145950)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_parser_save_alias_00145950)();" (call_expression "(*(code *)PTR_parser_save_alias_00145950)()" (parenthesized_expression "(*(code *)PTR_parser_save_alias_00145950)" (( "(") (pointer_expression "*(code *)PTR_parser_save_alias_00145950" (* "*") (cast_expression "(code *)PTR_parser_save_alias_00145950" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parser_save_alias_00145950"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar2 = PTR_current_token_001448e8;" (assignment_expression "puVar2 = PTR_current_token_001448e8" (identifier "puVar2") (= "=") (identifier "PTR_current_token_001448e8")) (; ";")) (expression_statement "puVar13 = PTR_global_command_00144830;" (assignment_expression "puVar13 = PTR_global_command_00144830" (identifier "puVar13") (= "=") (identifier "PTR_global_command_00144830")) (; ";")) (expression_statement "puVar12 = (undefined1 *)0x0;" (assignment_expression "puVar12 = (undefined1 *)0x0" (identifier "puVar12") (= "=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar4 = *(undefined4 *)PTR_global_command_00144830;" (assignment_expression "uVar4 = *(undefined4 *)PTR_global_command_00144830" (identifier "uVar4") (= "=") (pointer_expression "*(undefined4 *)PTR_global_command_00144830" (* "*") (cast_expression "(undefined4 *)PTR_global_command_00144830" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_global_command_00144830")))) (; ";")) (expression_statement "(*(code *)PTR_with_input_from_string_00145948)(param_1);" (call_expression "(*(code *)PTR_with_input_from_string_00145948)(param_1)" (parenthesized_expression "(*(code *)PTR_with_input_from_string_00145948)" (( "(") (pointer_expression "*(code *)PTR_with_input_from_string_00145948" (* "*") (cast_expression "(code *)PTR_with_input_from_string_00145948" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_with_input_from_string_00145948"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8)" (identifier "pcVar5") (= "=") (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" (* "*") (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" (( "(") (binary_expression "PTR_bash_input_001446a4 + 8" (identifier "PTR_bash_input_001446a4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "puVar7 = PTR_DAT_001445ac + -0x6c5c;" (assignment_expression "puVar7 = PTR_DAT_001445ac + -0x6c5c" (identifier "puVar7") (= "=") (binary_expression "PTR_DAT_001445ac + -0x6c5c" (identifier "PTR_DAT_001445ac") (+ "+") (number_literal "-0x6c5c"))) (; ";")) (while_statement "while (bVar1 = false, *pcVar5 != '\0') {\n    puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }\n    bVar1 = false;\n    iVar3 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);\n    *(undefined4 *)puVar13 = 0;\n    pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }" (while "while") (parenthesized_expression "(bVar1 = false, *pcVar5 != '\0')" (( "(") (comma_expression "bVar1 = false, *pcVar5 != '\0'" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (, ",") (binary_expression "*pcVar5 != '\0'" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (compound_statement "{\n    puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);\n    if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }\n    bVar1 = false;\n    iVar3 = (*(code *)PTR_parse_command_00144844)();\n    if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }\n    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);\n    *(undefined4 *)puVar13 = 0;\n    pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;\n  }" ({ "{") (expression_statement "puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);" (assignment_expression "puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8)" (identifier "puVar12") (= "=") (cast_expression "(undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8)" (parenthesized_expression "(*(code *)PTR__setjmp_00146504)" (( "(") (pointer_expression "*(code *)PTR__setjmp_00146504" (* "*") (cast_expression "(code *)PTR__setjmp_00146504" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__setjmp_00146504"))) () ")")) (argument_list "(PTR_top_level_001445d8)" (( "(") (identifier "PTR_top_level_001445d8") () ")"))))) (; ";")) (if_statement "if (puVar12 != (undefined1 *)0x0) {\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }" (if "if") (parenthesized_expression "(puVar12 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar12 != (undefined1 *)0x0" (identifier "puVar12") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }\n      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);\n      param_2 = 3;\n      puVar10 = puVar12;\n      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);\n    }" ({ "{") (if_statement "if (puVar12 + -1 < &DAT_00000004) {\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }" (if "if") (parenthesized_expression "(puVar12 + -1 < &DAT_00000004)" (( "(") (binary_expression "puVar12 + -1 < &DAT_00000004" (binary_expression "puVar12 + -1" (identifier "puVar12") (+ "+") (number_literal "-1")) (< "<") (pointer_expression "&DAT_00000004" (& "&") (identifier "DAT_00000004"))) () ")")) (compound_statement "{\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n        break;\n      }" ({ "{") (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (expression_statement "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8)" (identifier "pcVar5") (= "=") (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" (* "*") (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" (( "(") (binary_expression "PTR_bash_input_001446a4 + 8" (identifier "PTR_bash_input_001446a4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);" (call_expression "(*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0)" (parenthesized_expression "(*(code *)PTR_sigprocmask_00146514)" (( "(") (pointer_expression "*(code *)PTR_sigprocmask_00146514" (* "*") (cast_expression "(code *)PTR_sigprocmask_00146514" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sigprocmask_00146514"))) () ")")) (argument_list "(3,auStack_94,0)" (( "(") (number_literal "3") (, ",") (identifier "auStack_94") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "param_2 = 3;" (assignment_expression "param_2 = 3" (identifier "param_2") (= "=") (number_literal "3")) (; ";")) (expression_statement "puVar10 = puVar12;" (assignment_expression "puVar10 = puVar12" (identifier "puVar10") (= "=") (identifier "puVar12")) (; ";")) (expression_statement "(*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);" (call_expression "(*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0)" (parenthesized_expression "(*(code *)PTR_command_error_001445e4)" (( "(") (pointer_expression "*(code *)PTR_command_error_001445e4" (* "*") (cast_expression "(code *)PTR_command_error_001445e4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_command_error_001445e4"))) () ")")) (argument_list "(puVar7,3,puVar12,0)" (( "(") (identifier "puVar7") (, ",") (number_literal "3") (, ",") (identifier "puVar12") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_parse_command_00144844)();" (assignment_expression "iVar3 = (*(code *)PTR_parse_command_00144844)()" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_parse_command_00144844)()" (parenthesized_expression "(*(code *)PTR_parse_command_00144844)" (( "(") (pointer_expression "*(code *)PTR_parse_command_00144844" (* "*") (cast_expression "(code *)PTR_parse_command_00144844" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parse_command_00144844"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      break;\n    }" ({ "{") (if_statement "if ((param_3 & 0x40) == 0) {\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }\n      else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }" (if "if") (parenthesized_expression "((param_3 & 0x40) == 0)" (( "(") (binary_expression "(param_3 & 0x40) == 0" (parenthesized_expression "(param_3 & 0x40)" (( "(") (binary_expression "param_3 & 0x40" (identifier "param_3") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar12 = (undefined1 *)0x2;\n        bVar1 = true;\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }" ({ "{") (expression_statement "puVar12 = (undefined1 *)0x2;" (assignment_expression "puVar12 = (undefined1 *)0x2" (identifier "puVar12") (= "=") (cast_expression "(undefined1 *)0x2" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (expression_statement "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8)" (identifier "pcVar5") (= "=") (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" (* "*") (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" (( "(") (binary_expression "PTR_bash_input_001446a4 + 8" (identifier "PTR_bash_input_001446a4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }" (else "else") (compound_statement "{\n        (*(code *)PTR_reset_parser_00144934)();\n        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);\n      }" ({ "{") (expression_statement "(*(code *)PTR_reset_parser_00144934)();" (call_expression "(*(code *)PTR_reset_parser_00144934)()" (parenthesized_expression "(*(code *)PTR_reset_parser_00144934)" (( "(") (pointer_expression "*(code *)PTR_reset_parser_00144934" (* "*") (cast_expression "(code *)PTR_reset_parser_00144934" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_reset_parser_00144934"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8)" (identifier "pcVar5") (= "=") (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" (* "*") (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" (( "(") (binary_expression "PTR_bash_input_001446a4 + 8" (identifier "PTR_bash_input_001446a4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);" (call_expression "(*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13)" (parenthesized_expression "(*(code *)PTR_dispose_command_00144860)" (( "(") (pointer_expression "*(code *)PTR_dispose_command_00144860" (* "*") (cast_expression "(code *)PTR_dispose_command_00144860" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dispose_command_00144860"))) () ")")) (argument_list "(*(undefined4 *)puVar13)" (( "(") (pointer_expression "*(undefined4 *)puVar13" (* "*") (cast_expression "(undefined4 *)puVar13" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13"))) () ")"))) (; ";")) (expression_statement "*(undefined4 *)puVar13 = 0;" (assignment_expression "*(undefined4 *)puVar13 = 0" (pointer_expression "*(undefined4 *)puVar13" (* "*") (cast_expression "(undefined4 *)puVar13" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13"))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);" (assignment_expression "pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8)" (identifier "pcVar5") (= "=") (pointer_expression "*(char **)(PTR_bash_input_001446a4 + 8)" (* "*") (cast_expression "(char **)(PTR_bash_input_001446a4 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_bash_input_001446a4 + 8)" (( "(") (binary_expression "PTR_bash_input_001446a4 + 8" (identifier "PTR_bash_input_001446a4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))\n    break;" (if "if") (parenthesized_expression "((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))" (( "(") (binary_expression "(*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0)" (parenthesized_expression "(*(int *)puVar2 == 0x130)" (( "(") (binary_expression "*(int *)puVar2 == 0x130" (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) (== "==") (number_literal "0x130")) () ")")) (|| "||") (parenthesized_expression "(*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0)" (( "(") (binary_expression "*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0" (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) (== "==") (pointer_expression "*(int *)PTR_shell_eof_token_001449a0" (* "*") (cast_expression "(int *)PTR_shell_eof_token_001449a0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_shell_eof_token_001449a0")))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (expression_statement "param_1 = (int)pcVar5 - param_1;" (assignment_expression "param_1 = (int)pcVar5 - param_1" (identifier "param_1") (= "=") (binary_expression "(int)pcVar5 - param_1" (cast_expression "(int)pcVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar5")) (- "-") (identifier "param_1"))) (; ";")) (expression_statement "*(undefined4 *)PTR_global_command_00144830 = uVar4;" (assignment_expression "*(undefined4 *)PTR_global_command_00144830 = uVar4" (pointer_expression "*(undefined4 *)PTR_global_command_00144830" (* "*") (cast_expression "(undefined4 *)PTR_global_command_00144830" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_global_command_00144830"))) (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (param_4 != (undefined4 *)0x0) {\n    *param_4 = pcVar5;\n  }" (if "if") (parenthesized_expression "(param_4 != (undefined4 *)0x0)" (( "(") (binary_expression "param_4 != (undefined4 *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_4 = pcVar5;\n  }" ({ "{") (expression_statement "*param_4 = pcVar5;" (assignment_expression "*param_4 = pcVar5" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "pcVar5")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);" (call_expression "(*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70)" (parenthesized_expression "(*(code *)PTR_run_unwind_frame_00144c34)" (( "(") (pointer_expression "*(code *)PTR_run_unwind_frame_00144c34" (* "*") (cast_expression "(code *)PTR_run_unwind_frame_00144c34" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_run_unwind_frame_00144c34"))) () ")")) (argument_list "(PTR_DAT_001445ac + -0x6c70)" (( "(") (binary_expression "PTR_DAT_001445ac + -0x6c70" (identifier "PTR_DAT_001445ac") (+ "+") (number_literal "-0x6c70")) () ")"))) (; ";")) (if_statement "if (bVar1) {\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    param_1 = -2;\n    if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }\n    param_1 = -2;\n    if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }\n  }" ({ "{") (if_statement "if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }" (if "if") (parenthesized_expression "(*(int *)PTR_parse_and_execute_level_001448fc == 0)" (( "(") (binary_expression "*(int *)PTR_parse_and_execute_level_001448fc == 0" (pointer_expression "*(int *)PTR_parse_and_execute_level_001448fc" (* "*") (cast_expression "(int *)PTR_parse_and_execute_level_001448fc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parse_and_execute_level_001448fc"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)PTR_top_level_cleanup_00144fb0)();\n    }" ({ "{") (expression_statement "(*(code *)PTR_top_level_cleanup_00144fb0)();" (call_expression "(*(code *)PTR_top_level_cleanup_00144fb0)()" (parenthesized_expression "(*(code *)PTR_top_level_cleanup_00144fb0)" (( "(") (pointer_expression "*(code *)PTR_top_level_cleanup_00144fb0" (* "*") (cast_expression "(code *)PTR_top_level_cleanup_00144fb0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_top_level_cleanup_00144fb0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "param_1 = -2;" (assignment_expression "param_1 = -2" (identifier "param_1") (= "=") (number_literal "-2")) (; ";")) (if_statement "if (puVar12 != (undefined1 *)0x2) {\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }" (if "if") (parenthesized_expression "(puVar12 != (undefined1 *)0x2)" (( "(") (binary_expression "puVar12 != (undefined1 *)0x2" (identifier "puVar12") (!= "!=") (cast_expression "(undefined1 *)0x2" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n      (*(code *)PTR_jump_to_top_level_00144808)();\n      goto LAB_000b6e6c;\n    }" ({ "{") (expression_statement "(*(code *)PTR_jump_to_top_level_00144808)();" (call_expression "(*(code *)PTR_jump_to_top_level_00144808)()" (parenthesized_expression "(*(code *)PTR_jump_to_top_level_00144808)" (( "(") (pointer_expression "*(code *)PTR_jump_to_top_level_00144808" (* "*") (cast_expression "(code *)PTR_jump_to_top_level_00144808" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_jump_to_top_level_00144808"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_000b6e6c;" (goto "goto") (statement_identifier "LAB_000b6e6c") (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar12 = local_14;" (assignment_expression "puVar12 = local_14" (identifier "puVar12") (= "=") (identifier "local_14")) (; ";")) (if_statement "if (local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc) {\n    return param_1;\n  }" (if "if") (parenthesized_expression "(local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc)" (( "(") (binary_expression "local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc" (identifier "local_14") (== "==") (pointer_expression "*(undefined1 **)PTR___stack_chk_guard_001464dc" (* "*") (cast_expression "(undefined1 **)PTR___stack_chk_guard_001464dc" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR___stack_chk_guard_001464dc")))) () ")")) (compound_statement "{\n    return param_1;\n  }" ({ "{") (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))) (labeled_statement "LAB_000b6e6c:\n  puVar13 = PTR___stack_chk_fail_00146488;" (statement_identifier "LAB_000b6e6c") (: ":") (expression_statement "puVar13 = PTR___stack_chk_fail_00146488;" (assignment_expression "puVar13 = PTR___stack_chk_fail_00146488" (identifier "puVar13") (= "=") (identifier "PTR___stack_chk_fail_00146488")) (; ";"))) (expression_statement "(*(code *)PTR___stack_chk_fail_00146488)();" (call_expression "(*(code *)PTR___stack_chk_fail_00146488)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00146488)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00146488" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00146488" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00146488"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar11 = *(int **)(puVar13 + 0x8de44);" (assignment_expression "piVar11 = *(int **)(puVar13 + 0x8de44)" (identifier "piVar11") (= "=") (pointer_expression "*(int **)(puVar13 + 0x8de44)" (* "*") (cast_expression "(int **)(puVar13 + 0x8de44)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x8de44)" (( "(") (binary_expression "puVar13 + 0x8de44" (identifier "puVar13") (+ "+") (number_literal "0x8de44")) () ")"))))) (; ";")) (expression_statement "uVar4 = **(undefined4 **)(puVar13 + 0x8dd38);" (assignment_expression "uVar4 = **(undefined4 **)(puVar13 + 0x8dd38)" (identifier "uVar4") (= "=") (pointer_expression "**(undefined4 **)(puVar13 + 0x8dd38)" (* "*") (pointer_expression "*(undefined4 **)(puVar13 + 0x8dd38)" (* "*") (cast_expression "(undefined4 **)(puVar13 + 0x8dd38)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x8dd38)" (( "(") (binary_expression "puVar13 + 0x8dd38" (identifier "puVar13") (+ "+") (number_literal "0x8dd38")) () ")")))))) (; ";")) (expression_statement "iStack_e8 = 0;" (assignment_expression "iStack_e8 = 0" (identifier "iStack_e8") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = *piVar11;" (assignment_expression "iVar3 = *piVar11" (identifier "iVar3") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "iVar8 = *(int *)(puVar13 + 0x8d734);" (assignment_expression "iVar8 = *(int *)(puVar13 + 0x8d734)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar13 + 0x8d734)" (* "*") (cast_expression "(int *)(puVar13 + 0x8d734)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x8d734)" (( "(") (binary_expression "puVar13 + 0x8d734" (identifier "puVar13") (+ "+") (number_literal "0x8d734")) () ")"))))) (; ";")) (if_statement "if (iVar3 != 0) goto LAB_000b6f80;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b6f80;" (goto "goto") (statement_identifier "LAB_000b6f80") (; ";"))) (while_statement "while( true ) {\n    if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }\n    if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;\n    iVar8 = *(int *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f46c);\n    **(int **)(puVar13 + 0x8deb0) = iVar6;\n    (*pcVar14)(iVar8,1);\nLAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);\n    (**(code **)(puVar13 + 0x8ddc4))(piVar11,4);\n    (**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);\n    uVar9 = *(undefined4 *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f68c);\n    *piVar11 = *piVar11 + 1;\n    iStack_e8 = (*pcVar14)(uVar9);\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }\n    if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;\n    iVar8 = *(int *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f46c);\n    **(int **)(puVar13 + 0x8deb0) = iVar6;\n    (*pcVar14)(iVar8,1);\nLAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);\n    (**(code **)(puVar13 + 0x8ddc4))(piVar11,4);\n    (**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);\n    uVar9 = *(undefined4 *)(puVar13 + 0x8deac);\n    pcVar14 = *(code **)(puVar13 + 0x8f68c);\n    *piVar11 = *piVar11 + 1;\n    iStack_e8 = (*pcVar14)(uVar9);\n  }" ({ "{") (if_statement "if (iStack_e8 == 0) {\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }\n    else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }" (if "if") (parenthesized_expression "(iStack_e8 == 0)" (( "(") (binary_expression "iStack_e8 == 0" (identifier "iStack_e8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar6 = parse_and_execute(puVar12,param_2,puVar10);\n    }" ({ "{") (expression_statement "iVar6 = parse_and_execute(puVar12,param_2,puVar10);" (assignment_expression "iVar6 = parse_and_execute(puVar12,param_2,puVar10)" (identifier "iVar6") (= "=") (call_expression "parse_and_execute(puVar12,param_2,puVar10)" (identifier "parse_and_execute") (argument_list "(puVar12,param_2,puVar10)" (( "(") (identifier "puVar12") (, ",") (identifier "param_2") (, ",") (identifier "puVar10") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }" (else "else") (compound_statement "{\n      parse_and_execute_cleanup(uVar4);\n      iVar6 = **(int **)(puVar13 + 0x8deb0);\n    }" ({ "{") (expression_statement "parse_and_execute_cleanup(uVar4);" (call_expression "parse_and_execute_cleanup(uVar4)" (identifier "parse_and_execute_cleanup") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "iVar6 = **(int **)(puVar13 + 0x8deb0);" (assignment_expression "iVar6 = **(int **)(puVar13 + 0x8deb0)" (identifier "iVar6") (= "=") (pointer_expression "**(int **)(puVar13 + 0x8deb0)" (* "*") (pointer_expression "*(int **)(puVar13 + 0x8deb0)" (* "*") (cast_expression "(int **)(puVar13 + 0x8deb0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x8deb0)" (( "(") (binary_expression "puVar13 + 0x8deb0" (identifier "puVar13") (+ "+") (number_literal "0x8deb0")) () ")")))))) (; ";")) (} "}")))) (if_statement "if (((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)) break;" (if "if") (parenthesized_expression "(((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0))" (( "(") (binary_expression "((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))\n       || (**(int **)(puVar13 + 0x8de44) == 0)" (parenthesized_expression "((iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))" (( "(") (binary_expression "(iVar3 == 0) ||\n        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0)" (( "(") (comma_expression "(**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0" (call_expression "(**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c)" (parenthesized_expression "(**(code **)(puVar13 + 0x8ddbc))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x8ddbc)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x8ddbc)" (* "*") (cast_expression "(code **)(puVar13 + 0x8ddbc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x8ddbc)" (( "(") (binary_expression "puVar13 + 0x8ddbc" (identifier "puVar13") (+ "+") (number_literal "0x8ddbc")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar13 + 0x8d734) + -0x6c4c)" (( "(") (binary_expression "*(int *)(puVar13 + 0x8d734) + -0x6c4c" (pointer_expression "*(int *)(puVar13 + 0x8d734)" (* "*") (cast_expression "(int *)(puVar13 + 0x8d734)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x8d734)" (( "(") (binary_expression "puVar13 + 0x8d734" (identifier "puVar13") (+ "+") (number_literal "0x8d734")) () ")")))) (+ "+") (number_literal "-0x6c4c")) () ")"))) (, ",") (binary_expression "iStack_e8 == 0" (identifier "iStack_e8") (== "==") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(**(int **)(puVar13 + 0x8de44) == 0)" (( "(") (binary_expression "**(int **)(puVar13 + 0x8de44) == 0" (pointer_expression "**(int **)(puVar13 + 0x8de44)" (* "*") (pointer_expression "*(int **)(puVar13 + 0x8de44)" (* "*") (cast_expression "(int **)(puVar13 + 0x8de44)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x8de44)" (( "(") (binary_expression "puVar13 + 0x8de44" (identifier "puVar13") (+ "+") (number_literal "0x8de44")) () ")"))))) (== "==") (number_literal "0")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar8 = *(int *)(puVar13 + 0x8deac);" (assignment_expression "iVar8 = *(int *)(puVar13 + 0x8deac)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(puVar13 + 0x8deac)" (* "*") (cast_expression "(int *)(puVar13 + 0x8deac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x8deac)" (( "(") (binary_expression "puVar13 + 0x8deac" (identifier "puVar13") (+ "+") (number_literal "0x8deac")) () ")"))))) (; ";")) (expression_statement "pcVar14 = *(code **)(puVar13 + 0x8f46c);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x8f46c)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(puVar13 + 0x8f46c)" (* "*") (cast_expression "(code **)(puVar13 + 0x8f46c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x8f46c)" (( "(") (binary_expression "puVar13 + 0x8f46c" (identifier "puVar13") (+ "+") (number_literal "0x8f46c")) () ")"))))) (; ";")) (expression_statement "**(int **)(puVar13 + 0x8deb0) = iVar6;" (assignment_expression "**(int **)(puVar13 + 0x8deb0) = iVar6" (pointer_expression "**(int **)(puVar13 + 0x8deb0)" (* "*") (pointer_expression "*(int **)(puVar13 + 0x8deb0)" (* "*") (cast_expression "(int **)(puVar13 + 0x8deb0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x8deb0)" (( "(") (binary_expression "puVar13 + 0x8deb0" (identifier "puVar13") (+ "+") (number_literal "0x8deb0")) () ")"))))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "(*pcVar14)(iVar8,1);" (call_expression "(*pcVar14)(iVar8,1)" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "(iVar8,1)" (( "(") (identifier "iVar8") (, ",") (number_literal "1") () ")"))) (; ";")) (labeled_statement "LAB_000b6f80:\n    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);" (statement_identifier "LAB_000b6f80") (: ":") (expression_statement "(**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);" (call_expression "(**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c)" (parenthesized_expression "(**(code **)(puVar13 + 0x8ddb4))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x8ddb4)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x8ddb4)" (* "*") (cast_expression "(code **)(puVar13 + 0x8ddb4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x8ddb4)" (( "(") (binary_expression "puVar13 + 0x8ddb4" (identifier "puVar13") (+ "+") (number_literal "0x8ddb4")) () ")"))))) () ")")) (argument_list "(iVar8 + -0x6c4c)" (( "(") (binary_expression "iVar8 + -0x6c4c" (identifier "iVar8") (+ "+") (number_literal "-0x6c4c")) () ")"))) (; ";"))) (expression_statement "(**(code **)(puVar13 + 0x8ddc4))(piVar11,4);" (call_expression "(**(code **)(puVar13 + 0x8ddc4))(piVar11,4)" (parenthesized_expression "(**(code **)(puVar13 + 0x8ddc4))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x8ddc4)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x8ddc4)" (* "*") (cast_expression "(code **)(puVar13 + 0x8ddc4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x8ddc4)" (( "(") (binary_expression "puVar13 + 0x8ddc4" (identifier "puVar13") (+ "+") (number_literal "0x8ddc4")) () ")"))))) () ")")) (argument_list "(piVar11,4)" (( "(") (identifier "piVar11") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);" (call_expression "(**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0)" (parenthesized_expression "(**(code **)(puVar13 + 0x8ddc4))" (( "(") (pointer_expression "**(code **)(puVar13 + 0x8ddc4)" (* "*") (pointer_expression "*(code **)(puVar13 + 0x8ddc4)" (* "*") (cast_expression "(code **)(puVar13 + 0x8ddc4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x8ddc4)" (( "(") (binary_expression "puVar13 + 0x8ddc4" (identifier "puVar13") (+ "+") (number_literal "0x8ddc4")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar13 + 0x8deac),0xf0)" (( "(") (pointer_expression "*(undefined4 *)(puVar13 + 0x8deac)" (* "*") (cast_expression "(undefined4 *)(puVar13 + 0x8deac)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x8deac)" (( "(") (binary_expression "puVar13 + 0x8deac" (identifier "puVar13") (+ "+") (number_literal "0x8deac")) () ")")))) (, ",") (number_literal "0xf0") () ")"))) (; ";")) (expression_statement "uVar9 = *(undefined4 *)(puVar13 + 0x8deac);" (assignment_expression "uVar9 = *(undefined4 *)(puVar13 + 0x8deac)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(puVar13 + 0x8deac)" (* "*") (cast_expression "(undefined4 *)(puVar13 + 0x8deac)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 0x8deac)" (( "(") (binary_expression "puVar13 + 0x8deac" (identifier "puVar13") (+ "+") (number_literal "0x8deac")) () ")"))))) (; ";")) (expression_statement "pcVar14 = *(code **)(puVar13 + 0x8f68c);" (assignment_expression "pcVar14 = *(code **)(puVar13 + 0x8f68c)" (identifier "pcVar14") (= "=") (pointer_expression "*(code **)(puVar13 + 0x8f68c)" (* "*") (cast_expression "(code **)(puVar13 + 0x8f68c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0x8f68c)" (( "(") (binary_expression "puVar13 + 0x8f68c" (identifier "puVar13") (+ "+") (number_literal "0x8f68c")) () ")"))))) (; ";")) (expression_statement "*piVar11 = *piVar11 + 1;" (assignment_expression "*piVar11 = *piVar11 + 1" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (binary_expression "*piVar11 + 1" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iStack_e8 = (*pcVar14)(uVar9);" (assignment_expression "iStack_e8 = (*pcVar14)(uVar9)" (identifier "iStack_e8") (= "=") (call_expression "(*pcVar14)(uVar9)" (parenthesized_expression "(*pcVar14)" (( "(") (pointer_expression "*pcVar14" (* "*") (identifier "pcVar14")) () ")")) (argument_list "(uVar9)" (( "(") (identifier "uVar9") () ")")))) (; ";")) (} "}"))) (return_statement "return iVar6;" (return "return") (identifier "iVar6") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (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 declarator: (abstract_pointer_declarator))) value: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 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)))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (false)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (break_statement))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (identifier) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (true))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (break_statement))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))))) consequence: (break_statement)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (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: (number_literal))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_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: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) 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))))) (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))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))))) (return_statement (identifier)))))

/* WARNING: Removing unreachable block (ram,0x000b6ce0) */

int MASKED(int param_1,undefined4 param_2,uint param_3,undefined4 *param_4)

{
  bool bVar1;
  undefined *puVar2;
  int iVar3;
  undefined4 uVar4;
  char *pcVar5;
  int iVar6;
  undefined *puVar7;
  int iVar8;
  undefined4 uVar9;
  undefined1 *puVar10;
  int *piVar11;
  undefined1 *puVar12;
  undefined *puVar13;
  code *pcVar14;
  int iStack_e8;
  undefined1 auStack_94 [128];
  undefined1 *local_14;
  
  puVar10 = auStack_94;
  local_14 = *(undefined1 **)PTR___stack_chk_guard_001464dc;
  FUN_000b5cf4(param_1,param_3,PTR_DAT_001445ac + -0x6c70);
  (*(code *)PTR_sigemptyset_001462d4)(puVar10);
  (*(code *)PTR_sigprocmask_00146514)(1,0);
  (*(code *)PTR_push_stream_00144a70)(0);
  iVar3 = (*(code *)PTR_parser_expanding_alias_00144818)();
  if (iVar3 != 0) {
    (*(code *)PTR_parser_save_alias_00145950)();
  }
  puVar2 = PTR_current_token_001448e8;
  puVar13 = PTR_global_command_00144830;
  puVar12 = (undefined1 *)0x0;
  uVar4 = *(undefined4 *)PTR_global_command_00144830;
  (*(code *)PTR_with_input_from_string_00145948)(param_1);
  pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);
  puVar7 = PTR_DAT_001445ac + -0x6c5c;
  while (bVar1 = false, *pcVar5 != '\0') {
    puVar12 = (undefined1 *)(*(code *)PTR__setjmp_00146504)(PTR_top_level_001445d8);
    if (puVar12 != (undefined1 *)0x0) {
      if (puVar12 + -1 < &DAT_00000004) {
        bVar1 = true;
        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);
        break;
      }
      (*(code *)PTR_sigprocmask_00146514)(3,auStack_94,0);
      param_2 = 3;
      puVar10 = puVar12;
      (*(code *)PTR_command_error_001445e4)(puVar7,3,puVar12,0);
    }
    bVar1 = false;
    iVar3 = (*(code *)PTR_parse_command_00144844)();
    if (iVar3 != 0) {
      if ((param_3 & 0x40) == 0) {
        puVar12 = (undefined1 *)0x2;
        bVar1 = true;
        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);
      }
      else {
        (*(code *)PTR_reset_parser_00144934)();
        pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);
      }
      break;
    }
    (*(code *)PTR_dispose_command_00144860)(*(undefined4 *)puVar13);
    *(undefined4 *)puVar13 = 0;
    pcVar5 = *(char **)(PTR_bash_input_001446a4 + 8);
    if ((*(int *)puVar2 == 0x130) || (*(int *)puVar2 == *(int *)PTR_shell_eof_token_001449a0))
    break;
  }
  param_1 = (int)pcVar5 - param_1;
  *(undefined4 *)PTR_global_command_00144830 = uVar4;
  if (param_4 != (undefined4 *)0x0) {
    *param_4 = pcVar5;
  }
  (*(code *)PTR_run_unwind_frame_00144c34)(PTR_DAT_001445ac + -0x6c70);
  if (bVar1) {
    if (*(int *)PTR_parse_and_execute_level_001448fc == 0) {
      (*(code *)PTR_top_level_cleanup_00144fb0)();
    }
    param_1 = -2;
    if (puVar12 != (undefined1 *)0x2) {
      (*(code *)PTR_jump_to_top_level_00144808)();
      goto LAB_000b6e6c;
    }
  }
  puVar12 = local_14;
  if (local_14 == *(undefined1 **)PTR___stack_chk_guard_001464dc) {
    return param_1;
  }
LAB_000b6e6c:
  puVar13 = PTR___stack_chk_fail_00146488;
  (*(code *)PTR___stack_chk_fail_00146488)();
  piVar11 = *(int **)(puVar13 + 0x8de44);
  uVar4 = **(undefined4 **)(puVar13 + 0x8dd38);
  iStack_e8 = 0;
  iVar3 = *piVar11;
  iVar8 = *(int *)(puVar13 + 0x8d734);
  if (iVar3 != 0) goto LAB_000b6f80;
  while( true ) {
    if (iStack_e8 == 0) {
      iVar6 = parse_and_execute(puVar12,param_2,puVar10);
    }
    else {
      parse_and_execute_cleanup(uVar4);
      iVar6 = **(int **)(puVar13 + 0x8deb0);
    }
    if (((iVar3 == 0) ||
        ((**(code **)(puVar13 + 0x8ddbc))(*(int *)(puVar13 + 0x8d734) + -0x6c4c), iStack_e8 == 0))
       || (**(int **)(puVar13 + 0x8de44) == 0)) break;
    iVar8 = *(int *)(puVar13 + 0x8deac);
    pcVar14 = *(code **)(puVar13 + 0x8f46c);
    **(int **)(puVar13 + 0x8deb0) = iVar6;
    (*pcVar14)(iVar8,1);
LAB_000b6f80:
    (**(code **)(puVar13 + 0x8ddb4))(iVar8 + -0x6c4c);
    (**(code **)(puVar13 + 0x8ddc4))(piVar11,4);
    (**(code **)(puVar13 + 0x8ddc4))(*(undefined4 *)(puVar13 + 0x8deac),0xf0);
    uVar9 = *(undefined4 *)(puVar13 + 0x8deac);
    pcVar14 = *(code **)(puVar13 + 0x8f68c);
    *piVar11 = *piVar11 + 1;
    iStack_e8 = (*pcVar14)(uVar9);
  }
  return iVar6;
}

