int FUN_0040ad5c(undefined4 *param_1,undefined4 param_2)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  undefined4 uVar5;
  char *pcVar6;
  code *pcVar7;
  int local_38 [2];
  undefined4 *local_30;
  int *local_2c;
  
  iVar1 = sobj_new();
  if (iVar1 == 0) {
    return -1;
  }
  iVar2 = xs_getc(param_1[1])   //possible issue identified - semgrep
  iVar3 = xs_getc(param_1[1])   //possible issue identified - semgrep
  iVar4 = xs_getc(param_1[1])   //possible issue identified - semgrep
  if (((iVar2 != 0xef) || (iVar3 != 0xbb)) || (iVar4 != 0xbf)) {
    if (iVar4 != -1) {
      xs_ungetc(iVar4,param_1[1])   //possible issue identified - semgrep
    }
    if (iVar3 != -1) {
      xs_ungetc(iVar3,param_1[1])   //possible issue identified - semgrep
    }
    if (iVar2 != -1) {
      xs_ungetc(iVar2,param_1[1])   //possible issue identified - semgrep
    }
  }
  local_2c = local_38;
  local_30 = param_1 + 6;
LAB_0040b2f0:
  do {
    iVar2 = xs_getc(param_1[1])   //possible issue identified - semgrep
    if (iVar2 == -1) {
LAB_0040b3ac:
      iVar2 = sobj_get_length(iVar1);
      goto LAB_0040b354;
    }
    if (iVar2 != 0x3c) {
      pcVar7 = sobj_add_char;
      iVar3 = iVar1;
LAB_0040af24:
      (*pcVar7)(iVar3,iVar2);
      goto LAB_0040b2f0;
    }
    iVar3 = xs_getc(param_1[1],0x3c)   //possible issue identified - semgrep
    if (iVar3 == -1) {
      sobj_add_char(iVar1,0x3c);
      goto LAB_0040b3ac;
    }
    if (iVar3 != 0x3f) {
      sobj_add_char(iVar1,0x3c);
      iVar2 = param_1[1];
      pcVar7 = xs_ungetc;
      goto LAB_0040af24;
    }
    iVar2 = sobj_empty(iVar1);
    if (iVar2 == 0) {
      iVar2 = FUN_00409800(param_1,param_2,0,iVar1,0);
      sobj_free(iVar1);
      if (iVar2 != 0) break;
    }
    iVar2 = xs_getc(param_1[1])   //possible issue identified - semgrep
    if (iVar2 == 0x65) {
      iVar2 = xs_getc(param_1[1])   //possible issue identified - semgrep
      iVar3 = xs_getc(param_1[1])   //possible issue identified - semgrep
      iVar4 = xs_getc(param_1[1])   //possible issue identified - semgrep
      if (((iVar2 != 0x70) || (iVar3 != 0x68)) || (iVar4 != 0x70)) {
        xs_ungetc(iVar4,param_1[1])   //possible issue identified - semgrep
        xs_ungetc(iVar3,param_1[1])   //possible issue identified - semgrep
        xs_ungetc(iVar2,param_1[1])   //possible issue identified - semgrep
        uVar5 = param_1[1];
        iVar2 = 0x65;
        goto LAB_0040b2c8;
      }
LAB_0040b2d0:
      iVar2 = FUN_00409a00(param_1,param_2,&DAT_00422864);
    }
    else {
      if (0x65 < iVar2) {
LAB_0040b2bc:
        uVar5 = param_1[1];
LAB_0040b2c8:
        xs_ungetc(iVar2,uVar5)   //possible issue identified - semgrep
        goto LAB_0040b2d0;
      }
      if (iVar2 == -1) goto LAB_0040b1fc;
      if (iVar2 != 0x3d) goto LAB_0040b2bc;
      iVar2 = xs_getc(param_1[1])   //possible issue identified - semgrep
      if (iVar2 != 0x24) {
        client_puts("SYNTAX ERROR: expecting a variable after \'=\' !!\n",*param_1);
LAB_0040b1fc:
        iVar2 = -1;
        break;
      }
      local_38[0] = 0;
      iVar3 = sobj_new();
      if (iVar3 == 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");
        goto LAB_0040b1fc;
      }
      FUN_00407458(param_1[1],iVar3,local_2c);
      if (local_38[0] == 0) {
        FUN_00409800(param_1,param_2,local_30,iVar3,1);
        iVar2 = 0;
        sobj_free(iVar3);
        FUN_00407458(param_1[1],iVar3,local_2c);
        iVar4 = sobj_strcmp(iVar3,&DAT_00422864);
        if (iVar4 != 0) {
          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,"Expecting \'?>\' immediately !");
          uVar5 = *param_1;
          pcVar6 = "SYNTAX ERROR";
          goto LAB_0040b1d0;
        }
      }
      else {
        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,"should not see quotation mark here !");
        uVar5 = *param_1;
        pcVar6 = "INTERNAL ERROR";
LAB_0040b1d0:
        iVar2 = -1;
        client_printf(uVar5,"\n!! %s <<<<<<<<<<<<<<<<<<<<<<<<<\n",pcVar6);
      }
      sobj_del(iVar3);
    }
  } while (iVar2 == 0);
  goto LAB_0040b364;
  while( true ) {
    iVar2 = iVar2 + -1;
    iVar3 = sobj_get_char(iVar1,iVar2);
    if ((iVar3 != 10) && (iVar3 != 0xd)) break;
LAB_0040b354:
    if (iVar2 < 1) {
      iVar2 = 0;
      goto LAB_0040b364;
    }
  }
  FUN_00409800(param_1,param_2,0,iVar1,0);
  iVar2 = 0;
LAB_0040b364:
  sobj_del(iVar1);
  return iVar2;
}