
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void run_sigchld_trap(int nchild)

{
  size_t sVar1;
  char *pcVar2;
  char *pcVar3;
  int iVar4;
  
  pcVar3 = DAT_00157164;
  sVar1 = strlen(DAT_00157164);
  pcVar2 = (char *)xmalloc(sVar1 + 1);
  pcVar3 = strcpy(pcVar2,pcVar3);
  begin_unwind_frame("SIGCHLD trap");
  unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);
  unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);
  unwind_protect_mem((char *)&last_made_pid,4);
  unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);
  unwind_protect_mem((char *)&jobs_list_frozen,4);
  unwind_protect_mem((char *)&the_pipeline,4);
  unwind_protect_mem((char *)&subst_assign_varlist,4);
  unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);
  unwind_protect_mem((char *)&temporary_env,4);
  add_unwind_protect((Function *)PTR_xfree_00149e98,pcVar3);
  add_unwind_protect((Function *)PTR_maybe_set_sigchld_trap_00149e78,pcVar3);
  subst_assign_varlist = (WORD_LIST *)0x0;
  the_pipeline = (PROCESS *)0x0;
  temporary_env = (HASH_TABLE *)0x0;
  running_trap = 0x12;
  set_impossible_sigchld_trap();
  jobs_list_frozen = 1;
  if (0 < nchild) {
    iVar4 = 0;
    do {
      iVar4 = iVar4 + 1;
      sVar1 = strlen(pcVar3);
      pcVar2 = (char *)xmalloc(sVar1 + 1);
      pcVar2 = strcpy(pcVar2,pcVar3);
      parse_and_execute(pcVar2,"trap",0x14);
    } while (nchild != iVar4);
  }
  run_unwind_frame("SIGCHLD trap");
  running_trap = 0;
  return;
}



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

void run_sigchld_trap(int param_1)

{
  size_t sVar1;
  char *pcVar2;
  char *pcVar3;
  int iVar4;
  
  pcVar3 = DAT_00157164;
  sVar1 = strlen(DAT_00157164);
  pcVar2 = (char *)xmalloc(sVar1 + 1);
  pcVar3 = strcpy(pcVar2,pcVar3);
  begin_unwind_frame("SIGCHLD trap");
  unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);
  unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);
  unwind_protect_mem(&last_made_pid,4);
  unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);
  unwind_protect_mem(&DAT_00151020,4);
  unwind_protect_mem(&the_pipeline,4);
  unwind_protect_mem(&subst_assign_varlist,4);
  unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);
  unwind_protect_mem(&temporary_env,4);
  add_unwind_protect(PTR_xfree_00149e98,pcVar3);
  add_unwind_protect(PTR_maybe_set_sigchld_trap_00149e78,pcVar3);
  subst_assign_varlist = 0;
  the_pipeline = 0;
  temporary_env = 0;
  running_trap = 0x12;
  set_impossible_sigchld_trap();
  DAT_00151020 = 1;
  if (0 < param_1) {
    iVar4 = 0;
    do {
      iVar4 = iVar4 + 1;
      sVar1 = strlen(pcVar3);
      pcVar2 = (char *)xmalloc(sVar1 + 1);
      pcVar2 = strcpy(pcVar2,pcVar3);
      parse_and_execute(pcVar2,"trap",0x14);
    } while (param_1 != iVar4);
  }
  run_unwind_frame("SIGCHLD trap");
  running_trap = 0;
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00031ed0
ADD EBX,0xea557
SUB ESP,0x28
LEA EAX,[EBX + 0xd120]
MOV ESI,dword ptr [EAX + 0x44]
PUSH ESI
CALL 0x0002f760
ADD EAX,0x1
MOV dword ptr [ESP],EAX
CALL 0x00099200
POP EDI
POP EBP
PUSH ESI
PUSH EAX
CALL 0x0002f580
MOV ESI,EAX
LEA EAX,[EBX + 0xfffa69ab]
MOV dword ptr [ESP + 0x1c],EAX
MOV dword ptr [ESP],EAX
CALL 0x0007d8b0
POP EAX
POP EDX
PUSH 0x4
PUSH dword ptr [EBX + 0xffffffd4]
CALL 0x0007dc30
POP ECX
POP EDI
PUSH 0x4
PUSH dword ptr [EBX + 0xfffffe70]
CALL 0x0007dc30
POP EBP
POP EAX
LEA EAX,[EBX + 0x794]
PUSH 0x4
PUSH EAX
CALL 0x0007dc30
POP EAX
POP EDX
PUSH 0x4
PUSH dword ptr [EBX + 0xfffffec0]
CALL 0x0007dc30
LEA EAX,[EBX + 0x7020]
POP ECX
POP EDI
PUSH 0x4
PUSH EAX
CALL 0x0007dc30
POP EBP
POP EAX
LEA EAX,[EBX + 0x5eec]
PUSH 0x4
PUSH EAX
CALL 0x0007dc30
LEA EDI,[EBX + 0x7050]
POP EAX
POP EDX
PUSH 0x4
PUSH EDI
CALL 0x0007dc30
POP ECX
POP EBP
PUSH 0x4
PUSH dword ptr [EBX + 0xffffff94]
CALL 0x0007dc30
LEA EBP,[EBX + 0x5cf4]
POP EAX
POP EDX
PUSH 0x4
PUSH EBP
CALL 0x0007dc30
POP ECX
POP EAX
PUSH ESI
PUSH dword ptr [EBX + 0xfffffe98]
CALL 0x0007da90
POP EAX
POP EDX
PUSH ESI
PUSH dword ptr [EBX + 0xfffffe78]
CALL 0x0007da90
LEA EAX,[EBX + 0xcfe0]
MOV dword ptr [EDI],0x0
MOV dword ptr [EBX + 0x5eec],0x0
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [EBP],0x0
MOV dword ptr [EAX],0x12
CALL 0x0007c290
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x30]
MOV dword ptr [EBX + 0x7020],0x1
TEST ECX,ECX
JLE 0x0005fc15
XOR EDI,EDI
LEA EBP,[EBX + 0xfffa69b3]
LEA ESI,[ESI]
SUB ESP,0xc
ADD EDI,0x1
PUSH ESI
CALL 0x0002f760
ADD EAX,0x1
MOV dword ptr [ESP],EAX
CALL 0x00099200
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x0002f580
ADD ESP,0xc
PUSH 0x14
PUSH EBP
PUSH EAX
CALL 0x000a0540
ADD ESP,0x10
CMP dword ptr [ESP + 0x30],EDI
JNZ 0x0005fbe0
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
CALL 0x0007da40
MOV EAX,dword ptr [ESP + 0x18]
MOV dword ptr [EAX],0x0
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid run_sigchld_trap(int param_1)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  \n  pcVar3 = DAT_00157164;\n  sVar1 = strlen(DAT_00157164);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar3 = strcpy(pcVar2,pcVar3);\n  begin_unwind_frame("SIGCHLD trap");\n  unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);\n  unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);\n  unwind_protect_mem(&last_made_pid,4);\n  unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);\n  unwind_protect_mem(&DAT_00151020,4);\n  unwind_protect_mem(&the_pipeline,4);\n  unwind_protect_mem(&subst_assign_varlist,4);\n  unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);\n  unwind_protect_mem(&temporary_env,4);\n  add_unwind_protect(PTR_xfree_00149e98,pcVar3);\n  add_unwind_protect(PTR_maybe_set_sigchld_trap_00149e78,pcVar3);\n  subst_assign_varlist = 0;\n  the_pipeline = 0;\n  temporary_env = 0;\n  running_trap = 0x12;\n  set_impossible_sigchld_trap();\n  DAT_00151020 = 1;\n  if (0 < param_1) {\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);\n  }\n  run_unwind_frame("SIGCHLD trap");\n  running_trap = 0;\n  return;\n}\n\n" comment (function_definition "void run_sigchld_trap(int param_1)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  \n  pcVar3 = DAT_00157164;\n  sVar1 = strlen(DAT_00157164);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar3 = strcpy(pcVar2,pcVar3);\n  begin_unwind_frame("SIGCHLD trap");\n  unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);\n  unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);\n  unwind_protect_mem(&last_made_pid,4);\n  unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);\n  unwind_protect_mem(&DAT_00151020,4);\n  unwind_protect_mem(&the_pipeline,4);\n  unwind_protect_mem(&subst_assign_varlist,4);\n  unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);\n  unwind_protect_mem(&temporary_env,4);\n  add_unwind_protect(PTR_xfree_00149e98,pcVar3);\n  add_unwind_protect(PTR_maybe_set_sigchld_trap_00149e78,pcVar3);\n  subst_assign_varlist = 0;\n  the_pipeline = 0;\n  temporary_env = 0;\n  running_trap = 0x12;\n  set_impossible_sigchld_trap();\n  DAT_00151020 = 1;\n  if (0 < param_1) {\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);\n  }\n  run_unwind_frame("SIGCHLD trap");\n  running_trap = 0;\n  return;\n}" primitive_type (function_declarator "run_sigchld_trap(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  \n  pcVar3 = DAT_00157164;\n  sVar1 = strlen(DAT_00157164);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar3 = strcpy(pcVar2,pcVar3);\n  begin_unwind_frame("SIGCHLD trap");\n  unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);\n  unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);\n  unwind_protect_mem(&last_made_pid,4);\n  unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);\n  unwind_protect_mem(&DAT_00151020,4);\n  unwind_protect_mem(&the_pipeline,4);\n  unwind_protect_mem(&subst_assign_varlist,4);\n  unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);\n  unwind_protect_mem(&temporary_env,4);\n  add_unwind_protect(PTR_xfree_00149e98,pcVar3);\n  add_unwind_protect(PTR_maybe_set_sigchld_trap_00149e78,pcVar3);\n  subst_assign_varlist = 0;\n  the_pipeline = 0;\n  temporary_env = 0;\n  running_trap = 0x12;\n  set_impossible_sigchld_trap();\n  DAT_00151020 = 1;\n  if (0 < param_1) {\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);\n  }\n  run_unwind_frame("SIGCHLD trap");\n  running_trap = 0;\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "pcVar3 = DAT_00157164;" (assignment_expression "pcVar3 = DAT_00157164" identifier = identifier) ;) (expression_statement "sVar1 = strlen(DAT_00157164);" (assignment_expression "sVar1 = strlen(DAT_00157164)" identifier = (call_expression "strlen(DAT_00157164)" identifier (argument_list "(DAT_00157164)" ( identifier )))) ;) (expression_statement "pcVar2 = (char *)xmalloc(sVar1 + 1);" (assignment_expression "pcVar2 = (char *)xmalloc(sVar1 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar1 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar1 + 1)" identifier (argument_list "(sVar1 + 1)" ( (binary_expression "sVar1 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar3 = strcpy(pcVar2,pcVar3);" (assignment_expression "pcVar3 = strcpy(pcVar2,pcVar3)" identifier = (call_expression "strcpy(pcVar2,pcVar3)" identifier (argument_list "(pcVar2,pcVar3)" ( identifier , identifier )))) ;) (expression_statement "begin_unwind_frame("SIGCHLD trap");" (call_expression "begin_unwind_frame("SIGCHLD trap")" identifier (argument_list "("SIGCHLD trap")" ( (string_literal ""SIGCHLD trap"" " string_content ") ))) ;) (expression_statement "unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);" (call_expression "unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4)" identifier (argument_list "(PTR_last_command_exit_value_00149fd4,4)" ( identifier , number_literal ))) ;) (expression_statement "unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);" (call_expression "unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4)" identifier (argument_list "(PTR_last_command_exit_signal_00149e70,4)" ( identifier , number_literal ))) ;) (expression_statement "unwind_protect_mem(&last_made_pid,4);" (call_expression "unwind_protect_mem(&last_made_pid,4)" identifier (argument_list "(&last_made_pid,4)" ( (pointer_expression "&last_made_pid" & identifier) , number_literal ))) ;) (expression_statement "unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);" (call_expression "unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4)" identifier (argument_list "(PTR_interrupt_immediately_00149ec0,4)" ( identifier , number_literal ))) ;) (expression_statement "unwind_protect_mem(&DAT_00151020,4);" (call_expression "unwind_protect_mem(&DAT_00151020,4)" identifier (argument_list "(&DAT_00151020,4)" ( (pointer_expression "&DAT_00151020" & identifier) , number_literal ))) ;) (expression_statement "unwind_protect_mem(&the_pipeline,4);" (call_expression "unwind_protect_mem(&the_pipeline,4)" identifier (argument_list "(&the_pipeline,4)" ( (pointer_expression "&the_pipeline" & identifier) , number_literal ))) ;) (expression_statement "unwind_protect_mem(&subst_assign_varlist,4);" (call_expression "unwind_protect_mem(&subst_assign_varlist,4)" identifier (argument_list "(&subst_assign_varlist,4)" ( (pointer_expression "&subst_assign_varlist" & identifier) , number_literal ))) ;) (expression_statement "unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);" (call_expression "unwind_protect_mem(PTR_this_shell_builtin_00149f94,4)" identifier (argument_list "(PTR_this_shell_builtin_00149f94,4)" ( identifier , number_literal ))) ;) (expression_statement "unwind_protect_mem(&temporary_env,4);" (call_expression "unwind_protect_mem(&temporary_env,4)" identifier (argument_list "(&temporary_env,4)" ( (pointer_expression "&temporary_env" & identifier) , number_literal ))) ;) (expression_statement "add_unwind_protect(PTR_xfree_00149e98,pcVar3);" (call_expression "add_unwind_protect(PTR_xfree_00149e98,pcVar3)" identifier (argument_list "(PTR_xfree_00149e98,pcVar3)" ( identifier , identifier ))) ;) (expression_statement "add_unwind_protect(PTR_maybe_set_sigchld_trap_00149e78,pcVar3);" (call_expression "add_unwind_protect(PTR_maybe_set_sigchld_trap_00149e78,pcVar3)" identifier (argument_list "(PTR_maybe_set_sigchld_trap_00149e78,pcVar3)" ( identifier , identifier ))) ;) (expression_statement "subst_assign_varlist = 0;" (assignment_expression "subst_assign_varlist = 0" identifier = number_literal) ;) (expression_statement "the_pipeline = 0;" (assignment_expression "the_pipeline = 0" identifier = number_literal) ;) (expression_statement "temporary_env = 0;" (assignment_expression "temporary_env = 0" identifier = number_literal) ;) (expression_statement "running_trap = 0x12;" (assignment_expression "running_trap = 0x12" identifier = number_literal) ;) (expression_statement "set_impossible_sigchld_trap();" (call_expression "set_impossible_sigchld_trap()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_00151020 = 1;" (assignment_expression "DAT_00151020 = 1" identifier = number_literal) ;) (if_statement "if (0 < param_1) {\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);\n  }" if (parenthesized_expression "(0 < param_1)" ( (binary_expression "0 < param_1" number_literal < identifier) )) (compound_statement "{\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);\n  }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);" do (compound_statement "{\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    }" { (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "sVar1 = strlen(pcVar3);" (assignment_expression "sVar1 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "pcVar2 = (char *)xmalloc(sVar1 + 1);" (assignment_expression "pcVar2 = (char *)xmalloc(sVar1 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar1 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar1 + 1)" identifier (argument_list "(sVar1 + 1)" ( (binary_expression "sVar1 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar2 = strcpy(pcVar2,pcVar3);" (assignment_expression "pcVar2 = strcpy(pcVar2,pcVar3)" identifier = (call_expression "strcpy(pcVar2,pcVar3)" identifier (argument_list "(pcVar2,pcVar3)" ( identifier , identifier )))) ;) (expression_statement "parse_and_execute(pcVar2,"trap",0x14);" (call_expression "parse_and_execute(pcVar2,"trap",0x14)" identifier (argument_list "(pcVar2,"trap",0x14)" ( identifier , (string_literal ""trap"" " string_content ") , number_literal ))) ;) }) while (parenthesized_expression "(param_1 != iVar4)" ( (binary_expression "param_1 != iVar4" identifier != identifier) )) ;) })) (expression_statement "run_unwind_frame("SIGCHLD trap");" (call_expression "run_unwind_frame("SIGCHLD trap")" identifier (argument_list "("SIGCHLD trap")" ( (string_literal ""SIGCHLD trap"" " string_content ") ))) ;) (expression_statement "running_trap = 0;" (assignment_expression "running_trap = 0" identifier = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid run_sigchld_trap(int nchild)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  \n  pcVar3 = DAT_00157164;\n  sVar1 = strlen(DAT_00157164);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar3 = strcpy(pcVar2,pcVar3);\n  begin_unwind_frame("SIGCHLD trap");\n  unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);\n  unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);\n  unwind_protect_mem((char *)&last_made_pid,4);\n  unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);\n  unwind_protect_mem((char *)&jobs_list_frozen,4);\n  unwind_protect_mem((char *)&the_pipeline,4);\n  unwind_protect_mem((char *)&subst_assign_varlist,4);\n  unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);\n  unwind_protect_mem((char *)&temporary_env,4);\n  add_unwind_protect((Function *)PTR_xfree_00149e98,pcVar3);\n  add_unwind_protect((Function *)PTR_maybe_set_sigchld_trap_00149e78,pcVar3);\n  subst_assign_varlist = (WORD_LIST *)0x0;\n  the_pipeline = (PROCESS *)0x0;\n  temporary_env = (HASH_TABLE *)0x0;\n  running_trap = 0x12;\n  set_impossible_sigchld_trap();\n  jobs_list_frozen = 1;\n  if (0 < nchild) {\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (nchild != iVar4);\n  }\n  run_unwind_frame("SIGCHLD trap");\n  running_trap = 0;\n  return;\n}\n\n" comment comment (function_definition "void run_sigchld_trap(int nchild)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  \n  pcVar3 = DAT_00157164;\n  sVar1 = strlen(DAT_00157164);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar3 = strcpy(pcVar2,pcVar3);\n  begin_unwind_frame("SIGCHLD trap");\n  unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);\n  unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);\n  unwind_protect_mem((char *)&last_made_pid,4);\n  unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);\n  unwind_protect_mem((char *)&jobs_list_frozen,4);\n  unwind_protect_mem((char *)&the_pipeline,4);\n  unwind_protect_mem((char *)&subst_assign_varlist,4);\n  unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);\n  unwind_protect_mem((char *)&temporary_env,4);\n  add_unwind_protect((Function *)PTR_xfree_00149e98,pcVar3);\n  add_unwind_protect((Function *)PTR_maybe_set_sigchld_trap_00149e78,pcVar3);\n  subst_assign_varlist = (WORD_LIST *)0x0;\n  the_pipeline = (PROCESS *)0x0;\n  temporary_env = (HASH_TABLE *)0x0;\n  running_trap = 0x12;\n  set_impossible_sigchld_trap();\n  jobs_list_frozen = 1;\n  if (0 < nchild) {\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (nchild != iVar4);\n  }\n  run_unwind_frame("SIGCHLD trap");\n  running_trap = 0;\n  return;\n}" primitive_type (function_declarator "run_sigchld_trap(int nchild)" identifier (parameter_list "(int nchild)" ( (parameter_declaration "int nchild" primitive_type identifier) ))) (compound_statement "{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  \n  pcVar3 = DAT_00157164;\n  sVar1 = strlen(DAT_00157164);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar3 = strcpy(pcVar2,pcVar3);\n  begin_unwind_frame("SIGCHLD trap");\n  unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);\n  unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);\n  unwind_protect_mem((char *)&last_made_pid,4);\n  unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);\n  unwind_protect_mem((char *)&jobs_list_frozen,4);\n  unwind_protect_mem((char *)&the_pipeline,4);\n  unwind_protect_mem((char *)&subst_assign_varlist,4);\n  unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);\n  unwind_protect_mem((char *)&temporary_env,4);\n  add_unwind_protect((Function *)PTR_xfree_00149e98,pcVar3);\n  add_unwind_protect((Function *)PTR_maybe_set_sigchld_trap_00149e78,pcVar3);\n  subst_assign_varlist = (WORD_LIST *)0x0;\n  the_pipeline = (PROCESS *)0x0;\n  temporary_env = (HASH_TABLE *)0x0;\n  running_trap = 0x12;\n  set_impossible_sigchld_trap();\n  jobs_list_frozen = 1;\n  if (0 < nchild) {\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (nchild != iVar4);\n  }\n  run_unwind_frame("SIGCHLD trap");\n  running_trap = 0;\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "pcVar3 = DAT_00157164;" (assignment_expression "pcVar3 = DAT_00157164" identifier = identifier) ;) (expression_statement "sVar1 = strlen(DAT_00157164);" (assignment_expression "sVar1 = strlen(DAT_00157164)" identifier = (call_expression "strlen(DAT_00157164)" identifier (argument_list "(DAT_00157164)" ( identifier )))) ;) (expression_statement "pcVar2 = (char *)xmalloc(sVar1 + 1);" (assignment_expression "pcVar2 = (char *)xmalloc(sVar1 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar1 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar1 + 1)" identifier (argument_list "(sVar1 + 1)" ( (binary_expression "sVar1 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar3 = strcpy(pcVar2,pcVar3);" (assignment_expression "pcVar3 = strcpy(pcVar2,pcVar3)" identifier = (call_expression "strcpy(pcVar2,pcVar3)" identifier (argument_list "(pcVar2,pcVar3)" ( identifier , identifier )))) ;) (expression_statement "begin_unwind_frame("SIGCHLD trap");" (call_expression "begin_unwind_frame("SIGCHLD trap")" identifier (argument_list "("SIGCHLD trap")" ( (string_literal ""SIGCHLD trap"" " string_content ") ))) ;) (expression_statement "unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);" (call_expression "unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4)" identifier (argument_list "(PTR_last_command_exit_value_00149fd4,4)" ( identifier , number_literal ))) ;) (expression_statement "unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);" (call_expression "unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4)" identifier (argument_list "(PTR_last_command_exit_signal_00149e70,4)" ( identifier , number_literal ))) ;) (expression_statement "unwind_protect_mem((char *)&last_made_pid,4);" (call_expression "unwind_protect_mem((char *)&last_made_pid,4)" identifier (argument_list "((char *)&last_made_pid,4)" ( (cast_expression "(char *)&last_made_pid" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&last_made_pid" & identifier)) , number_literal ))) ;) (expression_statement "unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);" (call_expression "unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4)" identifier (argument_list "(PTR_interrupt_immediately_00149ec0,4)" ( identifier , number_literal ))) ;) (expression_statement "unwind_protect_mem((char *)&jobs_list_frozen,4);" (call_expression "unwind_protect_mem((char *)&jobs_list_frozen,4)" identifier (argument_list "((char *)&jobs_list_frozen,4)" ( (cast_expression "(char *)&jobs_list_frozen" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&jobs_list_frozen" & identifier)) , number_literal ))) ;) (expression_statement "unwind_protect_mem((char *)&the_pipeline,4);" (call_expression "unwind_protect_mem((char *)&the_pipeline,4)" identifier (argument_list "((char *)&the_pipeline,4)" ( (cast_expression "(char *)&the_pipeline" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&the_pipeline" & identifier)) , number_literal ))) ;) (expression_statement "unwind_protect_mem((char *)&subst_assign_varlist,4);" (call_expression "unwind_protect_mem((char *)&subst_assign_varlist,4)" identifier (argument_list "((char *)&subst_assign_varlist,4)" ( (cast_expression "(char *)&subst_assign_varlist" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&subst_assign_varlist" & identifier)) , number_literal ))) ;) (expression_statement "unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);" (call_expression "unwind_protect_mem(PTR_this_shell_builtin_00149f94,4)" identifier (argument_list "(PTR_this_shell_builtin_00149f94,4)" ( identifier , number_literal ))) ;) (expression_statement "unwind_protect_mem((char *)&temporary_env,4);" (call_expression "unwind_protect_mem((char *)&temporary_env,4)" identifier (argument_list "((char *)&temporary_env,4)" ( (cast_expression "(char *)&temporary_env" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&temporary_env" & identifier)) , number_literal ))) ;) (expression_statement "add_unwind_protect((Function *)PTR_xfree_00149e98,pcVar3);" (call_expression "add_unwind_protect((Function *)PTR_xfree_00149e98,pcVar3)" identifier (argument_list "((Function *)PTR_xfree_00149e98,pcVar3)" ( (cast_expression "(Function *)PTR_xfree_00149e98" ( (type_descriptor "Function *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "add_unwind_protect((Function *)PTR_maybe_set_sigchld_trap_00149e78,pcVar3);" (call_expression "add_unwind_protect((Function *)PTR_maybe_set_sigchld_trap_00149e78,pcVar3)" identifier (argument_list "((Function *)PTR_maybe_set_sigchld_trap_00149e78,pcVar3)" ( (cast_expression "(Function *)PTR_maybe_set_sigchld_trap_00149e78" ( (type_descriptor "Function *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "subst_assign_varlist = (WORD_LIST *)0x0;" (assignment_expression "subst_assign_varlist = (WORD_LIST *)0x0" identifier = (cast_expression "(WORD_LIST *)0x0" ( (type_descriptor "WORD_LIST *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "the_pipeline = (PROCESS *)0x0;" (assignment_expression "the_pipeline = (PROCESS *)0x0" identifier = (cast_expression "(PROCESS *)0x0" ( (type_descriptor "PROCESS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "temporary_env = (HASH_TABLE *)0x0;" (assignment_expression "temporary_env = (HASH_TABLE *)0x0" identifier = (cast_expression "(HASH_TABLE *)0x0" ( (type_descriptor "HASH_TABLE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "running_trap = 0x12;" (assignment_expression "running_trap = 0x12" identifier = number_literal) ;) (expression_statement "set_impossible_sigchld_trap();" (call_expression "set_impossible_sigchld_trap()" identifier (argument_list "()" ( ))) ;) (expression_statement "jobs_list_frozen = 1;" (assignment_expression "jobs_list_frozen = 1" identifier = number_literal) ;) (if_statement "if (0 < nchild) {\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (nchild != iVar4);\n  }" if (parenthesized_expression "(0 < nchild)" ( (binary_expression "0 < nchild" number_literal < identifier) )) (compound_statement "{\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (nchild != iVar4);\n  }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (nchild != iVar4);" do (compound_statement "{\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    }" { (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "sVar1 = strlen(pcVar3);" (assignment_expression "sVar1 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "pcVar2 = (char *)xmalloc(sVar1 + 1);" (assignment_expression "pcVar2 = (char *)xmalloc(sVar1 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar1 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar1 + 1)" identifier (argument_list "(sVar1 + 1)" ( (binary_expression "sVar1 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar2 = strcpy(pcVar2,pcVar3);" (assignment_expression "pcVar2 = strcpy(pcVar2,pcVar3)" identifier = (call_expression "strcpy(pcVar2,pcVar3)" identifier (argument_list "(pcVar2,pcVar3)" ( identifier , identifier )))) ;) (expression_statement "parse_and_execute(pcVar2,"trap",0x14);" (call_expression "parse_and_execute(pcVar2,"trap",0x14)" identifier (argument_list "(pcVar2,"trap",0x14)" ( identifier , (string_literal ""trap"" " string_content ") , number_literal ))) ;) }) while (parenthesized_expression "(nchild != iVar4)" ( (binary_expression "nchild != iVar4" identifier != identifier) )) ;) })) (expression_statement "run_unwind_frame("SIGCHLD trap");" (call_expression "run_unwind_frame("SIGCHLD trap")" identifier (argument_list "("SIGCHLD trap")" ( (string_literal ""SIGCHLD trap"" " string_content ") ))) ;) (expression_statement "running_trap = 0;" (assignment_expression "running_trap = 0" identifier = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit "void run_sigchld_trap(int param_1)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  \n  pcVar3 = DAT_00157164;\n  sVar1 = strlen(DAT_00157164);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar3 = strcpy(pcVar2,pcVar3);\n  begin_unwind_frame("SIGCHLD trap");\n  unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);\n  unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);\n  unwind_protect_mem(&last_made_pid,4);\n  unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);\n  unwind_protect_mem(&DAT_00151020,4);\n  unwind_protect_mem(&the_pipeline,4);\n  unwind_protect_mem(&subst_assign_varlist,4);\n  unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);\n  unwind_protect_mem(&temporary_env,4);\n  add_unwind_protect(PTR_xfree_00149e98,pcVar3);\n  add_unwind_protect(PTR_maybe_set_sigchld_trap_00149e78,pcVar3);\n  subst_assign_varlist = 0;\n  the_pipeline = 0;\n  temporary_env = 0;\n  running_trap = 0x12;\n  set_impossible_sigchld_trap();\n  DAT_00151020 = 1;\n  if (0 < param_1) {\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);\n  }\n  run_unwind_frame("SIGCHLD trap");\n  running_trap = 0;\n  return;\n}\n\n" (function_definition "void run_sigchld_trap(int param_1)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  \n  pcVar3 = DAT_00157164;\n  sVar1 = strlen(DAT_00157164);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar3 = strcpy(pcVar2,pcVar3);\n  begin_unwind_frame("SIGCHLD trap");\n  unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);\n  unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);\n  unwind_protect_mem(&last_made_pid,4);\n  unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);\n  unwind_protect_mem(&DAT_00151020,4);\n  unwind_protect_mem(&the_pipeline,4);\n  unwind_protect_mem(&subst_assign_varlist,4);\n  unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);\n  unwind_protect_mem(&temporary_env,4);\n  add_unwind_protect(PTR_xfree_00149e98,pcVar3);\n  add_unwind_protect(PTR_maybe_set_sigchld_trap_00149e78,pcVar3);\n  subst_assign_varlist = 0;\n  the_pipeline = 0;\n  temporary_env = 0;\n  running_trap = 0x12;\n  set_impossible_sigchld_trap();\n  DAT_00151020 = 1;\n  if (0 < param_1) {\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);\n  }\n  run_unwind_frame("SIGCHLD trap");\n  running_trap = 0;\n  return;\n}" primitive_type (function_declarator "run_sigchld_trap(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  \n  pcVar3 = DAT_00157164;\n  sVar1 = strlen(DAT_00157164);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar3 = strcpy(pcVar2,pcVar3);\n  begin_unwind_frame("SIGCHLD trap");\n  unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);\n  unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);\n  unwind_protect_mem(&last_made_pid,4);\n  unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);\n  unwind_protect_mem(&DAT_00151020,4);\n  unwind_protect_mem(&the_pipeline,4);\n  unwind_protect_mem(&subst_assign_varlist,4);\n  unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);\n  unwind_protect_mem(&temporary_env,4);\n  add_unwind_protect(PTR_xfree_00149e98,pcVar3);\n  add_unwind_protect(PTR_maybe_set_sigchld_trap_00149e78,pcVar3);\n  subst_assign_varlist = 0;\n  the_pipeline = 0;\n  temporary_env = 0;\n  running_trap = 0x12;\n  set_impossible_sigchld_trap();\n  DAT_00151020 = 1;\n  if (0 < param_1) {\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);\n  }\n  run_unwind_frame("SIGCHLD trap");\n  running_trap = 0;\n  return;\n}" { (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "pcVar3 = DAT_00157164;" (assignment_expression "pcVar3 = DAT_00157164" identifier = identifier) ;) (expression_statement "sVar1 = strlen(DAT_00157164);" (assignment_expression "sVar1 = strlen(DAT_00157164)" identifier = (call_expression "strlen(DAT_00157164)" identifier (argument_list "(DAT_00157164)" ( identifier )))) ;) (expression_statement "pcVar2 = (char *)xmalloc(sVar1 + 1);" (assignment_expression "pcVar2 = (char *)xmalloc(sVar1 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar1 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar1 + 1)" identifier (argument_list "(sVar1 + 1)" ( (binary_expression "sVar1 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar3 = strcpy(pcVar2,pcVar3);" (assignment_expression "pcVar3 = strcpy(pcVar2,pcVar3)" identifier = (call_expression "strcpy(pcVar2,pcVar3)" identifier (argument_list "(pcVar2,pcVar3)" ( identifier , identifier )))) ;) (expression_statement "begin_unwind_frame("SIGCHLD trap");" (call_expression "begin_unwind_frame("SIGCHLD trap")" identifier (argument_list "("SIGCHLD trap")" ( (string_literal ""SIGCHLD trap"" " string_content ") ))) ;) (expression_statement "unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);" (call_expression "unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4)" identifier (argument_list "(PTR_last_command_exit_value_00149fd4,4)" ( identifier , number_literal ))) ;) (expression_statement "unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);" (call_expression "unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4)" identifier (argument_list "(PTR_last_command_exit_signal_00149e70,4)" ( identifier , number_literal ))) ;) (expression_statement "unwind_protect_mem(&last_made_pid,4);" (call_expression "unwind_protect_mem(&last_made_pid,4)" identifier (argument_list "(&last_made_pid,4)" ( (pointer_expression "&last_made_pid" & identifier) , number_literal ))) ;) (expression_statement "unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);" (call_expression "unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4)" identifier (argument_list "(PTR_interrupt_immediately_00149ec0,4)" ( identifier , number_literal ))) ;) (expression_statement "unwind_protect_mem(&DAT_00151020,4);" (call_expression "unwind_protect_mem(&DAT_00151020,4)" identifier (argument_list "(&DAT_00151020,4)" ( (pointer_expression "&DAT_00151020" & identifier) , number_literal ))) ;) (expression_statement "unwind_protect_mem(&the_pipeline,4);" (call_expression "unwind_protect_mem(&the_pipeline,4)" identifier (argument_list "(&the_pipeline,4)" ( (pointer_expression "&the_pipeline" & identifier) , number_literal ))) ;) (expression_statement "unwind_protect_mem(&subst_assign_varlist,4);" (call_expression "unwind_protect_mem(&subst_assign_varlist,4)" identifier (argument_list "(&subst_assign_varlist,4)" ( (pointer_expression "&subst_assign_varlist" & identifier) , number_literal ))) ;) (expression_statement "unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);" (call_expression "unwind_protect_mem(PTR_this_shell_builtin_00149f94,4)" identifier (argument_list "(PTR_this_shell_builtin_00149f94,4)" ( identifier , number_literal ))) ;) (expression_statement "unwind_protect_mem(&temporary_env,4);" (call_expression "unwind_protect_mem(&temporary_env,4)" identifier (argument_list "(&temporary_env,4)" ( (pointer_expression "&temporary_env" & identifier) , number_literal ))) ;) (expression_statement "add_unwind_protect(PTR_xfree_00149e98,pcVar3);" (call_expression "add_unwind_protect(PTR_xfree_00149e98,pcVar3)" identifier (argument_list "(PTR_xfree_00149e98,pcVar3)" ( identifier , identifier ))) ;) (expression_statement "add_unwind_protect(PTR_maybe_set_sigchld_trap_00149e78,pcVar3);" (call_expression "add_unwind_protect(PTR_maybe_set_sigchld_trap_00149e78,pcVar3)" identifier (argument_list "(PTR_maybe_set_sigchld_trap_00149e78,pcVar3)" ( identifier , identifier ))) ;) (expression_statement "subst_assign_varlist = 0;" (assignment_expression "subst_assign_varlist = 0" identifier = number_literal) ;) (expression_statement "the_pipeline = 0;" (assignment_expression "the_pipeline = 0" identifier = number_literal) ;) (expression_statement "temporary_env = 0;" (assignment_expression "temporary_env = 0" identifier = number_literal) ;) (expression_statement "running_trap = 0x12;" (assignment_expression "running_trap = 0x12" identifier = number_literal) ;) (expression_statement "set_impossible_sigchld_trap();" (call_expression "set_impossible_sigchld_trap()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_00151020 = 1;" (assignment_expression "DAT_00151020 = 1" identifier = number_literal) ;) (if_statement "if (0 < param_1) {\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);\n  }" if (parenthesized_expression "(0 < param_1)" ( (binary_expression "0 < param_1" number_literal < identifier) )) (compound_statement "{\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);\n  }" { (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);" do (compound_statement "{\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    }" { (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" identifier = (binary_expression "iVar4 + 1" identifier + number_literal)) ;) (expression_statement "sVar1 = strlen(pcVar3);" (assignment_expression "sVar1 = strlen(pcVar3)" identifier = (call_expression "strlen(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier )))) ;) (expression_statement "pcVar2 = (char *)xmalloc(sVar1 + 1);" (assignment_expression "pcVar2 = (char *)xmalloc(sVar1 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar1 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar1 + 1)" identifier (argument_list "(sVar1 + 1)" ( (binary_expression "sVar1 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar2 = strcpy(pcVar2,pcVar3);" (assignment_expression "pcVar2 = strcpy(pcVar2,pcVar3)" identifier = (call_expression "strcpy(pcVar2,pcVar3)" identifier (argument_list "(pcVar2,pcVar3)" ( identifier , identifier )))) ;) (expression_statement "parse_and_execute(pcVar2,"trap",0x14);" (call_expression "parse_and_execute(pcVar2,"trap",0x14)" identifier (argument_list "(pcVar2,"trap",0x14)" ( identifier , (string_literal ""trap"" " string_content ") , number_literal ))) ;) }) while (parenthesized_expression "(param_1 != iVar4)" ( (binary_expression "param_1 != iVar4" identifier != identifier) )) ;) })) (expression_statement "run_unwind_frame("SIGCHLD trap");" (call_expression "run_unwind_frame("SIGCHLD trap")" identifier (argument_list "("SIGCHLD trap")" ( (string_literal ""SIGCHLD trap"" " string_content ") ))) ;) (expression_statement "running_trap = 0;" (assignment_expression "running_trap = 0" identifier = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (return_statement return ;) })))
(function_definition "void run_sigchld_trap(int param_1)\n\n{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  \n  pcVar3 = DAT_00157164;\n  sVar1 = strlen(DAT_00157164);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar3 = strcpy(pcVar2,pcVar3);\n  begin_unwind_frame("SIGCHLD trap");\n  unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);\n  unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);\n  unwind_protect_mem(&last_made_pid,4);\n  unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);\n  unwind_protect_mem(&DAT_00151020,4);\n  unwind_protect_mem(&the_pipeline,4);\n  unwind_protect_mem(&subst_assign_varlist,4);\n  unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);\n  unwind_protect_mem(&temporary_env,4);\n  add_unwind_protect(PTR_xfree_00149e98,pcVar3);\n  add_unwind_protect(PTR_maybe_set_sigchld_trap_00149e78,pcVar3);\n  subst_assign_varlist = 0;\n  the_pipeline = 0;\n  temporary_env = 0;\n  running_trap = 0x12;\n  set_impossible_sigchld_trap();\n  DAT_00151020 = 1;\n  if (0 < param_1) {\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);\n  }\n  run_unwind_frame("SIGCHLD trap");\n  running_trap = 0;\n  return;\n}" (primitive_type "void") (function_declarator "run_sigchld_trap(int param_1)" (identifier "run_sigchld_trap") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  size_t sVar1;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  \n  pcVar3 = DAT_00157164;\n  sVar1 = strlen(DAT_00157164);\n  pcVar2 = (char *)xmalloc(sVar1 + 1);\n  pcVar3 = strcpy(pcVar2,pcVar3);\n  begin_unwind_frame("SIGCHLD trap");\n  unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);\n  unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);\n  unwind_protect_mem(&last_made_pid,4);\n  unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);\n  unwind_protect_mem(&DAT_00151020,4);\n  unwind_protect_mem(&the_pipeline,4);\n  unwind_protect_mem(&subst_assign_varlist,4);\n  unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);\n  unwind_protect_mem(&temporary_env,4);\n  add_unwind_protect(PTR_xfree_00149e98,pcVar3);\n  add_unwind_protect(PTR_maybe_set_sigchld_trap_00149e78,pcVar3);\n  subst_assign_varlist = 0;\n  the_pipeline = 0;\n  temporary_env = 0;\n  running_trap = 0x12;\n  set_impossible_sigchld_trap();\n  DAT_00151020 = 1;\n  if (0 < param_1) {\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);\n  }\n  run_unwind_frame("SIGCHLD trap");\n  running_trap = 0;\n  return;\n}" ({ "{") (declaration "size_t sVar1;" (primitive_type "size_t") (identifier "sVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (expression_statement "pcVar3 = DAT_00157164;" (assignment_expression "pcVar3 = DAT_00157164" (identifier "pcVar3") (= "=") (identifier "DAT_00157164")) (; ";")) (expression_statement "sVar1 = strlen(DAT_00157164);" (assignment_expression "sVar1 = strlen(DAT_00157164)" (identifier "sVar1") (= "=") (call_expression "strlen(DAT_00157164)" (identifier "strlen") (argument_list "(DAT_00157164)" (( "(") (identifier "DAT_00157164") () ")")))) (; ";")) (expression_statement "pcVar2 = (char *)xmalloc(sVar1 + 1);" (assignment_expression "pcVar2 = (char *)xmalloc(sVar1 + 1)" (identifier "pcVar2") (= "=") (cast_expression "(char *)xmalloc(sVar1 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar1 + 1)" (identifier "xmalloc") (argument_list "(sVar1 + 1)" (( "(") (binary_expression "sVar1 + 1" (identifier "sVar1") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "pcVar3 = strcpy(pcVar2,pcVar3);" (assignment_expression "pcVar3 = strcpy(pcVar2,pcVar3)" (identifier "pcVar3") (= "=") (call_expression "strcpy(pcVar2,pcVar3)" (identifier "strcpy") (argument_list "(pcVar2,pcVar3)" (( "(") (identifier "pcVar2") (, ",") (identifier "pcVar3") () ")")))) (; ";")) (expression_statement "begin_unwind_frame("SIGCHLD trap");" (call_expression "begin_unwind_frame("SIGCHLD trap")" (identifier "begin_unwind_frame") (argument_list "("SIGCHLD trap")" (( "(") (string_literal ""SIGCHLD trap"" (" """) (string_content "SIGCHLD trap") (" """)) () ")"))) (; ";")) (expression_statement "unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);" (call_expression "unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4)" (identifier "unwind_protect_mem") (argument_list "(PTR_last_command_exit_value_00149fd4,4)" (( "(") (identifier "PTR_last_command_exit_value_00149fd4") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);" (call_expression "unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4)" (identifier "unwind_protect_mem") (argument_list "(PTR_last_command_exit_signal_00149e70,4)" (( "(") (identifier "PTR_last_command_exit_signal_00149e70") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "unwind_protect_mem(&last_made_pid,4);" (call_expression "unwind_protect_mem(&last_made_pid,4)" (identifier "unwind_protect_mem") (argument_list "(&last_made_pid,4)" (( "(") (pointer_expression "&last_made_pid" (& "&") (identifier "last_made_pid")) (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);" (call_expression "unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4)" (identifier "unwind_protect_mem") (argument_list "(PTR_interrupt_immediately_00149ec0,4)" (( "(") (identifier "PTR_interrupt_immediately_00149ec0") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "unwind_protect_mem(&DAT_00151020,4);" (call_expression "unwind_protect_mem(&DAT_00151020,4)" (identifier "unwind_protect_mem") (argument_list "(&DAT_00151020,4)" (( "(") (pointer_expression "&DAT_00151020" (& "&") (identifier "DAT_00151020")) (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "unwind_protect_mem(&the_pipeline,4);" (call_expression "unwind_protect_mem(&the_pipeline,4)" (identifier "unwind_protect_mem") (argument_list "(&the_pipeline,4)" (( "(") (pointer_expression "&the_pipeline" (& "&") (identifier "the_pipeline")) (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "unwind_protect_mem(&subst_assign_varlist,4);" (call_expression "unwind_protect_mem(&subst_assign_varlist,4)" (identifier "unwind_protect_mem") (argument_list "(&subst_assign_varlist,4)" (( "(") (pointer_expression "&subst_assign_varlist" (& "&") (identifier "subst_assign_varlist")) (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);" (call_expression "unwind_protect_mem(PTR_this_shell_builtin_00149f94,4)" (identifier "unwind_protect_mem") (argument_list "(PTR_this_shell_builtin_00149f94,4)" (( "(") (identifier "PTR_this_shell_builtin_00149f94") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "unwind_protect_mem(&temporary_env,4);" (call_expression "unwind_protect_mem(&temporary_env,4)" (identifier "unwind_protect_mem") (argument_list "(&temporary_env,4)" (( "(") (pointer_expression "&temporary_env" (& "&") (identifier "temporary_env")) (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "add_unwind_protect(PTR_xfree_00149e98,pcVar3);" (call_expression "add_unwind_protect(PTR_xfree_00149e98,pcVar3)" (identifier "add_unwind_protect") (argument_list "(PTR_xfree_00149e98,pcVar3)" (( "(") (identifier "PTR_xfree_00149e98") (, ",") (identifier "pcVar3") () ")"))) (; ";")) (expression_statement "add_unwind_protect(PTR_maybe_set_sigchld_trap_00149e78,pcVar3);" (call_expression "add_unwind_protect(PTR_maybe_set_sigchld_trap_00149e78,pcVar3)" (identifier "add_unwind_protect") (argument_list "(PTR_maybe_set_sigchld_trap_00149e78,pcVar3)" (( "(") (identifier "PTR_maybe_set_sigchld_trap_00149e78") (, ",") (identifier "pcVar3") () ")"))) (; ";")) (expression_statement "subst_assign_varlist = 0;" (assignment_expression "subst_assign_varlist = 0" (identifier "subst_assign_varlist") (= "=") (number_literal "0")) (; ";")) (expression_statement "the_pipeline = 0;" (assignment_expression "the_pipeline = 0" (identifier "the_pipeline") (= "=") (number_literal "0")) (; ";")) (expression_statement "temporary_env = 0;" (assignment_expression "temporary_env = 0" (identifier "temporary_env") (= "=") (number_literal "0")) (; ";")) (expression_statement "running_trap = 0x12;" (assignment_expression "running_trap = 0x12" (identifier "running_trap") (= "=") (number_literal "0x12")) (; ";")) (expression_statement "set_impossible_sigchld_trap();" (call_expression "set_impossible_sigchld_trap()" (identifier "set_impossible_sigchld_trap") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_00151020 = 1;" (assignment_expression "DAT_00151020 = 1" (identifier "DAT_00151020") (= "=") (number_literal "1")) (; ";")) (if_statement "if (0 < param_1) {\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);\n  }" (if "if") (parenthesized_expression "(0 < param_1)" (( "(") (binary_expression "0 < param_1" (number_literal "0") (< "<") (identifier "param_1")) () ")")) (compound_statement "{\n    iVar4 = 0;\n    do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);\n  }" ({ "{") (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    } while (param_1 != iVar4);" (do "do") (compound_statement "{\n      iVar4 = iVar4 + 1;\n      sVar1 = strlen(pcVar3);\n      pcVar2 = (char *)xmalloc(sVar1 + 1);\n      pcVar2 = strcpy(pcVar2,pcVar3);\n      parse_and_execute(pcVar2,"trap",0x14);\n    }" ({ "{") (expression_statement "iVar4 = iVar4 + 1;" (assignment_expression "iVar4 = iVar4 + 1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + 1" (identifier "iVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "sVar1 = strlen(pcVar3);" (assignment_expression "sVar1 = strlen(pcVar3)" (identifier "sVar1") (= "=") (call_expression "strlen(pcVar3)" (identifier "strlen") (argument_list "(pcVar3)" (( "(") (identifier "pcVar3") () ")")))) (; ";")) (expression_statement "pcVar2 = (char *)xmalloc(sVar1 + 1);" (assignment_expression "pcVar2 = (char *)xmalloc(sVar1 + 1)" (identifier "pcVar2") (= "=") (cast_expression "(char *)xmalloc(sVar1 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar1 + 1)" (identifier "xmalloc") (argument_list "(sVar1 + 1)" (( "(") (binary_expression "sVar1 + 1" (identifier "sVar1") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "pcVar2 = strcpy(pcVar2,pcVar3);" (assignment_expression "pcVar2 = strcpy(pcVar2,pcVar3)" (identifier "pcVar2") (= "=") (call_expression "strcpy(pcVar2,pcVar3)" (identifier "strcpy") (argument_list "(pcVar2,pcVar3)" (( "(") (identifier "pcVar2") (, ",") (identifier "pcVar3") () ")")))) (; ";")) (expression_statement "parse_and_execute(pcVar2,"trap",0x14);" (call_expression "parse_and_execute(pcVar2,"trap",0x14)" (identifier "parse_and_execute") (argument_list "(pcVar2,"trap",0x14)" (( "(") (identifier "pcVar2") (, ",") (string_literal ""trap"" (" """) (string_content "trap") (" """)) (, ",") (number_literal "0x14") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_1 != iVar4)" (( "(") (binary_expression "param_1 != iVar4" (identifier "param_1") (!= "!=") (identifier "iVar4")) () ")")) (; ";")) (} "}"))) (expression_statement "run_unwind_frame("SIGCHLD trap");" (call_expression "run_unwind_frame("SIGCHLD trap")" (identifier "run_unwind_frame") (argument_list "("SIGCHLD trap")" (( "(") (string_literal ""SIGCHLD trap"" (" """) (string_content "SIGCHLD trap") (" """)) () ")"))) (; ";")) (expression_statement "running_trap = 0;" (assignment_expression "running_trap = 0" (identifier "running_trap") (= "=") (number_literal "0")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

void function_1(int var_9)

{
  size_t var_3;
  char *pcVar2;
  char *pcVar3;
  int var_10;
  
  pcVar3 = DAT_00157164;
  var_3 = var_1(DAT_00157164);
  pcVar2 = (char *)var_2(var_3 + 1);
  pcVar3 = var_4(pcVar2,pcVar3);
  var_5("SIGCHLD trap");
  var_6(PTR_last_command_exit_value_00149fd4,4);
  var_6(PTR_last_command_exit_signal_00149e70,4);
  var_6((char *)&last_made_pid,4);
  var_6(PTR_interrupt_immediately_00149ec0,4);
  var_6((char *)&jobs_list_frozen,4);
  var_6((char *)&the_pipeline,4);
  var_6((char *)&subst_assign_varlist,4);
  var_6(PTR_this_shell_builtin_00149f94,4);
  var_6((char *)&temporary_env,4);
  var_7((type_1 *)PTR_xfree_00149e98,pcVar3);
  var_7((type_1 *)PTR_maybe_set_sigchld_trap_00149e78,pcVar3);
  subst_assign_varlist = (type_2 *)0x0;
  the_pipeline = (type_3 *)0x0;
  temporary_env = (type_4 *)0x0;
  running_trap = 0x12;
  var_8();
  jobs_list_frozen = 1;
  if (0 < var_9) {
    var_10 = 0;
    do {
      var_10 = var_10 + 1;
      var_3 = var_1(pcVar3);
      pcVar2 = (char *)var_2(var_3 + 1);
      pcVar2 = var_4(pcVar2,pcVar3);
      var_11(pcVar2,"trap",0x14);
    } while (var_9 != var_10);
  }
  var_12("SIGCHLD trap");
  running_trap = 0;
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)) (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (return_statement))))

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

void MASKED(int param_1)

{
  size_t sVar1;
  char *pcVar2;
  char *pcVar3;
  int iVar4;
  
  pcVar3 = DAT_00157164;
  sVar1 = strlen(DAT_00157164);
  pcVar2 = (char *)xmalloc(sVar1 + 1);
  pcVar3 = strcpy(pcVar2,pcVar3);
  begin_unwind_frame("SIGCHLD trap");
  unwind_protect_mem(PTR_last_command_exit_value_00149fd4,4);
  unwind_protect_mem(PTR_last_command_exit_signal_00149e70,4);
  unwind_protect_mem(&last_made_pid,4);
  unwind_protect_mem(PTR_interrupt_immediately_00149ec0,4);
  unwind_protect_mem(&DAT_00151020,4);
  unwind_protect_mem(&the_pipeline,4);
  unwind_protect_mem(&subst_assign_varlist,4);
  unwind_protect_mem(PTR_this_shell_builtin_00149f94,4);
  unwind_protect_mem(&temporary_env,4);
  add_unwind_protect(PTR_xfree_00149e98,pcVar3);
  add_unwind_protect(PTR_maybe_set_sigchld_trap_00149e78,pcVar3);
  subst_assign_varlist = 0;
  the_pipeline = 0;
  temporary_env = 0;
  running_trap = 0x12;
  set_impossible_sigchld_trap();
  DAT_00151020 = 1;
  if (0 < param_1) {
    iVar4 = 0;
    do {
      iVar4 = iVar4 + 1;
      sVar1 = strlen(pcVar3);
      pcVar2 = (char *)xmalloc(sVar1 + 1);
      pcVar2 = strcpy(pcVar2,pcVar3);
      parse_and_execute(pcVar2,"trap",0x14);
    } while (param_1 != iVar4);
  }
  run_unwind_frame("SIGCHLD trap");
  running_trap = 0;
  return;
}

