/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined4 FUN_004036b8(int param_1,int param_2)

{
  undefined *__path;
  int iVar1;
  __pid_t _Var2;
  undefined4 uVar3;
  char *pcVar4;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  
  iVar1 = FUN_004035d4();
  __path = o_helper;
  uVar3 = 0xffffffff;
  if (iVar1 == 0) {
    if (param_2 == *(int *)(param_1 + 0x10)) {
      if (param_2 == 0) {
        pcVar4 = "stopped";
      }
      else {
        pcVar4 = "started";
      }
      fprintf(_stderr,"SERVD: service [%s] is already %s.\n",*(undefined4 *)(param_1 + 8),pcVar4);
      uVar3 = 0;
    }
    else {
      _Var2 = fork()   //possible issue identified - semgrep
      if (_Var2 != -1) {
        if (_Var2 == 0) {
          local_30 = FUN_004033cc(&DAT_0040a910,"PATH=/bin:/usr/bin:/sbin:/usr/sbin");
          local_2c = FUN_004033cc(&DAT_0040a93c,"HOME=/");
          local_28 = 0;
          if (param_2 == 0) {
            pcVar4 = "    service XXX stop";
          }
          else {
            pcVar4 = "    service XXX start";
          }
          execle(__path,__path,"service",*(undefined4 *)(param_1 + 8),pcVar4 + 0x10,0,&local_30)   //possible issue identified - semgrep
                    /* WARNING: Subroutine does not return */
          exit(0);
        }
        if (param_2 == 0) {
          pcVar4 = "    service XXX stop";
        }
        else {
          pcVar4 = "    service XXX start";
        }
        log_spawn(_Var2,"service %s %s",*(undefined4 *)(param_1 + 8),pcVar4 + 0x10)   //possible issue identified - semgrep
        DAT_0041b360 = param_1;
        *(__pid_t *)(param_1 + 0x14) = _Var2;
        if (-1 < _Var2) {
          *(int *)(param_1 + 0x10) = param_2;
          return 0;
        }
      }
      if (param_2 == 0) {
        pcVar4 = "    service XXX stop";
      }
      else {
        pcVar4 = "    service XXX start";
      }
      fprintf(_stderr,"SERVD: unable to %s service [%s].\n",pcVar4 + 0x10,
              *(undefined4 *)(param_1 + 8));
      uVar3 = 0xffffffff;
    }
  }
  return uVar3;
}