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

int read_command(void)

{
  int iVar1;
  uint __seconds;
  SHELL_VAR *pSVar2;
  undefined1 *local_24;
  
  set_current_prompt_level(1);
  global_command = (COMMAND *)0x0;
  if (interactive != 0) {
    pSVar2 = find_variable("TMOUT");
    if (pSVar2 != (SHELL_VAR *)0x0) {
      if (pSVar2->value == (char *)0x0) {
        local_24 = (undefined1 *)0x0;
        __seconds = 0;
      }
      else {
        __seconds = strtol(pSVar2->value,(char **)0x0,10);
        local_24 = (undefined1 *)0x0;
        if (0 < (int)__seconds) {
          local_24 = set_signal_handler(0xe,alrm_catcher);
          alarm(__seconds);
        }
      }
      goto LAB_00032f90;
    }
  }
  local_24 = (undefined1 *)0x0;
  __seconds = 0;
  pSVar2 = (SHELL_VAR *)0x0;
LAB_00032f90:
  if (terminating_signal != 0) {
    termsig_handler(terminating_signal);
  }
  if (interrupt_state != 0) {
    throw_to_top_level();
  }
  current_command_line_count = 0;
  iVar1 = parse_command();
  if (((interactive != 0) && (pSVar2 != (SHELL_VAR *)0x0)) && (0 < (int)__seconds)) {
    alarm(0);
    set_signal_handler(0xe,local_24);
    return iVar1;
  }
  return iVar1;
}



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

undefined4 read_command(void)

{
  undefined4 uVar1;
  uint __seconds;
  int iVar2;
  undefined4 local_24;
  
  set_current_prompt_level(1);
  global_command = 0;
  if (interactive != 0) {
    iVar2 = find_variable("TMOUT");
    if (iVar2 != 0) {
      if (*(char **)(iVar2 + 4) == (char *)0x0) {
        local_24 = 0;
        __seconds = 0;
      }
      else {
        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);
        local_24 = 0;
        if (0 < (int)__seconds) {
          local_24 = set_signal_handler(0xe,FUN_00032df0);
          alarm(__seconds);
        }
      }
      goto LAB_00032f90;
    }
  }
  local_24 = 0;
  __seconds = 0;
  iVar2 = 0;
LAB_00032f90:
  if (terminating_signal != 0) {
    termsig_handler(terminating_signal);
  }
  if (interrupt_state != 0) {
    throw_to_top_level();
  }
  current_command_line_count = 0;
  uVar1 = parse_command();
  if (((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds)) {
    alarm(0);
    set_signal_handler(0xe,local_24);
    return uVar1;
  }
  return uVar1;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00031ed0
ADD EBX,0x1170a7
SUB ESP,0x28
PUSH 0x1
CALL 0x00035050
LEA ESI,[EBX + 0x484c]
LEA EAX,[EBX + 0x4858]
ADD ESP,0x10
MOV EDI,dword ptr [ESI]
MOV dword ptr [EAX],0x0
TEST EDI,EDI
JNZ 0x00033000
MOV dword ptr [ESP + 0x8],0x0
XOR EBP,EBP
XOR EDI,EDI
LEA EAX,[EBX + 0x72c0]
MOV EDX,dword ptr [EAX]
TEST EDX,EDX
JNZ 0x00032ff0
LEA EAX,[EBX + 0x72cc]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x00032fe0
LEA EAX,[EBX + 0x8c58]
MOV dword ptr [EAX],0x0
CALL 0x00032e40
MOV ECX,dword ptr [ESI]
MOV EDX,EAX
TEST ECX,ECX
JZ 0x00032fcd
TEST EDI,EDI
JZ 0x00032fcd
TEST EBP,EBP
JG 0x00033070
ADD ESP,0x1c
MOV EAX,EDX
POP EBX
POP ESI
POP EDI
POP EBP
RET
CALL 0x0007efc0
JMP 0x00032fa8
MOV EAX,dword ptr [EAX]
SUB ESP,0xc
PUSH EAX
CALL 0x0007f650
ADD ESP,0x10
JMP 0x00032f9c
SUB ESP,0xc
LEA EAX,[EBX + 0xfffa3608]
PUSH EAX
CALL 0x00051fa0
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JZ 0x00032f84
MOV EAX,dword ptr [EAX + 0x4]
TEST EAX,EAX
JZ 0x000330a0
SUB ESP,0x4
PUSH 0xa
PUSH 0x0
PUSH EAX
CALL 0x0002fcf0
ADD ESP,0x10
MOV EBP,EAX
MOV dword ptr [ESP + 0x8],0x0
TEST EAX,EAX
JLE 0x00032f90
SUB ESP,0x8
LEA EAX,[EBX + 0xffee8df0]
PUSH EAX
PUSH 0xe
CALL 0x0007f2e0
MOV dword ptr [ESP],EBP
MOV dword ptr [ESP + 0x18],EAX
CALL 0x0002f370
ADD ESP,0x10
JMP 0x00032f90
MOV dword ptr [ESP + 0xc],EAX
SUB ESP,0xc
PUSH 0x0
CALL 0x0002f370
POP EAX
POP EDX
PUSH dword ptr [ESP + 0x10]
PUSH 0xe
CALL 0x0007f2e0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
ADD ESP,0x1c
POP EBX
MOV EAX,EDX
POP ESI
POP EDI
POP EBP
RET
MOV dword ptr [ESP + 0x8],0x0
XOR EBP,EBP
JMP 0x00032f90
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 read_command(void)\n\n{\n  undefined4 uVar1;\n  uint __seconds;\n  int iVar2;\n  undefined4 local_24;\n  \n  set_current_prompt_level(1);\n  global_command = 0;\n  if (interactive != 0) {\n    iVar2 = find_variable("TMOUT");\n    if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }\n  local_24 = 0;\n  __seconds = 0;\n  iVar2 = 0;\nLAB_00032f90:\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  current_command_line_count = 0;\n  uVar1 = parse_command();\n  if (((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds)) {\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return uVar1;\n  }\n  return uVar1;\n}\n\n" comment (function_definition "undefined4 read_command(void)\n\n{\n  undefined4 uVar1;\n  uint __seconds;\n  int iVar2;\n  undefined4 local_24;\n  \n  set_current_prompt_level(1);\n  global_command = 0;\n  if (interactive != 0) {\n    iVar2 = find_variable("TMOUT");\n    if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }\n  local_24 = 0;\n  __seconds = 0;\n  iVar2 = 0;\nLAB_00032f90:\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  current_command_line_count = 0;\n  uVar1 = parse_command();\n  if (((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds)) {\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return uVar1;\n  }\n  return uVar1;\n}" type_identifier (function_declarator "read_command(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 uVar1;\n  uint __seconds;\n  int iVar2;\n  undefined4 local_24;\n  \n  set_current_prompt_level(1);\n  global_command = 0;\n  if (interactive != 0) {\n    iVar2 = find_variable("TMOUT");\n    if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }\n  local_24 = 0;\n  __seconds = 0;\n  iVar2 = 0;\nLAB_00032f90:\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  current_command_line_count = 0;\n  uVar1 = parse_command();\n  if (((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds)) {\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return uVar1;\n  }\n  return uVar1;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "uint __seconds;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (expression_statement "set_current_prompt_level(1);" (call_expression "set_current_prompt_level(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "global_command = 0;" (assignment_expression "global_command = 0" identifier = number_literal) ;) (if_statement "if (interactive != 0) {\n    iVar2 = find_variable("TMOUT");\n    if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }" if (parenthesized_expression "(interactive != 0)" ( (binary_expression "interactive != 0" identifier != number_literal) )) (compound_statement "{\n    iVar2 = find_variable("TMOUT");\n    if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }" { (expression_statement "iVar2 = find_variable("TMOUT");" (assignment_expression "iVar2 = find_variable("TMOUT")" identifier = (call_expression "find_variable("TMOUT")" identifier (argument_list "("TMOUT")" ( (string_literal ""TMOUT"" " string_content ") )))) ;) (if_statement "if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }" { (if_statement "if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }" if (parenthesized_expression "(*(char **)(iVar2 + 4) == (char *)0x0)" ( (binary_expression "*(char **)(iVar2 + 4) == (char *)0x0" (pointer_expression "*(char **)(iVar2 + 4)" * (cast_expression "(char **)(iVar2 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_24 = 0;\n        __seconds = 0;\n      }" { (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "__seconds = 0;" (assignment_expression "__seconds = 0" identifier = number_literal) ;) }) (else_clause "else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }" else (compound_statement "{\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }" { (expression_statement "__seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);" (assignment_expression "__seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10)" identifier = (call_expression "strtol(*(char **)(iVar2 + 4),(char **)0x0,10)" identifier (argument_list "(*(char **)(iVar2 + 4),(char **)0x0,10)" ( (pointer_expression "*(char **)(iVar2 + 4)" * (cast_expression "(char **)(iVar2 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }" if (parenthesized_expression "(0 < (int)__seconds)" ( (binary_expression "0 < (int)__seconds" number_literal < (cast_expression "(int)__seconds" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }" { (expression_statement "local_24 = set_signal_handler(0xe,FUN_00032df0);" (assignment_expression "local_24 = set_signal_handler(0xe,FUN_00032df0)" identifier = (call_expression "set_signal_handler(0xe,FUN_00032df0)" identifier (argument_list "(0xe,FUN_00032df0)" ( number_literal , identifier )))) ;) (expression_statement "alarm(__seconds);" (call_expression "alarm(__seconds)" identifier (argument_list "(__seconds)" ( identifier ))) ;) })) }))) (goto_statement "goto LAB_00032f90;" goto statement_identifier ;) })) })) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "__seconds = 0;" (assignment_expression "__seconds = 0" identifier = number_literal) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00032f90:\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }" statement_identifier : (if_statement "if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }" if (parenthesized_expression "(terminating_signal != 0)" ( (binary_expression "terminating_signal != 0" identifier != number_literal) )) (compound_statement "{\n    termsig_handler(terminating_signal);\n  }" { (expression_statement "termsig_handler(terminating_signal);" (call_expression "termsig_handler(terminating_signal)" identifier (argument_list "(terminating_signal)" ( identifier ))) ;) }))) (if_statement "if (interrupt_state != 0) {\n    throw_to_top_level();\n  }" if (parenthesized_expression "(interrupt_state != 0)" ( (binary_expression "interrupt_state != 0" identifier != number_literal) )) (compound_statement "{\n    throw_to_top_level();\n  }" { (expression_statement "throw_to_top_level();" (call_expression "throw_to_top_level()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "current_command_line_count = 0;" (assignment_expression "current_command_line_count = 0" identifier = number_literal) ;) (expression_statement "uVar1 = parse_command();" (assignment_expression "uVar1 = parse_command()" identifier = (call_expression "parse_command()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds)) {\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return uVar1;\n  }" if (parenthesized_expression "(((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds))" ( (binary_expression "((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds)" (parenthesized_expression "((interactive != 0) && (iVar2 != 0))" ( (binary_expression "(interactive != 0) && (iVar2 != 0)" (parenthesized_expression "(interactive != 0)" ( (binary_expression "interactive != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(0 < (int)__seconds)" ( (binary_expression "0 < (int)__seconds" number_literal < (cast_expression "(int)__seconds" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return uVar1;\n  }" { (expression_statement "alarm(0);" (call_expression "alarm(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "set_signal_handler(0xe,local_24);" (call_expression "set_signal_handler(0xe,local_24)" identifier (argument_list "(0xe,local_24)" ( number_literal , identifier ))) ;) (return_statement "return uVar1;" return identifier ;) })) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nint read_command(void)\n\n{\n  int iVar1;\n  uint __seconds;\n  SHELL_VAR *pSVar2;\n  undefined1 *local_24;\n  \n  set_current_prompt_level(1);\n  global_command = (COMMAND *)0x0;\n  if (interactive != 0) {\n    pSVar2 = find_variable("TMOUT");\n    if (pSVar2 != (SHELL_VAR *)0x0) {\n      if (pSVar2->value == (char *)0x0) {\n        local_24 = (undefined1 *)0x0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(pSVar2->value,(char **)0x0,10);\n        local_24 = (undefined1 *)0x0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,alrm_catcher);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }\n  local_24 = (undefined1 *)0x0;\n  __seconds = 0;\n  pSVar2 = (SHELL_VAR *)0x0;\nLAB_00032f90:\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  current_command_line_count = 0;\n  iVar1 = parse_command();\n  if (((interactive != 0) && (pSVar2 != (SHELL_VAR *)0x0)) && (0 < (int)__seconds)) {\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return iVar1;\n  }\n  return iVar1;\n}\n\n" comment comment (function_definition "int read_command(void)\n\n{\n  int iVar1;\n  uint __seconds;\n  SHELL_VAR *pSVar2;\n  undefined1 *local_24;\n  \n  set_current_prompt_level(1);\n  global_command = (COMMAND *)0x0;\n  if (interactive != 0) {\n    pSVar2 = find_variable("TMOUT");\n    if (pSVar2 != (SHELL_VAR *)0x0) {\n      if (pSVar2->value == (char *)0x0) {\n        local_24 = (undefined1 *)0x0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(pSVar2->value,(char **)0x0,10);\n        local_24 = (undefined1 *)0x0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,alrm_catcher);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }\n  local_24 = (undefined1 *)0x0;\n  __seconds = 0;\n  pSVar2 = (SHELL_VAR *)0x0;\nLAB_00032f90:\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  current_command_line_count = 0;\n  iVar1 = parse_command();\n  if (((interactive != 0) && (pSVar2 != (SHELL_VAR *)0x0)) && (0 < (int)__seconds)) {\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return iVar1;\n  }\n  return iVar1;\n}" primitive_type (function_declarator "read_command(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  uint __seconds;\n  SHELL_VAR *pSVar2;\n  undefined1 *local_24;\n  \n  set_current_prompt_level(1);\n  global_command = (COMMAND *)0x0;\n  if (interactive != 0) {\n    pSVar2 = find_variable("TMOUT");\n    if (pSVar2 != (SHELL_VAR *)0x0) {\n      if (pSVar2->value == (char *)0x0) {\n        local_24 = (undefined1 *)0x0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(pSVar2->value,(char **)0x0,10);\n        local_24 = (undefined1 *)0x0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,alrm_catcher);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }\n  local_24 = (undefined1 *)0x0;\n  __seconds = 0;\n  pSVar2 = (SHELL_VAR *)0x0;\nLAB_00032f90:\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  current_command_line_count = 0;\n  iVar1 = parse_command();\n  if (((interactive != 0) && (pSVar2 != (SHELL_VAR *)0x0)) && (0 < (int)__seconds)) {\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return iVar1;\n  }\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint __seconds;" type_identifier identifier ;) (declaration "SHELL_VAR *pSVar2;" type_identifier (pointer_declarator "*pSVar2" * identifier) ;) (declaration "undefined1 *local_24;" type_identifier (pointer_declarator "*local_24" * identifier) ;) (expression_statement "set_current_prompt_level(1);" (call_expression "set_current_prompt_level(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "global_command = (COMMAND *)0x0;" (assignment_expression "global_command = (COMMAND *)0x0" identifier = (cast_expression "(COMMAND *)0x0" ( (type_descriptor "COMMAND *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (interactive != 0) {\n    pSVar2 = find_variable("TMOUT");\n    if (pSVar2 != (SHELL_VAR *)0x0) {\n      if (pSVar2->value == (char *)0x0) {\n        local_24 = (undefined1 *)0x0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(pSVar2->value,(char **)0x0,10);\n        local_24 = (undefined1 *)0x0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,alrm_catcher);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }" if (parenthesized_expression "(interactive != 0)" ( (binary_expression "interactive != 0" identifier != number_literal) )) (compound_statement "{\n    pSVar2 = find_variable("TMOUT");\n    if (pSVar2 != (SHELL_VAR *)0x0) {\n      if (pSVar2->value == (char *)0x0) {\n        local_24 = (undefined1 *)0x0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(pSVar2->value,(char **)0x0,10);\n        local_24 = (undefined1 *)0x0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,alrm_catcher);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }" { (expression_statement "pSVar2 = find_variable("TMOUT");" (assignment_expression "pSVar2 = find_variable("TMOUT")" identifier = (call_expression "find_variable("TMOUT")" identifier (argument_list "("TMOUT")" ( (string_literal ""TMOUT"" " string_content ") )))) ;) (if_statement "if (pSVar2 != (SHELL_VAR *)0x0) {\n      if (pSVar2->value == (char *)0x0) {\n        local_24 = (undefined1 *)0x0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(pSVar2->value,(char **)0x0,10);\n        local_24 = (undefined1 *)0x0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,alrm_catcher);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }" if (parenthesized_expression "(pSVar2 != (SHELL_VAR *)0x0)" ( (binary_expression "pSVar2 != (SHELL_VAR *)0x0" identifier != (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pSVar2->value == (char *)0x0) {\n        local_24 = (undefined1 *)0x0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(pSVar2->value,(char **)0x0,10);\n        local_24 = (undefined1 *)0x0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,alrm_catcher);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }" { (if_statement "if (pSVar2->value == (char *)0x0) {\n        local_24 = (undefined1 *)0x0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(pSVar2->value,(char **)0x0,10);\n        local_24 = (undefined1 *)0x0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,alrm_catcher);\n          alarm(__seconds);\n        }\n      }" if (parenthesized_expression "(pSVar2->value == (char *)0x0)" ( (binary_expression "pSVar2->value == (char *)0x0" (field_expression "pSVar2->value" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_24 = (undefined1 *)0x0;\n        __seconds = 0;\n      }" { (expression_statement "local_24 = (undefined1 *)0x0;" (assignment_expression "local_24 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "__seconds = 0;" (assignment_expression "__seconds = 0" identifier = number_literal) ;) }) (else_clause "else {\n        __seconds = strtol(pSVar2->value,(char **)0x0,10);\n        local_24 = (undefined1 *)0x0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,alrm_catcher);\n          alarm(__seconds);\n        }\n      }" else (compound_statement "{\n        __seconds = strtol(pSVar2->value,(char **)0x0,10);\n        local_24 = (undefined1 *)0x0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,alrm_catcher);\n          alarm(__seconds);\n        }\n      }" { (expression_statement "__seconds = strtol(pSVar2->value,(char **)0x0,10);" (assignment_expression "__seconds = strtol(pSVar2->value,(char **)0x0,10)" identifier = (call_expression "strtol(pSVar2->value,(char **)0x0,10)" identifier (argument_list "(pSVar2->value,(char **)0x0,10)" ( (field_expression "pSVar2->value" identifier -> field_identifier) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (expression_statement "local_24 = (undefined1 *)0x0;" (assignment_expression "local_24 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,alrm_catcher);\n          alarm(__seconds);\n        }" if (parenthesized_expression "(0 < (int)__seconds)" ( (binary_expression "0 < (int)__seconds" number_literal < (cast_expression "(int)__seconds" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          local_24 = set_signal_handler(0xe,alrm_catcher);\n          alarm(__seconds);\n        }" { (expression_statement "local_24 = set_signal_handler(0xe,alrm_catcher);" (assignment_expression "local_24 = set_signal_handler(0xe,alrm_catcher)" identifier = (call_expression "set_signal_handler(0xe,alrm_catcher)" identifier (argument_list "(0xe,alrm_catcher)" ( number_literal , identifier )))) ;) (expression_statement "alarm(__seconds);" (call_expression "alarm(__seconds)" identifier (argument_list "(__seconds)" ( identifier ))) ;) })) }))) (goto_statement "goto LAB_00032f90;" goto statement_identifier ;) })) })) (expression_statement "local_24 = (undefined1 *)0x0;" (assignment_expression "local_24 = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "__seconds = 0;" (assignment_expression "__seconds = 0" identifier = number_literal) ;) (expression_statement "pSVar2 = (SHELL_VAR *)0x0;" (assignment_expression "pSVar2 = (SHELL_VAR *)0x0" identifier = (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_00032f90:\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }" statement_identifier : (if_statement "if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }" if (parenthesized_expression "(terminating_signal != 0)" ( (binary_expression "terminating_signal != 0" identifier != number_literal) )) (compound_statement "{\n    termsig_handler(terminating_signal);\n  }" { (expression_statement "termsig_handler(terminating_signal);" (call_expression "termsig_handler(terminating_signal)" identifier (argument_list "(terminating_signal)" ( identifier ))) ;) }))) (if_statement "if (interrupt_state != 0) {\n    throw_to_top_level();\n  }" if (parenthesized_expression "(interrupt_state != 0)" ( (binary_expression "interrupt_state != 0" identifier != number_literal) )) (compound_statement "{\n    throw_to_top_level();\n  }" { (expression_statement "throw_to_top_level();" (call_expression "throw_to_top_level()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "current_command_line_count = 0;" (assignment_expression "current_command_line_count = 0" identifier = number_literal) ;) (expression_statement "iVar1 = parse_command();" (assignment_expression "iVar1 = parse_command()" identifier = (call_expression "parse_command()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((interactive != 0) && (pSVar2 != (SHELL_VAR *)0x0)) && (0 < (int)__seconds)) {\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return iVar1;\n  }" if (parenthesized_expression "(((interactive != 0) && (pSVar2 != (SHELL_VAR *)0x0)) && (0 < (int)__seconds))" ( (binary_expression "((interactive != 0) && (pSVar2 != (SHELL_VAR *)0x0)) && (0 < (int)__seconds)" (parenthesized_expression "((interactive != 0) && (pSVar2 != (SHELL_VAR *)0x0))" ( (binary_expression "(interactive != 0) && (pSVar2 != (SHELL_VAR *)0x0)" (parenthesized_expression "(interactive != 0)" ( (binary_expression "interactive != 0" identifier != number_literal) )) && (parenthesized_expression "(pSVar2 != (SHELL_VAR *)0x0)" ( (binary_expression "pSVar2 != (SHELL_VAR *)0x0" identifier != (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(0 < (int)__seconds)" ( (binary_expression "0 < (int)__seconds" number_literal < (cast_expression "(int)__seconds" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return iVar1;\n  }" { (expression_statement "alarm(0);" (call_expression "alarm(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "set_signal_handler(0xe,local_24);" (call_expression "set_signal_handler(0xe,local_24)" identifier (argument_list "(0xe,local_24)" ( number_literal , identifier ))) ;) (return_statement "return iVar1;" return identifier ;) })) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit "undefined4 read_command(void)\n\n{\n  undefined4 uVar1;\n  uint __seconds;\n  int iVar2;\n  undefined4 local_24;\n  \n  set_current_prompt_level(1);\n  global_command = 0;\n  if (interactive != 0) {\n    iVar2 = find_variable("TMOUT");\n    if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }\n  local_24 = 0;\n  __seconds = 0;\n  iVar2 = 0;\nLAB_00032f90:\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  current_command_line_count = 0;\n  uVar1 = parse_command();\n  if (((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds)) {\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return uVar1;\n  }\n  return uVar1;\n}\n\n" (function_definition "undefined4 read_command(void)\n\n{\n  undefined4 uVar1;\n  uint __seconds;\n  int iVar2;\n  undefined4 local_24;\n  \n  set_current_prompt_level(1);\n  global_command = 0;\n  if (interactive != 0) {\n    iVar2 = find_variable("TMOUT");\n    if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }\n  local_24 = 0;\n  __seconds = 0;\n  iVar2 = 0;\nLAB_00032f90:\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  current_command_line_count = 0;\n  uVar1 = parse_command();\n  if (((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds)) {\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return uVar1;\n  }\n  return uVar1;\n}" type_identifier (function_declarator "read_command(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 uVar1;\n  uint __seconds;\n  int iVar2;\n  undefined4 local_24;\n  \n  set_current_prompt_level(1);\n  global_command = 0;\n  if (interactive != 0) {\n    iVar2 = find_variable("TMOUT");\n    if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }\n  local_24 = 0;\n  __seconds = 0;\n  iVar2 = 0;\nLAB_00032f90:\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  current_command_line_count = 0;\n  uVar1 = parse_command();\n  if (((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds)) {\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return uVar1;\n  }\n  return uVar1;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "uint __seconds;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (expression_statement "set_current_prompt_level(1);" (call_expression "set_current_prompt_level(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "global_command = 0;" (assignment_expression "global_command = 0" identifier = number_literal) ;) (if_statement "if (interactive != 0) {\n    iVar2 = find_variable("TMOUT");\n    if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }" if (parenthesized_expression "(interactive != 0)" ( (binary_expression "interactive != 0" identifier != number_literal) )) (compound_statement "{\n    iVar2 = find_variable("TMOUT");\n    if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }" { (expression_statement "iVar2 = find_variable("TMOUT");" (assignment_expression "iVar2 = find_variable("TMOUT")" identifier = (call_expression "find_variable("TMOUT")" identifier (argument_list "("TMOUT")" ( (string_literal ""TMOUT"" " string_content ") )))) ;) (if_statement "if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }" { (if_statement "if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }" if (parenthesized_expression "(*(char **)(iVar2 + 4) == (char *)0x0)" ( (binary_expression "*(char **)(iVar2 + 4) == (char *)0x0" (pointer_expression "*(char **)(iVar2 + 4)" * (cast_expression "(char **)(iVar2 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_24 = 0;\n        __seconds = 0;\n      }" { (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "__seconds = 0;" (assignment_expression "__seconds = 0" identifier = number_literal) ;) }) (else_clause "else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }" else (compound_statement "{\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }" { (expression_statement "__seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);" (assignment_expression "__seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10)" identifier = (call_expression "strtol(*(char **)(iVar2 + 4),(char **)0x0,10)" identifier (argument_list "(*(char **)(iVar2 + 4),(char **)0x0,10)" ( (pointer_expression "*(char **)(iVar2 + 4)" * (cast_expression "(char **)(iVar2 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }" if (parenthesized_expression "(0 < (int)__seconds)" ( (binary_expression "0 < (int)__seconds" number_literal < (cast_expression "(int)__seconds" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }" { (expression_statement "local_24 = set_signal_handler(0xe,FUN_00032df0);" (assignment_expression "local_24 = set_signal_handler(0xe,FUN_00032df0)" identifier = (call_expression "set_signal_handler(0xe,FUN_00032df0)" identifier (argument_list "(0xe,FUN_00032df0)" ( number_literal , identifier )))) ;) (expression_statement "alarm(__seconds);" (call_expression "alarm(__seconds)" identifier (argument_list "(__seconds)" ( identifier ))) ;) })) }))) (goto_statement "goto LAB_00032f90;" goto statement_identifier ;) })) })) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "__seconds = 0;" (assignment_expression "__seconds = 0" identifier = number_literal) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00032f90:\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }" statement_identifier : (if_statement "if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }" if (parenthesized_expression "(terminating_signal != 0)" ( (binary_expression "terminating_signal != 0" identifier != number_literal) )) (compound_statement "{\n    termsig_handler(terminating_signal);\n  }" { (expression_statement "termsig_handler(terminating_signal);" (call_expression "termsig_handler(terminating_signal)" identifier (argument_list "(terminating_signal)" ( identifier ))) ;) }))) (if_statement "if (interrupt_state != 0) {\n    throw_to_top_level();\n  }" if (parenthesized_expression "(interrupt_state != 0)" ( (binary_expression "interrupt_state != 0" identifier != number_literal) )) (compound_statement "{\n    throw_to_top_level();\n  }" { (expression_statement "throw_to_top_level();" (call_expression "throw_to_top_level()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "current_command_line_count = 0;" (assignment_expression "current_command_line_count = 0" identifier = number_literal) ;) (expression_statement "uVar1 = parse_command();" (assignment_expression "uVar1 = parse_command()" identifier = (call_expression "parse_command()" identifier (argument_list "()" ( )))) ;) (if_statement "if (((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds)) {\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return uVar1;\n  }" if (parenthesized_expression "(((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds))" ( (binary_expression "((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds)" (parenthesized_expression "((interactive != 0) && (iVar2 != 0))" ( (binary_expression "(interactive != 0) && (iVar2 != 0)" (parenthesized_expression "(interactive != 0)" ( (binary_expression "interactive != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(0 < (int)__seconds)" ( (binary_expression "0 < (int)__seconds" number_literal < (cast_expression "(int)__seconds" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return uVar1;\n  }" { (expression_statement "alarm(0);" (call_expression "alarm(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "set_signal_handler(0xe,local_24);" (call_expression "set_signal_handler(0xe,local_24)" identifier (argument_list "(0xe,local_24)" ( number_literal , identifier ))) ;) (return_statement "return uVar1;" return identifier ;) })) (return_statement "return uVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }))) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })))
(function_definition "undefined4 read_command(void)\n\n{\n  undefined4 uVar1;\n  uint __seconds;\n  int iVar2;\n  undefined4 local_24;\n  \n  set_current_prompt_level(1);\n  global_command = 0;\n  if (interactive != 0) {\n    iVar2 = find_variable("TMOUT");\n    if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }\n  local_24 = 0;\n  __seconds = 0;\n  iVar2 = 0;\nLAB_00032f90:\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  current_command_line_count = 0;\n  uVar1 = parse_command();\n  if (((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds)) {\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return uVar1;\n  }\n  return uVar1;\n}" (type_identifier "undefined4") (function_declarator "read_command(void)" (identifier "read_command") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  uint __seconds;\n  int iVar2;\n  undefined4 local_24;\n  \n  set_current_prompt_level(1);\n  global_command = 0;\n  if (interactive != 0) {\n    iVar2 = find_variable("TMOUT");\n    if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }\n  local_24 = 0;\n  __seconds = 0;\n  iVar2 = 0;\nLAB_00032f90:\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  current_command_line_count = 0;\n  uVar1 = parse_command();\n  if (((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds)) {\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return uVar1;\n  }\n  return uVar1;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "uint __seconds;" (type_identifier "uint") (identifier "__seconds") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (expression_statement "set_current_prompt_level(1);" (call_expression "set_current_prompt_level(1)" (identifier "set_current_prompt_level") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (expression_statement "global_command = 0;" (assignment_expression "global_command = 0" (identifier "global_command") (= "=") (number_literal "0")) (; ";")) (if_statement "if (interactive != 0) {\n    iVar2 = find_variable("TMOUT");\n    if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }" (if "if") (parenthesized_expression "(interactive != 0)" (( "(") (binary_expression "interactive != 0" (identifier "interactive") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = find_variable("TMOUT");\n    if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }\n  }" ({ "{") (expression_statement "iVar2 = find_variable("TMOUT");" (assignment_expression "iVar2 = find_variable("TMOUT")" (identifier "iVar2") (= "=") (call_expression "find_variable("TMOUT")" (identifier "find_variable") (argument_list "("TMOUT")" (( "(") (string_literal ""TMOUT"" (" """) (string_content "TMOUT") (" """)) () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }\n      goto LAB_00032f90;\n    }" ({ "{") (if_statement "if (*(char **)(iVar2 + 4) == (char *)0x0) {\n        local_24 = 0;\n        __seconds = 0;\n      }\n      else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }" (if "if") (parenthesized_expression "(*(char **)(iVar2 + 4) == (char *)0x0)" (( "(") (binary_expression "*(char **)(iVar2 + 4) == (char *)0x0" (pointer_expression "*(char **)(iVar2 + 4)" (* "*") (cast_expression "(char **)(iVar2 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")")))) (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        local_24 = 0;\n        __seconds = 0;\n      }" ({ "{") (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "__seconds = 0;" (assignment_expression "__seconds = 0" (identifier "__seconds") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }" (else "else") (compound_statement "{\n        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);\n        local_24 = 0;\n        if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }\n      }" ({ "{") (expression_statement "__seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);" (assignment_expression "__seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10)" (identifier "__seconds") (= "=") (call_expression "strtol(*(char **)(iVar2 + 4),(char **)0x0,10)" (identifier "strtol") (argument_list "(*(char **)(iVar2 + 4),(char **)0x0,10)" (( "(") (pointer_expression "*(char **)(iVar2 + 4)" (* "*") (cast_expression "(char **)(iVar2 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")")))) (, ",") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")) (, ",") (number_literal "10") () ")")))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)__seconds) {\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }" (if "if") (parenthesized_expression "(0 < (int)__seconds)" (( "(") (binary_expression "0 < (int)__seconds" (number_literal "0") (< "<") (cast_expression "(int)__seconds" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__seconds"))) () ")")) (compound_statement "{\n          local_24 = set_signal_handler(0xe,FUN_00032df0);\n          alarm(__seconds);\n        }" ({ "{") (expression_statement "local_24 = set_signal_handler(0xe,FUN_00032df0);" (assignment_expression "local_24 = set_signal_handler(0xe,FUN_00032df0)" (identifier "local_24") (= "=") (call_expression "set_signal_handler(0xe,FUN_00032df0)" (identifier "set_signal_handler") (argument_list "(0xe,FUN_00032df0)" (( "(") (number_literal "0xe") (, ",") (identifier "FUN_00032df0") () ")")))) (; ";")) (expression_statement "alarm(__seconds);" (call_expression "alarm(__seconds)" (identifier "alarm") (argument_list "(__seconds)" (( "(") (identifier "__seconds") () ")"))) (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_00032f90;" (goto "goto") (statement_identifier "LAB_00032f90") (; ";")) (} "}"))) (} "}"))) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "__seconds = 0;" (assignment_expression "__seconds = 0" (identifier "__seconds") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00032f90:\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }" (statement_identifier "LAB_00032f90") (: ":") (if_statement "if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }" (if "if") (parenthesized_expression "(terminating_signal != 0)" (( "(") (binary_expression "terminating_signal != 0" (identifier "terminating_signal") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    termsig_handler(terminating_signal);\n  }" ({ "{") (expression_statement "termsig_handler(terminating_signal);" (call_expression "termsig_handler(terminating_signal)" (identifier "termsig_handler") (argument_list "(terminating_signal)" (( "(") (identifier "terminating_signal") () ")"))) (; ";")) (} "}")))) (if_statement "if (interrupt_state != 0) {\n    throw_to_top_level();\n  }" (if "if") (parenthesized_expression "(interrupt_state != 0)" (( "(") (binary_expression "interrupt_state != 0" (identifier "interrupt_state") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    throw_to_top_level();\n  }" ({ "{") (expression_statement "throw_to_top_level();" (call_expression "throw_to_top_level()" (identifier "throw_to_top_level") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "current_command_line_count = 0;" (assignment_expression "current_command_line_count = 0" (identifier "current_command_line_count") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = parse_command();" (assignment_expression "uVar1 = parse_command()" (identifier "uVar1") (= "=") (call_expression "parse_command()" (identifier "parse_command") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds)) {\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return uVar1;\n  }" (if "if") (parenthesized_expression "(((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds))" (( "(") (binary_expression "((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds)" (parenthesized_expression "((interactive != 0) && (iVar2 != 0))" (( "(") (binary_expression "(interactive != 0) && (iVar2 != 0)" (parenthesized_expression "(interactive != 0)" (( "(") (binary_expression "interactive != 0" (identifier "interactive") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(0 < (int)__seconds)" (( "(") (binary_expression "0 < (int)__seconds" (number_literal "0") (< "<") (cast_expression "(int)__seconds" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__seconds"))) () ")"))) () ")")) (compound_statement "{\n    alarm(0);\n    set_signal_handler(0xe,local_24);\n    return uVar1;\n  }" ({ "{") (expression_statement "alarm(0);" (call_expression "alarm(0)" (identifier "alarm") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "set_signal_handler(0xe,local_24);" (call_expression "set_signal_handler(0xe,local_24)" (identifier "set_signal_handler") (argument_list "(0xe,local_24)" (( "(") (number_literal "0xe") (, ",") (identifier "local_24") () ")"))) (; ";")) (return_statement "return uVar1;" (return "return") (identifier "uVar1") (; ";")) (} "}"))) (return_statement "return uVar1;" (return "return") (identifier "uVar1") (; ";")) (} "}")))

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

int function_1(void)

{
  int iVar1;
  type_1 __seconds;
  type_2 *var_4;
  type_3 *local_24;
  
  var_1(1);
  global_command = (type_4 *)0x0;
  if (var_2 != 0) {
    var_4 = var_3("TMOUT");
    if (var_4 != (type_2 *)0x0) {
      if (var_4->value == (char *)0x0) {
        local_24 = (type_3 *)0x0;
        __seconds = 0;
      }
      else {
        __seconds = var_5(var_4->value,(char **)0x0,10);
        local_24 = (type_3 *)0x0;
        if (0 < (int)__seconds) {
          local_24 = var_6(0xe,alrm_catcher);
          var_7(__seconds);
        }
      }
      goto LAB_00032f90;
    }
  }
  local_24 = (type_3 *)0x0;
  __seconds = 0;
  var_4 = (type_2 *)0x0;
LAB_00032f90:
  if (var_8 != 0) {
    var_9(var_8);
  }
  if (var_10 != 0) {
    var_11();
  }
  current_command_line_count = 0;
  iVar1 = var_12();
  if (((var_2 != 0) && (var_4 != (type_2 *)0x0)) && (0 < (int)__seconds)) {
    var_7(0);
    var_6(0xe,local_24);
    return iVar1;
  }
  return iVar1;
}


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

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

undefined4 MASKED(void)

{
  undefined4 uVar1;
  uint __seconds;
  int iVar2;
  undefined4 local_24;
  
  set_current_prompt_level(1);
  global_command = 0;
  if (interactive != 0) {
    iVar2 = find_variable("TMOUT");
    if (iVar2 != 0) {
      if (*(char **)(iVar2 + 4) == (char *)0x0) {
        local_24 = 0;
        __seconds = 0;
      }
      else {
        __seconds = strtol(*(char **)(iVar2 + 4),(char **)0x0,10);
        local_24 = 0;
        if (0 < (int)__seconds) {
          local_24 = set_signal_handler(0xe,FUN_00032df0);
          alarm(__seconds);
        }
      }
      goto LAB_00032f90;
    }
  }
  local_24 = 0;
  __seconds = 0;
  iVar2 = 0;
LAB_00032f90:
  if (terminating_signal != 0) {
    termsig_handler(terminating_signal);
  }
  if (interrupt_state != 0) {
    throw_to_top_level();
  }
  current_command_line_count = 0;
  uVar1 = parse_command();
  if (((interactive != 0) && (iVar2 != 0)) && (0 < (int)__seconds)) {
    alarm(0);
    set_signal_handler(0xe,local_24);
    return uVar1;
  }
  return uVar1;
}

