
void restore_parser_state(sh_parser_state_t *ps)

{
  undefined *puVar1;
  int *piVar2;
  REDIRECT **ppRVar3;
  int iVar4;
  undefined4 *puVar5;
  ARRAY *a;
  REDIRECT *pRVar6;
  int iVar7;
  REDIRECT *pRVar8;
  int iVar9;
  REDIRECT *pRVar10;
  int iVar11;
  sh_builtin_func_t *psVar12;
  REDIRECT *pRVar13;
  char **ppcVar14;
  
  if (ps == (sh_parser_state_t *)0x0) {
    return;
  }
  piVar2 = ps->token_state;
  *(int *)PTR_parser_state_001448f8 = ps->parser_state;
  puVar1 = PTR_free_001464fc;
  if (piVar2 != (int *)0x0) {
    iVar9 = piVar2[1];
    iVar7 = piVar2[2];
    iVar4 = piVar2[3];
    *(int *)(PTR_data_start_00144568 + 0x6b14) = *piVar2;
    *(int *)(PTR_data_start_00144568 + 0x6b10) = iVar9;
    *(int *)(PTR_data_start_00144568 + 0x6b0c) = iVar7;
    *(int *)PTR_current_token_001448e8 = iVar4;
    (*(code *)puVar1)(piVar2);
  }
  iVar4 = ps->eof_encountered;
  ppcVar14 = ps->prompt_string_pointer;
  *(int *)(PTR_data_start_00144568 + 0x6b28) = ps->input_line_terminator;
  iVar11 = ps->current_command_line_count;
  iVar9 = ps->remember_on_history;
  iVar7 = ps->history_expansion_inhibited;
  *(int *)PTR_eof_encountered_001449a8 = iVar4;
  iVar4 = ps->last_command_exit_value;
  a = ps->pipestatus;
  *(char ***)PTR_prompt_string_pointer_00144940 = ppcVar14;
  *(int *)PTR_current_command_line_count_00144814 = iVar11;
  *(int *)PTR_remember_on_history_00144668 = iVar9;
  *(int *)PTR_history_expansion_inhibited_00144a68 = iVar7;
  *(int *)PTR_last_command_exit_value_001445e0 = iVar4;
  restore_pipestatus_array(a);
  psVar12 = ps->this_shell_builtin;
  iVar11 = ps->expand_aliases;
  iVar9 = ps->echo_input_at_read;
  iVar4 = ps->need_here_doc;
  iVar7 = ps->here_doc_first_line;
  *(sh_builtin_func_t **)PTR_last_shell_builtin_00144a80 = ps->last_shell_builtin;
  *(sh_builtin_func_t **)PTR_this_shell_builtin_00144a84 = psVar12;
  *(int *)PTR_expand_aliases_0014459c = iVar11;
  *(int *)PTR_echo_input_at_read_00144724 = iVar9;
  *(int *)PTR_need_here_doc_00144810 = iVar4;
  *(int *)PTR_here_doc_first_line_00144924 = iVar7;
  if (iVar4 == 0) {
    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;
  }
  else {
    ppRVar3 = ps->redir_stack;
    puVar5 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);
    do {
      pRVar13 = *ppRVar3;
      pRVar10 = ppRVar3[1];
      pRVar8 = ppRVar3[2];
      pRVar6 = ppRVar3[3];
      ppRVar3 = ppRVar3 + 4;
      *puVar5 = pRVar13;
      puVar5[1] = pRVar10;
      puVar5[2] = pRVar8;
      puVar5[3] = pRVar6;
      puVar5 = puVar5 + 4;
    } while ((sh_parser_state_t *)ppRVar3 != ps + 1);
  }
  puVar1 = PTR_data_start_00144568;
  if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {
    (*(code *)PTR_free_001464fc)();
  }
  iVar4 = ps->token_buffer_size;
  *(char **)(puVar1 + 0x68e4) = ps->token;
  *(int *)(PTR_data_start_00144568 + 0x68e0) = iVar4;
  return;
}



void restore_parser_state(undefined4 *param_1)

{
  undefined *puVar1;
  undefined4 *puVar2;
  int iVar3;
  undefined4 *puVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  
  if (param_1 == (undefined4 *)0x0) {
    return;
  }
  puVar2 = (undefined4 *)param_1[1];
  *(undefined4 *)PTR_parser_state_001448f8 = *param_1;
  puVar1 = PTR_free_001464fc;
  if (puVar2 != (undefined4 *)0x0) {
    uVar7 = puVar2[1];
    uVar6 = puVar2[2];
    uVar5 = puVar2[3];
    *(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;
    *(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;
    *(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;
    *(undefined4 *)PTR_current_token_001448e8 = uVar5;
    (*(code *)puVar1)(puVar2);
  }
  uVar5 = param_1[5];
  uVar10 = param_1[6];
  *(undefined4 *)(PTR_data_start_00144568 + 0x6b28) = param_1[4];
  uVar9 = param_1[7];
  uVar8 = param_1[8];
  uVar7 = param_1[9];
  *(undefined4 *)PTR_eof_encountered_001449a8 = uVar5;
  uVar5 = param_1[10];
  uVar6 = param_1[0xb];
  *(undefined4 *)PTR_prompt_string_pointer_00144940 = uVar10;
  *(undefined4 *)PTR_current_command_line_count_00144814 = uVar9;
  *(undefined4 *)PTR_remember_on_history_00144668 = uVar8;
  *(undefined4 *)PTR_history_expansion_inhibited_00144a68 = uVar7;
  *(undefined4 *)PTR_last_command_exit_value_001445e0 = uVar5;
  restore_pipestatus_array(uVar6);
  uVar8 = param_1[0xd];
  uVar7 = param_1[0xe];
  uVar6 = param_1[0xf];
  iVar3 = param_1[0x10];
  uVar5 = param_1[0x11];
  *(undefined4 *)PTR_last_shell_builtin_00144a80 = param_1[0xc];
  *(undefined4 *)PTR_this_shell_builtin_00144a84 = uVar8;
  *(undefined4 *)PTR_expand_aliases_0014459c = uVar7;
  *(undefined4 *)PTR_echo_input_at_read_00144724 = uVar6;
  *(int *)PTR_need_here_doc_00144810 = iVar3;
  *(undefined4 *)PTR_here_doc_first_line_00144924 = uVar5;
  if (iVar3 == 0) {
    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;
  }
  else {
    puVar4 = param_1 + 0x12;
    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);
    do {
      uVar8 = *puVar4;
      uVar7 = puVar4[1];
      uVar6 = puVar4[2];
      uVar5 = puVar4[3];
      puVar4 = puVar4 + 4;
      *puVar2 = uVar8;
      puVar2[1] = uVar7;
      puVar2[2] = uVar6;
      puVar2[3] = uVar5;
      puVar2 = puVar2 + 4;
    } while (puVar4 != param_1 + 0x22);
  }
  puVar1 = PTR_data_start_00144568;
  if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {
    (*(code *)PTR_free_001464fc)();
  }
  uVar5 = param_1[3];
  *(undefined4 *)(puVar1 + 0x68e4) = param_1[2];
  *(undefined4 *)(PTR_data_start_00144568 + 0x68e0) = uVar5;
  return;
}


lui gp,0x11
addiu gp,gp,-0x3488
addu gp,gp,t9
beq a0,zero,0x0003fb9c
_nop
addiu sp,sp,-0x28
lw v1,-0x7c48(gp)
sw s0,0x1c(sp)
or s0,a0,zero
sw gp,0x10(sp)
sw ra,0x24(sp)
sw s1,0x20(sp)
lw a0,0x0(a0)
lw v0,0x4(s0)
beq v0,zero,0x0003fa48
_sw a0,0x0(v1)
lw a3,0x0(v0)
or a0,v0,zero
lw a2,0x4(v0)
lw a1,0x8(v0)
lw v1,0xc(v0)
lw v0,-0x7fd8(gp)
lw t9,-0x6044(gp)
sw a3,0x6b14(v0)
lw v0,-0x7fd8(gp)
sw a2,0x6b10(v0)
lw v0,-0x7fd8(gp)
sw a1,0x6b0c(v0)
lw v0,-0x7c58(gp)
jalr t9
_sw v1,0x0(v0)
lw gp,0x10(sp)
lw v0,-0x7fd8(gp)
lw t2,0x10(s0)
lw t1,0x14(s0)
lw t0,0x18(s0)
sw t2,0x6b28(v0)
lw v0,-0x7b98(gp)
lw a3,0x1c(s0)
lw a2,0x20(s0)
lw a1,0x24(s0)
sw t1,0x0(v0)
lw v0,-0x7c00(gp)
lw v1,0x28(s0)
lw t9,-0x7ab8(gp)
lw a0,0x2c(s0)
sw t0,0x0(v0)
lw v0,-0x7d2c(gp)
sw a3,0x0(v0)
lw v0,-0x7ed8(gp)
sw a2,0x0(v0)
lw v0,-0x7ad8(gp)
sw a1,0x0(v0)
lw v0,-0x7f60(gp)
sw v1,0x0(v0)
bal 0x0005e9ec
_nop
lw gp,0x10(sp)
lw t0,0x30(s0)
lw a3,0x34(s0)
lw a2,0x38(s0)
lw v1,-0x7ac0(gp)
lw a1,0x3c(s0)
lw v0,0x40(s0)
lw a0,0x44(s0)
sw t0,0x0(v1)
lw v1,-0x7abc(gp)
sw a3,0x0(v1)
lw v1,-0x7fa4(gp)
sw a2,0x0(v1)
lw v1,-0x7e1c(gp)
sw a1,0x0(v1)
lw v1,-0x7d30(gp)
sw v0,0x0(v1)
lw v1,-0x7c1c(gp)
bne v0,zero,0x0003fb48
_sw a0,0x0(v1)
lw v0,-0x7fd8(gp)
sw zero,0x6b3c(v0)
lw s1,-0x7fd8(gp)
lw a0,0x68e4(s1)
beq a0,zero,0x0003fb20
_lw t9,-0x6044(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw v0,0x8(s0)
lw v1,0xc(s0)
lw ra,0x24(sp)
lw s0,0x1c(sp)
sw v0,0x68e4(s1)
lw v0,-0x7fd8(gp)
lw s1,0x20(sp)
addiu sp,sp,0x28
jr ra
_sw v1,0x68e0(v0)
lw v1,-0x7fd8(gp)
addiu v0,s0,0x48
addiu t0,s0,0x88
addiu v1,v1,0x6b3c
lwl a3,0x0(v0)
addiu v1,v1,0x10
lwl a2,0x4(v0)
lwl a1,0x8(v0)
lwl a0,0xc(v0)
lwr a3,0x3(v0)
lwr a2,0x7(v0)
lwr a1,0xb(v0)
lwr a0,0xf(v0)
addiu v0,v0,0x10
sw a3,-0x10(v1)
sw a2,-0xc(v1)
sw a1,-0x8(v1)
bne v0,t0,0x0003fb58
_sw a0,-0x4(v1)
b 0x0003fb08
_lw s1,-0x7fd8(gp)
jr ra
_nop
(translation_unit "void restore_parser_state(undefined4 *param_1)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  \n  if (param_1 == (undefined4 *)0x0) {\n    return;\n  }\n  puVar2 = (undefined4 *)param_1[1];\n  *(undefined4 *)PTR_parser_state_001448f8 = *param_1;\n  puVar1 = PTR_free_001464fc;\n  if (puVar2 != (undefined4 *)0x0) {\n    uVar7 = puVar2[1];\n    uVar6 = puVar2[2];\n    uVar5 = puVar2[3];\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;\n    *(undefined4 *)PTR_current_token_001448e8 = uVar5;\n    (*(code *)puVar1)(puVar2);\n  }\n  uVar5 = param_1[5];\n  uVar10 = param_1[6];\n  *(undefined4 *)(PTR_data_start_00144568 + 0x6b28) = param_1[4];\n  uVar9 = param_1[7];\n  uVar8 = param_1[8];\n  uVar7 = param_1[9];\n  *(undefined4 *)PTR_eof_encountered_001449a8 = uVar5;\n  uVar5 = param_1[10];\n  uVar6 = param_1[0xb];\n  *(undefined4 *)PTR_prompt_string_pointer_00144940 = uVar10;\n  *(undefined4 *)PTR_current_command_line_count_00144814 = uVar9;\n  *(undefined4 *)PTR_remember_on_history_00144668 = uVar8;\n  *(undefined4 *)PTR_history_expansion_inhibited_00144a68 = uVar7;\n  *(undefined4 *)PTR_last_command_exit_value_001445e0 = uVar5;\n  restore_pipestatus_array(uVar6);\n  uVar8 = param_1[0xd];\n  uVar7 = param_1[0xe];\n  uVar6 = param_1[0xf];\n  iVar3 = param_1[0x10];\n  uVar5 = param_1[0x11];\n  *(undefined4 *)PTR_last_shell_builtin_00144a80 = param_1[0xc];\n  *(undefined4 *)PTR_this_shell_builtin_00144a84 = uVar8;\n  *(undefined4 *)PTR_expand_aliases_0014459c = uVar7;\n  *(undefined4 *)PTR_echo_input_at_read_00144724 = uVar6;\n  *(int *)PTR_need_here_doc_00144810 = iVar3;\n  *(undefined4 *)PTR_here_doc_first_line_00144924 = uVar5;\n  if (iVar3 == 0) {\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }\n  else {\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }\n  puVar1 = PTR_data_start_00144568;\n  if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {\n    (*(code *)PTR_free_001464fc)();\n  }\n  uVar5 = param_1[3];\n  *(undefined4 *)(puVar1 + 0x68e4) = param_1[2];\n  *(undefined4 *)(PTR_data_start_00144568 + 0x68e0) = uVar5;\n  return;\n}\n\n" (function_definition "void restore_parser_state(undefined4 *param_1)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  \n  if (param_1 == (undefined4 *)0x0) {\n    return;\n  }\n  puVar2 = (undefined4 *)param_1[1];\n  *(undefined4 *)PTR_parser_state_001448f8 = *param_1;\n  puVar1 = PTR_free_001464fc;\n  if (puVar2 != (undefined4 *)0x0) {\n    uVar7 = puVar2[1];\n    uVar6 = puVar2[2];\n    uVar5 = puVar2[3];\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;\n    *(undefined4 *)PTR_current_token_001448e8 = uVar5;\n    (*(code *)puVar1)(puVar2);\n  }\n  uVar5 = param_1[5];\n  uVar10 = param_1[6];\n  *(undefined4 *)(PTR_data_start_00144568 + 0x6b28) = param_1[4];\n  uVar9 = param_1[7];\n  uVar8 = param_1[8];\n  uVar7 = param_1[9];\n  *(undefined4 *)PTR_eof_encountered_001449a8 = uVar5;\n  uVar5 = param_1[10];\n  uVar6 = param_1[0xb];\n  *(undefined4 *)PTR_prompt_string_pointer_00144940 = uVar10;\n  *(undefined4 *)PTR_current_command_line_count_00144814 = uVar9;\n  *(undefined4 *)PTR_remember_on_history_00144668 = uVar8;\n  *(undefined4 *)PTR_history_expansion_inhibited_00144a68 = uVar7;\n  *(undefined4 *)PTR_last_command_exit_value_001445e0 = uVar5;\n  restore_pipestatus_array(uVar6);\n  uVar8 = param_1[0xd];\n  uVar7 = param_1[0xe];\n  uVar6 = param_1[0xf];\n  iVar3 = param_1[0x10];\n  uVar5 = param_1[0x11];\n  *(undefined4 *)PTR_last_shell_builtin_00144a80 = param_1[0xc];\n  *(undefined4 *)PTR_this_shell_builtin_00144a84 = uVar8;\n  *(undefined4 *)PTR_expand_aliases_0014459c = uVar7;\n  *(undefined4 *)PTR_echo_input_at_read_00144724 = uVar6;\n  *(int *)PTR_need_here_doc_00144810 = iVar3;\n  *(undefined4 *)PTR_here_doc_first_line_00144924 = uVar5;\n  if (iVar3 == 0) {\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }\n  else {\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }\n  puVar1 = PTR_data_start_00144568;\n  if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {\n    (*(code *)PTR_free_001464fc)();\n  }\n  uVar5 = param_1[3];\n  *(undefined4 *)(puVar1 + 0x68e4) = param_1[2];\n  *(undefined4 *)(PTR_data_start_00144568 + 0x68e0) = uVar5;\n  return;\n}" primitive_type (function_declarator "restore_parser_state(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  \n  if (param_1 == (undefined4 *)0x0) {\n    return;\n  }\n  puVar2 = (undefined4 *)param_1[1];\n  *(undefined4 *)PTR_parser_state_001448f8 = *param_1;\n  puVar1 = PTR_free_001464fc;\n  if (puVar2 != (undefined4 *)0x0) {\n    uVar7 = puVar2[1];\n    uVar6 = puVar2[2];\n    uVar5 = puVar2[3];\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;\n    *(undefined4 *)PTR_current_token_001448e8 = uVar5;\n    (*(code *)puVar1)(puVar2);\n  }\n  uVar5 = param_1[5];\n  uVar10 = param_1[6];\n  *(undefined4 *)(PTR_data_start_00144568 + 0x6b28) = param_1[4];\n  uVar9 = param_1[7];\n  uVar8 = param_1[8];\n  uVar7 = param_1[9];\n  *(undefined4 *)PTR_eof_encountered_001449a8 = uVar5;\n  uVar5 = param_1[10];\n  uVar6 = param_1[0xb];\n  *(undefined4 *)PTR_prompt_string_pointer_00144940 = uVar10;\n  *(undefined4 *)PTR_current_command_line_count_00144814 = uVar9;\n  *(undefined4 *)PTR_remember_on_history_00144668 = uVar8;\n  *(undefined4 *)PTR_history_expansion_inhibited_00144a68 = uVar7;\n  *(undefined4 *)PTR_last_command_exit_value_001445e0 = uVar5;\n  restore_pipestatus_array(uVar6);\n  uVar8 = param_1[0xd];\n  uVar7 = param_1[0xe];\n  uVar6 = param_1[0xf];\n  iVar3 = param_1[0x10];\n  uVar5 = param_1[0x11];\n  *(undefined4 *)PTR_last_shell_builtin_00144a80 = param_1[0xc];\n  *(undefined4 *)PTR_this_shell_builtin_00144a84 = uVar8;\n  *(undefined4 *)PTR_expand_aliases_0014459c = uVar7;\n  *(undefined4 *)PTR_echo_input_at_read_00144724 = uVar6;\n  *(int *)PTR_need_here_doc_00144810 = iVar3;\n  *(undefined4 *)PTR_here_doc_first_line_00144924 = uVar5;\n  if (iVar3 == 0) {\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }\n  else {\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }\n  puVar1 = PTR_data_start_00144568;\n  if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {\n    (*(code *)PTR_free_001464fc)();\n  }\n  uVar5 = param_1[3];\n  *(undefined4 *)(puVar1 + 0x68e4) = param_1[2];\n  *(undefined4 *)(PTR_data_start_00144568 + 0x68e0) = uVar5;\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (if_statement "if (param_1 == (undefined4 *)0x0) {\n    return;\n  }" if (parenthesized_expression "(param_1 == (undefined4 *)0x0)" ( (binary_expression "param_1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar2 = (undefined4 *)param_1[1];" (assignment_expression "puVar2 = (undefined4 *)param_1[1]" identifier = (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)PTR_parser_state_001448f8 = *param_1;" (assignment_expression "*(undefined4 *)PTR_parser_state_001448f8 = *param_1" (pointer_expression "*(undefined4 *)PTR_parser_state_001448f8" * (cast_expression "(undefined4 *)PTR_parser_state_001448f8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar1 = PTR_free_001464fc;" (assignment_expression "puVar1 = PTR_free_001464fc" identifier = identifier) ;) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n    uVar7 = puVar2[1];\n    uVar6 = puVar2[2];\n    uVar5 = puVar2[3];\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;\n    *(undefined4 *)PTR_current_token_001448e8 = uVar5;\n    (*(code *)puVar1)(puVar2);\n  }" if (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = puVar2[1];\n    uVar6 = puVar2[2];\n    uVar5 = puVar2[3];\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;\n    *(undefined4 *)PTR_current_token_001448e8 = uVar5;\n    (*(code *)puVar1)(puVar2);\n  }" { (expression_statement "uVar7 = puVar2[1];" (assignment_expression "uVar7 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar2[2];" (assignment_expression "uVar6 = puVar2[2]" identifier = (subscript_expression "puVar2[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar2[3];" (assignment_expression "uVar5 = puVar2[3]" identifier = (subscript_expression "puVar2[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b14)" * (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b14)" ( (binary_expression "PTR_data_start_00144568 + 0x6b14" identifier + number_literal) )))) = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b10)" * (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b10)" ( (binary_expression "PTR_data_start_00144568 + 0x6b10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b0c)" * (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b0c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b0c)" ( (binary_expression "PTR_data_start_00144568 + 0x6b0c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)PTR_current_token_001448e8 = uVar5;" (assignment_expression "*(undefined4 *)PTR_current_token_001448e8 = uVar5" (pointer_expression "*(undefined4 *)PTR_current_token_001448e8" * (cast_expression "(undefined4 *)PTR_current_token_001448e8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "(*(code *)puVar1)(puVar2);" (call_expression "(*(code *)puVar1)(puVar2)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2)" ( identifier ))) ;) })) (expression_statement "uVar5 = param_1[5];" (assignment_expression "uVar5 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = param_1[6];" (assignment_expression "uVar10 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x6b28) = param_1[4];" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b28) = param_1[4]" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b28)" * (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b28)" ( (binary_expression "PTR_data_start_00144568 + 0x6b28" identifier + number_literal) )))) = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = param_1[7];" (assignment_expression "uVar9 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = param_1[8];" (assignment_expression "uVar8 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = param_1[9];" (assignment_expression "uVar7 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)PTR_eof_encountered_001449a8 = uVar5;" (assignment_expression "*(undefined4 *)PTR_eof_encountered_001449a8 = uVar5" (pointer_expression "*(undefined4 *)PTR_eof_encountered_001449a8" * (cast_expression "(undefined4 *)PTR_eof_encountered_001449a8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar5 = param_1[10];" (assignment_expression "uVar5 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_1[0xb];" (assignment_expression "uVar6 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)PTR_prompt_string_pointer_00144940 = uVar10;" (assignment_expression "*(undefined4 *)PTR_prompt_string_pointer_00144940 = uVar10" (pointer_expression "*(undefined4 *)PTR_prompt_string_pointer_00144940" * (cast_expression "(undefined4 *)PTR_prompt_string_pointer_00144940" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_current_command_line_count_00144814 = uVar9;" (assignment_expression "*(undefined4 *)PTR_current_command_line_count_00144814 = uVar9" (pointer_expression "*(undefined4 *)PTR_current_command_line_count_00144814" * (cast_expression "(undefined4 *)PTR_current_command_line_count_00144814" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_remember_on_history_00144668 = uVar8;" (assignment_expression "*(undefined4 *)PTR_remember_on_history_00144668 = uVar8" (pointer_expression "*(undefined4 *)PTR_remember_on_history_00144668" * (cast_expression "(undefined4 *)PTR_remember_on_history_00144668" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_history_expansion_inhibited_00144a68 = uVar7;" (assignment_expression "*(undefined4 *)PTR_history_expansion_inhibited_00144a68 = uVar7" (pointer_expression "*(undefined4 *)PTR_history_expansion_inhibited_00144a68" * (cast_expression "(undefined4 *)PTR_history_expansion_inhibited_00144a68" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_last_command_exit_value_001445e0 = uVar5;" (assignment_expression "*(undefined4 *)PTR_last_command_exit_value_001445e0 = uVar5" (pointer_expression "*(undefined4 *)PTR_last_command_exit_value_001445e0" * (cast_expression "(undefined4 *)PTR_last_command_exit_value_001445e0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "restore_pipestatus_array(uVar6);" (call_expression "restore_pipestatus_array(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "uVar8 = param_1[0xd];" (assignment_expression "uVar8 = param_1[0xd]" identifier = (subscript_expression "param_1[0xd]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = param_1[0xe];" (assignment_expression "uVar7 = param_1[0xe]" identifier = (subscript_expression "param_1[0xe]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_1[0xf];" (assignment_expression "uVar6 = param_1[0xf]" identifier = (subscript_expression "param_1[0xf]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = param_1[0x10];" (assignment_expression "iVar3 = param_1[0x10]" identifier = (subscript_expression "param_1[0x10]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = param_1[0x11];" (assignment_expression "uVar5 = param_1[0x11]" identifier = (subscript_expression "param_1[0x11]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)PTR_last_shell_builtin_00144a80 = param_1[0xc];" (assignment_expression "*(undefined4 *)PTR_last_shell_builtin_00144a80 = param_1[0xc]" (pointer_expression "*(undefined4 *)PTR_last_shell_builtin_00144a80" * (cast_expression "(undefined4 *)PTR_last_shell_builtin_00144a80" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)PTR_this_shell_builtin_00144a84 = uVar8;" (assignment_expression "*(undefined4 *)PTR_this_shell_builtin_00144a84 = uVar8" (pointer_expression "*(undefined4 *)PTR_this_shell_builtin_00144a84" * (cast_expression "(undefined4 *)PTR_this_shell_builtin_00144a84" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_expand_aliases_0014459c = uVar7;" (assignment_expression "*(undefined4 *)PTR_expand_aliases_0014459c = uVar7" (pointer_expression "*(undefined4 *)PTR_expand_aliases_0014459c" * (cast_expression "(undefined4 *)PTR_expand_aliases_0014459c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_echo_input_at_read_00144724 = uVar6;" (assignment_expression "*(undefined4 *)PTR_echo_input_at_read_00144724 = uVar6" (pointer_expression "*(undefined4 *)PTR_echo_input_at_read_00144724" * (cast_expression "(undefined4 *)PTR_echo_input_at_read_00144724" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)PTR_need_here_doc_00144810 = iVar3;" (assignment_expression "*(int *)PTR_need_here_doc_00144810 = iVar3" (pointer_expression "*(int *)PTR_need_here_doc_00144810" * (cast_expression "(int *)PTR_need_here_doc_00144810" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_here_doc_first_line_00144924 = uVar5;" (assignment_expression "*(undefined4 *)PTR_here_doc_first_line_00144924 = uVar5" (pointer_expression "*(undefined4 *)PTR_here_doc_first_line_00144924" * (cast_expression "(undefined4 *)PTR_here_doc_first_line_00144924" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (iVar3 == 0) {\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }\n  else {\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }" { (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b3c)" * (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b3c)" ( (binary_expression "PTR_data_start_00144568 + 0x6b3c" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }" else (compound_statement "{\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }" { (expression_statement "puVar4 = param_1 + 0x12;" (assignment_expression "puVar4 = param_1 + 0x12" identifier = (binary_expression "param_1 + 0x12" identifier + number_literal)) ;) (expression_statement "puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);" (assignment_expression "puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c)" identifier = (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b3c)" ( (binary_expression "PTR_data_start_00144568 + 0x6b3c" identifier + number_literal) )))) ;) (do_statement "do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);" do (compound_statement "{\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    }" { (expression_statement "uVar8 = *puVar4;" (assignment_expression "uVar8 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "uVar7 = puVar4[1];" (assignment_expression "uVar7 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar4[2];" (assignment_expression "uVar6 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar4[3];" (assignment_expression "uVar5 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "puVar4 = puVar4 + 4;" (assignment_expression "puVar4 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (expression_statement "*puVar2 = uVar8;" (assignment_expression "*puVar2 = uVar8" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "puVar2[1] = uVar7;" (assignment_expression "puVar2[1] = uVar7" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[2] = uVar6;" (assignment_expression "puVar2[2] = uVar6" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[3] = uVar5;" (assignment_expression "puVar2[3] = uVar5" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2 = puVar2 + 4;" (assignment_expression "puVar2 = puVar2 + 4" identifier = (binary_expression "puVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar4 != param_1 + 0x22)" ( (binary_expression "puVar4 != param_1 + 0x22" identifier != (binary_expression "param_1 + 0x22" identifier + number_literal)) )) ;) }))) (expression_statement "puVar1 = PTR_data_start_00144568;" (assignment_expression "puVar1 = PTR_data_start_00144568" identifier = identifier) ;) (if_statement "if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {\n    (*(code *)PTR_free_001464fc)();\n  }" if (parenthesized_expression "(*(int *)(PTR_data_start_00144568 + 0x68e4) != 0)" ( (binary_expression "*(int *)(PTR_data_start_00144568 + 0x68e4) != 0" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x68e4)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x68e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x68e4)" ( (binary_expression "PTR_data_start_00144568 + 0x68e4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_free_001464fc)();\n  }" { (expression_statement "(*(code *)PTR_free_001464fc)();" (call_expression "(*(code *)PTR_free_001464fc)()" (parenthesized_expression "(*(code *)PTR_free_001464fc)" ( (pointer_expression "*(code *)PTR_free_001464fc" * (cast_expression "(code *)PTR_free_001464fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "uVar5 = param_1[3];" (assignment_expression "uVar5 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar1 + 0x68e4) = param_1[2];" (assignment_expression "*(undefined4 *)(puVar1 + 0x68e4) = param_1[2]" (pointer_expression "*(undefined4 *)(puVar1 + 0x68e4)" * (cast_expression "(undefined4 *)(puVar1 + 0x68e4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x68e4)" ( (binary_expression "puVar1 + 0x68e4" identifier + number_literal) )))) = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x68e0) = uVar5;" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x68e0) = uVar5" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x68e0)" * (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x68e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x68e0)" ( (binary_expression "PTR_data_start_00144568 + 0x68e0" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void restore_parser_state(sh_parser_state_t *ps)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  REDIRECT **ppRVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  ARRAY *a;\n  REDIRECT *pRVar6;\n  int iVar7;\n  REDIRECT *pRVar8;\n  int iVar9;\n  REDIRECT *pRVar10;\n  int iVar11;\n  sh_builtin_func_t *psVar12;\n  REDIRECT *pRVar13;\n  char **ppcVar14;\n  \n  if (ps == (sh_parser_state_t *)0x0) {\n    return;\n  }\n  piVar2 = ps->token_state;\n  *(int *)PTR_parser_state_001448f8 = ps->parser_state;\n  puVar1 = PTR_free_001464fc;\n  if (piVar2 != (int *)0x0) {\n    iVar9 = piVar2[1];\n    iVar7 = piVar2[2];\n    iVar4 = piVar2[3];\n    *(int *)(PTR_data_start_00144568 + 0x6b14) = *piVar2;\n    *(int *)(PTR_data_start_00144568 + 0x6b10) = iVar9;\n    *(int *)(PTR_data_start_00144568 + 0x6b0c) = iVar7;\n    *(int *)PTR_current_token_001448e8 = iVar4;\n    (*(code *)puVar1)(piVar2);\n  }\n  iVar4 = ps->eof_encountered;\n  ppcVar14 = ps->prompt_string_pointer;\n  *(int *)(PTR_data_start_00144568 + 0x6b28) = ps->input_line_terminator;\n  iVar11 = ps->current_command_line_count;\n  iVar9 = ps->remember_on_history;\n  iVar7 = ps->history_expansion_inhibited;\n  *(int *)PTR_eof_encountered_001449a8 = iVar4;\n  iVar4 = ps->last_command_exit_value;\n  a = ps->pipestatus;\n  *(char ***)PTR_prompt_string_pointer_00144940 = ppcVar14;\n  *(int *)PTR_current_command_line_count_00144814 = iVar11;\n  *(int *)PTR_remember_on_history_00144668 = iVar9;\n  *(int *)PTR_history_expansion_inhibited_00144a68 = iVar7;\n  *(int *)PTR_last_command_exit_value_001445e0 = iVar4;\n  restore_pipestatus_array(a);\n  psVar12 = ps->this_shell_builtin;\n  iVar11 = ps->expand_aliases;\n  iVar9 = ps->echo_input_at_read;\n  iVar4 = ps->need_here_doc;\n  iVar7 = ps->here_doc_first_line;\n  *(sh_builtin_func_t **)PTR_last_shell_builtin_00144a80 = ps->last_shell_builtin;\n  *(sh_builtin_func_t **)PTR_this_shell_builtin_00144a84 = psVar12;\n  *(int *)PTR_expand_aliases_0014459c = iVar11;\n  *(int *)PTR_echo_input_at_read_00144724 = iVar9;\n  *(int *)PTR_need_here_doc_00144810 = iVar4;\n  *(int *)PTR_here_doc_first_line_00144924 = iVar7;\n  if (iVar4 == 0) {\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }\n  else {\n    ppRVar3 = ps->redir_stack;\n    puVar5 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      pRVar13 = *ppRVar3;\n      pRVar10 = ppRVar3[1];\n      pRVar8 = ppRVar3[2];\n      pRVar6 = ppRVar3[3];\n      ppRVar3 = ppRVar3 + 4;\n      *puVar5 = pRVar13;\n      puVar5[1] = pRVar10;\n      puVar5[2] = pRVar8;\n      puVar5[3] = pRVar6;\n      puVar5 = puVar5 + 4;\n    } while ((sh_parser_state_t *)ppRVar3 != ps + 1);\n  }\n  puVar1 = PTR_data_start_00144568;\n  if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {\n    (*(code *)PTR_free_001464fc)();\n  }\n  iVar4 = ps->token_buffer_size;\n  *(char **)(puVar1 + 0x68e4) = ps->token;\n  *(int *)(PTR_data_start_00144568 + 0x68e0) = iVar4;\n  return;\n}\n\n" (function_definition "void restore_parser_state(sh_parser_state_t *ps)\n\n{\n  undefined *puVar1;\n  int *piVar2;\n  REDIRECT **ppRVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  ARRAY *a;\n  REDIRECT *pRVar6;\n  int iVar7;\n  REDIRECT *pRVar8;\n  int iVar9;\n  REDIRECT *pRVar10;\n  int iVar11;\n  sh_builtin_func_t *psVar12;\n  REDIRECT *pRVar13;\n  char **ppcVar14;\n  \n  if (ps == (sh_parser_state_t *)0x0) {\n    return;\n  }\n  piVar2 = ps->token_state;\n  *(int *)PTR_parser_state_001448f8 = ps->parser_state;\n  puVar1 = PTR_free_001464fc;\n  if (piVar2 != (int *)0x0) {\n    iVar9 = piVar2[1];\n    iVar7 = piVar2[2];\n    iVar4 = piVar2[3];\n    *(int *)(PTR_data_start_00144568 + 0x6b14) = *piVar2;\n    *(int *)(PTR_data_start_00144568 + 0x6b10) = iVar9;\n    *(int *)(PTR_data_start_00144568 + 0x6b0c) = iVar7;\n    *(int *)PTR_current_token_001448e8 = iVar4;\n    (*(code *)puVar1)(piVar2);\n  }\n  iVar4 = ps->eof_encountered;\n  ppcVar14 = ps->prompt_string_pointer;\n  *(int *)(PTR_data_start_00144568 + 0x6b28) = ps->input_line_terminator;\n  iVar11 = ps->current_command_line_count;\n  iVar9 = ps->remember_on_history;\n  iVar7 = ps->history_expansion_inhibited;\n  *(int *)PTR_eof_encountered_001449a8 = iVar4;\n  iVar4 = ps->last_command_exit_value;\n  a = ps->pipestatus;\n  *(char ***)PTR_prompt_string_pointer_00144940 = ppcVar14;\n  *(int *)PTR_current_command_line_count_00144814 = iVar11;\n  *(int *)PTR_remember_on_history_00144668 = iVar9;\n  *(int *)PTR_history_expansion_inhibited_00144a68 = iVar7;\n  *(int *)PTR_last_command_exit_value_001445e0 = iVar4;\n  restore_pipestatus_array(a);\n  psVar12 = ps->this_shell_builtin;\n  iVar11 = ps->expand_aliases;\n  iVar9 = ps->echo_input_at_read;\n  iVar4 = ps->need_here_doc;\n  iVar7 = ps->here_doc_first_line;\n  *(sh_builtin_func_t **)PTR_last_shell_builtin_00144a80 = ps->last_shell_builtin;\n  *(sh_builtin_func_t **)PTR_this_shell_builtin_00144a84 = psVar12;\n  *(int *)PTR_expand_aliases_0014459c = iVar11;\n  *(int *)PTR_echo_input_at_read_00144724 = iVar9;\n  *(int *)PTR_need_here_doc_00144810 = iVar4;\n  *(int *)PTR_here_doc_first_line_00144924 = iVar7;\n  if (iVar4 == 0) {\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }\n  else {\n    ppRVar3 = ps->redir_stack;\n    puVar5 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      pRVar13 = *ppRVar3;\n      pRVar10 = ppRVar3[1];\n      pRVar8 = ppRVar3[2];\n      pRVar6 = ppRVar3[3];\n      ppRVar3 = ppRVar3 + 4;\n      *puVar5 = pRVar13;\n      puVar5[1] = pRVar10;\n      puVar5[2] = pRVar8;\n      puVar5[3] = pRVar6;\n      puVar5 = puVar5 + 4;\n    } while ((sh_parser_state_t *)ppRVar3 != ps + 1);\n  }\n  puVar1 = PTR_data_start_00144568;\n  if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {\n    (*(code *)PTR_free_001464fc)();\n  }\n  iVar4 = ps->token_buffer_size;\n  *(char **)(puVar1 + 0x68e4) = ps->token;\n  *(int *)(PTR_data_start_00144568 + 0x68e0) = iVar4;\n  return;\n}" primitive_type (function_declarator "restore_parser_state(sh_parser_state_t *ps)" identifier (parameter_list "(sh_parser_state_t *ps)" ( (parameter_declaration "sh_parser_state_t *ps" type_identifier (pointer_declarator "*ps" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int *piVar2;\n  REDIRECT **ppRVar3;\n  int iVar4;\n  undefined4 *puVar5;\n  ARRAY *a;\n  REDIRECT *pRVar6;\n  int iVar7;\n  REDIRECT *pRVar8;\n  int iVar9;\n  REDIRECT *pRVar10;\n  int iVar11;\n  sh_builtin_func_t *psVar12;\n  REDIRECT *pRVar13;\n  char **ppcVar14;\n  \n  if (ps == (sh_parser_state_t *)0x0) {\n    return;\n  }\n  piVar2 = ps->token_state;\n  *(int *)PTR_parser_state_001448f8 = ps->parser_state;\n  puVar1 = PTR_free_001464fc;\n  if (piVar2 != (int *)0x0) {\n    iVar9 = piVar2[1];\n    iVar7 = piVar2[2];\n    iVar4 = piVar2[3];\n    *(int *)(PTR_data_start_00144568 + 0x6b14) = *piVar2;\n    *(int *)(PTR_data_start_00144568 + 0x6b10) = iVar9;\n    *(int *)(PTR_data_start_00144568 + 0x6b0c) = iVar7;\n    *(int *)PTR_current_token_001448e8 = iVar4;\n    (*(code *)puVar1)(piVar2);\n  }\n  iVar4 = ps->eof_encountered;\n  ppcVar14 = ps->prompt_string_pointer;\n  *(int *)(PTR_data_start_00144568 + 0x6b28) = ps->input_line_terminator;\n  iVar11 = ps->current_command_line_count;\n  iVar9 = ps->remember_on_history;\n  iVar7 = ps->history_expansion_inhibited;\n  *(int *)PTR_eof_encountered_001449a8 = iVar4;\n  iVar4 = ps->last_command_exit_value;\n  a = ps->pipestatus;\n  *(char ***)PTR_prompt_string_pointer_00144940 = ppcVar14;\n  *(int *)PTR_current_command_line_count_00144814 = iVar11;\n  *(int *)PTR_remember_on_history_00144668 = iVar9;\n  *(int *)PTR_history_expansion_inhibited_00144a68 = iVar7;\n  *(int *)PTR_last_command_exit_value_001445e0 = iVar4;\n  restore_pipestatus_array(a);\n  psVar12 = ps->this_shell_builtin;\n  iVar11 = ps->expand_aliases;\n  iVar9 = ps->echo_input_at_read;\n  iVar4 = ps->need_here_doc;\n  iVar7 = ps->here_doc_first_line;\n  *(sh_builtin_func_t **)PTR_last_shell_builtin_00144a80 = ps->last_shell_builtin;\n  *(sh_builtin_func_t **)PTR_this_shell_builtin_00144a84 = psVar12;\n  *(int *)PTR_expand_aliases_0014459c = iVar11;\n  *(int *)PTR_echo_input_at_read_00144724 = iVar9;\n  *(int *)PTR_need_here_doc_00144810 = iVar4;\n  *(int *)PTR_here_doc_first_line_00144924 = iVar7;\n  if (iVar4 == 0) {\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }\n  else {\n    ppRVar3 = ps->redir_stack;\n    puVar5 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      pRVar13 = *ppRVar3;\n      pRVar10 = ppRVar3[1];\n      pRVar8 = ppRVar3[2];\n      pRVar6 = ppRVar3[3];\n      ppRVar3 = ppRVar3 + 4;\n      *puVar5 = pRVar13;\n      puVar5[1] = pRVar10;\n      puVar5[2] = pRVar8;\n      puVar5[3] = pRVar6;\n      puVar5 = puVar5 + 4;\n    } while ((sh_parser_state_t *)ppRVar3 != ps + 1);\n  }\n  puVar1 = PTR_data_start_00144568;\n  if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {\n    (*(code *)PTR_free_001464fc)();\n  }\n  iVar4 = ps->token_buffer_size;\n  *(char **)(puVar1 + 0x68e4) = ps->token;\n  *(int *)(PTR_data_start_00144568 + 0x68e0) = iVar4;\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "REDIRECT **ppRVar3;" type_identifier (pointer_declarator "**ppRVar3" * (pointer_declarator "*ppRVar3" * identifier)) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "ARRAY *a;" type_identifier (pointer_declarator "*a" * identifier) ;) (declaration "REDIRECT *pRVar6;" type_identifier (pointer_declarator "*pRVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "REDIRECT *pRVar8;" type_identifier (pointer_declarator "*pRVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "REDIRECT *pRVar10;" type_identifier (pointer_declarator "*pRVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "sh_builtin_func_t *psVar12;" type_identifier (pointer_declarator "*psVar12" * identifier) ;) (declaration "REDIRECT *pRVar13;" type_identifier (pointer_declarator "*pRVar13" * identifier) ;) (declaration "char **ppcVar14;" primitive_type (pointer_declarator "**ppcVar14" * (pointer_declarator "*ppcVar14" * identifier)) ;) (if_statement "if (ps == (sh_parser_state_t *)0x0) {\n    return;\n  }" if (parenthesized_expression "(ps == (sh_parser_state_t *)0x0)" ( (binary_expression "ps == (sh_parser_state_t *)0x0" identifier == (cast_expression "(sh_parser_state_t *)0x0" ( (type_descriptor "sh_parser_state_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "piVar2 = ps->token_state;" (assignment_expression "piVar2 = ps->token_state" identifier = (field_expression "ps->token_state" identifier -> field_identifier)) ;) (expression_statement "*(int *)PTR_parser_state_001448f8 = ps->parser_state;" (assignment_expression "*(int *)PTR_parser_state_001448f8 = ps->parser_state" (pointer_expression "*(int *)PTR_parser_state_001448f8" * (cast_expression "(int *)PTR_parser_state_001448f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "ps->parser_state" identifier -> field_identifier)) ;) (expression_statement "puVar1 = PTR_free_001464fc;" (assignment_expression "puVar1 = PTR_free_001464fc" identifier = identifier) ;) (if_statement "if (piVar2 != (int *)0x0) {\n    iVar9 = piVar2[1];\n    iVar7 = piVar2[2];\n    iVar4 = piVar2[3];\n    *(int *)(PTR_data_start_00144568 + 0x6b14) = *piVar2;\n    *(int *)(PTR_data_start_00144568 + 0x6b10) = iVar9;\n    *(int *)(PTR_data_start_00144568 + 0x6b0c) = iVar7;\n    *(int *)PTR_current_token_001448e8 = iVar4;\n    (*(code *)puVar1)(piVar2);\n  }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar9 = piVar2[1];\n    iVar7 = piVar2[2];\n    iVar4 = piVar2[3];\n    *(int *)(PTR_data_start_00144568 + 0x6b14) = *piVar2;\n    *(int *)(PTR_data_start_00144568 + 0x6b10) = iVar9;\n    *(int *)(PTR_data_start_00144568 + 0x6b0c) = iVar7;\n    *(int *)PTR_current_token_001448e8 = iVar4;\n    (*(code *)puVar1)(piVar2);\n  }" { (expression_statement "iVar9 = piVar2[1];" (assignment_expression "iVar9 = piVar2[1]" identifier = (subscript_expression "piVar2[1]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar2[2];" (assignment_expression "iVar7 = piVar2[2]" identifier = (subscript_expression "piVar2[2]" identifier [ number_literal ])) ;) (expression_statement "iVar4 = piVar2[3];" (assignment_expression "iVar4 = piVar2[3]" identifier = (subscript_expression "piVar2[3]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(PTR_data_start_00144568 + 0x6b14) = *piVar2;" (assignment_expression "*(int *)(PTR_data_start_00144568 + 0x6b14) = *piVar2" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x6b14)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x6b14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b14)" ( (binary_expression "PTR_data_start_00144568 + 0x6b14" identifier + number_literal) )))) = (pointer_expression "*piVar2" * identifier)) ;) (expression_statement "*(int *)(PTR_data_start_00144568 + 0x6b10) = iVar9;" (assignment_expression "*(int *)(PTR_data_start_00144568 + 0x6b10) = iVar9" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x6b10)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x6b10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b10)" ( (binary_expression "PTR_data_start_00144568 + 0x6b10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(PTR_data_start_00144568 + 0x6b0c) = iVar7;" (assignment_expression "*(int *)(PTR_data_start_00144568 + 0x6b0c) = iVar7" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x6b0c)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x6b0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b0c)" ( (binary_expression "PTR_data_start_00144568 + 0x6b0c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)PTR_current_token_001448e8 = iVar4;" (assignment_expression "*(int *)PTR_current_token_001448e8 = iVar4" (pointer_expression "*(int *)PTR_current_token_001448e8" * (cast_expression "(int *)PTR_current_token_001448e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "(*(code *)puVar1)(piVar2);" (call_expression "(*(code *)puVar1)(piVar2)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar2)" ( identifier ))) ;) })) (expression_statement "iVar4 = ps->eof_encountered;" (assignment_expression "iVar4 = ps->eof_encountered" identifier = (field_expression "ps->eof_encountered" identifier -> field_identifier)) ;) (expression_statement "ppcVar14 = ps->prompt_string_pointer;" (assignment_expression "ppcVar14 = ps->prompt_string_pointer" identifier = (field_expression "ps->prompt_string_pointer" identifier -> field_identifier)) ;) (expression_statement "*(int *)(PTR_data_start_00144568 + 0x6b28) = ps->input_line_terminator;" (assignment_expression "*(int *)(PTR_data_start_00144568 + 0x6b28) = ps->input_line_terminator" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x6b28)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x6b28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b28)" ( (binary_expression "PTR_data_start_00144568 + 0x6b28" identifier + number_literal) )))) = (field_expression "ps->input_line_terminator" identifier -> field_identifier)) ;) (expression_statement "iVar11 = ps->current_command_line_count;" (assignment_expression "iVar11 = ps->current_command_line_count" identifier = (field_expression "ps->current_command_line_count" identifier -> field_identifier)) ;) (expression_statement "iVar9 = ps->remember_on_history;" (assignment_expression "iVar9 = ps->remember_on_history" identifier = (field_expression "ps->remember_on_history" identifier -> field_identifier)) ;) (expression_statement "iVar7 = ps->history_expansion_inhibited;" (assignment_expression "iVar7 = ps->history_expansion_inhibited" identifier = (field_expression "ps->history_expansion_inhibited" identifier -> field_identifier)) ;) (expression_statement "*(int *)PTR_eof_encountered_001449a8 = iVar4;" (assignment_expression "*(int *)PTR_eof_encountered_001449a8 = iVar4" (pointer_expression "*(int *)PTR_eof_encountered_001449a8" * (cast_expression "(int *)PTR_eof_encountered_001449a8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "iVar4 = ps->last_command_exit_value;" (assignment_expression "iVar4 = ps->last_command_exit_value" identifier = (field_expression "ps->last_command_exit_value" identifier -> field_identifier)) ;) (expression_statement "a = ps->pipestatus;" (assignment_expression "a = ps->pipestatus" identifier = (field_expression "ps->pipestatus" identifier -> field_identifier)) ;) (expression_statement "*(char ***)PTR_prompt_string_pointer_00144940 = ppcVar14;" (assignment_expression "*(char ***)PTR_prompt_string_pointer_00144940 = ppcVar14" (pointer_expression "*(char ***)PTR_prompt_string_pointer_00144940" * (cast_expression "(char ***)PTR_prompt_string_pointer_00144940" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) = identifier) ;) (expression_statement "*(int *)PTR_current_command_line_count_00144814 = iVar11;" (assignment_expression "*(int *)PTR_current_command_line_count_00144814 = iVar11" (pointer_expression "*(int *)PTR_current_command_line_count_00144814" * (cast_expression "(int *)PTR_current_command_line_count_00144814" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)PTR_remember_on_history_00144668 = iVar9;" (assignment_expression "*(int *)PTR_remember_on_history_00144668 = iVar9" (pointer_expression "*(int *)PTR_remember_on_history_00144668" * (cast_expression "(int *)PTR_remember_on_history_00144668" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)PTR_history_expansion_inhibited_00144a68 = iVar7;" (assignment_expression "*(int *)PTR_history_expansion_inhibited_00144a68 = iVar7" (pointer_expression "*(int *)PTR_history_expansion_inhibited_00144a68" * (cast_expression "(int *)PTR_history_expansion_inhibited_00144a68" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)PTR_last_command_exit_value_001445e0 = iVar4;" (assignment_expression "*(int *)PTR_last_command_exit_value_001445e0 = iVar4" (pointer_expression "*(int *)PTR_last_command_exit_value_001445e0" * (cast_expression "(int *)PTR_last_command_exit_value_001445e0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "restore_pipestatus_array(a);" (call_expression "restore_pipestatus_array(a)" identifier (argument_list "(a)" ( identifier ))) ;) (expression_statement "psVar12 = ps->this_shell_builtin;" (assignment_expression "psVar12 = ps->this_shell_builtin" identifier = (field_expression "ps->this_shell_builtin" identifier -> field_identifier)) ;) (expression_statement "iVar11 = ps->expand_aliases;" (assignment_expression "iVar11 = ps->expand_aliases" identifier = (field_expression "ps->expand_aliases" identifier -> field_identifier)) ;) (expression_statement "iVar9 = ps->echo_input_at_read;" (assignment_expression "iVar9 = ps->echo_input_at_read" identifier = (field_expression "ps->echo_input_at_read" identifier -> field_identifier)) ;) (expression_statement "iVar4 = ps->need_here_doc;" (assignment_expression "iVar4 = ps->need_here_doc" identifier = (field_expression "ps->need_here_doc" identifier -> field_identifier)) ;) (expression_statement "iVar7 = ps->here_doc_first_line;" (assignment_expression "iVar7 = ps->here_doc_first_line" identifier = (field_expression "ps->here_doc_first_line" identifier -> field_identifier)) ;) (expression_statement "*(sh_builtin_func_t **)PTR_last_shell_builtin_00144a80 = ps->last_shell_builtin;" (assignment_expression "*(sh_builtin_func_t **)PTR_last_shell_builtin_00144a80 = ps->last_shell_builtin" (pointer_expression "*(sh_builtin_func_t **)PTR_last_shell_builtin_00144a80" * (cast_expression "(sh_builtin_func_t **)PTR_last_shell_builtin_00144a80" ( (type_descriptor "sh_builtin_func_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (field_expression "ps->last_shell_builtin" identifier -> field_identifier)) ;) (expression_statement "*(sh_builtin_func_t **)PTR_this_shell_builtin_00144a84 = psVar12;" (assignment_expression "*(sh_builtin_func_t **)PTR_this_shell_builtin_00144a84 = psVar12" (pointer_expression "*(sh_builtin_func_t **)PTR_this_shell_builtin_00144a84" * (cast_expression "(sh_builtin_func_t **)PTR_this_shell_builtin_00144a84" ( (type_descriptor "sh_builtin_func_t **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "*(int *)PTR_expand_aliases_0014459c = iVar11;" (assignment_expression "*(int *)PTR_expand_aliases_0014459c = iVar11" (pointer_expression "*(int *)PTR_expand_aliases_0014459c" * (cast_expression "(int *)PTR_expand_aliases_0014459c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)PTR_echo_input_at_read_00144724 = iVar9;" (assignment_expression "*(int *)PTR_echo_input_at_read_00144724 = iVar9" (pointer_expression "*(int *)PTR_echo_input_at_read_00144724" * (cast_expression "(int *)PTR_echo_input_at_read_00144724" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)PTR_need_here_doc_00144810 = iVar4;" (assignment_expression "*(int *)PTR_need_here_doc_00144810 = iVar4" (pointer_expression "*(int *)PTR_need_here_doc_00144810" * (cast_expression "(int *)PTR_need_here_doc_00144810" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)PTR_here_doc_first_line_00144924 = iVar7;" (assignment_expression "*(int *)PTR_here_doc_first_line_00144924 = iVar7" (pointer_expression "*(int *)PTR_here_doc_first_line_00144924" * (cast_expression "(int *)PTR_here_doc_first_line_00144924" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (iVar4 == 0) {\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }\n  else {\n    ppRVar3 = ps->redir_stack;\n    puVar5 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      pRVar13 = *ppRVar3;\n      pRVar10 = ppRVar3[1];\n      pRVar8 = ppRVar3[2];\n      pRVar6 = ppRVar3[3];\n      ppRVar3 = ppRVar3 + 4;\n      *puVar5 = pRVar13;\n      puVar5[1] = pRVar10;\n      puVar5[2] = pRVar8;\n      puVar5[3] = pRVar6;\n      puVar5 = puVar5 + 4;\n    } while ((sh_parser_state_t *)ppRVar3 != ps + 1);\n  }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }" { (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b3c)" * (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b3c)" ( (binary_expression "PTR_data_start_00144568 + 0x6b3c" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n    ppRVar3 = ps->redir_stack;\n    puVar5 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      pRVar13 = *ppRVar3;\n      pRVar10 = ppRVar3[1];\n      pRVar8 = ppRVar3[2];\n      pRVar6 = ppRVar3[3];\n      ppRVar3 = ppRVar3 + 4;\n      *puVar5 = pRVar13;\n      puVar5[1] = pRVar10;\n      puVar5[2] = pRVar8;\n      puVar5[3] = pRVar6;\n      puVar5 = puVar5 + 4;\n    } while ((sh_parser_state_t *)ppRVar3 != ps + 1);\n  }" else (compound_statement "{\n    ppRVar3 = ps->redir_stack;\n    puVar5 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      pRVar13 = *ppRVar3;\n      pRVar10 = ppRVar3[1];\n      pRVar8 = ppRVar3[2];\n      pRVar6 = ppRVar3[3];\n      ppRVar3 = ppRVar3 + 4;\n      *puVar5 = pRVar13;\n      puVar5[1] = pRVar10;\n      puVar5[2] = pRVar8;\n      puVar5[3] = pRVar6;\n      puVar5 = puVar5 + 4;\n    } while ((sh_parser_state_t *)ppRVar3 != ps + 1);\n  }" { (expression_statement "ppRVar3 = ps->redir_stack;" (assignment_expression "ppRVar3 = ps->redir_stack" identifier = (field_expression "ps->redir_stack" identifier -> field_identifier)) ;) (expression_statement "puVar5 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);" (assignment_expression "puVar5 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c)" identifier = (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b3c)" ( (binary_expression "PTR_data_start_00144568 + 0x6b3c" identifier + number_literal) )))) ;) (do_statement "do {\n      pRVar13 = *ppRVar3;\n      pRVar10 = ppRVar3[1];\n      pRVar8 = ppRVar3[2];\n      pRVar6 = ppRVar3[3];\n      ppRVar3 = ppRVar3 + 4;\n      *puVar5 = pRVar13;\n      puVar5[1] = pRVar10;\n      puVar5[2] = pRVar8;\n      puVar5[3] = pRVar6;\n      puVar5 = puVar5 + 4;\n    } while ((sh_parser_state_t *)ppRVar3 != ps + 1);" do (compound_statement "{\n      pRVar13 = *ppRVar3;\n      pRVar10 = ppRVar3[1];\n      pRVar8 = ppRVar3[2];\n      pRVar6 = ppRVar3[3];\n      ppRVar3 = ppRVar3 + 4;\n      *puVar5 = pRVar13;\n      puVar5[1] = pRVar10;\n      puVar5[2] = pRVar8;\n      puVar5[3] = pRVar6;\n      puVar5 = puVar5 + 4;\n    }" { (expression_statement "pRVar13 = *ppRVar3;" (assignment_expression "pRVar13 = *ppRVar3" identifier = (pointer_expression "*ppRVar3" * identifier)) ;) (expression_statement "pRVar10 = ppRVar3[1];" (assignment_expression "pRVar10 = ppRVar3[1]" identifier = (subscript_expression "ppRVar3[1]" identifier [ number_literal ])) ;) (expression_statement "pRVar8 = ppRVar3[2];" (assignment_expression "pRVar8 = ppRVar3[2]" identifier = (subscript_expression "ppRVar3[2]" identifier [ number_literal ])) ;) (expression_statement "pRVar6 = ppRVar3[3];" (assignment_expression "pRVar6 = ppRVar3[3]" identifier = (subscript_expression "ppRVar3[3]" identifier [ number_literal ])) ;) (expression_statement "ppRVar3 = ppRVar3 + 4;" (assignment_expression "ppRVar3 = ppRVar3 + 4" identifier = (binary_expression "ppRVar3 + 4" identifier + number_literal)) ;) (expression_statement "*puVar5 = pRVar13;" (assignment_expression "*puVar5 = pRVar13" (pointer_expression "*puVar5" * identifier) = identifier) ;) (expression_statement "puVar5[1] = pRVar10;" (assignment_expression "puVar5[1] = pRVar10" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[2] = pRVar8;" (assignment_expression "puVar5[2] = pRVar8" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[3] = pRVar6;" (assignment_expression "puVar5[3] = pRVar6" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5 = puVar5 + 4;" (assignment_expression "puVar5 = puVar5 + 4" identifier = (binary_expression "puVar5 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "((sh_parser_state_t *)ppRVar3 != ps + 1)" ( (binary_expression "(sh_parser_state_t *)ppRVar3 != ps + 1" (cast_expression "(sh_parser_state_t *)ppRVar3" ( (type_descriptor "sh_parser_state_t *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (binary_expression "ps + 1" identifier + number_literal)) )) ;) }))) (expression_statement "puVar1 = PTR_data_start_00144568;" (assignment_expression "puVar1 = PTR_data_start_00144568" identifier = identifier) ;) (if_statement "if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {\n    (*(code *)PTR_free_001464fc)();\n  }" if (parenthesized_expression "(*(int *)(PTR_data_start_00144568 + 0x68e4) != 0)" ( (binary_expression "*(int *)(PTR_data_start_00144568 + 0x68e4) != 0" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x68e4)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x68e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x68e4)" ( (binary_expression "PTR_data_start_00144568 + 0x68e4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_free_001464fc)();\n  }" { (expression_statement "(*(code *)PTR_free_001464fc)();" (call_expression "(*(code *)PTR_free_001464fc)()" (parenthesized_expression "(*(code *)PTR_free_001464fc)" ( (pointer_expression "*(code *)PTR_free_001464fc" * (cast_expression "(code *)PTR_free_001464fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "iVar4 = ps->token_buffer_size;" (assignment_expression "iVar4 = ps->token_buffer_size" identifier = (field_expression "ps->token_buffer_size" identifier -> field_identifier)) ;) (expression_statement "*(char **)(puVar1 + 0x68e4) = ps->token;" (assignment_expression "*(char **)(puVar1 + 0x68e4) = ps->token" (pointer_expression "*(char **)(puVar1 + 0x68e4)" * (cast_expression "(char **)(puVar1 + 0x68e4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar1 + 0x68e4)" ( (binary_expression "puVar1 + 0x68e4" identifier + number_literal) )))) = (field_expression "ps->token" identifier -> field_identifier)) ;) (expression_statement "*(int *)(PTR_data_start_00144568 + 0x68e0) = iVar4;" (assignment_expression "*(int *)(PTR_data_start_00144568 + 0x68e0) = iVar4" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x68e0)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x68e0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x68e0)" ( (binary_expression "PTR_data_start_00144568 + 0x68e0" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void restore_parser_state(undefined4 *param_1)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  \n  if (param_1 == (undefined4 *)0x0) {\n    return;\n  }\n  puVar2 = (undefined4 *)param_1[1];\n  *(undefined4 *)PTR_parser_state_001448f8 = *param_1;\n  puVar1 = PTR_free_001464fc;\n  if (puVar2 != (undefined4 *)0x0) {\n    uVar7 = puVar2[1];\n    uVar6 = puVar2[2];\n    uVar5 = puVar2[3];\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;\n    *(undefined4 *)PTR_current_token_001448e8 = uVar5;\n    (*(code *)puVar1)(puVar2);\n  }\n  uVar5 = param_1[5];\n  uVar10 = param_1[6];\n  *(undefined4 *)(PTR_data_start_00144568 + 0x6b28) = param_1[4];\n  uVar9 = param_1[7];\n  uVar8 = param_1[8];\n  uVar7 = param_1[9];\n  *(undefined4 *)PTR_eof_encountered_001449a8 = uVar5;\n  uVar5 = param_1[10];\n  uVar6 = param_1[0xb];\n  *(undefined4 *)PTR_prompt_string_pointer_00144940 = uVar10;\n  *(undefined4 *)PTR_current_command_line_count_00144814 = uVar9;\n  *(undefined4 *)PTR_remember_on_history_00144668 = uVar8;\n  *(undefined4 *)PTR_history_expansion_inhibited_00144a68 = uVar7;\n  *(undefined4 *)PTR_last_command_exit_value_001445e0 = uVar5;\n  restore_pipestatus_array(uVar6);\n  uVar8 = param_1[0xd];\n  uVar7 = param_1[0xe];\n  uVar6 = param_1[0xf];\n  iVar3 = param_1[0x10];\n  uVar5 = param_1[0x11];\n  *(undefined4 *)PTR_last_shell_builtin_00144a80 = param_1[0xc];\n  *(undefined4 *)PTR_this_shell_builtin_00144a84 = uVar8;\n  *(undefined4 *)PTR_expand_aliases_0014459c = uVar7;\n  *(undefined4 *)PTR_echo_input_at_read_00144724 = uVar6;\n  *(int *)PTR_need_here_doc_00144810 = iVar3;\n  *(undefined4 *)PTR_here_doc_first_line_00144924 = uVar5;\n  if (iVar3 == 0) {\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }\n  else {\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }\n  puVar1 = PTR_data_start_00144568;\n  if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {\n    (*(code *)PTR_free_001464fc)();\n  }\n  uVar5 = param_1[3];\n  *(undefined4 *)(puVar1 + 0x68e4) = param_1[2];\n  *(undefined4 *)(PTR_data_start_00144568 + 0x68e0) = uVar5;\n  return;\n}\n\n" (function_definition "void restore_parser_state(undefined4 *param_1)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  \n  if (param_1 == (undefined4 *)0x0) {\n    return;\n  }\n  puVar2 = (undefined4 *)param_1[1];\n  *(undefined4 *)PTR_parser_state_001448f8 = *param_1;\n  puVar1 = PTR_free_001464fc;\n  if (puVar2 != (undefined4 *)0x0) {\n    uVar7 = puVar2[1];\n    uVar6 = puVar2[2];\n    uVar5 = puVar2[3];\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;\n    *(undefined4 *)PTR_current_token_001448e8 = uVar5;\n    (*(code *)puVar1)(puVar2);\n  }\n  uVar5 = param_1[5];\n  uVar10 = param_1[6];\n  *(undefined4 *)(PTR_data_start_00144568 + 0x6b28) = param_1[4];\n  uVar9 = param_1[7];\n  uVar8 = param_1[8];\n  uVar7 = param_1[9];\n  *(undefined4 *)PTR_eof_encountered_001449a8 = uVar5;\n  uVar5 = param_1[10];\n  uVar6 = param_1[0xb];\n  *(undefined4 *)PTR_prompt_string_pointer_00144940 = uVar10;\n  *(undefined4 *)PTR_current_command_line_count_00144814 = uVar9;\n  *(undefined4 *)PTR_remember_on_history_00144668 = uVar8;\n  *(undefined4 *)PTR_history_expansion_inhibited_00144a68 = uVar7;\n  *(undefined4 *)PTR_last_command_exit_value_001445e0 = uVar5;\n  restore_pipestatus_array(uVar6);\n  uVar8 = param_1[0xd];\n  uVar7 = param_1[0xe];\n  uVar6 = param_1[0xf];\n  iVar3 = param_1[0x10];\n  uVar5 = param_1[0x11];\n  *(undefined4 *)PTR_last_shell_builtin_00144a80 = param_1[0xc];\n  *(undefined4 *)PTR_this_shell_builtin_00144a84 = uVar8;\n  *(undefined4 *)PTR_expand_aliases_0014459c = uVar7;\n  *(undefined4 *)PTR_echo_input_at_read_00144724 = uVar6;\n  *(int *)PTR_need_here_doc_00144810 = iVar3;\n  *(undefined4 *)PTR_here_doc_first_line_00144924 = uVar5;\n  if (iVar3 == 0) {\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }\n  else {\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }\n  puVar1 = PTR_data_start_00144568;\n  if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {\n    (*(code *)PTR_free_001464fc)();\n  }\n  uVar5 = param_1[3];\n  *(undefined4 *)(puVar1 + 0x68e4) = param_1[2];\n  *(undefined4 *)(PTR_data_start_00144568 + 0x68e0) = uVar5;\n  return;\n}" primitive_type (function_declarator "restore_parser_state(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  \n  if (param_1 == (undefined4 *)0x0) {\n    return;\n  }\n  puVar2 = (undefined4 *)param_1[1];\n  *(undefined4 *)PTR_parser_state_001448f8 = *param_1;\n  puVar1 = PTR_free_001464fc;\n  if (puVar2 != (undefined4 *)0x0) {\n    uVar7 = puVar2[1];\n    uVar6 = puVar2[2];\n    uVar5 = puVar2[3];\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;\n    *(undefined4 *)PTR_current_token_001448e8 = uVar5;\n    (*(code *)puVar1)(puVar2);\n  }\n  uVar5 = param_1[5];\n  uVar10 = param_1[6];\n  *(undefined4 *)(PTR_data_start_00144568 + 0x6b28) = param_1[4];\n  uVar9 = param_1[7];\n  uVar8 = param_1[8];\n  uVar7 = param_1[9];\n  *(undefined4 *)PTR_eof_encountered_001449a8 = uVar5;\n  uVar5 = param_1[10];\n  uVar6 = param_1[0xb];\n  *(undefined4 *)PTR_prompt_string_pointer_00144940 = uVar10;\n  *(undefined4 *)PTR_current_command_line_count_00144814 = uVar9;\n  *(undefined4 *)PTR_remember_on_history_00144668 = uVar8;\n  *(undefined4 *)PTR_history_expansion_inhibited_00144a68 = uVar7;\n  *(undefined4 *)PTR_last_command_exit_value_001445e0 = uVar5;\n  restore_pipestatus_array(uVar6);\n  uVar8 = param_1[0xd];\n  uVar7 = param_1[0xe];\n  uVar6 = param_1[0xf];\n  iVar3 = param_1[0x10];\n  uVar5 = param_1[0x11];\n  *(undefined4 *)PTR_last_shell_builtin_00144a80 = param_1[0xc];\n  *(undefined4 *)PTR_this_shell_builtin_00144a84 = uVar8;\n  *(undefined4 *)PTR_expand_aliases_0014459c = uVar7;\n  *(undefined4 *)PTR_echo_input_at_read_00144724 = uVar6;\n  *(int *)PTR_need_here_doc_00144810 = iVar3;\n  *(undefined4 *)PTR_here_doc_first_line_00144924 = uVar5;\n  if (iVar3 == 0) {\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }\n  else {\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }\n  puVar1 = PTR_data_start_00144568;\n  if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {\n    (*(code *)PTR_free_001464fc)();\n  }\n  uVar5 = param_1[3];\n  *(undefined4 *)(puVar1 + 0x68e4) = param_1[2];\n  *(undefined4 *)(PTR_data_start_00144568 + 0x68e0) = uVar5;\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (if_statement "if (param_1 == (undefined4 *)0x0) {\n    return;\n  }" if (parenthesized_expression "(param_1 == (undefined4 *)0x0)" ( (binary_expression "param_1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar2 = (undefined4 *)param_1[1];" (assignment_expression "puVar2 = (undefined4 *)param_1[1]" identifier = (cast_expression "(undefined4 *)param_1[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[1]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)PTR_parser_state_001448f8 = *param_1;" (assignment_expression "*(undefined4 *)PTR_parser_state_001448f8 = *param_1" (pointer_expression "*(undefined4 *)PTR_parser_state_001448f8" * (cast_expression "(undefined4 *)PTR_parser_state_001448f8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "puVar1 = PTR_free_001464fc;" (assignment_expression "puVar1 = PTR_free_001464fc" identifier = identifier) ;) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n    uVar7 = puVar2[1];\n    uVar6 = puVar2[2];\n    uVar5 = puVar2[3];\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;\n    *(undefined4 *)PTR_current_token_001448e8 = uVar5;\n    (*(code *)puVar1)(puVar2);\n  }" if (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar7 = puVar2[1];\n    uVar6 = puVar2[2];\n    uVar5 = puVar2[3];\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;\n    *(undefined4 *)PTR_current_token_001448e8 = uVar5;\n    (*(code *)puVar1)(puVar2);\n  }" { (expression_statement "uVar7 = puVar2[1];" (assignment_expression "uVar7 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar2[2];" (assignment_expression "uVar6 = puVar2[2]" identifier = (subscript_expression "puVar2[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar2[3];" (assignment_expression "uVar5 = puVar2[3]" identifier = (subscript_expression "puVar2[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b14)" * (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b14)" ( (binary_expression "PTR_data_start_00144568 + 0x6b14" identifier + number_literal) )))) = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b10)" * (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b10)" ( (binary_expression "PTR_data_start_00144568 + 0x6b10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b0c)" * (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b0c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b0c)" ( (binary_expression "PTR_data_start_00144568 + 0x6b0c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)PTR_current_token_001448e8 = uVar5;" (assignment_expression "*(undefined4 *)PTR_current_token_001448e8 = uVar5" (pointer_expression "*(undefined4 *)PTR_current_token_001448e8" * (cast_expression "(undefined4 *)PTR_current_token_001448e8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "(*(code *)puVar1)(puVar2);" (call_expression "(*(code *)puVar1)(puVar2)" (parenthesized_expression "(*(code *)puVar1)" ( (pointer_expression "*(code *)puVar1" * (cast_expression "(code *)puVar1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar2)" ( identifier ))) ;) })) (expression_statement "uVar5 = param_1[5];" (assignment_expression "uVar5 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = param_1[6];" (assignment_expression "uVar10 = param_1[6]" identifier = (subscript_expression "param_1[6]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x6b28) = param_1[4];" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b28) = param_1[4]" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b28)" * (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b28)" ( (binary_expression "PTR_data_start_00144568 + 0x6b28" identifier + number_literal) )))) = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = param_1[7];" (assignment_expression "uVar9 = param_1[7]" identifier = (subscript_expression "param_1[7]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = param_1[8];" (assignment_expression "uVar8 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = param_1[9];" (assignment_expression "uVar7 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)PTR_eof_encountered_001449a8 = uVar5;" (assignment_expression "*(undefined4 *)PTR_eof_encountered_001449a8 = uVar5" (pointer_expression "*(undefined4 *)PTR_eof_encountered_001449a8" * (cast_expression "(undefined4 *)PTR_eof_encountered_001449a8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "uVar5 = param_1[10];" (assignment_expression "uVar5 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_1[0xb];" (assignment_expression "uVar6 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)PTR_prompt_string_pointer_00144940 = uVar10;" (assignment_expression "*(undefined4 *)PTR_prompt_string_pointer_00144940 = uVar10" (pointer_expression "*(undefined4 *)PTR_prompt_string_pointer_00144940" * (cast_expression "(undefined4 *)PTR_prompt_string_pointer_00144940" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_current_command_line_count_00144814 = uVar9;" (assignment_expression "*(undefined4 *)PTR_current_command_line_count_00144814 = uVar9" (pointer_expression "*(undefined4 *)PTR_current_command_line_count_00144814" * (cast_expression "(undefined4 *)PTR_current_command_line_count_00144814" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_remember_on_history_00144668 = uVar8;" (assignment_expression "*(undefined4 *)PTR_remember_on_history_00144668 = uVar8" (pointer_expression "*(undefined4 *)PTR_remember_on_history_00144668" * (cast_expression "(undefined4 *)PTR_remember_on_history_00144668" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_history_expansion_inhibited_00144a68 = uVar7;" (assignment_expression "*(undefined4 *)PTR_history_expansion_inhibited_00144a68 = uVar7" (pointer_expression "*(undefined4 *)PTR_history_expansion_inhibited_00144a68" * (cast_expression "(undefined4 *)PTR_history_expansion_inhibited_00144a68" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_last_command_exit_value_001445e0 = uVar5;" (assignment_expression "*(undefined4 *)PTR_last_command_exit_value_001445e0 = uVar5" (pointer_expression "*(undefined4 *)PTR_last_command_exit_value_001445e0" * (cast_expression "(undefined4 *)PTR_last_command_exit_value_001445e0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "restore_pipestatus_array(uVar6);" (call_expression "restore_pipestatus_array(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) (expression_statement "uVar8 = param_1[0xd];" (assignment_expression "uVar8 = param_1[0xd]" identifier = (subscript_expression "param_1[0xd]" identifier [ number_literal ])) ;) (expression_statement "uVar7 = param_1[0xe];" (assignment_expression "uVar7 = param_1[0xe]" identifier = (subscript_expression "param_1[0xe]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_1[0xf];" (assignment_expression "uVar6 = param_1[0xf]" identifier = (subscript_expression "param_1[0xf]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = param_1[0x10];" (assignment_expression "iVar3 = param_1[0x10]" identifier = (subscript_expression "param_1[0x10]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = param_1[0x11];" (assignment_expression "uVar5 = param_1[0x11]" identifier = (subscript_expression "param_1[0x11]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)PTR_last_shell_builtin_00144a80 = param_1[0xc];" (assignment_expression "*(undefined4 *)PTR_last_shell_builtin_00144a80 = param_1[0xc]" (pointer_expression "*(undefined4 *)PTR_last_shell_builtin_00144a80" * (cast_expression "(undefined4 *)PTR_last_shell_builtin_00144a80" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (subscript_expression "param_1[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)PTR_this_shell_builtin_00144a84 = uVar8;" (assignment_expression "*(undefined4 *)PTR_this_shell_builtin_00144a84 = uVar8" (pointer_expression "*(undefined4 *)PTR_this_shell_builtin_00144a84" * (cast_expression "(undefined4 *)PTR_this_shell_builtin_00144a84" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_expand_aliases_0014459c = uVar7;" (assignment_expression "*(undefined4 *)PTR_expand_aliases_0014459c = uVar7" (pointer_expression "*(undefined4 *)PTR_expand_aliases_0014459c" * (cast_expression "(undefined4 *)PTR_expand_aliases_0014459c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_echo_input_at_read_00144724 = uVar6;" (assignment_expression "*(undefined4 *)PTR_echo_input_at_read_00144724 = uVar6" (pointer_expression "*(undefined4 *)PTR_echo_input_at_read_00144724" * (cast_expression "(undefined4 *)PTR_echo_input_at_read_00144724" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(int *)PTR_need_here_doc_00144810 = iVar3;" (assignment_expression "*(int *)PTR_need_here_doc_00144810 = iVar3" (pointer_expression "*(int *)PTR_need_here_doc_00144810" * (cast_expression "(int *)PTR_need_here_doc_00144810" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "*(undefined4 *)PTR_here_doc_first_line_00144924 = uVar5;" (assignment_expression "*(undefined4 *)PTR_here_doc_first_line_00144924 = uVar5" (pointer_expression "*(undefined4 *)PTR_here_doc_first_line_00144924" * (cast_expression "(undefined4 *)PTR_here_doc_first_line_00144924" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (if_statement "if (iVar3 == 0) {\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }\n  else {\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }" { (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b3c)" * (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b3c)" ( (binary_expression "PTR_data_start_00144568 + 0x6b3c" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }" else (compound_statement "{\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }" { (expression_statement "puVar4 = param_1 + 0x12;" (assignment_expression "puVar4 = param_1 + 0x12" identifier = (binary_expression "param_1 + 0x12" identifier + number_literal)) ;) (expression_statement "puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);" (assignment_expression "puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c)" identifier = (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x6b3c)" ( (binary_expression "PTR_data_start_00144568 + 0x6b3c" identifier + number_literal) )))) ;) (do_statement "do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);" do (compound_statement "{\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    }" { (expression_statement "uVar8 = *puVar4;" (assignment_expression "uVar8 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) (expression_statement "uVar7 = puVar4[1];" (assignment_expression "uVar7 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar4[2];" (assignment_expression "uVar6 = puVar4[2]" identifier = (subscript_expression "puVar4[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = puVar4[3];" (assignment_expression "uVar5 = puVar4[3]" identifier = (subscript_expression "puVar4[3]" identifier [ number_literal ])) ;) (expression_statement "puVar4 = puVar4 + 4;" (assignment_expression "puVar4 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (expression_statement "*puVar2 = uVar8;" (assignment_expression "*puVar2 = uVar8" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "puVar2[1] = uVar7;" (assignment_expression "puVar2[1] = uVar7" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[2] = uVar6;" (assignment_expression "puVar2[2] = uVar6" (subscript_expression "puVar2[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2[3] = uVar5;" (assignment_expression "puVar2[3] = uVar5" (subscript_expression "puVar2[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar2 = puVar2 + 4;" (assignment_expression "puVar2 = puVar2 + 4" identifier = (binary_expression "puVar2 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar4 != param_1 + 0x22)" ( (binary_expression "puVar4 != param_1 + 0x22" identifier != (binary_expression "param_1 + 0x22" identifier + number_literal)) )) ;) }))) (expression_statement "puVar1 = PTR_data_start_00144568;" (assignment_expression "puVar1 = PTR_data_start_00144568" identifier = identifier) ;) (if_statement "if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {\n    (*(code *)PTR_free_001464fc)();\n  }" if (parenthesized_expression "(*(int *)(PTR_data_start_00144568 + 0x68e4) != 0)" ( (binary_expression "*(int *)(PTR_data_start_00144568 + 0x68e4) != 0" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x68e4)" * (cast_expression "(int *)(PTR_data_start_00144568 + 0x68e4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x68e4)" ( (binary_expression "PTR_data_start_00144568 + 0x68e4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    (*(code *)PTR_free_001464fc)();\n  }" { (expression_statement "(*(code *)PTR_free_001464fc)();" (call_expression "(*(code *)PTR_free_001464fc)()" (parenthesized_expression "(*(code *)PTR_free_001464fc)" ( (pointer_expression "*(code *)PTR_free_001464fc" * (cast_expression "(code *)PTR_free_001464fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) })) (expression_statement "uVar5 = param_1[3];" (assignment_expression "uVar5 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(puVar1 + 0x68e4) = param_1[2];" (assignment_expression "*(undefined4 *)(puVar1 + 0x68e4) = param_1[2]" (pointer_expression "*(undefined4 *)(puVar1 + 0x68e4)" * (cast_expression "(undefined4 *)(puVar1 + 0x68e4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x68e4)" ( (binary_expression "puVar1 + 0x68e4" identifier + number_literal) )))) = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x68e0) = uVar5;" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x68e0) = uVar5" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x68e0)" * (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x68e0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_data_start_00144568 + 0x68e0)" ( (binary_expression "PTR_data_start_00144568 + 0x68e0" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = 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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != 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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })))
(function_definition "void restore_parser_state(undefined4 *param_1)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  \n  if (param_1 == (undefined4 *)0x0) {\n    return;\n  }\n  puVar2 = (undefined4 *)param_1[1];\n  *(undefined4 *)PTR_parser_state_001448f8 = *param_1;\n  puVar1 = PTR_free_001464fc;\n  if (puVar2 != (undefined4 *)0x0) {\n    uVar7 = puVar2[1];\n    uVar6 = puVar2[2];\n    uVar5 = puVar2[3];\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;\n    *(undefined4 *)PTR_current_token_001448e8 = uVar5;\n    (*(code *)puVar1)(puVar2);\n  }\n  uVar5 = param_1[5];\n  uVar10 = param_1[6];\n  *(undefined4 *)(PTR_data_start_00144568 + 0x6b28) = param_1[4];\n  uVar9 = param_1[7];\n  uVar8 = param_1[8];\n  uVar7 = param_1[9];\n  *(undefined4 *)PTR_eof_encountered_001449a8 = uVar5;\n  uVar5 = param_1[10];\n  uVar6 = param_1[0xb];\n  *(undefined4 *)PTR_prompt_string_pointer_00144940 = uVar10;\n  *(undefined4 *)PTR_current_command_line_count_00144814 = uVar9;\n  *(undefined4 *)PTR_remember_on_history_00144668 = uVar8;\n  *(undefined4 *)PTR_history_expansion_inhibited_00144a68 = uVar7;\n  *(undefined4 *)PTR_last_command_exit_value_001445e0 = uVar5;\n  restore_pipestatus_array(uVar6);\n  uVar8 = param_1[0xd];\n  uVar7 = param_1[0xe];\n  uVar6 = param_1[0xf];\n  iVar3 = param_1[0x10];\n  uVar5 = param_1[0x11];\n  *(undefined4 *)PTR_last_shell_builtin_00144a80 = param_1[0xc];\n  *(undefined4 *)PTR_this_shell_builtin_00144a84 = uVar8;\n  *(undefined4 *)PTR_expand_aliases_0014459c = uVar7;\n  *(undefined4 *)PTR_echo_input_at_read_00144724 = uVar6;\n  *(int *)PTR_need_here_doc_00144810 = iVar3;\n  *(undefined4 *)PTR_here_doc_first_line_00144924 = uVar5;\n  if (iVar3 == 0) {\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }\n  else {\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }\n  puVar1 = PTR_data_start_00144568;\n  if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {\n    (*(code *)PTR_free_001464fc)();\n  }\n  uVar5 = param_1[3];\n  *(undefined4 *)(puVar1 + 0x68e4) = param_1[2];\n  *(undefined4 *)(PTR_data_start_00144568 + 0x68e0) = uVar5;\n  return;\n}" (primitive_type "void") (function_declarator "restore_parser_state(undefined4 *param_1)" (identifier "restore_parser_state") (parameter_list "(undefined4 *param_1)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  \n  if (param_1 == (undefined4 *)0x0) {\n    return;\n  }\n  puVar2 = (undefined4 *)param_1[1];\n  *(undefined4 *)PTR_parser_state_001448f8 = *param_1;\n  puVar1 = PTR_free_001464fc;\n  if (puVar2 != (undefined4 *)0x0) {\n    uVar7 = puVar2[1];\n    uVar6 = puVar2[2];\n    uVar5 = puVar2[3];\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;\n    *(undefined4 *)PTR_current_token_001448e8 = uVar5;\n    (*(code *)puVar1)(puVar2);\n  }\n  uVar5 = param_1[5];\n  uVar10 = param_1[6];\n  *(undefined4 *)(PTR_data_start_00144568 + 0x6b28) = param_1[4];\n  uVar9 = param_1[7];\n  uVar8 = param_1[8];\n  uVar7 = param_1[9];\n  *(undefined4 *)PTR_eof_encountered_001449a8 = uVar5;\n  uVar5 = param_1[10];\n  uVar6 = param_1[0xb];\n  *(undefined4 *)PTR_prompt_string_pointer_00144940 = uVar10;\n  *(undefined4 *)PTR_current_command_line_count_00144814 = uVar9;\n  *(undefined4 *)PTR_remember_on_history_00144668 = uVar8;\n  *(undefined4 *)PTR_history_expansion_inhibited_00144a68 = uVar7;\n  *(undefined4 *)PTR_last_command_exit_value_001445e0 = uVar5;\n  restore_pipestatus_array(uVar6);\n  uVar8 = param_1[0xd];\n  uVar7 = param_1[0xe];\n  uVar6 = param_1[0xf];\n  iVar3 = param_1[0x10];\n  uVar5 = param_1[0x11];\n  *(undefined4 *)PTR_last_shell_builtin_00144a80 = param_1[0xc];\n  *(undefined4 *)PTR_this_shell_builtin_00144a84 = uVar8;\n  *(undefined4 *)PTR_expand_aliases_0014459c = uVar7;\n  *(undefined4 *)PTR_echo_input_at_read_00144724 = uVar6;\n  *(int *)PTR_need_here_doc_00144810 = iVar3;\n  *(undefined4 *)PTR_here_doc_first_line_00144924 = uVar5;\n  if (iVar3 == 0) {\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }\n  else {\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }\n  puVar1 = PTR_data_start_00144568;\n  if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {\n    (*(code *)PTR_free_001464fc)();\n  }\n  uVar5 = param_1[3];\n  *(undefined4 *)(puVar1 + 0x68e4) = param_1[2];\n  *(undefined4 *)(PTR_data_start_00144568 + 0x68e0) = uVar5;\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (if_statement "if (param_1 == (undefined4 *)0x0) {\n    return;\n  }" (if "if") (parenthesized_expression "(param_1 == (undefined4 *)0x0)" (( "(") (binary_expression "param_1 == (undefined4 *)0x0" (identifier "param_1") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar2 = (undefined4 *)param_1[1];" (assignment_expression "puVar2 = (undefined4 *)param_1[1]" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)param_1[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "*(undefined4 *)PTR_parser_state_001448f8 = *param_1;" (assignment_expression "*(undefined4 *)PTR_parser_state_001448f8 = *param_1" (pointer_expression "*(undefined4 *)PTR_parser_state_001448f8" (* "*") (cast_expression "(undefined4 *)PTR_parser_state_001448f8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_parser_state_001448f8"))) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "puVar1 = PTR_free_001464fc;" (assignment_expression "puVar1 = PTR_free_001464fc" (identifier "puVar1") (= "=") (identifier "PTR_free_001464fc")) (; ";")) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n    uVar7 = puVar2[1];\n    uVar6 = puVar2[2];\n    uVar5 = puVar2[3];\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;\n    *(undefined4 *)PTR_current_token_001448e8 = uVar5;\n    (*(code *)puVar1)(puVar2);\n  }" (if "if") (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar2 != (undefined4 *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar7 = puVar2[1];\n    uVar6 = puVar2[2];\n    uVar5 = puVar2[3];\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;\n    *(undefined4 *)PTR_current_token_001448e8 = uVar5;\n    (*(code *)puVar1)(puVar2);\n  }" ({ "{") (expression_statement "uVar7 = puVar2[1];" (assignment_expression "uVar7 = puVar2[1]" (identifier "uVar7") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar6 = puVar2[2];" (assignment_expression "uVar6 = puVar2[2]" (identifier "uVar6") (= "=") (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar5 = puVar2[3];" (assignment_expression "uVar5 = puVar2[3]" (identifier "uVar5") (= "=") (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b14)" (* "*") (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_data_start_00144568 + 0x6b14)" (( "(") (binary_expression "PTR_data_start_00144568 + 0x6b14" (identifier "PTR_data_start_00144568") (+ "+") (number_literal "0x6b14")) () ")")))) (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b10)" (* "*") (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_data_start_00144568 + 0x6b10)" (( "(") (binary_expression "PTR_data_start_00144568 + 0x6b10" (identifier "PTR_data_start_00144568") (+ "+") (number_literal "0x6b10")) () ")")))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b0c)" (* "*") (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b0c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_data_start_00144568 + 0x6b0c)" (( "(") (binary_expression "PTR_data_start_00144568 + 0x6b0c" (identifier "PTR_data_start_00144568") (+ "+") (number_literal "0x6b0c")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(undefined4 *)PTR_current_token_001448e8 = uVar5;" (assignment_expression "*(undefined4 *)PTR_current_token_001448e8 = uVar5" (pointer_expression "*(undefined4 *)PTR_current_token_001448e8" (* "*") (cast_expression "(undefined4 *)PTR_current_token_001448e8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_current_token_001448e8"))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "(*(code *)puVar1)(puVar2);" (call_expression "(*(code *)puVar1)(puVar2)" (parenthesized_expression "(*(code *)puVar1)" (( "(") (pointer_expression "*(code *)puVar1" (* "*") (cast_expression "(code *)puVar1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1"))) () ")")) (argument_list "(puVar2)" (( "(") (identifier "puVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar5 = param_1[5];" (assignment_expression "uVar5 = param_1[5]" (identifier "uVar5") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar10 = param_1[6];" (assignment_expression "uVar10 = param_1[6]" (identifier "uVar10") (= "=") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x6b28) = param_1[4];" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b28) = param_1[4]" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b28)" (* "*") (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b28)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_data_start_00144568 + 0x6b28)" (( "(") (binary_expression "PTR_data_start_00144568 + 0x6b28" (identifier "PTR_data_start_00144568") (+ "+") (number_literal "0x6b28")) () ")")))) (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "uVar9 = param_1[7];" (assignment_expression "uVar9 = param_1[7]" (identifier "uVar9") (= "=") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "uVar8 = param_1[8];" (assignment_expression "uVar8 = param_1[8]" (identifier "uVar8") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "uVar7 = param_1[9];" (assignment_expression "uVar7 = param_1[9]" (identifier "uVar7") (= "=") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)PTR_eof_encountered_001449a8 = uVar5;" (assignment_expression "*(undefined4 *)PTR_eof_encountered_001449a8 = uVar5" (pointer_expression "*(undefined4 *)PTR_eof_encountered_001449a8" (* "*") (cast_expression "(undefined4 *)PTR_eof_encountered_001449a8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_eof_encountered_001449a8"))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar5 = param_1[10];" (assignment_expression "uVar5 = param_1[10]" (identifier "uVar5") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "uVar6 = param_1[0xb];" (assignment_expression "uVar6 = param_1[0xb]" (identifier "uVar6") (= "=") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)PTR_prompt_string_pointer_00144940 = uVar10;" (assignment_expression "*(undefined4 *)PTR_prompt_string_pointer_00144940 = uVar10" (pointer_expression "*(undefined4 *)PTR_prompt_string_pointer_00144940" (* "*") (cast_expression "(undefined4 *)PTR_prompt_string_pointer_00144940" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_prompt_string_pointer_00144940"))) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "*(undefined4 *)PTR_current_command_line_count_00144814 = uVar9;" (assignment_expression "*(undefined4 *)PTR_current_command_line_count_00144814 = uVar9" (pointer_expression "*(undefined4 *)PTR_current_command_line_count_00144814" (* "*") (cast_expression "(undefined4 *)PTR_current_command_line_count_00144814" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_current_command_line_count_00144814"))) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "*(undefined4 *)PTR_remember_on_history_00144668 = uVar8;" (assignment_expression "*(undefined4 *)PTR_remember_on_history_00144668 = uVar8" (pointer_expression "*(undefined4 *)PTR_remember_on_history_00144668" (* "*") (cast_expression "(undefined4 *)PTR_remember_on_history_00144668" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_remember_on_history_00144668"))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(undefined4 *)PTR_history_expansion_inhibited_00144a68 = uVar7;" (assignment_expression "*(undefined4 *)PTR_history_expansion_inhibited_00144a68 = uVar7" (pointer_expression "*(undefined4 *)PTR_history_expansion_inhibited_00144a68" (* "*") (cast_expression "(undefined4 *)PTR_history_expansion_inhibited_00144a68" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_history_expansion_inhibited_00144a68"))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)PTR_last_command_exit_value_001445e0 = uVar5;" (assignment_expression "*(undefined4 *)PTR_last_command_exit_value_001445e0 = uVar5" (pointer_expression "*(undefined4 *)PTR_last_command_exit_value_001445e0" (* "*") (cast_expression "(undefined4 *)PTR_last_command_exit_value_001445e0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_last_command_exit_value_001445e0"))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "restore_pipestatus_array(uVar6);" (call_expression "restore_pipestatus_array(uVar6)" (identifier "restore_pipestatus_array") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "uVar8 = param_1[0xd];" (assignment_expression "uVar8 = param_1[0xd]" (identifier "uVar8") (= "=") (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "uVar7 = param_1[0xe];" (assignment_expression "uVar7 = param_1[0xe]" (identifier "uVar7") (= "=") (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "uVar6 = param_1[0xf];" (assignment_expression "uVar6 = param_1[0xf]" (identifier "uVar6") (= "=") (subscript_expression "param_1[0xf]" (identifier "param_1") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "iVar3 = param_1[0x10];" (assignment_expression "iVar3 = param_1[0x10]" (identifier "iVar3") (= "=") (subscript_expression "param_1[0x10]" (identifier "param_1") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "uVar5 = param_1[0x11];" (assignment_expression "uVar5 = param_1[0x11]" (identifier "uVar5") (= "=") (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)PTR_last_shell_builtin_00144a80 = param_1[0xc];" (assignment_expression "*(undefined4 *)PTR_last_shell_builtin_00144a80 = param_1[0xc]" (pointer_expression "*(undefined4 *)PTR_last_shell_builtin_00144a80" (* "*") (cast_expression "(undefined4 *)PTR_last_shell_builtin_00144a80" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_last_shell_builtin_00144a80"))) (= "=") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)PTR_this_shell_builtin_00144a84 = uVar8;" (assignment_expression "*(undefined4 *)PTR_this_shell_builtin_00144a84 = uVar8" (pointer_expression "*(undefined4 *)PTR_this_shell_builtin_00144a84" (* "*") (cast_expression "(undefined4 *)PTR_this_shell_builtin_00144a84" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_this_shell_builtin_00144a84"))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(undefined4 *)PTR_expand_aliases_0014459c = uVar7;" (assignment_expression "*(undefined4 *)PTR_expand_aliases_0014459c = uVar7" (pointer_expression "*(undefined4 *)PTR_expand_aliases_0014459c" (* "*") (cast_expression "(undefined4 *)PTR_expand_aliases_0014459c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_expand_aliases_0014459c"))) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "*(undefined4 *)PTR_echo_input_at_read_00144724 = uVar6;" (assignment_expression "*(undefined4 *)PTR_echo_input_at_read_00144724 = uVar6" (pointer_expression "*(undefined4 *)PTR_echo_input_at_read_00144724" (* "*") (cast_expression "(undefined4 *)PTR_echo_input_at_read_00144724" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_echo_input_at_read_00144724"))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(int *)PTR_need_here_doc_00144810 = iVar3;" (assignment_expression "*(int *)PTR_need_here_doc_00144810 = iVar3" (pointer_expression "*(int *)PTR_need_here_doc_00144810" (* "*") (cast_expression "(int *)PTR_need_here_doc_00144810" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_need_here_doc_00144810"))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "*(undefined4 *)PTR_here_doc_first_line_00144924 = uVar5;" (assignment_expression "*(undefined4 *)PTR_here_doc_first_line_00144924 = uVar5" (pointer_expression "*(undefined4 *)PTR_here_doc_first_line_00144924" (* "*") (cast_expression "(undefined4 *)PTR_here_doc_first_line_00144924" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_here_doc_first_line_00144924"))) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (iVar3 == 0) {\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }\n  else {\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;\n  }" ({ "{") (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x6b3c)" (* "*") (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_data_start_00144568 + 0x6b3c)" (( "(") (binary_expression "PTR_data_start_00144568 + 0x6b3c" (identifier "PTR_data_start_00144568") (+ "+") (number_literal "0x6b3c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }" (else "else") (compound_statement "{\n    puVar4 = param_1 + 0x12;\n    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);\n    do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);\n  }" ({ "{") (expression_statement "puVar4 = param_1 + 0x12;" (assignment_expression "puVar4 = param_1 + 0x12" (identifier "puVar4") (= "=") (binary_expression "param_1 + 0x12" (identifier "param_1") (+ "+") (number_literal "0x12"))) (; ";")) (expression_statement "puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);" (assignment_expression "puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x6b3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_data_start_00144568 + 0x6b3c)" (( "(") (binary_expression "PTR_data_start_00144568 + 0x6b3c" (identifier "PTR_data_start_00144568") (+ "+") (number_literal "0x6b3c")) () ")")))) (; ";")) (do_statement "do {\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    } while (puVar4 != param_1 + 0x22);" (do "do") (compound_statement "{\n      uVar8 = *puVar4;\n      uVar7 = puVar4[1];\n      uVar6 = puVar4[2];\n      uVar5 = puVar4[3];\n      puVar4 = puVar4 + 4;\n      *puVar2 = uVar8;\n      puVar2[1] = uVar7;\n      puVar2[2] = uVar6;\n      puVar2[3] = uVar5;\n      puVar2 = puVar2 + 4;\n    }" ({ "{") (expression_statement "uVar8 = *puVar4;" (assignment_expression "uVar8 = *puVar4" (identifier "uVar8") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (expression_statement "uVar7 = puVar4[1];" (assignment_expression "uVar7 = puVar4[1]" (identifier "uVar7") (= "=") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar6 = puVar4[2];" (assignment_expression "uVar6 = puVar4[2]" (identifier "uVar6") (= "=") (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar5 = puVar4[3];" (assignment_expression "uVar5 = puVar4[3]" (identifier "uVar5") (= "=") (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar4 = puVar4 + 4;" (assignment_expression "puVar4 = puVar4 + 4" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*puVar2 = uVar8;" (assignment_expression "*puVar2 = uVar8" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar2[1] = uVar7;" (assignment_expression "puVar2[1] = uVar7" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "puVar2[2] = uVar6;" (assignment_expression "puVar2[2] = uVar6" (subscript_expression "puVar2[2]" (identifier "puVar2") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar2[3] = uVar5;" (assignment_expression "puVar2[3] = uVar5" (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "puVar2 = puVar2 + 4;" (assignment_expression "puVar2 = puVar2 + 4" (identifier "puVar2") (= "=") (binary_expression "puVar2 + 4" (identifier "puVar2") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar4 != param_1 + 0x22)" (( "(") (binary_expression "puVar4 != param_1 + 0x22" (identifier "puVar4") (!= "!=") (binary_expression "param_1 + 0x22" (identifier "param_1") (+ "+") (number_literal "0x22"))) () ")")) (; ";")) (} "}")))) (expression_statement "puVar1 = PTR_data_start_00144568;" (assignment_expression "puVar1 = PTR_data_start_00144568" (identifier "puVar1") (= "=") (identifier "PTR_data_start_00144568")) (; ";")) (if_statement "if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {\n    (*(code *)PTR_free_001464fc)();\n  }" (if "if") (parenthesized_expression "(*(int *)(PTR_data_start_00144568 + 0x68e4) != 0)" (( "(") (binary_expression "*(int *)(PTR_data_start_00144568 + 0x68e4) != 0" (pointer_expression "*(int *)(PTR_data_start_00144568 + 0x68e4)" (* "*") (cast_expression "(int *)(PTR_data_start_00144568 + 0x68e4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_data_start_00144568 + 0x68e4)" (( "(") (binary_expression "PTR_data_start_00144568 + 0x68e4" (identifier "PTR_data_start_00144568") (+ "+") (number_literal "0x68e4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR_free_001464fc)();\n  }" ({ "{") (expression_statement "(*(code *)PTR_free_001464fc)();" (call_expression "(*(code *)PTR_free_001464fc)()" (parenthesized_expression "(*(code *)PTR_free_001464fc)" (( "(") (pointer_expression "*(code *)PTR_free_001464fc" (* "*") (cast_expression "(code *)PTR_free_001464fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_001464fc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar5 = param_1[3];" (assignment_expression "uVar5 = param_1[3]" (identifier "uVar5") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(puVar1 + 0x68e4) = param_1[2];" (assignment_expression "*(undefined4 *)(puVar1 + 0x68e4) = param_1[2]" (pointer_expression "*(undefined4 *)(puVar1 + 0x68e4)" (* "*") (cast_expression "(undefined4 *)(puVar1 + 0x68e4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 0x68e4)" (( "(") (binary_expression "puVar1 + 0x68e4" (identifier "puVar1") (+ "+") (number_literal "0x68e4")) () ")")))) (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(PTR_data_start_00144568 + 0x68e0) = uVar5;" (assignment_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x68e0) = uVar5" (pointer_expression "*(undefined4 *)(PTR_data_start_00144568 + 0x68e0)" (* "*") (cast_expression "(undefined4 *)(PTR_data_start_00144568 + 0x68e0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_data_start_00144568 + 0x68e0)" (( "(") (binary_expression "PTR_data_start_00144568 + 0x68e0" (identifier "PTR_data_start_00144568") (+ "+") (number_literal "0x68e0")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *var_1)

{
  type_2 *var_8;
  int *var_2;
  type_3 **var_6;
  int var_5;
  type_4 *var_7;
  type_5 *a;
  type_3 *pRVar6;
  int iVar7;
  type_3 *pRVar8;
  int iVar9;
  type_3 *pRVar10;
  int iVar11;
  type_6 *psVar12;
  type_3 *pRVar13;
  char **ppcVar14;
  
  if (var_1 == (type_1 *)0x0) {
    return;
  }
  var_2 = var_1->token_state;
  *(int *)PTR_parser_state_001448f8 = var_1->parser_state;
  var_8 = PTR_free_001464fc;
  if (var_2 != (int *)0x0) {
    iVar9 = var_2[1];
    iVar7 = var_2[2];
    var_5 = var_2[3];
    *(int *)(var_3 + 0x6b14) = *var_2;
    *(int *)(var_3 + 0x6b10) = iVar9;
    *(int *)(var_3 + 0x6b0c) = iVar7;
    *(int *)PTR_current_token_001448e8 = var_5;
    (*(type_7 *)var_8)(var_2);
  }
  var_5 = var_1->eof_encountered;
  ppcVar14 = var_1->prompt_string_pointer;
  *(int *)(var_3 + 0x6b28) = var_1->input_line_terminator;
  iVar11 = var_1->current_command_line_count;
  iVar9 = var_1->remember_on_history;
  iVar7 = var_1->history_expansion_inhibited;
  *(int *)PTR_eof_encountered_001449a8 = var_5;
  var_5 = var_1->last_command_exit_value;
  a = var_1->pipestatus;
  *(char ***)PTR_prompt_string_pointer_00144940 = ppcVar14;
  *(int *)PTR_current_command_line_count_00144814 = iVar11;
  *(int *)PTR_remember_on_history_00144668 = iVar9;
  *(int *)PTR_history_expansion_inhibited_00144a68 = iVar7;
  *(int *)PTR_last_command_exit_value_001445e0 = var_5;
  var_4(a);
  psVar12 = var_1->this_shell_builtin;
  iVar11 = var_1->expand_aliases;
  iVar9 = var_1->echo_input_at_read;
  var_5 = var_1->need_here_doc;
  iVar7 = var_1->here_doc_first_line;
  *(type_6 **)PTR_last_shell_builtin_00144a80 = var_1->last_shell_builtin;
  *(type_6 **)PTR_this_shell_builtin_00144a84 = psVar12;
  *(int *)PTR_expand_aliases_0014459c = iVar11;
  *(int *)PTR_echo_input_at_read_00144724 = iVar9;
  *(int *)PTR_need_here_doc_00144810 = var_5;
  *(int *)PTR_here_doc_first_line_00144924 = iVar7;
  if (var_5 == 0) {
    *(type_4 *)(var_3 + 0x6b3c) = 0;
  }
  else {
    var_6 = var_1->redir_stack;
    var_7 = (type_4 *)(var_3 + 0x6b3c);
    do {
      pRVar13 = *var_6;
      pRVar10 = var_6[1];
      pRVar8 = var_6[2];
      pRVar6 = var_6[3];
      var_6 = var_6 + 4;
      *var_7 = pRVar13;
      var_7[1] = pRVar10;
      var_7[2] = pRVar8;
      var_7[3] = pRVar6;
      var_7 = var_7 + 4;
    } while ((type_1 *)var_6 != var_1 + 1);
  }
  var_8 = var_3;
  if (*(int *)(var_3 + 0x68e4) != 0) {
    (*(type_7 *)PTR_free_001464fc)();
  }
  var_5 = var_1->token_buffer_size;
  *(char **)(var_8 + 0x68e4) = var_1->token;
  *(int *)(var_3 + 0x68e0) = var_5;
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (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 (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) 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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (return_statement))))

void MASKED(undefined4 *param_1)

{
  undefined *puVar1;
  undefined4 *puVar2;
  int iVar3;
  undefined4 *puVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  
  if (param_1 == (undefined4 *)0x0) {
    return;
  }
  puVar2 = (undefined4 *)param_1[1];
  *(undefined4 *)PTR_parser_state_001448f8 = *param_1;
  puVar1 = PTR_free_001464fc;
  if (puVar2 != (undefined4 *)0x0) {
    uVar7 = puVar2[1];
    uVar6 = puVar2[2];
    uVar5 = puVar2[3];
    *(undefined4 *)(PTR_data_start_00144568 + 0x6b14) = *puVar2;
    *(undefined4 *)(PTR_data_start_00144568 + 0x6b10) = uVar7;
    *(undefined4 *)(PTR_data_start_00144568 + 0x6b0c) = uVar6;
    *(undefined4 *)PTR_current_token_001448e8 = uVar5;
    (*(code *)puVar1)(puVar2);
  }
  uVar5 = param_1[5];
  uVar10 = param_1[6];
  *(undefined4 *)(PTR_data_start_00144568 + 0x6b28) = param_1[4];
  uVar9 = param_1[7];
  uVar8 = param_1[8];
  uVar7 = param_1[9];
  *(undefined4 *)PTR_eof_encountered_001449a8 = uVar5;
  uVar5 = param_1[10];
  uVar6 = param_1[0xb];
  *(undefined4 *)PTR_prompt_string_pointer_00144940 = uVar10;
  *(undefined4 *)PTR_current_command_line_count_00144814 = uVar9;
  *(undefined4 *)PTR_remember_on_history_00144668 = uVar8;
  *(undefined4 *)PTR_history_expansion_inhibited_00144a68 = uVar7;
  *(undefined4 *)PTR_last_command_exit_value_001445e0 = uVar5;
  restore_pipestatus_array(uVar6);
  uVar8 = param_1[0xd];
  uVar7 = param_1[0xe];
  uVar6 = param_1[0xf];
  iVar3 = param_1[0x10];
  uVar5 = param_1[0x11];
  *(undefined4 *)PTR_last_shell_builtin_00144a80 = param_1[0xc];
  *(undefined4 *)PTR_this_shell_builtin_00144a84 = uVar8;
  *(undefined4 *)PTR_expand_aliases_0014459c = uVar7;
  *(undefined4 *)PTR_echo_input_at_read_00144724 = uVar6;
  *(int *)PTR_need_here_doc_00144810 = iVar3;
  *(undefined4 *)PTR_here_doc_first_line_00144924 = uVar5;
  if (iVar3 == 0) {
    *(undefined4 *)(PTR_data_start_00144568 + 0x6b3c) = 0;
  }
  else {
    puVar4 = param_1 + 0x12;
    puVar2 = (undefined4 *)(PTR_data_start_00144568 + 0x6b3c);
    do {
      uVar8 = *puVar4;
      uVar7 = puVar4[1];
      uVar6 = puVar4[2];
      uVar5 = puVar4[3];
      puVar4 = puVar4 + 4;
      *puVar2 = uVar8;
      puVar2[1] = uVar7;
      puVar2[2] = uVar6;
      puVar2[3] = uVar5;
      puVar2 = puVar2 + 4;
    } while (puVar4 != param_1 + 0x22);
  }
  puVar1 = PTR_data_start_00144568;
  if (*(int *)(PTR_data_start_00144568 + 0x68e4) != 0) {
    (*(code *)PTR_free_001464fc)();
  }
  uVar5 = param_1[3];
  *(undefined4 *)(puVar1 + 0x68e4) = param_1[2];
  *(undefined4 *)(PTR_data_start_00144568 + 0x68e0) = uVar5;
  return;
}

