int FUN_004093c8(undefined4 *param_1,int param_2,char *param_3,int param_4)

{
  int iVar1;
  int *__s;
  char *pcVar2;
  undefined4 *puVar3;
  int *piVar4;
  undefined4 uVar5;
  int iVar6;
  undefined4 uVar7;
  int local_28 [3];
  
  iVar1 = sobj_new();
  if (iVar1 == 0) {
    client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","INTERNAL ERROR");
    client_printf(*param_1,"!! %s: File:[%s]\n","INTERNAL ERROR",param_1[2]);
    client_printf(*param_1,"memory allocation failed !");
    client_printf(*param_1,"\n!! %s <<<<<<<<<<<<<<<<<<<<<<<<<\n","INTERNAL ERROR");
    return -1;
  }
  __s = (int *)malloc(0x24)   //possible issue identified - semgrep
  if (__s == (int *)0x0) {
    client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","INTERNAL ERROR");
    client_printf(*param_1,"!! %s: File:[%s]\n","INTERNAL ERROR",param_1[2]);
    client_printf(*param_1,"memory allocation failed !");
    client_printf(*param_1,"\n!! %s <<<<<<<<<<<<<<<<<<<<<<<<<\n","INTERNAL ERROR");
    iVar6 = -1;
  }
  else {
    memset(__s,0,0x24)   //possible issue identified - semgrep
    __s[2] = 2;
    pcVar2 = strdup(param_3)   //possible issue identified - semgrep
    piVar4 = __s + 5;
    __s[3] = (int)pcVar2;
    __s[4] = param_4;
    __s[6] = (int)piVar4;
    __s[5] = (int)piVar4;
    iVar6 = FUN_00408ba4(param_1,piVar4);
    if (-1 < iVar6) {
      FUN_00407458(param_1[1],iVar1,local_28);
      if (local_28[0] == 0) {
        iVar6 = sobj_strcmp(iVar1,&DAT_0042335c);
        if (iVar6 == 0) {
          puVar3 = *(undefined4 **)(param_2 + 4);
          *__s = param_2;
          *(int **)(param_2 + 4) = __s;
          *puVar3 = __s;
          __s[1] = (int)puVar3;
          iVar6 = 0;
          goto LAB_004096d8;
        }
        client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","SYNTAX ERROR");
        client_printf(*param_1,"!! %s: File:[%s]\n","SYNTAX ERROR",param_1[2]);
        uVar7 = *param_1;
        uVar5 = sobj_get_string(iVar1);
        client_printf(uVar7,"got an invalid token [%s]",uVar5);
        uVar5 = *param_1;
      }
      else {
        client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","SYNTAX ERROR");
        client_printf(*param_1,"!! %s: File:[%s]\n","SYNTAX ERROR",param_1[2]);
        client_printf(*param_1,"should not see quotation mark here !");
        uVar5 = *param_1;
      }
      iVar6 = -1;
      client_printf(uVar5,"\n!! %s <<<<<<<<<<<<<<<<<<<<<<<<<\n","SYNTAX ERROR");
    }
    FUN_00409248(__s);
  }
LAB_004096d8:
  sobj_del(iVar1);
  return iVar6;
}