int servicecgi_main(void)

{
  undefined *__ptr;
  char *pcVar1;
  int *piVar2;
  int iVar3;
  void *__ptr_00;
  undefined4 uVar4;
  char *__format;
  int iVar5;
  char acStack_118 [260];
  
  memset(acStack_118,0,0x100)   //possible issue identified - semgrep
  pcVar1 = getenv("REQUEST_METHOD")   //possible issue identified - semgrep
  if (pcVar1 == (char *)0x0) {
    pcVar1 = "No HTTP request";
    goto LAB_0040ac78;
  }
  iVar5 = strcasecmp(pcVar1,"POST");
  if (iVar5 == 0) {
    uVar4 = 0x400;
LAB_0040ac00:
    iVar5 = cgibin_parse_request(FUN_0040aefc,0,uVar4);
    if (iVar5 < 0) {
      pcVar1 = "Unable to parse HTTP request";
    }
    else {
      iVar5 = sess_ispoweruser();
      if (iVar5 != 0) {
        iVar3 = FUN_0040aa80("EVENT");
        pcVar1 = (char *)FUN_0040aa80("ACTION");
        iVar5 = FUN_0040aa80("SERVICE");
        if (iVar3 == 0) {
          if ((iVar5 != 0) && (pcVar1 != (char *)0x0)) {
            iVar3 = strcasecmp(pcVar1,"START");
            if (iVar3 == 0) {
              pcVar1 = "service %s start > /dev/null";
            }
            else {
              iVar3 = strcasecmp(pcVar1,"STOP");
              if (iVar3 == 0) {
                pcVar1 = "service %s stop > /dev/null";
              }
              else {
                iVar3 = strcasecmp(pcVar1,"RESTART");
                if (iVar3 != 0) {
                  __format = "Unknown action - \'%s\'";
                  goto LAB_0040ac30;
                }
                pcVar1 = "service %s restart > /dev/null";
              }
            }
            goto LAB_0040ad68;
          }
        }
        else {
          pcVar1 = "event %s > /dev/null";
          iVar5 = iVar3;
LAB_0040ad68:
          lxmldbc_system(pcVar1,iVar5)   //possible issue identified - semgrep
        }
        memset(acStack_118,0,0x100)   //possible issue identified - semgrep
        iVar5 = 0;
        goto LAB_0040adac;
      }
      pcVar1 = "Not authorized";
    }
LAB_0040ac78:
    snprintf(acStack_118,0x100,pcVar1)   //possible issue identified - semgrep
  }
  else {
    iVar5 = strcasecmp(pcVar1,"GET");
    if (iVar5 == 0) {
      uVar4 = 0x40;
      goto LAB_0040ac00;
    }
    __format = "Unsupport HTTP request - %s";
LAB_0040ac30:
    snprintf(acStack_118,0x100,__format,pcVar1)   //possible issue identified - semgrep
  }
  iVar5 = -1;
LAB_0040adac:
  puts("HTTP/1.1 200 OK\r\nContent-Type: text/xml\r\n\r");
  puts("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
  puts("<report>");
  if (iVar5 == 0) {
    pcVar1 = "OK";
  }
  else {
    pcVar1 = "FAILED";
  }
  printf("\t<result>%s</result>\n",pcVar1);
  printf("\t<essage>%s</message>\n",acStack_118);
  puts("</report>");
  cgibin_clean_tempfiles();
  while (__ptr = PTR_LOOP_00430450, (undefined **)PTR_LOOP_00430450 != &PTR_LOOP_00430450) {
    piVar2 = *(int **)(PTR_LOOP_00430450 + 4);
    iVar3 = *(int *)PTR_LOOP_00430450;
    __ptr_00 = *(void **)(PTR_LOOP_00430450 + 8);
    *piVar2 = iVar3;
    *(int **)(iVar3 + 4) = piVar2;
    *(undefined4 *)__ptr = 0;
    *(undefined4 *)(__ptr + 4) = 0;
    if (__ptr_00 != (void *)0x0) {
      free(__ptr_00);
    }
    if (*(void **)(__ptr + 0xc) != (void *)0x0) {
      free(*(void **)(__ptr + 0xc));
    }
    free(__ptr);
  }
  return iVar5;
}