int execute_helper_with_env(char **param_1)

{
  __pid_t __pid;
  __pid_t _Var1;
  int *piVar2;
  int local_260;
  char *local_25c;
  undefined4 local_258;
  sigset_t sStack_254;
  _union_1051 local_1d4;
  undefined4 local_1d0;
  sigset_t sStack_1cc;
  sigaction sStack_144;
  sigaction sStack_b4;
  
  local_1d0 = 1;
  local_25c = &DAT_0043a648;
  local_258 = 0;
  sigemptyset(&sStack_1cc);
  local_1d4.sa_handler = (__sighandler_t)0x0;
  sigemptyset((sigset_t *)(sStack_144.sa_mask.__val + 1));
  sigemptyset((sigset_t *)(sStack_b4.sa_mask.__val + 1));
  sigaction(2,(sigaction *)&local_1d4,&sStack_144);
  sigaction(3,(sigaction *)&local_1d4,&sStack_b4);
  sigaddset(&sStack_1cc,0x12);
  sigprocmask(1,&sStack_1cc,&sStack_254);
  __pid = fork()   //possible issue identified - semgrep
  if (__pid == 0) {
    sigaction(2,&sStack_144,(sigaction *)0x0);
    sigaction(3,&sStack_b4,(sigaction *)0x0);
    sigprocmask(3,&sStack_254,(sigset_t *)0x0);
    execve(local_25c,&local_25c,param_1)   //possible issue identified - semgrep
                    /* WARNING: Subroutine does not return */
    _exit(0x7f);
  }
  if (__pid == -1) {
    local_260 = -1;
  }
  else {
    do {
      _Var1 = waitpid(__pid,&local_260,0);
      if (_Var1 != -1) goto LAB_00402b78;
      piVar2 = __errno_location();
    } while (*piVar2 == 4);
    local_260 = -1;
  }
LAB_00402b78:
  sigaction(2,&sStack_144,(sigaction *)0x0);
  sigaction(3,&sStack_b4,(sigaction *)0x0);
  sigprocmask(3,&sStack_254,(sigset_t *)0x0);
  return local_260;
}