undefined4 FUN_0040aa44(undefined4 *param_1,int param_2)

{
  int *__s;
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  undefined4 *puVar4;
  int *piVar5;
  undefined *puVar6;
  int *piVar7;
  undefined4 uVar8;
  int local_20 [2];
  
  __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");
    return 0xffffffff;
  }
  memset(__s,0,0x24)   //possible issue identified - semgrep
  piVar5 = __s + 3;
  piVar7 = __s + 5;
  __s[2] = 4;
  __s[4] = (int)piVar5;
  __s[3] = (int)piVar5;
  __s[6] = (int)piVar7;
  __s[5] = (int)piVar7;
  iVar1 = FUN_00407f84(param_1,piVar5);
  if (iVar1 != 0) {
    iVar2 = sobj_strcmp(iVar1,&DAT_004226a4);
    if (iVar2 == 0) {
      sobj_free(iVar1);
      FUN_00407458(param_1[1],iVar1,local_20);
      if ((local_20[0] == 0) && (iVar2 = sobj_strcmp(iVar1,&DAT_00422834), iVar2 == 0)) {
        puVar6 = &DAT_00422838;
      }
      else {
        if (local_20[0] != 0) {
          xs_ungetc(0x22,param_1[1])   //possible issue identified - semgrep
        }
        uVar3 = sobj_get_string(iVar1);
        xs_ungets(uVar3,param_1[1])   //possible issue identified - semgrep
        if (local_20[0] != 0) {
          xs_ungetc(0x22,param_1[1])   //possible issue identified - semgrep
        }
        puVar6 = (undefined *)0x0;
      }
      iVar2 = FUN_00409a00(param_1,piVar7,puVar6);
      if (-1 < iVar2) {
        puVar4 = *(undefined4 **)(param_2 + 4);
        *__s = param_2;
        *(int **)(param_2 + 4) = __s;
        *puVar4 = __s;
        __s[1] = (int)puVar4;
        uVar3 = 0;
        goto LAB_0040ad08;
      }
    }
    else {
      client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","SYNTAX ERROR");
      client_printf(*param_1,"!! %s: File:[%s]\n","SYNTAX ERROR",param_1[2]);
      uVar8 = *param_1;
      uVar3 = sobj_get_string(iVar1);
      client_printf(uVar8,"got an invalid token [%s]",uVar3);
      client_printf(*param_1,"\n!! %s <<<<<<<<<<<<<<<<<<<<<<<<<\n","SYNTAX ERROR");
    }
  }
  FUN_00409248(__s);
  uVar3 = 0xffffffff;
LAB_0040ad08:
  if (iVar1 != 0) {
    sobj_del(iVar1);
  }
  return uVar3;
}