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

int phpcgi_main(int param_1,int param_2,int *param_3)

{
  char *__s1;
  FILE *__stream;
  undefined4 uVar1;
  code *pcVar2;
  int iVar3;
  int iVar4;
  char acStack_28 [24];
  
  if (param_1 < 2) {
    iVar3 = -1;
    iVar4 = 0;
    goto LAB_00405ac4;
  }
  iVar4 = sobj_new();
  if (iVar4 != 0) {
    sobj_add_string(iVar4,*(undefined4 *)(param_2 + 4));
    sobj_add_char(iVar4,10);
    for (; *param_3 != 0; param_3 = param_3 + 1) {
      sobj_add_string(iVar4,"_SERVER_");
      sobj_add_string(iVar4,*param_3);
      sobj_add_char(iVar4,10);
    }
    __s1 = getenv("REQUEST_METHOD")   //possible issue identified - semgrep
    if (__s1 != (char *)0x0) {
      iVar3 = strcasecmp(__s1,"HEAD");
      if ((iVar3 == 0) || (iVar3 = strcasecmp(__s1,"GET"), iVar3 == 0)) {
        pcVar2 = FUN_004056b8;
      }
      else {
        iVar3 = strcasecmp(__s1,"POST");
        if (iVar3 != 0) goto LAB_00405ac0;
        pcVar2 = FUN_00405480;
      }
      iVar3 = cgibin_parse_request(pcVar2,iVar4,0x80000);
      if (iVar3 < 0) {
        if (iVar3 == -100) {
          __stream = fopen("/htdocs/web/info.php","r")   //possible issue identified - semgrep
          if (__stream != (FILE *)0x0) {
            fclose(__stream);
            cgibin_print_http_resp(1,"/info.php",&DAT_0041e01c,"ERR_REQ_TOO_LONG",0,"");
          }
        }
        else {
          cgibin_print_http_status(400,"unsupported HTTP request","unsupported HTTP request");
        }
      }
      else {
        uVar1 = sess_validate();
        sprintf(acStack_28,"AUTHORIZED_GROUP=%d",uVar1)   //possible issue identified - semgrep
        sobj_add_string(iVar4,acStack_28);
        sobj_add_char(iVar4,10);
        sobj_add_string(iVar4,"SESSION_UID=");
        sess_get_uid(iVar4);
        sobj_add_char(iVar4,10);
        uVar1 = sobj_get_string(iVar4);
        iVar3 = xmldbc_ephp(0,0,uVar1,_stdout);
      }
      goto LAB_00405ac4;
    }
  }
LAB_00405ac0:
  iVar3 = -1;
LAB_00405ac4:
  cgibin_clean_tempfiles();
  if (iVar4 != 0) {
    sobj_del(iVar4);
  }
  return iVar3;
}