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

int __regparm3
execute_disk_command
          (WORD_LIST *words,REDIRECT *redirects,char *command_line,int pipe_in,int pipe_out,
          int async,fd_bitmap *fds_to_close,int cmdflags)

{
  char *pcVar1;
  size_t sVar2;
  char *pcVar3;
  pid_t pVar4;
  int iVar5;
  SHELL_VAR *var;
  WORD_DESC *word;
  WORD_LIST *words_00;
  int iVar6;
  char *pcVar7;
  char **args;
  byte bVar8;
  
  pcVar7 = words->word->word;
  bVar8 = (pipe_in & pipe_out) == 0xffffffffU & (byte)((uint)cmdflags >> 6);
  if ((restricted != 0) && (pcVar1 = mbschr(pcVar7,0x2f), pcVar1 != (char *)0x0)) {
    pcVar1 = (char *)dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);
    internal_error(pcVar1,pcVar7);
    last_command_exit_value = 1;
    if (bVar8 != 0) {
                    /* WARNING: Subroutine does not return */
      exit(1);
    }
    iVar6 = 1;
    pcVar1 = (char *)0x0;
joined_r0x00049323:
    if (terminating_signal != 0) {
      termsig_handler(terminating_signal);
    }
    if (interrupt_state != 0) {
      throw_to_top_level();
    }
    close_pipes(pipe_in,pipe_out);
    if (pcVar1 != (char *)0x0) {
      free(pcVar1);
    }
    return iVar6;
  }
  pcVar1 = search_for_command(pcVar7,(-(uint)((cmdflags & 0x4000U) == 0) & 0xfffffffe) + 3);
  if (terminating_signal != 0) {
    termsig_handler(terminating_signal);
  }
  if (interrupt_state != 0) {
    throw_to_top_level();
  }
  if (pcVar1 != (char *)0x0) {
    if (bVar8 != 0) {
      adjust_shell_level(-1);
    }
    maybe_make_export_env();
    put_command_name_into_env(pcVar1);
  }
  if (bVar8 == 0) {
    sVar2 = strlen(command_line);
    pcVar3 = (char *)xmalloc(sVar2 + 1);
    pcVar3 = strcpy(pcVar3,command_line);
    pVar4 = make_child(pcVar3,async);
    if (pVar4 != 0) {
      iVar6 = 0;
      goto joined_r0x00049323;
    }
    reset_terminating_signals();
    restore_original_signals();
    if (sigterm_received != 0) {
      termsig_handler(0xf);
    }
    free(pcVar3);
  }
  else {
    reset_terminating_signals();
    restore_original_signals();
    if (sigterm_received != 0) {
      termsig_handler(0xf);
    }
  }
  if (async == 0) {
    if (fds_to_close != (fd_bitmap *)0x0) {
      close_fd_bitmap(fds_to_close);
    }
    do_piping(pipe_in,pipe_out);
    subshell_environment = subshell_environment | 8;
    iVar6 = interactive;
    if (redirects == (REDIRECT *)0x0) goto LAB_00049213;
    iVar5 = do_redirections(redirects,1);
    iVar6 = interactive;
  }
  else {
    if ((((cmdflags & 0x400U) != 0) && (pipe_in == -1)) &&
       (iVar6 = stdin_redirects(redirects), iVar6 == 0)) {
      async_redirect_stdin();
    }
    if (job_control == 0) {
      setup_async_signals();
    }
    if (fds_to_close != (fd_bitmap *)0x0) {
      close_fd_bitmap(fds_to_close);
    }
    do_piping(pipe_in,pipe_out);
    iVar6 = interactive;
    subshell_environment = subshell_environment | 8;
    interactive = 0;
    if (redirects == (REDIRECT *)0x0) goto LAB_00049213;
    iVar5 = do_redirections(redirects,1);
  }
  if (iVar5 != 0) {
    unlink_fifo_list();
                    /* WARNING: Subroutine does not return */
    exit(1);
  }
LAB_00049213:
  interactive = iVar6;
  if (pcVar1 != (char *)0x0) {
    if (sigterm_received != 0) {
      termsig_handler(0xf);
    }
    args = strvec_from_word_list(words,0,0,(int *)0x0);
    iVar6 = shell_execve(pcVar1,args,export_env);
                    /* WARNING: Subroutine does not return */
    exit(iVar6);
  }
  var = find_function("command_not_found_handle");
  if (var != (SHELL_VAR *)0x0) {
    without_job_control();
    set_sigchld_handler();
    word = make_word("command_not_found_handle");
    words_00 = make_word_list(word,words);
    iVar6 = execute_shell_function(var,words_00);
                    /* WARNING: Subroutine does not return */
    exit(iVar6);
  }
  pcVar7 = printable_filename(pcVar7,0);
  pcVar1 = (char *)dcgettext(0,"%s: command not found",5);
  internal_error(pcVar1,pcVar7);
                    /* WARNING: Subroutine does not return */
  exit(0x7f);
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined4 __regparm3
FUN_00049060(int param_1,int param_2,char *param_3,uint param_4,uint param_5,int param_6,int param_7
            ,uint param_8)

{
  void *__ptr;
  size_t sVar1;
  char *pcVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  byte bVar6;
  
  uVar4 = **(undefined4 **)(param_1 + 4);
  bVar6 = (param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6);
  if ((restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)) {
    uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);
    internal_error(uVar5,uVar4);
    last_command_exit_value = 1;
    if (bVar6 != 0) {
                    /* WARNING: Subroutine does not return */
      exit(1);
    }
    uVar4 = 1;
    __ptr = (void *)0x0;
joined_r0x00049323:
    if (terminating_signal != 0) {
      termsig_handler(terminating_signal);
    }
    if (interrupt_state != 0) {
      throw_to_top_level();
    }
    FUN_00046d60();
    if (__ptr != (void *)0x0) {
      free(__ptr);
    }
    return uVar4;
  }
  __ptr = (void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3);
  if (terminating_signal != 0) {
    termsig_handler(terminating_signal);
  }
  if (interrupt_state != 0) {
    throw_to_top_level();
  }
  if (__ptr != (void *)0x0) {
    if (bVar6 != 0) {
      adjust_shell_level(0xffffffff);
    }
    maybe_make_export_env();
    put_command_name_into_env(__ptr);
  }
  if (bVar6 == 0) {
    sVar1 = strlen(param_3);
    pcVar2 = (char *)xmalloc(sVar1 + 1);
    pcVar2 = strcpy(pcVar2,param_3);
    iVar3 = make_child(pcVar2,param_6);
    if (iVar3 != 0) {
      uVar4 = 0;
      goto joined_r0x00049323;
    }
    reset_terminating_signals();
    restore_original_signals();
    if (sigterm_received != 0) {
      termsig_handler(0xf);
    }
    free(pcVar2);
  }
  else {
    reset_terminating_signals();
    restore_original_signals();
    if (sigterm_received != 0) {
      termsig_handler(0xf);
    }
  }
  if (param_6 == 0) {
    if (param_7 != 0) {
      FUN_00047860();
    }
    FUN_000478d0();
    _subshell_environment = _subshell_environment | 8;
    uVar5 = interactive;
    if (param_2 == 0) goto LAB_00049213;
    iVar3 = do_redirections(param_2,1);
    uVar5 = interactive;
  }
  else {
    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&
       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {
      FUN_000479a0();
    }
    if (job_control == 0) {
      FUN_00048070();
    }
    if (param_7 != 0) {
      FUN_00047860();
    }
    FUN_000478d0();
    uVar5 = interactive;
    _subshell_environment = _subshell_environment | 8;
    interactive = 0;
    if (param_2 == 0) goto LAB_00049213;
    iVar3 = do_redirections(param_2,1);
  }
  if (iVar3 != 0) {
    unlink_fifo_list();
                    /* WARNING: Subroutine does not return */
    exit(1);
  }
LAB_00049213:
  interactive = uVar5;
  if (__ptr != (void *)0x0) {
    if (sigterm_received != 0) {
      termsig_handler(0xf);
    }
    uVar4 = strvec_from_word_list(param_1,0,0,0);
    iVar3 = shell_execve(__ptr,uVar4,export_env);
                    /* WARNING: Subroutine does not return */
    exit(iVar3);
  }
  iVar3 = find_function("command_not_found_handle");
  if (iVar3 != 0) {
    without_job_control();
    set_sigchld_handler();
    uVar4 = make_word("command_not_found_handle");
    uVar4 = make_word_list(uVar4,param_1);
    iVar3 = execute_shell_function(iVar3,uVar4);
                    /* WARNING: Subroutine does not return */
    exit(iVar3);
  }
  uVar4 = printable_filename(uVar4,0);
  uVar5 = dcgettext(0,"%s: command not found",5);
  internal_error(uVar5,uVar4);
                    /* WARNING: Subroutine does not return */
  exit(0x7f);
}


PUSH EBP
PUSH EDI
PUSH ESI
MOV ESI,ECX
PUSH EBX
CALL 0x00031ed0
ADD EBX,0x100f95
SUB ESP,0x2c
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [EAX + 0x4]
MOV EDI,dword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x14],EDX
MOV EAX,dword ptr [EAX]
AND EDI,0x4000
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x40]
AND EAX,dword ptr [ESP + 0x44]
CMP EAX,-0x1
MOV EAX,dword ptr [ESP + 0x50]
SETZ DL
SHR EAX,0x6
AND EDX,EAX
LEA EAX,[EBX + 0x5e78]
MOV byte ptr [ESP + 0xc],DL
MOV EBP,dword ptr [EAX]
TEST EBP,EBP
JNZ 0x000492b8
CMP EDI,0x1
SBB EAX,EAX
SUB ESP,0x8
AND EAX,0xfffffffe
ADD EAX,0x3
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x00093600
LEA EDI,[EBX + 0x72c0]
ADD ESP,0x10
MOV EBP,EAX
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JNZ 0x000493c0
LEA EAX,[EBX + 0x72cc]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x000493b0
TEST EBP,EBP
JZ 0x0004911b
CMP byte ptr [ESP + 0xc],0x0
JNZ 0x00049468
CALL 0x000562a0
SUB ESP,0xc
PUSH EBP
CALL 0x000542b0
ADD ESP,0x10
CMP byte ptr [ESP + 0xc],0x0
JNZ 0x000493d8
SUB ESP,0xc
PUSH ESI
CALL 0x0002f760
ADD EAX,0x1
MOV dword ptr [ESP],EAX
CALL 0x00099200
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x0002f580
MOV ESI,EAX
POP EAX
POP EDX
PUSH dword ptr [ESP + 0x50]
PUSH ESI
CALL 0x00060bf0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00049270
CALL 0x0007ee10
CALL 0x0007c720
LEA EDI,[EBX + 0x72c4]
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JNZ 0x00049440
SUB ESP,0xc
PUSH ESI
CALL 0x0002f200
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x48]
TEST EAX,EAX
JZ 0x00049350
TEST dword ptr [ESP + 0x50],0x400
JZ 0x000491a3
CMP dword ptr [ESP + 0x40],-0x1
JZ 0x00049480
LEA EAX,[EBX + 0x78c]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x00049458
MOV EDX,dword ptr [ESP + 0x4c]
TEST EDX,EDX
JZ 0x000491c4
MOV EAX,dword ptr [ESP + 0x4c]
CALL 0x00047860
MOV EDX,dword ptr [ESP + 0x44]
MOV EAX,dword ptr [ESP + 0x40]
CALL 0x000478d0
LEA EAX,[EBX + 0x8de4]
LEA ESI,[EBX + 0x484c]
OR dword ptr [EAX],0x8
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [ESI]
MOV dword ptr [ESI],0x0
TEST EAX,EAX
JZ 0x00049211
MOV dword ptr [ESP + 0xc],EDX
SUB ESP,0x8
PUSH 0x1
PUSH dword ptr [ESP + 0x20]
CALL 0x00095aa0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JNZ 0x0004939c
MOV dword ptr [ESI],EDX
TEST EBP,EBP
JNZ 0x000494a1
SUB ESP,0xc
LEA ESI,[EBX + 0xfffa585f]
PUSH ESI
CALL 0x00052900
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JZ 0x00049408
CALL 0x00064250
CALL 0x000643b0
SUB ESP,0xc
PUSH ESI
CALL 0x00042c30
POP ESI
POP EBP
PUSH dword ptr [ESP + 0x20]
PUSH EAX
CALL 0x00042ca0
POP EDX
POP ECX
PUSH EAX
PUSH EDI
CALL 0x0004eff0
MOV dword ptr [ESP],EAX
CALL 0x0002f6b0
MOV EAX,dword ptr [EDI]
XOR ESI,ESI
TEST EAX,EAX
JNZ 0x00049329
MOV EAX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x00049345
MOV EDX,dword ptr [ESP + 0x44]
MOV EAX,dword ptr [ESP + 0x40]
CALL 0x00046d60
TEST EBP,EBP
JZ 0x000492a7
SUB ESP,0xc
PUSH EBP
CALL 0x0002f200
ADD ESP,0x10
ADD ESP,0x2c
MOV EAX,ESI
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x8
PUSH 0x2f
MOV EBP,dword ptr [ESP + 0x1c]
PUSH EBP
CALL 0x000c36c0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000490ba
SUB ESP,0x4
LEA EAX,[EBX + 0xfffa573c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x0002f380
POP ECX
POP ESI
PUSH EBP
PUSH EAX
CALL 0x00059790
LEA EAX,[EBX + 0x8df0]
ADD ESP,0x10
CMP byte ptr [ESP + 0xc],0x0
MOV dword ptr [EAX],0x1
JNZ 0x000494d0
LEA EAX,[EBX + 0x72cc]
LEA EDI,[EBX + 0x72c0]
MOV ESI,0x1
XOR EBP,EBP
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JZ 0x0004927c
MOV EAX,dword ptr [EDI]
SUB ESP,0xc
PUSH EAX
CALL 0x0007f650
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x0004928a
CALL 0x0007efc0
JMP 0x0004928a
MOV EAX,dword ptr [ESP + 0x4c]
TEST EAX,EAX
JZ 0x00049361
MOV EAX,dword ptr [ESP + 0x4c]
CALL 0x00047860
MOV EAX,dword ptr [ESP + 0x40]
MOV EDX,dword ptr [ESP + 0x44]
CALL 0x000478d0
LEA EAX,[EBX + 0x8de4]
MOV ECX,dword ptr [ESP + 0x14]
OR dword ptr [EAX],0x8
TEST ECX,ECX
JZ 0x00049213
SUB ESP,0x8
PUSH 0x1
PUSH dword ptr [ESP + 0x20]
CALL 0x00095aa0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00049213
CALL 0x0006d470
SUB ESP,0xc
PUSH 0x1
CALL 0x0002f6b0
CALL 0x0007efc0
JMP 0x000490fb
MOV EAX,dword ptr [EDI]
SUB ESP,0xc
PUSH EAX
CALL 0x0007f650
ADD ESP,0x10
JMP 0x000490e7
CALL 0x0007ee10
CALL 0x0007c720
LEA EDI,[EBX + 0x72c4]
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JZ 0x00049182
SUB ESP,0xc
PUSH 0xf
CALL 0x0007f650
ADD ESP,0x10
JMP 0x00049182
SUB ESP,0x8
PUSH 0x0
PUSH dword ptr [ESP + 0x1c]
CALL 0x00042070
ADD ESP,0xc
MOV ESI,EAX
LEA EAX,[EBX + 0xfffa5878]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x0002f380
POP EDI
POP EBP
PUSH ESI
PUSH EAX
CALL 0x00059790
MOV dword ptr [ESP],0x7f
CALL 0x0002f6b0
SUB ESP,0xc
PUSH 0xf
CALL 0x0007f650
ADD ESP,0x10
JMP 0x00049176
CALL 0x00048070
JMP 0x000491b3
SUB ESP,0xc
PUSH -0x1
CALL 0x000558f0
ADD ESP,0x10
JMP 0x0004910a
SUB ESP,0xc
PUSH dword ptr [ESP + 0x20]
CALL 0x00095b40
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000491a3
CALL 0x000479a0
JMP 0x000491a3
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JNZ 0x000494db
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ESP + 0x24]
CALL 0x000bf3e0
LEA EDX,[EBX + 0x5ce8]
ADD ESP,0xc
PUSH dword ptr [EDX]
PUSH EAX
PUSH EBP
CALL 0x00048ad0
MOV dword ptr [ESP],EAX
CALL 0x0002f6b0
MOV EAX,dword ptr [EAX]
SUB ESP,0xc
PUSH EAX
CALL 0x0002f6b0
SUB ESP,0xc
PUSH 0xf
CALL 0x0007f650
ADD ESP,0x10
JMP 0x000494a7
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nundefined4 __regparm3\nFUN_00049060(int param_1,int param_2,char *param_3,uint param_4,uint param_5,int param_6,int param_7\n            ,uint param_8)\n\n{\n  void *__ptr;\n  size_t sVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  byte bVar6;\n  \n  uVar4 = **(undefined4 **)(param_1 + 4);\n  bVar6 = (param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6);\n  if ((restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)) {\n    uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(uVar5,uVar4);\n    last_command_exit_value = 1;\n    if (bVar6 != 0) {\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    uVar4 = 1;\n    __ptr = (void *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    FUN_00046d60();\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    return uVar4;\n  }\n  __ptr = (void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3);\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  if (__ptr != (void *)0x0) {\n    if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(__ptr);\n  }\n  if (bVar6 == 0) {\n    sVar1 = strlen(param_3);\n    pcVar2 = (char *)xmalloc(sVar1 + 1);\n    pcVar2 = strcpy(pcVar2,param_3);\n    iVar3 = make_child(pcVar2,param_6);\n    if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar2);\n  }\n  else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }\n  if (param_6 == 0) {\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    _subshell_environment = _subshell_environment | 8;\n    uVar5 = interactive;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n    uVar5 = interactive;\n  }\n  else {\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }\n  if (iVar3 != 0) {\n    unlink_fifo_list();\n                    /* WARNING: Subroutine does not return */\n    exit(1);\n  }\nLAB_00049213:\n  interactive = uVar5;\n  if (__ptr != (void *)0x0) {\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    uVar4 = strvec_from_word_list(param_1,0,0,0);\n    iVar3 = shell_execve(__ptr,uVar4,export_env);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar3);\n  }\n  iVar3 = find_function("command_not_found_handle");\n  if (iVar3 != 0) {\n    without_job_control();\n    set_sigchld_handler();\n    uVar4 = make_word("command_not_found_handle");\n    uVar4 = make_word_list(uVar4,param_1);\n    iVar3 = execute_shell_function(iVar3,uVar4);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar3);\n  }\n  uVar4 = printable_filename(uVar4,0);\n  uVar5 = dcgettext(0,"%s: command not found",5);\n  internal_error(uVar5,uVar4);\n                    /* WARNING: Subroutine does not return */\n  exit(0x7f);\n}\n\n" comment comment (function_definition "undefined4 __regparm3\nFUN_00049060(int param_1,int param_2,char *param_3,uint param_4,uint param_5,int param_6,int param_7\n            ,uint param_8)\n\n{\n  void *__ptr;\n  size_t sVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  byte bVar6;\n  \n  uVar4 = **(undefined4 **)(param_1 + 4);\n  bVar6 = (param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6);\n  if ((restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)) {\n    uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(uVar5,uVar4);\n    last_command_exit_value = 1;\n    if (bVar6 != 0) {\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    uVar4 = 1;\n    __ptr = (void *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    FUN_00046d60();\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    return uVar4;\n  }\n  __ptr = (void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3);\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  if (__ptr != (void *)0x0) {\n    if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(__ptr);\n  }\n  if (bVar6 == 0) {\n    sVar1 = strlen(param_3);\n    pcVar2 = (char *)xmalloc(sVar1 + 1);\n    pcVar2 = strcpy(pcVar2,param_3);\n    iVar3 = make_child(pcVar2,param_6);\n    if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar2);\n  }\n  else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }\n  if (param_6 == 0) {\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    _subshell_environment = _subshell_environment | 8;\n    uVar5 = interactive;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n    uVar5 = interactive;\n  }\n  else {\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }\n  if (iVar3 != 0) {\n    unlink_fifo_list();\n                    /* WARNING: Subroutine does not return */\n    exit(1);\n  }\nLAB_00049213:\n  interactive = uVar5;\n  if (__ptr != (void *)0x0) {\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    uVar4 = strvec_from_word_list(param_1,0,0,0);\n    iVar3 = shell_execve(__ptr,uVar4,export_env);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar3);\n  }\n  iVar3 = find_function("command_not_found_handle");\n  if (iVar3 != 0) {\n    without_job_control();\n    set_sigchld_handler();\n    uVar4 = make_word("command_not_found_handle");\n    uVar4 = make_word_list(uVar4,param_1);\n    iVar3 = execute_shell_function(iVar3,uVar4);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar3);\n  }\n  uVar4 = printable_filename(uVar4,0);\n  uVar5 = dcgettext(0,"%s: command not found",5);\n  internal_error(uVar5,uVar4);\n                    /* WARNING: Subroutine does not return */\n  exit(0x7f);\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00049060(int param_1,int param_2,char *param_3,uint param_4,uint param_5,int param_6,int param_7\n            ,uint param_8)" identifier (parameter_list "(int param_1,int param_2,char *param_3,uint param_4,uint param_5,int param_6,int param_7\n            ,uint param_8)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "uint param_8" type_identifier identifier) ))) (compound_statement "{\n  void *__ptr;\n  size_t sVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  byte bVar6;\n  \n  uVar4 = **(undefined4 **)(param_1 + 4);\n  bVar6 = (param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6);\n  if ((restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)) {\n    uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(uVar5,uVar4);\n    last_command_exit_value = 1;\n    if (bVar6 != 0) {\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    uVar4 = 1;\n    __ptr = (void *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    FUN_00046d60();\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    return uVar4;\n  }\n  __ptr = (void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3);\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  if (__ptr != (void *)0x0) {\n    if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(__ptr);\n  }\n  if (bVar6 == 0) {\n    sVar1 = strlen(param_3);\n    pcVar2 = (char *)xmalloc(sVar1 + 1);\n    pcVar2 = strcpy(pcVar2,param_3);\n    iVar3 = make_child(pcVar2,param_6);\n    if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar2);\n  }\n  else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }\n  if (param_6 == 0) {\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    _subshell_environment = _subshell_environment | 8;\n    uVar5 = interactive;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n    uVar5 = interactive;\n  }\n  else {\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }\n  if (iVar3 != 0) {\n    unlink_fifo_list();\n                    /* WARNING: Subroutine does not return */\n    exit(1);\n  }\nLAB_00049213:\n  interactive = uVar5;\n  if (__ptr != (void *)0x0) {\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    uVar4 = strvec_from_word_list(param_1,0,0,0);\n    iVar3 = shell_execve(__ptr,uVar4,export_env);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar3);\n  }\n  iVar3 = find_function("command_not_found_handle");\n  if (iVar3 != 0) {\n    without_job_control();\n    set_sigchld_handler();\n    uVar4 = make_word("command_not_found_handle");\n    uVar4 = make_word_list(uVar4,param_1);\n    iVar3 = execute_shell_function(iVar3,uVar4);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar3);\n  }\n  uVar4 = printable_filename(uVar4,0);\n  uVar5 = dcgettext(0,"%s: command not found",5);\n  internal_error(uVar5,uVar4);\n                    /* WARNING: Subroutine does not return */\n  exit(0x7f);\n}" { (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (expression_statement "uVar4 = **(undefined4 **)(param_1 + 4);" (assignment_expression "uVar4 = **(undefined4 **)(param_1 + 4)" identifier = (pointer_expression "**(undefined4 **)(param_1 + 4)" * (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))))) ;) (expression_statement "bVar6 = (param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6);" (assignment_expression "bVar6 = (param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6)" identifier = (binary_expression "(param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6)" (binary_expression "(param_4 & param_5) == 0xffffffff" (parenthesized_expression "(param_4 & param_5)" ( (binary_expression "param_4 & param_5" identifier & identifier) )) == number_literal) & (call_expression "(byte)(param_8 >> 6)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(param_8 >> 6)" ( (binary_expression "param_8 >> 6" identifier >> number_literal) ))))) ;) (if_statement "if ((restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)) {\n    uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(uVar5,uVar4);\n    last_command_exit_value = 1;\n    if (bVar6 != 0) {\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    uVar4 = 1;\n    __ptr = (void *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    FUN_00046d60();\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    return uVar4;\n  }" if (parenthesized_expression "((restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0))" ( (binary_expression "(restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)" (parenthesized_expression "(restricted != 0)" ( (binary_expression "restricted != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)" ( (comma_expression "iVar3 = mbschr(uVar4,0x2f), iVar3 != 0" (assignment_expression "iVar3 = mbschr(uVar4,0x2f)" identifier = (call_expression "mbschr(uVar4,0x2f)" identifier (argument_list "(uVar4,0x2f)" ( identifier , number_literal )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(uVar5,uVar4);\n    last_command_exit_value = 1;\n    if (bVar6 != 0) {\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    uVar4 = 1;\n    __ptr = (void *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    FUN_00046d60();\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    return uVar4;\n  }" { (expression_statement "uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);" (assignment_expression "uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5)" identifier = (call_expression "dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5)" identifier (argument_list "(0,"%s: restricted: cannot specify `/\' in command names",5)" ( number_literal , (string_literal ""%s: restricted: cannot specify `/\' in command names"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "internal_error(uVar5,uVar4);" (call_expression "internal_error(uVar5,uVar4)" identifier (argument_list "(uVar5,uVar4)" ( identifier , identifier ))) ;) (expression_statement "last_command_exit_value = 1;" (assignment_expression "last_command_exit_value = 1" identifier = number_literal) ;) (if_statement "if (bVar6 != 0) {\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }" if (parenthesized_expression "(bVar6 != 0)" ( (binary_expression "bVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }" { comment (expression_statement "exit(1);" (call_expression "exit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (expression_statement "__ptr = (void *)0x0;" (assignment_expression "__ptr = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "joined_r0x00049323:\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 "FUN_00046d60();" (call_expression "FUN_00046d60()" identifier (argument_list "()" ( ))) ;) (if_statement "if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(__ptr);\n    }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (return_statement "return uVar4;" return identifier ;) })) (expression_statement "__ptr = (void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3);" (assignment_expression "__ptr = (void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3)" identifier = (cast_expression "(void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3)" identifier (argument_list "(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3)" ( identifier , (binary_expression "(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3" (parenthesized_expression "(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe)" ( (binary_expression "-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe" (unary_expression "-(uint)((param_8 & 0x4000) == 0)" - (call_expression "(uint)((param_8 & 0x4000) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_8 & 0x4000) == 0)" ( (binary_expression "(param_8 & 0x4000) == 0" (parenthesized_expression "(param_8 & 0x4000)" ( (binary_expression "param_8 & 0x4000" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) ))))) ;) (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 "()" ( ))) ;) })) (if_statement "if (__ptr != (void *)0x0) {\n    if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(__ptr);\n  }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(__ptr);\n  }" { (if_statement "if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }" if (parenthesized_expression "(bVar6 != 0)" ( (binary_expression "bVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      adjust_shell_level(0xffffffff);\n    }" { (expression_statement "adjust_shell_level(0xffffffff);" (call_expression "adjust_shell_level(0xffffffff)" identifier (argument_list "(0xffffffff)" ( number_literal ))) ;) })) (expression_statement "maybe_make_export_env();" (call_expression "maybe_make_export_env()" identifier (argument_list "()" ( ))) ;) (expression_statement "put_command_name_into_env(__ptr);" (call_expression "put_command_name_into_env(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (if_statement "if (bVar6 == 0) {\n    sVar1 = strlen(param_3);\n    pcVar2 = (char *)xmalloc(sVar1 + 1);\n    pcVar2 = strcpy(pcVar2,param_3);\n    iVar3 = make_child(pcVar2,param_6);\n    if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar2);\n  }\n  else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    sVar1 = strlen(param_3);\n    pcVar2 = (char *)xmalloc(sVar1 + 1);\n    pcVar2 = strcpy(pcVar2,param_3);\n    iVar3 = make_child(pcVar2,param_6);\n    if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar2);\n  }" { (expression_statement "sVar1 = strlen(param_3);" (assignment_expression "sVar1 = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( 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,param_3);" (assignment_expression "pcVar2 = strcpy(pcVar2,param_3)" identifier = (call_expression "strcpy(pcVar2,param_3)" identifier (argument_list "(pcVar2,param_3)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = make_child(pcVar2,param_6);" (assignment_expression "iVar3 = make_child(pcVar2,param_6)" identifier = (call_expression "make_child(pcVar2,param_6)" identifier (argument_list "(pcVar2,param_6)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (goto_statement "goto joined_r0x00049323;" goto statement_identifier ;) })) (expression_statement "reset_terminating_signals();" (call_expression "reset_terminating_signals()" identifier (argument_list "()" ( ))) ;) (expression_statement "restore_original_signals();" (call_expression "restore_original_signals()" identifier (argument_list "()" ( ))) ;) (if_statement "if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }" if (parenthesized_expression "(sigterm_received != 0)" ( (binary_expression "sigterm_received != 0" identifier != number_literal) )) (compound_statement "{\n      termsig_handler(0xf);\n    }" { (expression_statement "termsig_handler(0xf);" (call_expression "termsig_handler(0xf)" identifier (argument_list "(0xf)" ( number_literal ))) ;) })) (expression_statement "free(pcVar2);" (call_expression "free(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) }) (else_clause "else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }" else (compound_statement "{\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }" { (expression_statement "reset_terminating_signals();" (call_expression "reset_terminating_signals()" identifier (argument_list "()" ( ))) ;) (expression_statement "restore_original_signals();" (call_expression "restore_original_signals()" identifier (argument_list "()" ( ))) ;) (if_statement "if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }" if (parenthesized_expression "(sigterm_received != 0)" ( (binary_expression "sigterm_received != 0" identifier != number_literal) )) (compound_statement "{\n      termsig_handler(0xf);\n    }" { (expression_statement "termsig_handler(0xf);" (call_expression "termsig_handler(0xf)" identifier (argument_list "(0xf)" ( number_literal ))) ;) })) }))) (if_statement "if (param_6 == 0) {\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    _subshell_environment = _subshell_environment | 8;\n    uVar5 = interactive;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n    uVar5 = interactive;\n  }\n  else {\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    _subshell_environment = _subshell_environment | 8;\n    uVar5 = interactive;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n    uVar5 = interactive;\n  }" { (if_statement "if (param_7 != 0) {\n      FUN_00047860();\n    }" if (parenthesized_expression "(param_7 != 0)" ( (binary_expression "param_7 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00047860();\n    }" { (expression_statement "FUN_00047860();" (call_expression "FUN_00047860()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_000478d0();" (call_expression "FUN_000478d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "_subshell_environment = _subshell_environment | 8;" (assignment_expression "_subshell_environment = _subshell_environment | 8" identifier = (binary_expression "_subshell_environment | 8" identifier | number_literal)) ;) (expression_statement "uVar5 = interactive;" (assignment_expression "uVar5 = interactive" identifier = identifier) ;) (if_statement "if (param_2 == 0) goto LAB_00049213;" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00049213;" goto statement_identifier ;)) (expression_statement "iVar3 = do_redirections(param_2,1);" (assignment_expression "iVar3 = do_redirections(param_2,1)" identifier = (call_expression "do_redirections(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal )))) ;) (expression_statement "uVar5 = interactive;" (assignment_expression "uVar5 = interactive" identifier = identifier) ;) }) (else_clause "else {\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }" else (compound_statement "{\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }" { (if_statement "if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }" if (parenthesized_expression "((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0))" ( (binary_expression "(((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)" (parenthesized_expression "(((param_8 & 0x400) != 0) && (param_4 == 0xffffffff))" ( (binary_expression "((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)" (parenthesized_expression "((param_8 & 0x400) != 0)" ( (binary_expression "(param_8 & 0x400) != 0" (parenthesized_expression "(param_8 & 0x400)" ( (binary_expression "param_8 & 0x400" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(param_4 == 0xffffffff)" ( (binary_expression "param_4 == 0xffffffff" identifier == number_literal) ))) )) && (parenthesized_expression "(iVar3 = stdin_redirects(param_2), iVar3 == 0)" ( (comma_expression "iVar3 = stdin_redirects(param_2), iVar3 == 0" (assignment_expression "iVar3 = stdin_redirects(param_2)" identifier = (call_expression "stdin_redirects(param_2)" identifier (argument_list "(param_2)" ( identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      FUN_000479a0();\n    }" { (expression_statement "FUN_000479a0();" (call_expression "FUN_000479a0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (job_control == 0) {\n      FUN_00048070();\n    }" if (parenthesized_expression "(job_control == 0)" ( (binary_expression "job_control == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00048070();\n    }" { (expression_statement "FUN_00048070();" (call_expression "FUN_00048070()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (param_7 != 0) {\n      FUN_00047860();\n    }" if (parenthesized_expression "(param_7 != 0)" ( (binary_expression "param_7 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00047860();\n    }" { (expression_statement "FUN_00047860();" (call_expression "FUN_00047860()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_000478d0();" (call_expression "FUN_000478d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar5 = interactive;" (assignment_expression "uVar5 = interactive" identifier = identifier) ;) (expression_statement "_subshell_environment = _subshell_environment | 8;" (assignment_expression "_subshell_environment = _subshell_environment | 8" identifier = (binary_expression "_subshell_environment | 8" identifier | number_literal)) ;) (expression_statement "interactive = 0;" (assignment_expression "interactive = 0" identifier = number_literal) ;) (if_statement "if (param_2 == 0) goto LAB_00049213;" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00049213;" goto statement_identifier ;)) (expression_statement "iVar3 = do_redirections(param_2,1);" (assignment_expression "iVar3 = do_redirections(param_2,1)" identifier = (call_expression "do_redirections(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal )))) ;) }))) (if_statement "if (iVar3 != 0) {\n    unlink_fifo_list();\n                    /* WARNING: Subroutine does not return */\n    exit(1);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    unlink_fifo_list();\n                    /* WARNING: Subroutine does not return */\n    exit(1);\n  }" { (expression_statement "unlink_fifo_list();" (call_expression "unlink_fifo_list()" identifier (argument_list "()" ( ))) ;) comment (expression_statement "exit(1);" (call_expression "exit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (labeled_statement "LAB_00049213:\n  interactive = uVar5;" statement_identifier : (expression_statement "interactive = uVar5;" (assignment_expression "interactive = uVar5" identifier = identifier) ;)) (if_statement "if (__ptr != (void *)0x0) {\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    uVar4 = strvec_from_word_list(param_1,0,0,0);\n    iVar3 = shell_execve(__ptr,uVar4,export_env);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar3);\n  }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    uVar4 = strvec_from_word_list(param_1,0,0,0);\n    iVar3 = shell_execve(__ptr,uVar4,export_env);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar3);\n  }" { (if_statement "if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }" if (parenthesized_expression "(sigterm_received != 0)" ( (binary_expression "sigterm_received != 0" identifier != number_literal) )) (compound_statement "{\n      termsig_handler(0xf);\n    }" { (expression_statement "termsig_handler(0xf);" (call_expression "termsig_handler(0xf)" identifier (argument_list "(0xf)" ( number_literal ))) ;) })) (expression_statement "uVar4 = strvec_from_word_list(param_1,0,0,0);" (assignment_expression "uVar4 = strvec_from_word_list(param_1,0,0,0)" identifier = (call_expression "strvec_from_word_list(param_1,0,0,0)" identifier (argument_list "(param_1,0,0,0)" ( identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "iVar3 = shell_execve(__ptr,uVar4,export_env);" (assignment_expression "iVar3 = shell_execve(__ptr,uVar4,export_env)" identifier = (call_expression "shell_execve(__ptr,uVar4,export_env)" identifier (argument_list "(__ptr,uVar4,export_env)" ( identifier , identifier , identifier )))) ;) comment (expression_statement "exit(iVar3);" (call_expression "exit(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) })) (expression_statement "iVar3 = find_function("command_not_found_handle");" (assignment_expression "iVar3 = find_function("command_not_found_handle")" identifier = (call_expression "find_function("command_not_found_handle")" identifier (argument_list "("command_not_found_handle")" ( (string_literal ""command_not_found_handle"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n    without_job_control();\n    set_sigchld_handler();\n    uVar4 = make_word("command_not_found_handle");\n    uVar4 = make_word_list(uVar4,param_1);\n    iVar3 = execute_shell_function(iVar3,uVar4);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar3);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    without_job_control();\n    set_sigchld_handler();\n    uVar4 = make_word("command_not_found_handle");\n    uVar4 = make_word_list(uVar4,param_1);\n    iVar3 = execute_shell_function(iVar3,uVar4);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar3);\n  }" { (expression_statement "without_job_control();" (call_expression "without_job_control()" identifier (argument_list "()" ( ))) ;) (expression_statement "set_sigchld_handler();" (call_expression "set_sigchld_handler()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar4 = make_word("command_not_found_handle");" (assignment_expression "uVar4 = make_word("command_not_found_handle")" identifier = (call_expression "make_word("command_not_found_handle")" identifier (argument_list "("command_not_found_handle")" ( (string_literal ""command_not_found_handle"" " string_content ") )))) ;) (expression_statement "uVar4 = make_word_list(uVar4,param_1);" (assignment_expression "uVar4 = make_word_list(uVar4,param_1)" identifier = (call_expression "make_word_list(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = execute_shell_function(iVar3,uVar4);" (assignment_expression "iVar3 = execute_shell_function(iVar3,uVar4)" identifier = (call_expression "execute_shell_function(iVar3,uVar4)" identifier (argument_list "(iVar3,uVar4)" ( identifier , identifier )))) ;) comment (expression_statement "exit(iVar3);" (call_expression "exit(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) })) (expression_statement "uVar4 = printable_filename(uVar4,0);" (assignment_expression "uVar4 = printable_filename(uVar4,0)" identifier = (call_expression "printable_filename(uVar4,0)" identifier (argument_list "(uVar4,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar5 = dcgettext(0,"%s: command not found",5);" (assignment_expression "uVar5 = dcgettext(0,"%s: command not found",5)" identifier = (call_expression "dcgettext(0,"%s: command not found",5)" identifier (argument_list "(0,"%s: command not found",5)" ( number_literal , (string_literal ""%s: command not found"" " string_content ") , number_literal )))) ;) (expression_statement "internal_error(uVar5,uVar4);" (call_expression "internal_error(uVar5,uVar4)" identifier (argument_list "(uVar5,uVar4)" ( identifier , identifier ))) ;) comment (expression_statement "exit(0x7f);" (call_expression "exit(0x7f)" identifier (argument_list "(0x7f)" ( number_literal ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3\nexecute_disk_command\n          (WORD_LIST *words,REDIRECT *redirects,char *command_line,int pipe_in,int pipe_out,\n          int async,fd_bitmap *fds_to_close,int cmdflags)\n\n{\n  char *pcVar1;\n  size_t sVar2;\n  char *pcVar3;\n  pid_t pVar4;\n  int iVar5;\n  SHELL_VAR *var;\n  WORD_DESC *word;\n  WORD_LIST *words_00;\n  int iVar6;\n  char *pcVar7;\n  char **args;\n  byte bVar8;\n  \n  pcVar7 = words->word->word;\n  bVar8 = (pipe_in & pipe_out) == 0xffffffffU & (byte)((uint)cmdflags >> 6);\n  if ((restricted != 0) && (pcVar1 = mbschr(pcVar7,0x2f), pcVar1 != (char *)0x0)) {\n    pcVar1 = (char *)dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(pcVar1,pcVar7);\n    last_command_exit_value = 1;\n    if (bVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    iVar6 = 1;\n    pcVar1 = (char *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    close_pipes(pipe_in,pipe_out);\n    if (pcVar1 != (char *)0x0) {\n      free(pcVar1);\n    }\n    return iVar6;\n  }\n  pcVar1 = search_for_command(pcVar7,(-(uint)((cmdflags & 0x4000U) == 0) & 0xfffffffe) + 3);\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  if (pcVar1 != (char *)0x0) {\n    if (bVar8 != 0) {\n      adjust_shell_level(-1);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(pcVar1);\n  }\n  if (bVar8 == 0) {\n    sVar2 = strlen(command_line);\n    pcVar3 = (char *)xmalloc(sVar2 + 1);\n    pcVar3 = strcpy(pcVar3,command_line);\n    pVar4 = make_child(pcVar3,async);\n    if (pVar4 != 0) {\n      iVar6 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar3);\n  }\n  else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }\n  if (async == 0) {\n    if (fds_to_close != (fd_bitmap *)0x0) {\n      close_fd_bitmap(fds_to_close);\n    }\n    do_piping(pipe_in,pipe_out);\n    subshell_environment = subshell_environment | 8;\n    iVar6 = interactive;\n    if (redirects == (REDIRECT *)0x0) goto LAB_00049213;\n    iVar5 = do_redirections(redirects,1);\n    iVar6 = interactive;\n  }\n  else {\n    if ((((cmdflags & 0x400U) != 0) && (pipe_in == -1)) &&\n       (iVar6 = stdin_redirects(redirects), iVar6 == 0)) {\n      async_redirect_stdin();\n    }\n    if (job_control == 0) {\n      setup_async_signals();\n    }\n    if (fds_to_close != (fd_bitmap *)0x0) {\n      close_fd_bitmap(fds_to_close);\n    }\n    do_piping(pipe_in,pipe_out);\n    iVar6 = interactive;\n    subshell_environment = subshell_environment | 8;\n    interactive = 0;\n    if (redirects == (REDIRECT *)0x0) goto LAB_00049213;\n    iVar5 = do_redirections(redirects,1);\n  }\n  if (iVar5 != 0) {\n    unlink_fifo_list();\n                    /* WARNING: Subroutine does not return */\n    exit(1);\n  }\nLAB_00049213:\n  interactive = iVar6;\n  if (pcVar1 != (char *)0x0) {\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    args = strvec_from_word_list(words,0,0,(int *)0x0);\n    iVar6 = shell_execve(pcVar1,args,export_env);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar6);\n  }\n  var = find_function("command_not_found_handle");\n  if (var != (SHELL_VAR *)0x0) {\n    without_job_control();\n    set_sigchld_handler();\n    word = make_word("command_not_found_handle");\n    words_00 = make_word_list(word,words);\n    iVar6 = execute_shell_function(var,words_00);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar6);\n  }\n  pcVar7 = printable_filename(pcVar7,0);\n  pcVar1 = (char *)dcgettext(0,"%s: command not found",5);\n  internal_error(pcVar1,pcVar7);\n                    /* WARNING: Subroutine does not return */\n  exit(0x7f);\n}\n\n" comment (function_definition "int __regparm3\nexecute_disk_command\n          (WORD_LIST *words,REDIRECT *redirects,char *command_line,int pipe_in,int pipe_out,\n          int async,fd_bitmap *fds_to_close,int cmdflags)\n\n{\n  char *pcVar1;\n  size_t sVar2;\n  char *pcVar3;\n  pid_t pVar4;\n  int iVar5;\n  SHELL_VAR *var;\n  WORD_DESC *word;\n  WORD_LIST *words_00;\n  int iVar6;\n  char *pcVar7;\n  char **args;\n  byte bVar8;\n  \n  pcVar7 = words->word->word;\n  bVar8 = (pipe_in & pipe_out) == 0xffffffffU & (byte)((uint)cmdflags >> 6);\n  if ((restricted != 0) && (pcVar1 = mbschr(pcVar7,0x2f), pcVar1 != (char *)0x0)) {\n    pcVar1 = (char *)dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(pcVar1,pcVar7);\n    last_command_exit_value = 1;\n    if (bVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    iVar6 = 1;\n    pcVar1 = (char *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    close_pipes(pipe_in,pipe_out);\n    if (pcVar1 != (char *)0x0) {\n      free(pcVar1);\n    }\n    return iVar6;\n  }\n  pcVar1 = search_for_command(pcVar7,(-(uint)((cmdflags & 0x4000U) == 0) & 0xfffffffe) + 3);\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  if (pcVar1 != (char *)0x0) {\n    if (bVar8 != 0) {\n      adjust_shell_level(-1);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(pcVar1);\n  }\n  if (bVar8 == 0) {\n    sVar2 = strlen(command_line);\n    pcVar3 = (char *)xmalloc(sVar2 + 1);\n    pcVar3 = strcpy(pcVar3,command_line);\n    pVar4 = make_child(pcVar3,async);\n    if (pVar4 != 0) {\n      iVar6 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar3);\n  }\n  else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }\n  if (async == 0) {\n    if (fds_to_close != (fd_bitmap *)0x0) {\n      close_fd_bitmap(fds_to_close);\n    }\n    do_piping(pipe_in,pipe_out);\n    subshell_environment = subshell_environment | 8;\n    iVar6 = interactive;\n    if (redirects == (REDIRECT *)0x0) goto LAB_00049213;\n    iVar5 = do_redirections(redirects,1);\n    iVar6 = interactive;\n  }\n  else {\n    if ((((cmdflags & 0x400U) != 0) && (pipe_in == -1)) &&\n       (iVar6 = stdin_redirects(redirects), iVar6 == 0)) {\n      async_redirect_stdin();\n    }\n    if (job_control == 0) {\n      setup_async_signals();\n    }\n    if (fds_to_close != (fd_bitmap *)0x0) {\n      close_fd_bitmap(fds_to_close);\n    }\n    do_piping(pipe_in,pipe_out);\n    iVar6 = interactive;\n    subshell_environment = subshell_environment | 8;\n    interactive = 0;\n    if (redirects == (REDIRECT *)0x0) goto LAB_00049213;\n    iVar5 = do_redirections(redirects,1);\n  }\n  if (iVar5 != 0) {\n    unlink_fifo_list();\n                    /* WARNING: Subroutine does not return */\n    exit(1);\n  }\nLAB_00049213:\n  interactive = iVar6;\n  if (pcVar1 != (char *)0x0) {\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    args = strvec_from_word_list(words,0,0,(int *)0x0);\n    iVar6 = shell_execve(pcVar1,args,export_env);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar6);\n  }\n  var = find_function("command_not_found_handle");\n  if (var != (SHELL_VAR *)0x0) {\n    without_job_control();\n    set_sigchld_handler();\n    word = make_word("command_not_found_handle");\n    words_00 = make_word_list(word,words);\n    iVar6 = execute_shell_function(var,words_00);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar6);\n  }\n  pcVar7 = printable_filename(pcVar7,0);\n  pcVar1 = (char *)dcgettext(0,"%s: command not found",5);\n  internal_error(pcVar1,pcVar7);\n                    /* WARNING: Subroutine does not return */\n  exit(0x7f);\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "execute_disk_command\n          (WORD_LIST *words,REDIRECT *redirects,char *command_line,int pipe_in,int pipe_out,\n          int async,fd_bitmap *fds_to_close,int cmdflags)" identifier (parameter_list "(WORD_LIST *words,REDIRECT *redirects,char *command_line,int pipe_in,int pipe_out,\n          int async,fd_bitmap *fds_to_close,int cmdflags)" ( (parameter_declaration "WORD_LIST *words" type_identifier (pointer_declarator "*words" * identifier)) , (parameter_declaration "REDIRECT *redirects" type_identifier (pointer_declarator "*redirects" * identifier)) , (parameter_declaration "char *command_line" primitive_type (pointer_declarator "*command_line" * identifier)) , (parameter_declaration "int pipe_in" primitive_type identifier) , (parameter_declaration "int pipe_out" primitive_type identifier) , (parameter_declaration "int async" primitive_type identifier) , (parameter_declaration "fd_bitmap *fds_to_close" type_identifier (pointer_declarator "*fds_to_close" * identifier)) , (parameter_declaration "int cmdflags" primitive_type identifier) ))) (compound_statement "{\n  char *pcVar1;\n  size_t sVar2;\n  char *pcVar3;\n  pid_t pVar4;\n  int iVar5;\n  SHELL_VAR *var;\n  WORD_DESC *word;\n  WORD_LIST *words_00;\n  int iVar6;\n  char *pcVar7;\n  char **args;\n  byte bVar8;\n  \n  pcVar7 = words->word->word;\n  bVar8 = (pipe_in & pipe_out) == 0xffffffffU & (byte)((uint)cmdflags >> 6);\n  if ((restricted != 0) && (pcVar1 = mbschr(pcVar7,0x2f), pcVar1 != (char *)0x0)) {\n    pcVar1 = (char *)dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(pcVar1,pcVar7);\n    last_command_exit_value = 1;\n    if (bVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    iVar6 = 1;\n    pcVar1 = (char *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    close_pipes(pipe_in,pipe_out);\n    if (pcVar1 != (char *)0x0) {\n      free(pcVar1);\n    }\n    return iVar6;\n  }\n  pcVar1 = search_for_command(pcVar7,(-(uint)((cmdflags & 0x4000U) == 0) & 0xfffffffe) + 3);\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  if (pcVar1 != (char *)0x0) {\n    if (bVar8 != 0) {\n      adjust_shell_level(-1);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(pcVar1);\n  }\n  if (bVar8 == 0) {\n    sVar2 = strlen(command_line);\n    pcVar3 = (char *)xmalloc(sVar2 + 1);\n    pcVar3 = strcpy(pcVar3,command_line);\n    pVar4 = make_child(pcVar3,async);\n    if (pVar4 != 0) {\n      iVar6 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar3);\n  }\n  else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }\n  if (async == 0) {\n    if (fds_to_close != (fd_bitmap *)0x0) {\n      close_fd_bitmap(fds_to_close);\n    }\n    do_piping(pipe_in,pipe_out);\n    subshell_environment = subshell_environment | 8;\n    iVar6 = interactive;\n    if (redirects == (REDIRECT *)0x0) goto LAB_00049213;\n    iVar5 = do_redirections(redirects,1);\n    iVar6 = interactive;\n  }\n  else {\n    if ((((cmdflags & 0x400U) != 0) && (pipe_in == -1)) &&\n       (iVar6 = stdin_redirects(redirects), iVar6 == 0)) {\n      async_redirect_stdin();\n    }\n    if (job_control == 0) {\n      setup_async_signals();\n    }\n    if (fds_to_close != (fd_bitmap *)0x0) {\n      close_fd_bitmap(fds_to_close);\n    }\n    do_piping(pipe_in,pipe_out);\n    iVar6 = interactive;\n    subshell_environment = subshell_environment | 8;\n    interactive = 0;\n    if (redirects == (REDIRECT *)0x0) goto LAB_00049213;\n    iVar5 = do_redirections(redirects,1);\n  }\n  if (iVar5 != 0) {\n    unlink_fifo_list();\n                    /* WARNING: Subroutine does not return */\n    exit(1);\n  }\nLAB_00049213:\n  interactive = iVar6;\n  if (pcVar1 != (char *)0x0) {\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    args = strvec_from_word_list(words,0,0,(int *)0x0);\n    iVar6 = shell_execve(pcVar1,args,export_env);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar6);\n  }\n  var = find_function("command_not_found_handle");\n  if (var != (SHELL_VAR *)0x0) {\n    without_job_control();\n    set_sigchld_handler();\n    word = make_word("command_not_found_handle");\n    words_00 = make_word_list(word,words);\n    iVar6 = execute_shell_function(var,words_00);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar6);\n  }\n  pcVar7 = printable_filename(pcVar7,0);\n  pcVar1 = (char *)dcgettext(0,"%s: command not found",5);\n  internal_error(pcVar1,pcVar7);\n                    /* WARNING: Subroutine does not return */\n  exit(0x7f);\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "pid_t pVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "SHELL_VAR *var;" type_identifier (pointer_declarator "*var" * identifier) ;) (declaration "WORD_DESC *word;" type_identifier (pointer_declarator "*word" * identifier) ;) (declaration "WORD_LIST *words_00;" type_identifier (pointer_declarator "*words_00" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char **args;" primitive_type (pointer_declarator "**args" * (pointer_declarator "*args" * identifier)) ;) (declaration "byte bVar8;" type_identifier identifier ;) (expression_statement "pcVar7 = words->word->word;" (assignment_expression "pcVar7 = words->word->word" identifier = (field_expression "words->word->word" (field_expression "words->word" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "bVar8 = (pipe_in & pipe_out) == 0xffffffffU & (byte)((uint)cmdflags >> 6);" (assignment_expression "bVar8 = (pipe_in & pipe_out) == 0xffffffffU & (byte)((uint)cmdflags >> 6)" identifier = (binary_expression "(pipe_in & pipe_out) == 0xffffffffU & (byte)((uint)cmdflags >> 6)" (binary_expression "(pipe_in & pipe_out) == 0xffffffffU" (parenthesized_expression "(pipe_in & pipe_out)" ( (binary_expression "pipe_in & pipe_out" identifier & identifier) )) == number_literal) & (call_expression "(byte)((uint)cmdflags >> 6)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)cmdflags >> 6)" ( (binary_expression "(uint)cmdflags >> 6" (cast_expression "(uint)cmdflags" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) ))))) ;) (if_statement "if ((restricted != 0) && (pcVar1 = mbschr(pcVar7,0x2f), pcVar1 != (char *)0x0)) {\n    pcVar1 = (char *)dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(pcVar1,pcVar7);\n    last_command_exit_value = 1;\n    if (bVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    iVar6 = 1;\n    pcVar1 = (char *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    close_pipes(pipe_in,pipe_out);\n    if (pcVar1 != (char *)0x0) {\n      free(pcVar1);\n    }\n    return iVar6;\n  }" if (parenthesized_expression "((restricted != 0) && (pcVar1 = mbschr(pcVar7,0x2f), pcVar1 != (char *)0x0))" ( (binary_expression "(restricted != 0) && (pcVar1 = mbschr(pcVar7,0x2f), pcVar1 != (char *)0x0)" (parenthesized_expression "(restricted != 0)" ( (binary_expression "restricted != 0" identifier != number_literal) )) && (parenthesized_expression "(pcVar1 = mbschr(pcVar7,0x2f), pcVar1 != (char *)0x0)" ( (comma_expression "pcVar1 = mbschr(pcVar7,0x2f), pcVar1 != (char *)0x0" (assignment_expression "pcVar1 = mbschr(pcVar7,0x2f)" identifier = (call_expression "mbschr(pcVar7,0x2f)" identifier (argument_list "(pcVar7,0x2f)" ( identifier , number_literal )))) , (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    pcVar1 = (char *)dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(pcVar1,pcVar7);\n    last_command_exit_value = 1;\n    if (bVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }\n    iVar6 = 1;\n    pcVar1 = (char *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    close_pipes(pipe_in,pipe_out);\n    if (pcVar1 != (char *)0x0) {\n      free(pcVar1);\n    }\n    return iVar6;\n  }" { (expression_statement "pcVar1 = (char *)dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5)" identifier (argument_list "(0,"%s: restricted: cannot specify `/\' in command names",5)" ( number_literal , (string_literal ""%s: restricted: cannot specify `/\' in command names"" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "internal_error(pcVar1,pcVar7);" (call_expression "internal_error(pcVar1,pcVar7)" identifier (argument_list "(pcVar1,pcVar7)" ( identifier , identifier ))) ;) (expression_statement "last_command_exit_value = 1;" (assignment_expression "last_command_exit_value = 1" identifier = number_literal) ;) (if_statement "if (bVar8 != 0) {\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }" if (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      exit(1);\n    }" { comment (expression_statement "exit(1);" (call_expression "exit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "iVar6 = 1;" (assignment_expression "iVar6 = 1" identifier = number_literal) ;) (expression_statement "pcVar1 = (char *)0x0;" (assignment_expression "pcVar1 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "joined_r0x00049323:\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 "close_pipes(pipe_in,pipe_out);" (call_expression "close_pipes(pipe_in,pipe_out)" identifier (argument_list "(pipe_in,pipe_out)" ( identifier , identifier ))) ;) (if_statement "if (pcVar1 != (char *)0x0) {\n      free(pcVar1);\n    }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(pcVar1);\n    }" { (expression_statement "free(pcVar1);" (call_expression "free(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) })) (return_statement "return iVar6;" return identifier ;) })) (expression_statement "pcVar1 = search_for_command(pcVar7,(-(uint)((cmdflags & 0x4000U) == 0) & 0xfffffffe) + 3);" (assignment_expression "pcVar1 = search_for_command(pcVar7,(-(uint)((cmdflags & 0x4000U) == 0) & 0xfffffffe) + 3)" identifier = (call_expression "search_for_command(pcVar7,(-(uint)((cmdflags & 0x4000U) == 0) & 0xfffffffe) + 3)" identifier (argument_list "(pcVar7,(-(uint)((cmdflags & 0x4000U) == 0) & 0xfffffffe) + 3)" ( identifier , (binary_expression "(-(uint)((cmdflags & 0x4000U) == 0) & 0xfffffffe) + 3" (parenthesized_expression "(-(uint)((cmdflags & 0x4000U) == 0) & 0xfffffffe)" ( (binary_expression "-(uint)((cmdflags & 0x4000U) == 0) & 0xfffffffe" (unary_expression "-(uint)((cmdflags & 0x4000U) == 0)" - (call_expression "(uint)((cmdflags & 0x4000U) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((cmdflags & 0x4000U) == 0)" ( (binary_expression "(cmdflags & 0x4000U) == 0" (parenthesized_expression "(cmdflags & 0x4000U)" ( (binary_expression "cmdflags & 0x4000U" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) )))) ;) (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 "()" ( ))) ;) })) (if_statement "if (pcVar1 != (char *)0x0) {\n    if (bVar8 != 0) {\n      adjust_shell_level(-1);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(pcVar1);\n  }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (bVar8 != 0) {\n      adjust_shell_level(-1);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(pcVar1);\n  }" { (if_statement "if (bVar8 != 0) {\n      adjust_shell_level(-1);\n    }" if (parenthesized_expression "(bVar8 != 0)" ( (binary_expression "bVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      adjust_shell_level(-1);\n    }" { (expression_statement "adjust_shell_level(-1);" (call_expression "adjust_shell_level(-1)" identifier (argument_list "(-1)" ( number_literal ))) ;) })) (expression_statement "maybe_make_export_env();" (call_expression "maybe_make_export_env()" identifier (argument_list "()" ( ))) ;) (expression_statement "put_command_name_into_env(pcVar1);" (call_expression "put_command_name_into_env(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) })) (if_statement "if (bVar8 == 0) {\n    sVar2 = strlen(command_line);\n    pcVar3 = (char *)xmalloc(sVar2 + 1);\n    pcVar3 = strcpy(pcVar3,command_line);\n    pVar4 = make_child(pcVar3,async);\n    if (pVar4 != 0) {\n      iVar6 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar3);\n  }\n  else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }" if (parenthesized_expression "(bVar8 == 0)" ( (binary_expression "bVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    sVar2 = strlen(command_line);\n    pcVar3 = (char *)xmalloc(sVar2 + 1);\n    pcVar3 = strcpy(pcVar3,command_line);\n    pVar4 = make_child(pcVar3,async);\n    if (pVar4 != 0) {\n      iVar6 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar3);\n  }" { (expression_statement "sVar2 = strlen(command_line);" (assignment_expression "sVar2 = strlen(command_line)" identifier = (call_expression "strlen(command_line)" identifier (argument_list "(command_line)" ( identifier )))) ;) (expression_statement "pcVar3 = (char *)xmalloc(sVar2 + 1);" (assignment_expression "pcVar3 = (char *)xmalloc(sVar2 + 1)" identifier = (cast_expression "(char *)xmalloc(sVar2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar2 + 1)" identifier (argument_list "(sVar2 + 1)" ( (binary_expression "sVar2 + 1" identifier + number_literal) ))))) ;) (expression_statement "pcVar3 = strcpy(pcVar3,command_line);" (assignment_expression "pcVar3 = strcpy(pcVar3,command_line)" identifier = (call_expression "strcpy(pcVar3,command_line)" identifier (argument_list "(pcVar3,command_line)" ( identifier , identifier )))) ;) (expression_statement "pVar4 = make_child(pcVar3,async);" (assignment_expression "pVar4 = make_child(pcVar3,async)" identifier = (call_expression "make_child(pcVar3,async)" identifier (argument_list "(pcVar3,async)" ( identifier , identifier )))) ;) (if_statement "if (pVar4 != 0) {\n      iVar6 = 0;\n      goto joined_r0x00049323;\n    }" if (parenthesized_expression "(pVar4 != 0)" ( (binary_expression "pVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar6 = 0;\n      goto joined_r0x00049323;\n    }" { (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (goto_statement "goto joined_r0x00049323;" goto statement_identifier ;) })) (expression_statement "reset_terminating_signals();" (call_expression "reset_terminating_signals()" identifier (argument_list "()" ( ))) ;) (expression_statement "restore_original_signals();" (call_expression "restore_original_signals()" identifier (argument_list "()" ( ))) ;) (if_statement "if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }" if (parenthesized_expression "(sigterm_received != 0)" ( (binary_expression "sigterm_received != 0" identifier != number_literal) )) (compound_statement "{\n      termsig_handler(0xf);\n    }" { (expression_statement "termsig_handler(0xf);" (call_expression "termsig_handler(0xf)" identifier (argument_list "(0xf)" ( number_literal ))) ;) })) (expression_statement "free(pcVar3);" (call_expression "free(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) }) (else_clause "else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }" else (compound_statement "{\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }" { (expression_statement "reset_terminating_signals();" (call_expression "reset_terminating_signals()" identifier (argument_list "()" ( ))) ;) (expression_statement "restore_original_signals();" (call_expression "restore_original_signals()" identifier (argument_list "()" ( ))) ;) (if_statement "if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }" if (parenthesized_expression "(sigterm_received != 0)" ( (binary_expression "sigterm_received != 0" identifier != number_literal) )) (compound_statement "{\n      termsig_handler(0xf);\n    }" { (expression_statement "termsig_handler(0xf);" (call_expression "termsig_handler(0xf)" identifier (argument_list "(0xf)" ( number_literal ))) ;) })) }))) (if_statement "if (async == 0) {\n    if (fds_to_close != (fd_bitmap *)0x0) {\n      close_fd_bitmap(fds_to_close);\n    }\n    do_piping(pipe_in,pipe_out);\n    subshell_environment = subshell_environment | 8;\n    iVar6 = interactive;\n    if (redirects == (REDIRECT *)0x0) goto LAB_00049213;\n    iVar5 = do_redirections(redirects,1);\n    iVar6 = interactive;\n  }\n  else {\n    if ((((cmdflags & 0x400U) != 0) && (pipe_in == -1)) &&\n       (iVar6 = stdin_redirects(redirects), iVar6 == 0)) {\n      async_redirect_stdin();\n    }\n    if (job_control == 0) {\n      setup_async_signals();\n    }\n    if (fds_to_close != (fd_bitmap *)0x0) {\n      close_fd_bitmap(fds_to_close);\n    }\n    do_piping(pipe_in,pipe_out);\n    iVar6 = interactive;\n    subshell_environment = subshell_environment | 8;\n    interactive = 0;\n    if (redirects == (REDIRECT *)0x0) goto LAB_00049213;\n    iVar5 = do_redirections(redirects,1);\n  }" if (parenthesized_expression "(async == 0)" ( (binary_expression "async == 0" identifier == number_literal) )) (compound_statement "{\n    if (fds_to_close != (fd_bitmap *)0x0) {\n      close_fd_bitmap(fds_to_close);\n    }\n    do_piping(pipe_in,pipe_out);\n    subshell_environment = subshell_environment | 8;\n    iVar6 = interactive;\n    if (redirects == (REDIRECT *)0x0) goto LAB_00049213;\n    iVar5 = do_redirections(redirects,1);\n    iVar6 = interactive;\n  }" { (if_statement "if (fds_to_close != (fd_bitmap *)0x0) {\n      close_fd_bitmap(fds_to_close);\n    }" if (parenthesized_expression "(fds_to_close != (fd_bitmap *)0x0)" ( (binary_expression "fds_to_close != (fd_bitmap *)0x0" identifier != (cast_expression "(fd_bitmap *)0x0" ( (type_descriptor "fd_bitmap *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      close_fd_bitmap(fds_to_close);\n    }" { (expression_statement "close_fd_bitmap(fds_to_close);" (call_expression "close_fd_bitmap(fds_to_close)" identifier (argument_list "(fds_to_close)" ( identifier ))) ;) })) (expression_statement "do_piping(pipe_in,pipe_out);" (call_expression "do_piping(pipe_in,pipe_out)" identifier (argument_list "(pipe_in,pipe_out)" ( identifier , identifier ))) ;) (expression_statement "subshell_environment = subshell_environment | 8;" (assignment_expression "subshell_environment = subshell_environment | 8" identifier = (binary_expression "subshell_environment | 8" identifier | number_literal)) ;) (expression_statement "iVar6 = interactive;" (assignment_expression "iVar6 = interactive" identifier = identifier) ;) (if_statement "if (redirects == (REDIRECT *)0x0) goto LAB_00049213;" if (parenthesized_expression "(redirects == (REDIRECT *)0x0)" ( (binary_expression "redirects == (REDIRECT *)0x0" identifier == (cast_expression "(REDIRECT *)0x0" ( (type_descriptor "REDIRECT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00049213;" goto statement_identifier ;)) (expression_statement "iVar5 = do_redirections(redirects,1);" (assignment_expression "iVar5 = do_redirections(redirects,1)" identifier = (call_expression "do_redirections(redirects,1)" identifier (argument_list "(redirects,1)" ( identifier , number_literal )))) ;) (expression_statement "iVar6 = interactive;" (assignment_expression "iVar6 = interactive" identifier = identifier) ;) }) (else_clause "else {\n    if ((((cmdflags & 0x400U) != 0) && (pipe_in == -1)) &&\n       (iVar6 = stdin_redirects(redirects), iVar6 == 0)) {\n      async_redirect_stdin();\n    }\n    if (job_control == 0) {\n      setup_async_signals();\n    }\n    if (fds_to_close != (fd_bitmap *)0x0) {\n      close_fd_bitmap(fds_to_close);\n    }\n    do_piping(pipe_in,pipe_out);\n    iVar6 = interactive;\n    subshell_environment = subshell_environment | 8;\n    interactive = 0;\n    if (redirects == (REDIRECT *)0x0) goto LAB_00049213;\n    iVar5 = do_redirections(redirects,1);\n  }" else (compound_statement "{\n    if ((((cmdflags & 0x400U) != 0) && (pipe_in == -1)) &&\n       (iVar6 = stdin_redirects(redirects), iVar6 == 0)) {\n      async_redirect_stdin();\n    }\n    if (job_control == 0) {\n      setup_async_signals();\n    }\n    if (fds_to_close != (fd_bitmap *)0x0) {\n      close_fd_bitmap(fds_to_close);\n    }\n    do_piping(pipe_in,pipe_out);\n    iVar6 = interactive;\n    subshell_environment = subshell_environment | 8;\n    interactive = 0;\n    if (redirects == (REDIRECT *)0x0) goto LAB_00049213;\n    iVar5 = do_redirections(redirects,1);\n  }" { (if_statement "if ((((cmdflags & 0x400U) != 0) && (pipe_in == -1)) &&\n       (iVar6 = stdin_redirects(redirects), iVar6 == 0)) {\n      async_redirect_stdin();\n    }" if (parenthesized_expression "((((cmdflags & 0x400U) != 0) && (pipe_in == -1)) &&\n       (iVar6 = stdin_redirects(redirects), iVar6 == 0))" ( (binary_expression "(((cmdflags & 0x400U) != 0) && (pipe_in == -1)) &&\n       (iVar6 = stdin_redirects(redirects), iVar6 == 0)" (parenthesized_expression "(((cmdflags & 0x400U) != 0) && (pipe_in == -1))" ( (binary_expression "((cmdflags & 0x400U) != 0) && (pipe_in == -1)" (parenthesized_expression "((cmdflags & 0x400U) != 0)" ( (binary_expression "(cmdflags & 0x400U) != 0" (parenthesized_expression "(cmdflags & 0x400U)" ( (binary_expression "cmdflags & 0x400U" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(pipe_in == -1)" ( (binary_expression "pipe_in == -1" identifier == number_literal) ))) )) && (parenthesized_expression "(iVar6 = stdin_redirects(redirects), iVar6 == 0)" ( (comma_expression "iVar6 = stdin_redirects(redirects), iVar6 == 0" (assignment_expression "iVar6 = stdin_redirects(redirects)" identifier = (call_expression "stdin_redirects(redirects)" identifier (argument_list "(redirects)" ( identifier )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      async_redirect_stdin();\n    }" { (expression_statement "async_redirect_stdin();" (call_expression "async_redirect_stdin()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (job_control == 0) {\n      setup_async_signals();\n    }" if (parenthesized_expression "(job_control == 0)" ( (binary_expression "job_control == 0" identifier == number_literal) )) (compound_statement "{\n      setup_async_signals();\n    }" { (expression_statement "setup_async_signals();" (call_expression "setup_async_signals()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (fds_to_close != (fd_bitmap *)0x0) {\n      close_fd_bitmap(fds_to_close);\n    }" if (parenthesized_expression "(fds_to_close != (fd_bitmap *)0x0)" ( (binary_expression "fds_to_close != (fd_bitmap *)0x0" identifier != (cast_expression "(fd_bitmap *)0x0" ( (type_descriptor "fd_bitmap *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      close_fd_bitmap(fds_to_close);\n    }" { (expression_statement "close_fd_bitmap(fds_to_close);" (call_expression "close_fd_bitmap(fds_to_close)" identifier (argument_list "(fds_to_close)" ( identifier ))) ;) })) (expression_statement "do_piping(pipe_in,pipe_out);" (call_expression "do_piping(pipe_in,pipe_out)" identifier (argument_list "(pipe_in,pipe_out)" ( identifier , identifier ))) ;) (expression_statement "iVar6 = interactive;" (assignment_expression "iVar6 = interactive" identifier = identifier) ;) (expression_statement "subshell_environment = subshell_environment | 8;" (assignment_expression "subshell_environment = subshell_environment | 8" identifier = (binary_expression "subshell_environment | 8" identifier | number_literal)) ;) (expression_statement "interactive = 0;" (assignment_expression "interactive = 0" identifier = number_literal) ;) (if_statement "if (redirects == (REDIRECT *)0x0) goto LAB_00049213;" if (parenthesized_expression "(redirects == (REDIRECT *)0x0)" ( (binary_expression "redirects == (REDIRECT *)0x0" identifier == (cast_expression "(REDIRECT *)0x0" ( (type_descriptor "REDIRECT *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00049213;" goto statement_identifier ;)) (expression_statement "iVar5 = do_redirections(redirects,1);" (assignment_expression "iVar5 = do_redirections(redirects,1)" identifier = (call_expression "do_redirections(redirects,1)" identifier (argument_list "(redirects,1)" ( identifier , number_literal )))) ;) }))) (if_statement "if (iVar5 != 0) {\n    unlink_fifo_list();\n                    /* WARNING: Subroutine does not return */\n    exit(1);\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    unlink_fifo_list();\n                    /* WARNING: Subroutine does not return */\n    exit(1);\n  }" { (expression_statement "unlink_fifo_list();" (call_expression "unlink_fifo_list()" identifier (argument_list "()" ( ))) ;) comment (expression_statement "exit(1);" (call_expression "exit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (labeled_statement "LAB_00049213:\n  interactive = iVar6;" statement_identifier : (expression_statement "interactive = iVar6;" (assignment_expression "interactive = iVar6" identifier = identifier) ;)) (if_statement "if (pcVar1 != (char *)0x0) {\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    args = strvec_from_word_list(words,0,0,(int *)0x0);\n    iVar6 = shell_execve(pcVar1,args,export_env);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar6);\n  }" if (parenthesized_expression "(pcVar1 != (char *)0x0)" ( (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    args = strvec_from_word_list(words,0,0,(int *)0x0);\n    iVar6 = shell_execve(pcVar1,args,export_env);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar6);\n  }" { (if_statement "if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }" if (parenthesized_expression "(sigterm_received != 0)" ( (binary_expression "sigterm_received != 0" identifier != number_literal) )) (compound_statement "{\n      termsig_handler(0xf);\n    }" { (expression_statement "termsig_handler(0xf);" (call_expression "termsig_handler(0xf)" identifier (argument_list "(0xf)" ( number_literal ))) ;) })) (expression_statement "args = strvec_from_word_list(words,0,0,(int *)0x0);" (assignment_expression "args = strvec_from_word_list(words,0,0,(int *)0x0)" identifier = (call_expression "strvec_from_word_list(words,0,0,(int *)0x0)" identifier (argument_list "(words,0,0,(int *)0x0)" ( identifier , number_literal , number_literal , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "iVar6 = shell_execve(pcVar1,args,export_env);" (assignment_expression "iVar6 = shell_execve(pcVar1,args,export_env)" identifier = (call_expression "shell_execve(pcVar1,args,export_env)" identifier (argument_list "(pcVar1,args,export_env)" ( identifier , identifier , identifier )))) ;) comment (expression_statement "exit(iVar6);" (call_expression "exit(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) })) (expression_statement "var = find_function("command_not_found_handle");" (assignment_expression "var = find_function("command_not_found_handle")" identifier = (call_expression "find_function("command_not_found_handle")" identifier (argument_list "("command_not_found_handle")" ( (string_literal ""command_not_found_handle"" " string_content ") )))) ;) (if_statement "if (var != (SHELL_VAR *)0x0) {\n    without_job_control();\n    set_sigchld_handler();\n    word = make_word("command_not_found_handle");\n    words_00 = make_word_list(word,words);\n    iVar6 = execute_shell_function(var,words_00);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar6);\n  }" if (parenthesized_expression "(var != (SHELL_VAR *)0x0)" ( (binary_expression "var != (SHELL_VAR *)0x0" identifier != (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    without_job_control();\n    set_sigchld_handler();\n    word = make_word("command_not_found_handle");\n    words_00 = make_word_list(word,words);\n    iVar6 = execute_shell_function(var,words_00);\n                    /* WARNING: Subroutine does not return */\n    exit(iVar6);\n  }" { (expression_statement "without_job_control();" (call_expression "without_job_control()" identifier (argument_list "()" ( ))) ;) (expression_statement "set_sigchld_handler();" (call_expression "set_sigchld_handler()" identifier (argument_list "()" ( ))) ;) (expression_statement "word = make_word("command_not_found_handle");" (assignment_expression "word = make_word("command_not_found_handle")" identifier = (call_expression "make_word("command_not_found_handle")" identifier (argument_list "("command_not_found_handle")" ( (string_literal ""command_not_found_handle"" " string_content ") )))) ;) (expression_statement "words_00 = make_word_list(word,words);" (assignment_expression "words_00 = make_word_list(word,words)" identifier = (call_expression "make_word_list(word,words)" identifier (argument_list "(word,words)" ( identifier , identifier )))) ;) (expression_statement "iVar6 = execute_shell_function(var,words_00);" (assignment_expression "iVar6 = execute_shell_function(var,words_00)" identifier = (call_expression "execute_shell_function(var,words_00)" identifier (argument_list "(var,words_00)" ( identifier , identifier )))) ;) comment (expression_statement "exit(iVar6);" (call_expression "exit(iVar6)" identifier (argument_list "(iVar6)" ( identifier ))) ;) })) (expression_statement "pcVar7 = printable_filename(pcVar7,0);" (assignment_expression "pcVar7 = printable_filename(pcVar7,0)" identifier = (call_expression "printable_filename(pcVar7,0)" identifier (argument_list "(pcVar7,0)" ( identifier , number_literal )))) ;) (expression_statement "pcVar1 = (char *)dcgettext(0,"%s: command not found",5);" (assignment_expression "pcVar1 = (char *)dcgettext(0,"%s: command not found",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s: command not found",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s: command not found",5)" identifier (argument_list "(0,"%s: command not found",5)" ( number_literal , (string_literal ""%s: command not found"" " string_content ") , number_literal ))))) ;) (expression_statement "internal_error(pcVar1,pcVar7);" (call_expression "internal_error(pcVar1,pcVar7)" identifier (argument_list "(pcVar1,pcVar7)" ( identifier , identifier ))) ;) comment (expression_statement "exit(0x7f);" (call_expression "exit(0x7f)" identifier (argument_list "(0x7f)" ( number_literal ))) ;) })))
(translation_unit "undefined4 __regparm3\nFUN_00049060(int param_1,int param_2,char *param_3,uint param_4,uint param_5,int param_6,int param_7\n            ,uint param_8)\n\n{\n  void *__ptr;\n  size_t sVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  byte bVar6;\n  \n  uVar4 = **(undefined4 **)(param_1 + 4);\n  bVar6 = (param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6);\n  if ((restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)) {\n    uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(uVar5,uVar4);\n    last_command_exit_value = 1;\n    if (bVar6 != 0) {\n                    \n      exit(1);\n    }\n    uVar4 = 1;\n    __ptr = (void *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    FUN_00046d60();\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    return uVar4;\n  }\n  __ptr = (void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3);\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  if (__ptr != (void *)0x0) {\n    if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(__ptr);\n  }\n  if (bVar6 == 0) {\n    sVar1 = strlen(param_3);\n    pcVar2 = (char *)xmalloc(sVar1 + 1);\n    pcVar2 = strcpy(pcVar2,param_3);\n    iVar3 = make_child(pcVar2,param_6);\n    if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar2);\n  }\n  else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }\n  if (param_6 == 0) {\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    _subshell_environment = _subshell_environment | 8;\n    uVar5 = interactive;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n    uVar5 = interactive;\n  }\n  else {\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }\n  if (iVar3 != 0) {\n    unlink_fifo_list();\n                    \n    exit(1);\n  }\nLAB_00049213:\n  interactive = uVar5;\n  if (__ptr != (void *)0x0) {\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    uVar4 = strvec_from_word_list(param_1,0,0,0);\n    iVar3 = shell_execve(__ptr,uVar4,export_env);\n                    \n    exit(iVar3);\n  }\n  iVar3 = find_function("command_not_found_handle");\n  if (iVar3 != 0) {\n    without_job_control();\n    set_sigchld_handler();\n    uVar4 = make_word("command_not_found_handle");\n    uVar4 = make_word_list(uVar4,param_1);\n    iVar3 = execute_shell_function(iVar3,uVar4);\n                    \n    exit(iVar3);\n  }\n  uVar4 = printable_filename(uVar4,0);\n  uVar5 = dcgettext(0,"%s: command not found",5);\n  internal_error(uVar5,uVar4);\n                    \n  exit(0x7f);\n}\n\n" (function_definition "undefined4 __regparm3\nFUN_00049060(int param_1,int param_2,char *param_3,uint param_4,uint param_5,int param_6,int param_7\n            ,uint param_8)\n\n{\n  void *__ptr;\n  size_t sVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  byte bVar6;\n  \n  uVar4 = **(undefined4 **)(param_1 + 4);\n  bVar6 = (param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6);\n  if ((restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)) {\n    uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(uVar5,uVar4);\n    last_command_exit_value = 1;\n    if (bVar6 != 0) {\n                    \n      exit(1);\n    }\n    uVar4 = 1;\n    __ptr = (void *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    FUN_00046d60();\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    return uVar4;\n  }\n  __ptr = (void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3);\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  if (__ptr != (void *)0x0) {\n    if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(__ptr);\n  }\n  if (bVar6 == 0) {\n    sVar1 = strlen(param_3);\n    pcVar2 = (char *)xmalloc(sVar1 + 1);\n    pcVar2 = strcpy(pcVar2,param_3);\n    iVar3 = make_child(pcVar2,param_6);\n    if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar2);\n  }\n  else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }\n  if (param_6 == 0) {\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    _subshell_environment = _subshell_environment | 8;\n    uVar5 = interactive;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n    uVar5 = interactive;\n  }\n  else {\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }\n  if (iVar3 != 0) {\n    unlink_fifo_list();\n                    \n    exit(1);\n  }\nLAB_00049213:\n  interactive = uVar5;\n  if (__ptr != (void *)0x0) {\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    uVar4 = strvec_from_word_list(param_1,0,0,0);\n    iVar3 = shell_execve(__ptr,uVar4,export_env);\n                    \n    exit(iVar3);\n  }\n  iVar3 = find_function("command_not_found_handle");\n  if (iVar3 != 0) {\n    without_job_control();\n    set_sigchld_handler();\n    uVar4 = make_word("command_not_found_handle");\n    uVar4 = make_word_list(uVar4,param_1);\n    iVar3 = execute_shell_function(iVar3,uVar4);\n                    \n    exit(iVar3);\n  }\n  uVar4 = printable_filename(uVar4,0);\n  uVar5 = dcgettext(0,"%s: command not found",5);\n  internal_error(uVar5,uVar4);\n                    \n  exit(0x7f);\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00049060(int param_1,int param_2,char *param_3,uint param_4,uint param_5,int param_6,int param_7\n            ,uint param_8)" identifier (parameter_list "(int param_1,int param_2,char *param_3,uint param_4,uint param_5,int param_6,int param_7\n            ,uint param_8)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "uint param_8" type_identifier identifier) ))) (compound_statement "{\n  void *__ptr;\n  size_t sVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  byte bVar6;\n  \n  uVar4 = **(undefined4 **)(param_1 + 4);\n  bVar6 = (param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6);\n  if ((restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)) {\n    uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(uVar5,uVar4);\n    last_command_exit_value = 1;\n    if (bVar6 != 0) {\n                    \n      exit(1);\n    }\n    uVar4 = 1;\n    __ptr = (void *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    FUN_00046d60();\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    return uVar4;\n  }\n  __ptr = (void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3);\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  if (__ptr != (void *)0x0) {\n    if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(__ptr);\n  }\n  if (bVar6 == 0) {\n    sVar1 = strlen(param_3);\n    pcVar2 = (char *)xmalloc(sVar1 + 1);\n    pcVar2 = strcpy(pcVar2,param_3);\n    iVar3 = make_child(pcVar2,param_6);\n    if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar2);\n  }\n  else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }\n  if (param_6 == 0) {\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    _subshell_environment = _subshell_environment | 8;\n    uVar5 = interactive;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n    uVar5 = interactive;\n  }\n  else {\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }\n  if (iVar3 != 0) {\n    unlink_fifo_list();\n                    \n    exit(1);\n  }\nLAB_00049213:\n  interactive = uVar5;\n  if (__ptr != (void *)0x0) {\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    uVar4 = strvec_from_word_list(param_1,0,0,0);\n    iVar3 = shell_execve(__ptr,uVar4,export_env);\n                    \n    exit(iVar3);\n  }\n  iVar3 = find_function("command_not_found_handle");\n  if (iVar3 != 0) {\n    without_job_control();\n    set_sigchld_handler();\n    uVar4 = make_word("command_not_found_handle");\n    uVar4 = make_word_list(uVar4,param_1);\n    iVar3 = execute_shell_function(iVar3,uVar4);\n                    \n    exit(iVar3);\n  }\n  uVar4 = printable_filename(uVar4,0);\n  uVar5 = dcgettext(0,"%s: command not found",5);\n  internal_error(uVar5,uVar4);\n                    \n  exit(0x7f);\n}" { (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "size_t sVar1;" primitive_type identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (expression_statement "uVar4 = **(undefined4 **)(param_1 + 4);" (assignment_expression "uVar4 = **(undefined4 **)(param_1 + 4)" identifier = (pointer_expression "**(undefined4 **)(param_1 + 4)" * (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))))) ;) (expression_statement "bVar6 = (param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6);" (assignment_expression "bVar6 = (param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6)" identifier = (binary_expression "(param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6)" (binary_expression "(param_4 & param_5) == 0xffffffff" (parenthesized_expression "(param_4 & param_5)" ( (binary_expression "param_4 & param_5" identifier & identifier) )) == number_literal) & (call_expression "(byte)(param_8 >> 6)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(param_8 >> 6)" ( (binary_expression "param_8 >> 6" identifier >> number_literal) ))))) ;) (if_statement "if ((restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)) {\n    uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(uVar5,uVar4);\n    last_command_exit_value = 1;\n    if (bVar6 != 0) {\n                    \n      exit(1);\n    }\n    uVar4 = 1;\n    __ptr = (void *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    FUN_00046d60();\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    return uVar4;\n  }" if (parenthesized_expression "((restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0))" ( (binary_expression "(restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)" (parenthesized_expression "(restricted != 0)" ( (binary_expression "restricted != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)" ( (comma_expression "iVar3 = mbschr(uVar4,0x2f), iVar3 != 0" (assignment_expression "iVar3 = mbschr(uVar4,0x2f)" identifier = (call_expression "mbschr(uVar4,0x2f)" identifier (argument_list "(uVar4,0x2f)" ( identifier , number_literal )))) , (binary_expression "iVar3 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(uVar5,uVar4);\n    last_command_exit_value = 1;\n    if (bVar6 != 0) {\n                    \n      exit(1);\n    }\n    uVar4 = 1;\n    __ptr = (void *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    FUN_00046d60();\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    return uVar4;\n  }" { (expression_statement "uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);" (assignment_expression "uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5)" identifier = (call_expression "dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5)" identifier (argument_list "(0,"%s: restricted: cannot specify `/\' in command names",5)" ( number_literal , (string_literal ""%s: restricted: cannot specify `/\' in command names"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "internal_error(uVar5,uVar4);" (call_expression "internal_error(uVar5,uVar4)" identifier (argument_list "(uVar5,uVar4)" ( identifier , identifier ))) ;) (expression_statement "last_command_exit_value = 1;" (assignment_expression "last_command_exit_value = 1" identifier = number_literal) ;) (if_statement "if (bVar6 != 0) {\n                    \n      exit(1);\n    }" if (parenthesized_expression "(bVar6 != 0)" ( (binary_expression "bVar6 != 0" identifier != number_literal) )) (compound_statement "{\n                    \n      exit(1);\n    }" { (expression_statement "exit(1);" (call_expression "exit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" identifier = number_literal) ;) (expression_statement "__ptr = (void *)0x0;" (assignment_expression "__ptr = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "joined_r0x00049323:\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 "FUN_00046d60();" (call_expression "FUN_00046d60()" identifier (argument_list "()" ( ))) ;) (if_statement "if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(__ptr);\n    }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (return_statement "return uVar4;" return identifier ;) })) (expression_statement "__ptr = (void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3);" (assignment_expression "__ptr = (void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3)" identifier = (cast_expression "(void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3)" identifier (argument_list "(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3)" ( identifier , (binary_expression "(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3" (parenthesized_expression "(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe)" ( (binary_expression "-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe" (unary_expression "-(uint)((param_8 & 0x4000) == 0)" - (call_expression "(uint)((param_8 & 0x4000) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((param_8 & 0x4000) == 0)" ( (binary_expression "(param_8 & 0x4000) == 0" (parenthesized_expression "(param_8 & 0x4000)" ( (binary_expression "param_8 & 0x4000" identifier & number_literal) )) == number_literal) )))) & number_literal) )) + number_literal) ))))) ;) (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 "()" ( ))) ;) })) (if_statement "if (__ptr != (void *)0x0) {\n    if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(__ptr);\n  }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(__ptr);\n  }" { (if_statement "if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }" if (parenthesized_expression "(bVar6 != 0)" ( (binary_expression "bVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      adjust_shell_level(0xffffffff);\n    }" { (expression_statement "adjust_shell_level(0xffffffff);" (call_expression "adjust_shell_level(0xffffffff)" identifier (argument_list "(0xffffffff)" ( number_literal ))) ;) })) (expression_statement "maybe_make_export_env();" (call_expression "maybe_make_export_env()" identifier (argument_list "()" ( ))) ;) (expression_statement "put_command_name_into_env(__ptr);" (call_expression "put_command_name_into_env(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (if_statement "if (bVar6 == 0) {\n    sVar1 = strlen(param_3);\n    pcVar2 = (char *)xmalloc(sVar1 + 1);\n    pcVar2 = strcpy(pcVar2,param_3);\n    iVar3 = make_child(pcVar2,param_6);\n    if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar2);\n  }\n  else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    sVar1 = strlen(param_3);\n    pcVar2 = (char *)xmalloc(sVar1 + 1);\n    pcVar2 = strcpy(pcVar2,param_3);\n    iVar3 = make_child(pcVar2,param_6);\n    if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar2);\n  }" { (expression_statement "sVar1 = strlen(param_3);" (assignment_expression "sVar1 = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( 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,param_3);" (assignment_expression "pcVar2 = strcpy(pcVar2,param_3)" identifier = (call_expression "strcpy(pcVar2,param_3)" identifier (argument_list "(pcVar2,param_3)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = make_child(pcVar2,param_6);" (assignment_expression "iVar3 = make_child(pcVar2,param_6)" identifier = (call_expression "make_child(pcVar2,param_6)" identifier (argument_list "(pcVar2,param_6)" ( identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (goto_statement "goto joined_r0x00049323;" goto statement_identifier ;) })) (expression_statement "reset_terminating_signals();" (call_expression "reset_terminating_signals()" identifier (argument_list "()" ( ))) ;) (expression_statement "restore_original_signals();" (call_expression "restore_original_signals()" identifier (argument_list "()" ( ))) ;) (if_statement "if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }" if (parenthesized_expression "(sigterm_received != 0)" ( (binary_expression "sigterm_received != 0" identifier != number_literal) )) (compound_statement "{\n      termsig_handler(0xf);\n    }" { (expression_statement "termsig_handler(0xf);" (call_expression "termsig_handler(0xf)" identifier (argument_list "(0xf)" ( number_literal ))) ;) })) (expression_statement "free(pcVar2);" (call_expression "free(pcVar2)" identifier (argument_list "(pcVar2)" ( identifier ))) ;) }) (else_clause "else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }" else (compound_statement "{\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }" { (expression_statement "reset_terminating_signals();" (call_expression "reset_terminating_signals()" identifier (argument_list "()" ( ))) ;) (expression_statement "restore_original_signals();" (call_expression "restore_original_signals()" identifier (argument_list "()" ( ))) ;) (if_statement "if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }" if (parenthesized_expression "(sigterm_received != 0)" ( (binary_expression "sigterm_received != 0" identifier != number_literal) )) (compound_statement "{\n      termsig_handler(0xf);\n    }" { (expression_statement "termsig_handler(0xf);" (call_expression "termsig_handler(0xf)" identifier (argument_list "(0xf)" ( number_literal ))) ;) })) }))) (if_statement "if (param_6 == 0) {\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    _subshell_environment = _subshell_environment | 8;\n    uVar5 = interactive;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n    uVar5 = interactive;\n  }\n  else {\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }" if (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) (compound_statement "{\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    _subshell_environment = _subshell_environment | 8;\n    uVar5 = interactive;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n    uVar5 = interactive;\n  }" { (if_statement "if (param_7 != 0) {\n      FUN_00047860();\n    }" if (parenthesized_expression "(param_7 != 0)" ( (binary_expression "param_7 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00047860();\n    }" { (expression_statement "FUN_00047860();" (call_expression "FUN_00047860()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_000478d0();" (call_expression "FUN_000478d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "_subshell_environment = _subshell_environment | 8;" (assignment_expression "_subshell_environment = _subshell_environment | 8" identifier = (binary_expression "_subshell_environment | 8" identifier | number_literal)) ;) (expression_statement "uVar5 = interactive;" (assignment_expression "uVar5 = interactive" identifier = identifier) ;) (if_statement "if (param_2 == 0) goto LAB_00049213;" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00049213;" goto statement_identifier ;)) (expression_statement "iVar3 = do_redirections(param_2,1);" (assignment_expression "iVar3 = do_redirections(param_2,1)" identifier = (call_expression "do_redirections(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal )))) ;) (expression_statement "uVar5 = interactive;" (assignment_expression "uVar5 = interactive" identifier = identifier) ;) }) (else_clause "else {\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }" else (compound_statement "{\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }" { (if_statement "if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }" if (parenthesized_expression "((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0))" ( (binary_expression "(((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)" (parenthesized_expression "(((param_8 & 0x400) != 0) && (param_4 == 0xffffffff))" ( (binary_expression "((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)" (parenthesized_expression "((param_8 & 0x400) != 0)" ( (binary_expression "(param_8 & 0x400) != 0" (parenthesized_expression "(param_8 & 0x400)" ( (binary_expression "param_8 & 0x400" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(param_4 == 0xffffffff)" ( (binary_expression "param_4 == 0xffffffff" identifier == number_literal) ))) )) && (parenthesized_expression "(iVar3 = stdin_redirects(param_2), iVar3 == 0)" ( (comma_expression "iVar3 = stdin_redirects(param_2), iVar3 == 0" (assignment_expression "iVar3 = stdin_redirects(param_2)" identifier = (call_expression "stdin_redirects(param_2)" identifier (argument_list "(param_2)" ( identifier )))) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n      FUN_000479a0();\n    }" { (expression_statement "FUN_000479a0();" (call_expression "FUN_000479a0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (job_control == 0) {\n      FUN_00048070();\n    }" if (parenthesized_expression "(job_control == 0)" ( (binary_expression "job_control == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00048070();\n    }" { (expression_statement "FUN_00048070();" (call_expression "FUN_00048070()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (param_7 != 0) {\n      FUN_00047860();\n    }" if (parenthesized_expression "(param_7 != 0)" ( (binary_expression "param_7 != 0" identifier != number_literal) )) (compound_statement "{\n      FUN_00047860();\n    }" { (expression_statement "FUN_00047860();" (call_expression "FUN_00047860()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_000478d0();" (call_expression "FUN_000478d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar5 = interactive;" (assignment_expression "uVar5 = interactive" identifier = identifier) ;) (expression_statement "_subshell_environment = _subshell_environment | 8;" (assignment_expression "_subshell_environment = _subshell_environment | 8" identifier = (binary_expression "_subshell_environment | 8" identifier | number_literal)) ;) (expression_statement "interactive = 0;" (assignment_expression "interactive = 0" identifier = number_literal) ;) (if_statement "if (param_2 == 0) goto LAB_00049213;" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00049213;" goto statement_identifier ;)) (expression_statement "iVar3 = do_redirections(param_2,1);" (assignment_expression "iVar3 = do_redirections(param_2,1)" identifier = (call_expression "do_redirections(param_2,1)" identifier (argument_list "(param_2,1)" ( identifier , number_literal )))) ;) }))) (if_statement "if (iVar3 != 0) {\n    unlink_fifo_list();\n                    \n    exit(1);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    unlink_fifo_list();\n                    \n    exit(1);\n  }" { (expression_statement "unlink_fifo_list();" (call_expression "unlink_fifo_list()" identifier (argument_list "()" ( ))) ;) (expression_statement "exit(1);" (call_expression "exit(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (labeled_statement "LAB_00049213:\n  interactive = uVar5;" statement_identifier : (expression_statement "interactive = uVar5;" (assignment_expression "interactive = uVar5" identifier = identifier) ;)) (if_statement "if (__ptr != (void *)0x0) {\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    uVar4 = strvec_from_word_list(param_1,0,0,0);\n    iVar3 = shell_execve(__ptr,uVar4,export_env);\n                    \n    exit(iVar3);\n  }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    uVar4 = strvec_from_word_list(param_1,0,0,0);\n    iVar3 = shell_execve(__ptr,uVar4,export_env);\n                    \n    exit(iVar3);\n  }" { (if_statement "if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }" if (parenthesized_expression "(sigterm_received != 0)" ( (binary_expression "sigterm_received != 0" identifier != number_literal) )) (compound_statement "{\n      termsig_handler(0xf);\n    }" { (expression_statement "termsig_handler(0xf);" (call_expression "termsig_handler(0xf)" identifier (argument_list "(0xf)" ( number_literal ))) ;) })) (expression_statement "uVar4 = strvec_from_word_list(param_1,0,0,0);" (assignment_expression "uVar4 = strvec_from_word_list(param_1,0,0,0)" identifier = (call_expression "strvec_from_word_list(param_1,0,0,0)" identifier (argument_list "(param_1,0,0,0)" ( identifier , number_literal , number_literal , number_literal )))) ;) (expression_statement "iVar3 = shell_execve(__ptr,uVar4,export_env);" (assignment_expression "iVar3 = shell_execve(__ptr,uVar4,export_env)" identifier = (call_expression "shell_execve(__ptr,uVar4,export_env)" identifier (argument_list "(__ptr,uVar4,export_env)" ( identifier , identifier , identifier )))) ;) (expression_statement "exit(iVar3);" (call_expression "exit(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) })) (expression_statement "iVar3 = find_function("command_not_found_handle");" (assignment_expression "iVar3 = find_function("command_not_found_handle")" identifier = (call_expression "find_function("command_not_found_handle")" identifier (argument_list "("command_not_found_handle")" ( (string_literal ""command_not_found_handle"" " string_content ") )))) ;) (if_statement "if (iVar3 != 0) {\n    without_job_control();\n    set_sigchld_handler();\n    uVar4 = make_word("command_not_found_handle");\n    uVar4 = make_word_list(uVar4,param_1);\n    iVar3 = execute_shell_function(iVar3,uVar4);\n                    \n    exit(iVar3);\n  }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    without_job_control();\n    set_sigchld_handler();\n    uVar4 = make_word("command_not_found_handle");\n    uVar4 = make_word_list(uVar4,param_1);\n    iVar3 = execute_shell_function(iVar3,uVar4);\n                    \n    exit(iVar3);\n  }" { (expression_statement "without_job_control();" (call_expression "without_job_control()" identifier (argument_list "()" ( ))) ;) (expression_statement "set_sigchld_handler();" (call_expression "set_sigchld_handler()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar4 = make_word("command_not_found_handle");" (assignment_expression "uVar4 = make_word("command_not_found_handle")" identifier = (call_expression "make_word("command_not_found_handle")" identifier (argument_list "("command_not_found_handle")" ( (string_literal ""command_not_found_handle"" " string_content ") )))) ;) (expression_statement "uVar4 = make_word_list(uVar4,param_1);" (assignment_expression "uVar4 = make_word_list(uVar4,param_1)" identifier = (call_expression "make_word_list(uVar4,param_1)" identifier (argument_list "(uVar4,param_1)" ( identifier , identifier )))) ;) (expression_statement "iVar3 = execute_shell_function(iVar3,uVar4);" (assignment_expression "iVar3 = execute_shell_function(iVar3,uVar4)" identifier = (call_expression "execute_shell_function(iVar3,uVar4)" identifier (argument_list "(iVar3,uVar4)" ( identifier , identifier )))) ;) (expression_statement "exit(iVar3);" (call_expression "exit(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) })) (expression_statement "uVar4 = printable_filename(uVar4,0);" (assignment_expression "uVar4 = printable_filename(uVar4,0)" identifier = (call_expression "printable_filename(uVar4,0)" identifier (argument_list "(uVar4,0)" ( identifier , number_literal )))) ;) (expression_statement "uVar5 = dcgettext(0,"%s: command not found",5);" (assignment_expression "uVar5 = dcgettext(0,"%s: command not found",5)" identifier = (call_expression "dcgettext(0,"%s: command not found",5)" identifier (argument_list "(0,"%s: command not found",5)" ( number_literal , (string_literal ""%s: command not found"" " string_content ") , number_literal )))) ;) (expression_statement "internal_error(uVar5,uVar4);" (call_expression "internal_error(uVar5,uVar4)" identifier (argument_list "(uVar5,uVar4)" ( identifier , identifier ))) ;) (expression_statement "exit(0x7f);" (call_expression "exit(0x7f)" identifier (argument_list "(0x7f)" ( number_literal ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) == LIT) & (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )))) & LIT) )) + LIT) ))))) ;) (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 ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (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 { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })))
(function_definition "undefined4 __regparm3\nFUN_00049060(int param_1,int param_2,char *param_3,uint param_4,uint param_5,int param_6,int param_7\n            ,uint param_8)\n\n{\n  void *__ptr;\n  size_t sVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  byte bVar6;\n  \n  uVar4 = **(undefined4 **)(param_1 + 4);\n  bVar6 = (param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6);\n  if ((restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)) {\n    uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(uVar5,uVar4);\n    last_command_exit_value = 1;\n    if (bVar6 != 0) {\n                    \n      exit(1);\n    }\n    uVar4 = 1;\n    __ptr = (void *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    FUN_00046d60();\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    return uVar4;\n  }\n  __ptr = (void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3);\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  if (__ptr != (void *)0x0) {\n    if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(__ptr);\n  }\n  if (bVar6 == 0) {\n    sVar1 = strlen(param_3);\n    pcVar2 = (char *)xmalloc(sVar1 + 1);\n    pcVar2 = strcpy(pcVar2,param_3);\n    iVar3 = make_child(pcVar2,param_6);\n    if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar2);\n  }\n  else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }\n  if (param_6 == 0) {\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    _subshell_environment = _subshell_environment | 8;\n    uVar5 = interactive;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n    uVar5 = interactive;\n  }\n  else {\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }\n  if (iVar3 != 0) {\n    unlink_fifo_list();\n                    \n    exit(1);\n  }\nLAB_00049213:\n  interactive = uVar5;\n  if (__ptr != (void *)0x0) {\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    uVar4 = strvec_from_word_list(param_1,0,0,0);\n    iVar3 = shell_execve(__ptr,uVar4,export_env);\n                    \n    exit(iVar3);\n  }\n  iVar3 = find_function("command_not_found_handle");\n  if (iVar3 != 0) {\n    without_job_control();\n    set_sigchld_handler();\n    uVar4 = make_word("command_not_found_handle");\n    uVar4 = make_word_list(uVar4,param_1);\n    iVar3 = execute_shell_function(iVar3,uVar4);\n                    \n    exit(iVar3);\n  }\n  uVar4 = printable_filename(uVar4,0);\n  uVar5 = dcgettext(0,"%s: command not found",5);\n  internal_error(uVar5,uVar4);\n                    \n  exit(0x7f);\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00049060(int param_1,int param_2,char *param_3,uint param_4,uint param_5,int param_6,int param_7\n            ,uint param_8)" (identifier "FUN_00049060") (parameter_list "(int param_1,int param_2,char *param_3,uint param_4,uint param_5,int param_6,int param_7\n            ,uint param_8)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "uint param_8" (type_identifier "uint") (identifier "param_8")) () ")"))) (compound_statement "{\n  void *__ptr;\n  size_t sVar1;\n  char *pcVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  byte bVar6;\n  \n  uVar4 = **(undefined4 **)(param_1 + 4);\n  bVar6 = (param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6);\n  if ((restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)) {\n    uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(uVar5,uVar4);\n    last_command_exit_value = 1;\n    if (bVar6 != 0) {\n                    \n      exit(1);\n    }\n    uVar4 = 1;\n    __ptr = (void *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    FUN_00046d60();\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    return uVar4;\n  }\n  __ptr = (void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3);\n  if (terminating_signal != 0) {\n    termsig_handler(terminating_signal);\n  }\n  if (interrupt_state != 0) {\n    throw_to_top_level();\n  }\n  if (__ptr != (void *)0x0) {\n    if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(__ptr);\n  }\n  if (bVar6 == 0) {\n    sVar1 = strlen(param_3);\n    pcVar2 = (char *)xmalloc(sVar1 + 1);\n    pcVar2 = strcpy(pcVar2,param_3);\n    iVar3 = make_child(pcVar2,param_6);\n    if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar2);\n  }\n  else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }\n  if (param_6 == 0) {\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    _subshell_environment = _subshell_environment | 8;\n    uVar5 = interactive;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n    uVar5 = interactive;\n  }\n  else {\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }\n  if (iVar3 != 0) {\n    unlink_fifo_list();\n                    \n    exit(1);\n  }\nLAB_00049213:\n  interactive = uVar5;\n  if (__ptr != (void *)0x0) {\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    uVar4 = strvec_from_word_list(param_1,0,0,0);\n    iVar3 = shell_execve(__ptr,uVar4,export_env);\n                    \n    exit(iVar3);\n  }\n  iVar3 = find_function("command_not_found_handle");\n  if (iVar3 != 0) {\n    without_job_control();\n    set_sigchld_handler();\n    uVar4 = make_word("command_not_found_handle");\n    uVar4 = make_word_list(uVar4,param_1);\n    iVar3 = execute_shell_function(iVar3,uVar4);\n                    \n    exit(iVar3);\n  }\n  uVar4 = printable_filename(uVar4,0);\n  uVar5 = dcgettext(0,"%s: command not found",5);\n  internal_error(uVar5,uVar4);\n                    \n  exit(0x7f);\n}" ({ "{") (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "size_t sVar1;" (primitive_type "size_t") (identifier "sVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "byte bVar6;" (type_identifier "byte") (identifier "bVar6") (; ";")) (expression_statement "uVar4 = **(undefined4 **)(param_1 + 4);" (assignment_expression "uVar4 = **(undefined4 **)(param_1 + 4)" (identifier "uVar4") (= "=") (pointer_expression "**(undefined4 **)(param_1 + 4)" (* "*") (pointer_expression "*(undefined4 **)(param_1 + 4)" (* "*") (cast_expression "(undefined4 **)(param_1 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "bVar6 = (param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6);" (assignment_expression "bVar6 = (param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6)" (identifier "bVar6") (= "=") (binary_expression "(param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6)" (binary_expression "(param_4 & param_5) == 0xffffffff" (parenthesized_expression "(param_4 & param_5)" (( "(") (binary_expression "param_4 & param_5" (identifier "param_4") (& "&") (identifier "param_5")) () ")")) (== "==") (number_literal "0xffffffff")) (& "&") (call_expression "(byte)(param_8 >> 6)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(param_8 >> 6)" (( "(") (binary_expression "param_8 >> 6" (identifier "param_8") (>> ">>") (number_literal "6")) () ")"))))) (; ";")) (if_statement "if ((restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)) {\n    uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(uVar5,uVar4);\n    last_command_exit_value = 1;\n    if (bVar6 != 0) {\n                    \n      exit(1);\n    }\n    uVar4 = 1;\n    __ptr = (void *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    FUN_00046d60();\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    return uVar4;\n  }" (if "if") (parenthesized_expression "((restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0))" (( "(") (binary_expression "(restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)" (parenthesized_expression "(restricted != 0)" (( "(") (binary_expression "restricted != 0" (identifier "restricted") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)" (( "(") (comma_expression "iVar3 = mbschr(uVar4,0x2f), iVar3 != 0" (assignment_expression "iVar3 = mbschr(uVar4,0x2f)" (identifier "iVar3") (= "=") (call_expression "mbschr(uVar4,0x2f)" (identifier "mbschr") (argument_list "(uVar4,0x2f)" (( "(") (identifier "uVar4") (, ",") (number_literal "0x2f") () ")")))) (, ",") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);\n    internal_error(uVar5,uVar4);\n    last_command_exit_value = 1;\n    if (bVar6 != 0) {\n                    \n      exit(1);\n    }\n    uVar4 = 1;\n    __ptr = (void *)0x0;\njoined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }\n    if (interrupt_state != 0) {\n      throw_to_top_level();\n    }\n    FUN_00046d60();\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    return uVar4;\n  }" ({ "{") (expression_statement "uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);" (assignment_expression "uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5)" (identifier "uVar5") (= "=") (call_expression "dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5)" (identifier "dcgettext") (argument_list "(0,"%s: restricted: cannot specify `/\' in command names",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s: restricted: cannot specify `/\' in command names"" (" """) (string_content "%s: restricted: cannot specify `/") (escape_sequence "\'") (string_content " in command names") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "internal_error(uVar5,uVar4);" (call_expression "internal_error(uVar5,uVar4)" (identifier "internal_error") (argument_list "(uVar5,uVar4)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "last_command_exit_value = 1;" (assignment_expression "last_command_exit_value = 1" (identifier "last_command_exit_value") (= "=") (number_literal "1")) (; ";")) (if_statement "if (bVar6 != 0) {\n                    \n      exit(1);\n    }" (if "if") (parenthesized_expression "(bVar6 != 0)" (( "(") (binary_expression "bVar6 != 0" (identifier "bVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      exit(1);\n    }" ({ "{") (expression_statement "exit(1);" (call_expression "exit(1)" (identifier "exit") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar4 = 1;" (assignment_expression "uVar4 = 1" (identifier "uVar4") (= "=") (number_literal "1")) (; ";")) (expression_statement "__ptr = (void *)0x0;" (assignment_expression "__ptr = (void *)0x0" (identifier "__ptr") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "joined_r0x00049323:\n    if (terminating_signal != 0) {\n      termsig_handler(terminating_signal);\n    }" (statement_identifier "joined_r0x00049323") (: ":") (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 "FUN_00046d60();" (call_expression "FUN_00046d60()" (identifier "FUN_00046d60") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }" (if "if") (parenthesized_expression "(__ptr != (void *)0x0)" (( "(") (binary_expression "__ptr != (void *)0x0" (identifier "__ptr") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      free(__ptr);\n    }" ({ "{") (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (} "}"))) (return_statement "return uVar4;" (return "return") (identifier "uVar4") (; ";")) (} "}"))) (expression_statement "__ptr = (void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3);" (assignment_expression "__ptr = (void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3)" (identifier "__ptr") (= "=") (cast_expression "(void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3)" (identifier "search_for_command") (argument_list "(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3)" (( "(") (identifier "uVar4") (, ",") (binary_expression "(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3" (parenthesized_expression "(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe)" (( "(") (binary_expression "-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe" (unary_expression "-(uint)((param_8 & 0x4000) == 0)" (- "-") (call_expression "(uint)((param_8 & 0x4000) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((param_8 & 0x4000) == 0)" (( "(") (binary_expression "(param_8 & 0x4000) == 0" (parenthesized_expression "(param_8 & 0x4000)" (( "(") (binary_expression "param_8 & 0x4000" (identifier "param_8") (& "&") (number_literal "0x4000")) () ")")) (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xfffffffe")) () ")")) (+ "+") (number_literal "3")) () ")"))))) (; ";")) (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 "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (__ptr != (void *)0x0) {\n    if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(__ptr);\n  }" (if "if") (parenthesized_expression "(__ptr != (void *)0x0)" (( "(") (binary_expression "__ptr != (void *)0x0" (identifier "__ptr") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }\n    maybe_make_export_env();\n    put_command_name_into_env(__ptr);\n  }" ({ "{") (if_statement "if (bVar6 != 0) {\n      adjust_shell_level(0xffffffff);\n    }" (if "if") (parenthesized_expression "(bVar6 != 0)" (( "(") (binary_expression "bVar6 != 0" (identifier "bVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      adjust_shell_level(0xffffffff);\n    }" ({ "{") (expression_statement "adjust_shell_level(0xffffffff);" (call_expression "adjust_shell_level(0xffffffff)" (identifier "adjust_shell_level") (argument_list "(0xffffffff)" (( "(") (number_literal "0xffffffff") () ")"))) (; ";")) (} "}"))) (expression_statement "maybe_make_export_env();" (call_expression "maybe_make_export_env()" (identifier "maybe_make_export_env") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "put_command_name_into_env(__ptr);" (call_expression "put_command_name_into_env(__ptr)" (identifier "put_command_name_into_env") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (} "}"))) (if_statement "if (bVar6 == 0) {\n    sVar1 = strlen(param_3);\n    pcVar2 = (char *)xmalloc(sVar1 + 1);\n    pcVar2 = strcpy(pcVar2,param_3);\n    iVar3 = make_child(pcVar2,param_6);\n    if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar2);\n  }\n  else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }" (if "if") (parenthesized_expression "(bVar6 == 0)" (( "(") (binary_expression "bVar6 == 0" (identifier "bVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    sVar1 = strlen(param_3);\n    pcVar2 = (char *)xmalloc(sVar1 + 1);\n    pcVar2 = strcpy(pcVar2,param_3);\n    iVar3 = make_child(pcVar2,param_6);\n    if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    free(pcVar2);\n  }" ({ "{") (expression_statement "sVar1 = strlen(param_3);" (assignment_expression "sVar1 = strlen(param_3)" (identifier "sVar1") (= "=") (call_expression "strlen(param_3)" (identifier "strlen") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (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,param_3);" (assignment_expression "pcVar2 = strcpy(pcVar2,param_3)" (identifier "pcVar2") (= "=") (call_expression "strcpy(pcVar2,param_3)" (identifier "strcpy") (argument_list "(pcVar2,param_3)" (( "(") (identifier "pcVar2") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "iVar3 = make_child(pcVar2,param_6);" (assignment_expression "iVar3 = make_child(pcVar2,param_6)" (identifier "iVar3") (= "=") (call_expression "make_child(pcVar2,param_6)" (identifier "make_child") (argument_list "(pcVar2,param_6)" (( "(") (identifier "pcVar2") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar4 = 0;\n      goto joined_r0x00049323;\n    }" ({ "{") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto joined_r0x00049323;" (goto "goto") (statement_identifier "joined_r0x00049323") (; ";")) (} "}"))) (expression_statement "reset_terminating_signals();" (call_expression "reset_terminating_signals()" (identifier "reset_terminating_signals") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "restore_original_signals();" (call_expression "restore_original_signals()" (identifier "restore_original_signals") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }" (if "if") (parenthesized_expression "(sigterm_received != 0)" (( "(") (binary_expression "sigterm_received != 0" (identifier "sigterm_received") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      termsig_handler(0xf);\n    }" ({ "{") (expression_statement "termsig_handler(0xf);" (call_expression "termsig_handler(0xf)" (identifier "termsig_handler") (argument_list "(0xf)" (( "(") (number_literal "0xf") () ")"))) (; ";")) (} "}"))) (expression_statement "free(pcVar2);" (call_expression "free(pcVar2)" (identifier "free") (argument_list "(pcVar2)" (( "(") (identifier "pcVar2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }" (else "else") (compound_statement "{\n    reset_terminating_signals();\n    restore_original_signals();\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n  }" ({ "{") (expression_statement "reset_terminating_signals();" (call_expression "reset_terminating_signals()" (identifier "reset_terminating_signals") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "restore_original_signals();" (call_expression "restore_original_signals()" (identifier "restore_original_signals") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }" (if "if") (parenthesized_expression "(sigterm_received != 0)" (( "(") (binary_expression "sigterm_received != 0" (identifier "sigterm_received") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      termsig_handler(0xf);\n    }" ({ "{") (expression_statement "termsig_handler(0xf);" (call_expression "termsig_handler(0xf)" (identifier "termsig_handler") (argument_list "(0xf)" (( "(") (number_literal "0xf") () ")"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (param_6 == 0) {\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    _subshell_environment = _subshell_environment | 8;\n    uVar5 = interactive;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n    uVar5 = interactive;\n  }\n  else {\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }" (if "if") (parenthesized_expression "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    _subshell_environment = _subshell_environment | 8;\n    uVar5 = interactive;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n    uVar5 = interactive;\n  }" ({ "{") (if_statement "if (param_7 != 0) {\n      FUN_00047860();\n    }" (if "if") (parenthesized_expression "(param_7 != 0)" (( "(") (binary_expression "param_7 != 0" (identifier "param_7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00047860();\n    }" ({ "{") (expression_statement "FUN_00047860();" (call_expression "FUN_00047860()" (identifier "FUN_00047860") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000478d0();" (call_expression "FUN_000478d0()" (identifier "FUN_000478d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "_subshell_environment = _subshell_environment | 8;" (assignment_expression "_subshell_environment = _subshell_environment | 8" (identifier "_subshell_environment") (= "=") (binary_expression "_subshell_environment | 8" (identifier "_subshell_environment") (| "|") (number_literal "8"))) (; ";")) (expression_statement "uVar5 = interactive;" (assignment_expression "uVar5 = interactive" (identifier "uVar5") (= "=") (identifier "interactive")) (; ";")) (if_statement "if (param_2 == 0) goto LAB_00049213;" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00049213;" (goto "goto") (statement_identifier "LAB_00049213") (; ";"))) (expression_statement "iVar3 = do_redirections(param_2,1);" (assignment_expression "iVar3 = do_redirections(param_2,1)" (identifier "iVar3") (= "=") (call_expression "do_redirections(param_2,1)" (identifier "do_redirections") (argument_list "(param_2,1)" (( "(") (identifier "param_2") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "uVar5 = interactive;" (assignment_expression "uVar5 = interactive" (identifier "uVar5") (= "=") (identifier "interactive")) (; ";")) (} "}")) (else_clause "else {\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }" (else "else") (compound_statement "{\n    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }\n    if (job_control == 0) {\n      FUN_00048070();\n    }\n    if (param_7 != 0) {\n      FUN_00047860();\n    }\n    FUN_000478d0();\n    uVar5 = interactive;\n    _subshell_environment = _subshell_environment | 8;\n    interactive = 0;\n    if (param_2 == 0) goto LAB_00049213;\n    iVar3 = do_redirections(param_2,1);\n  }" ({ "{") (if_statement "if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {\n      FUN_000479a0();\n    }" (if "if") (parenthesized_expression "((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0))" (( "(") (binary_expression "(((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&\n       (iVar3 = stdin_redirects(param_2), iVar3 == 0)" (parenthesized_expression "(((param_8 & 0x400) != 0) && (param_4 == 0xffffffff))" (( "(") (binary_expression "((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)" (parenthesized_expression "((param_8 & 0x400) != 0)" (( "(") (binary_expression "(param_8 & 0x400) != 0" (parenthesized_expression "(param_8 & 0x400)" (( "(") (binary_expression "param_8 & 0x400" (identifier "param_8") (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_4 == 0xffffffff)" (( "(") (binary_expression "param_4 == 0xffffffff" (identifier "param_4") (== "==") (number_literal "0xffffffff")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = stdin_redirects(param_2), iVar3 == 0)" (( "(") (comma_expression "iVar3 = stdin_redirects(param_2), iVar3 == 0" (assignment_expression "iVar3 = stdin_redirects(param_2)" (identifier "iVar3") (= "=") (call_expression "stdin_redirects(param_2)" (identifier "stdin_redirects") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      FUN_000479a0();\n    }" ({ "{") (expression_statement "FUN_000479a0();" (call_expression "FUN_000479a0()" (identifier "FUN_000479a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (job_control == 0) {\n      FUN_00048070();\n    }" (if "if") (parenthesized_expression "(job_control == 0)" (( "(") (binary_expression "job_control == 0" (identifier "job_control") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00048070();\n    }" ({ "{") (expression_statement "FUN_00048070();" (call_expression "FUN_00048070()" (identifier "FUN_00048070") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_7 != 0) {\n      FUN_00047860();\n    }" (if "if") (parenthesized_expression "(param_7 != 0)" (( "(") (binary_expression "param_7 != 0" (identifier "param_7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00047860();\n    }" ({ "{") (expression_statement "FUN_00047860();" (call_expression "FUN_00047860()" (identifier "FUN_00047860") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000478d0();" (call_expression "FUN_000478d0()" (identifier "FUN_000478d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar5 = interactive;" (assignment_expression "uVar5 = interactive" (identifier "uVar5") (= "=") (identifier "interactive")) (; ";")) (expression_statement "_subshell_environment = _subshell_environment | 8;" (assignment_expression "_subshell_environment = _subshell_environment | 8" (identifier "_subshell_environment") (= "=") (binary_expression "_subshell_environment | 8" (identifier "_subshell_environment") (| "|") (number_literal "8"))) (; ";")) (expression_statement "interactive = 0;" (assignment_expression "interactive = 0" (identifier "interactive") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2 == 0) goto LAB_00049213;" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00049213;" (goto "goto") (statement_identifier "LAB_00049213") (; ";"))) (expression_statement "iVar3 = do_redirections(param_2,1);" (assignment_expression "iVar3 = do_redirections(param_2,1)" (identifier "iVar3") (= "=") (call_expression "do_redirections(param_2,1)" (identifier "do_redirections") (argument_list "(param_2,1)" (( "(") (identifier "param_2") (, ",") (number_literal "1") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar3 != 0) {\n    unlink_fifo_list();\n                    \n    exit(1);\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    unlink_fifo_list();\n                    \n    exit(1);\n  }" ({ "{") (expression_statement "unlink_fifo_list();" (call_expression "unlink_fifo_list()" (identifier "unlink_fifo_list") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "exit(1);" (call_expression "exit(1)" (identifier "exit") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00049213:\n  interactive = uVar5;" (statement_identifier "LAB_00049213") (: ":") (expression_statement "interactive = uVar5;" (assignment_expression "interactive = uVar5" (identifier "interactive") (= "=") (identifier "uVar5")) (; ";"))) (if_statement "if (__ptr != (void *)0x0) {\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    uVar4 = strvec_from_word_list(param_1,0,0,0);\n    iVar3 = shell_execve(__ptr,uVar4,export_env);\n                    \n    exit(iVar3);\n  }" (if "if") (parenthesized_expression "(__ptr != (void *)0x0)" (( "(") (binary_expression "__ptr != (void *)0x0" (identifier "__ptr") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }\n    uVar4 = strvec_from_word_list(param_1,0,0,0);\n    iVar3 = shell_execve(__ptr,uVar4,export_env);\n                    \n    exit(iVar3);\n  }" ({ "{") (if_statement "if (sigterm_received != 0) {\n      termsig_handler(0xf);\n    }" (if "if") (parenthesized_expression "(sigterm_received != 0)" (( "(") (binary_expression "sigterm_received != 0" (identifier "sigterm_received") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      termsig_handler(0xf);\n    }" ({ "{") (expression_statement "termsig_handler(0xf);" (call_expression "termsig_handler(0xf)" (identifier "termsig_handler") (argument_list "(0xf)" (( "(") (number_literal "0xf") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar4 = strvec_from_word_list(param_1,0,0,0);" (assignment_expression "uVar4 = strvec_from_word_list(param_1,0,0,0)" (identifier "uVar4") (= "=") (call_expression "strvec_from_word_list(param_1,0,0,0)" (identifier "strvec_from_word_list") (argument_list "(param_1,0,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "iVar3 = shell_execve(__ptr,uVar4,export_env);" (assignment_expression "iVar3 = shell_execve(__ptr,uVar4,export_env)" (identifier "iVar3") (= "=") (call_expression "shell_execve(__ptr,uVar4,export_env)" (identifier "shell_execve") (argument_list "(__ptr,uVar4,export_env)" (( "(") (identifier "__ptr") (, ",") (identifier "uVar4") (, ",") (identifier "export_env") () ")")))) (; ";")) (expression_statement "exit(iVar3);" (call_expression "exit(iVar3)" (identifier "exit") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = find_function("command_not_found_handle");" (assignment_expression "iVar3 = find_function("command_not_found_handle")" (identifier "iVar3") (= "=") (call_expression "find_function("command_not_found_handle")" (identifier "find_function") (argument_list "("command_not_found_handle")" (( "(") (string_literal ""command_not_found_handle"" (" """) (string_content "command_not_found_handle") (" """)) () ")")))) (; ";")) (if_statement "if (iVar3 != 0) {\n    without_job_control();\n    set_sigchld_handler();\n    uVar4 = make_word("command_not_found_handle");\n    uVar4 = make_word_list(uVar4,param_1);\n    iVar3 = execute_shell_function(iVar3,uVar4);\n                    \n    exit(iVar3);\n  }" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    without_job_control();\n    set_sigchld_handler();\n    uVar4 = make_word("command_not_found_handle");\n    uVar4 = make_word_list(uVar4,param_1);\n    iVar3 = execute_shell_function(iVar3,uVar4);\n                    \n    exit(iVar3);\n  }" ({ "{") (expression_statement "without_job_control();" (call_expression "without_job_control()" (identifier "without_job_control") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "set_sigchld_handler();" (call_expression "set_sigchld_handler()" (identifier "set_sigchld_handler") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar4 = make_word("command_not_found_handle");" (assignment_expression "uVar4 = make_word("command_not_found_handle")" (identifier "uVar4") (= "=") (call_expression "make_word("command_not_found_handle")" (identifier "make_word") (argument_list "("command_not_found_handle")" (( "(") (string_literal ""command_not_found_handle"" (" """) (string_content "command_not_found_handle") (" """)) () ")")))) (; ";")) (expression_statement "uVar4 = make_word_list(uVar4,param_1);" (assignment_expression "uVar4 = make_word_list(uVar4,param_1)" (identifier "uVar4") (= "=") (call_expression "make_word_list(uVar4,param_1)" (identifier "make_word_list") (argument_list "(uVar4,param_1)" (( "(") (identifier "uVar4") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "iVar3 = execute_shell_function(iVar3,uVar4);" (assignment_expression "iVar3 = execute_shell_function(iVar3,uVar4)" (identifier "iVar3") (= "=") (call_expression "execute_shell_function(iVar3,uVar4)" (identifier "execute_shell_function") (argument_list "(iVar3,uVar4)" (( "(") (identifier "iVar3") (, ",") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "exit(iVar3);" (call_expression "exit(iVar3)" (identifier "exit") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar4 = printable_filename(uVar4,0);" (assignment_expression "uVar4 = printable_filename(uVar4,0)" (identifier "uVar4") (= "=") (call_expression "printable_filename(uVar4,0)" (identifier "printable_filename") (argument_list "(uVar4,0)" (( "(") (identifier "uVar4") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar5 = dcgettext(0,"%s: command not found",5);" (assignment_expression "uVar5 = dcgettext(0,"%s: command not found",5)" (identifier "uVar5") (= "=") (call_expression "dcgettext(0,"%s: command not found",5)" (identifier "dcgettext") (argument_list "(0,"%s: command not found",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s: command not found"" (" """) (string_content "%s: command not found") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "internal_error(uVar5,uVar4);" (call_expression "internal_error(uVar5,uVar4)" (identifier "internal_error") (argument_list "(uVar5,uVar4)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "exit(0x7f);" (call_expression "exit(0x7f)" (identifier "exit") (argument_list "(0x7f)" (( "(") (number_literal "0x7f") () ")"))) (; ";")) (} "}")))

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

int __regparm3
function_1
          (type_1 *words,type_2 *var_35,char *command_line,int var_1,int var_2,
          int var_30,type_3 *var_31,int var_17)

{
  char *var_5;
  size_t var_23;
  char *pcVar3;
  type_4 var_26;
  int var_42;
  type_5 *var_47;
  type_6 *word;
  type_1 *words_00;
  int var_38;
  char *pcVar7;
  char **args;
  type_7 var_8;
  
  pcVar7 = words->word->word;
  var_8 = (var_1 & var_2) == 0xffffffffU & (type_7)((type_8)var_17 >> 6);
  if ((var_3 != 0) && (var_5 = var_4(pcVar7,0x2f), var_5 != (char *)0x0)) {
    var_5 = (char *)var_6(0,"%s: restricted: cannot specify `/\' in command names",5);
    var_7(var_5,pcVar7);
    last_command_exit_value = 1;
    if (var_8 != 0) {
                    /* WARNING: Subroutine does not return */
      var_9(1);
    }
    var_38 = 1;
    var_5 = (char *)0x0;
joined_r0x00049323:
    if (var_10 != 0) {
      var_11(var_10);
    }
    if (var_12 != 0) {
      var_13();
    }
    var_14(var_1,var_2);
    if (var_5 != (char *)0x0) {
      var_15(var_5);
    }
    return var_38;
  }
  var_5 = var_16(pcVar7,(-(type_8)((var_17 & 0x4000U) == 0) & 0xfffffffe) + 3);
  if (var_10 != 0) {
    var_11(var_10);
  }
  if (var_12 != 0) {
    var_13();
  }
  if (var_5 != (char *)0x0) {
    if (var_8 != 0) {
      var_18(-1);
    }
    var_19();
    var_20(var_5);
  }
  if (var_8 == 0) {
    var_23 = var_21(command_line);
    pcVar3 = (char *)var_22(var_23 + 1);
    pcVar3 = var_24(pcVar3,command_line);
    var_26 = var_25(pcVar3,var_30);
    if (var_26 != 0) {
      var_38 = 0;
      goto joined_r0x00049323;
    }
    var_27();
    var_28();
    if (var_29 != 0) {
      var_11(0xf);
    }
    var_15(pcVar3);
  }
  else {
    var_27();
    var_28();
    if (var_29 != 0) {
      var_11(0xf);
    }
  }
  if (var_30 == 0) {
    if (var_31 != (type_3 *)0x0) {
      var_32(var_31);
    }
    var_33(var_1,var_2);
    var_34 = var_34 | 8;
    var_38 = interactive;
    if (var_35 == (type_2 *)0x0) goto LAB_00049213;
    var_42 = var_36(var_35,1);
    var_38 = interactive;
  }
  else {
    if ((((var_17 & 0x400U) != 0) && (var_1 == -1)) &&
       (var_38 = var_37(var_35), var_38 == 0)) {
      var_39();
    }
    if (var_40 == 0) {
      var_41();
    }
    if (var_31 != (type_3 *)0x0) {
      var_32(var_31);
    }
    var_33(var_1,var_2);
    var_38 = interactive;
    var_34 = var_34 | 8;
    interactive = 0;
    if (var_35 == (type_2 *)0x0) goto LAB_00049213;
    var_42 = var_36(var_35,1);
  }
  if (var_42 != 0) {
    var_43();
                    /* WARNING: Subroutine does not return */
    var_9(1);
  }
LAB_00049213:
  interactive = var_38;
  if (var_5 != (char *)0x0) {
    if (var_29 != 0) {
      var_11(0xf);
    }
    args = var_44(words,0,0,(int *)0x0);
    var_38 = var_45(var_5,args,export_env);
                    /* WARNING: Subroutine does not return */
    var_9(var_38);
  }
  var_47 = var_46("command_not_found_handle");
  if (var_47 != (type_5 *)0x0) {
    var_48();
    var_49();
    word = var_50("command_not_found_handle");
    words_00 = var_51(word,words);
    var_38 = var_52(var_47,words_00);
                    /* WARNING: Subroutine does not return */
    var_9(var_38);
  }
  pcVar7 = var_53(pcVar7,0);
  var_5 = (char *)var_6(0,"%s: command not found",5);
  var_7(var_5,pcVar7);
                    /* WARNING: Subroutine does not return */
  var_9(0x7f);
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined4 __regparm3
MASKED(int param_1,int param_2,char *param_3,uint param_4,uint param_5,int param_6,int param_7
            ,uint param_8)

{
  void *__ptr;
  size_t sVar1;
  char *pcVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  byte bVar6;
  
  uVar4 = **(undefined4 **)(param_1 + 4);
  bVar6 = (param_4 & param_5) == 0xffffffff & (byte)(param_8 >> 6);
  if ((restricted != 0) && (iVar3 = mbschr(uVar4,0x2f), iVar3 != 0)) {
    uVar5 = dcgettext(0,"%s: restricted: cannot specify `/\' in command names",5);
    internal_error(uVar5,uVar4);
    last_command_exit_value = 1;
    if (bVar6 != 0) {
                    /* WARNING: Subroutine does not return */
      exit(1);
    }
    uVar4 = 1;
    __ptr = (void *)0x0;
joined_r0x00049323:
    if (terminating_signal != 0) {
      termsig_handler(terminating_signal);
    }
    if (interrupt_state != 0) {
      throw_to_top_level();
    }
    FUN_00046d60();
    if (__ptr != (void *)0x0) {
      free(__ptr);
    }
    return uVar4;
  }
  __ptr = (void *)search_for_command(uVar4,(-(uint)((param_8 & 0x4000) == 0) & 0xfffffffe) + 3);
  if (terminating_signal != 0) {
    termsig_handler(terminating_signal);
  }
  if (interrupt_state != 0) {
    throw_to_top_level();
  }
  if (__ptr != (void *)0x0) {
    if (bVar6 != 0) {
      adjust_shell_level(0xffffffff);
    }
    maybe_make_export_env();
    put_command_name_into_env(__ptr);
  }
  if (bVar6 == 0) {
    sVar1 = strlen(param_3);
    pcVar2 = (char *)xmalloc(sVar1 + 1);
    pcVar2 = strcpy(pcVar2,param_3);
    iVar3 = make_child(pcVar2,param_6);
    if (iVar3 != 0) {
      uVar4 = 0;
      goto joined_r0x00049323;
    }
    reset_terminating_signals();
    restore_original_signals();
    if (sigterm_received != 0) {
      termsig_handler(0xf);
    }
    free(pcVar2);
  }
  else {
    reset_terminating_signals();
    restore_original_signals();
    if (sigterm_received != 0) {
      termsig_handler(0xf);
    }
  }
  if (param_6 == 0) {
    if (param_7 != 0) {
      FUN_00047860();
    }
    FUN_000478d0();
    _subshell_environment = _subshell_environment | 8;
    uVar5 = interactive;
    if (param_2 == 0) goto LAB_00049213;
    iVar3 = do_redirections(param_2,1);
    uVar5 = interactive;
  }
  else {
    if ((((param_8 & 0x400) != 0) && (param_4 == 0xffffffff)) &&
       (iVar3 = stdin_redirects(param_2), iVar3 == 0)) {
      FUN_000479a0();
    }
    if (job_control == 0) {
      FUN_00048070();
    }
    if (param_7 != 0) {
      FUN_00047860();
    }
    FUN_000478d0();
    uVar5 = interactive;
    _subshell_environment = _subshell_environment | 8;
    interactive = 0;
    if (param_2 == 0) goto LAB_00049213;
    iVar3 = do_redirections(param_2,1);
  }
  if (iVar3 != 0) {
    unlink_fifo_list();
                    /* WARNING: Subroutine does not return */
    exit(1);
  }
LAB_00049213:
  interactive = uVar5;
  if (__ptr != (void *)0x0) {
    if (sigterm_received != 0) {
      termsig_handler(0xf);
    }
    uVar4 = strvec_from_word_list(param_1,0,0,0);
    iVar3 = shell_execve(__ptr,uVar4,export_env);
                    /* WARNING: Subroutine does not return */
    exit(iVar3);
  }
  iVar3 = find_function("command_not_found_handle");
  if (iVar3 != 0) {
    without_job_control();
    set_sigchld_handler();
    uVar4 = make_word("command_not_found_handle");
    uVar4 = make_word_list(uVar4,param_1);
    iVar3 = execute_shell_function(iVar3,uVar4);
                    /* WARNING: Subroutine does not return */
    exit(iVar3);
  }
  uVar4 = printable_filename(uVar4,0);
  uVar5 = dcgettext(0,"%s: command not found",5);
  internal_error(uVar5,uVar4);
                    /* WARNING: Subroutine does not return */
  exit(0x7f);
}

