undefined4 FUN_00408ba4(undefined4 *param_1,int param_2)

{
  int *__ptr;
  int iVar1;
  undefined4 *puVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  int *piVar6;
  
  while( true ) {
    __ptr = (int *)malloc(0x10)   //possible issue identified - semgrep
    piVar6 = __ptr + 2;
    if (__ptr == (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;
    }
    *__ptr = 0;
    __ptr[1] = 0;
    __ptr[3] = (int)piVar6;
    __ptr[2] = (int)piVar6;
    iVar1 = FUN_00407f84(param_1,piVar6);
    if (iVar1 == 0) {
      FUN_00407f28(piVar6,&DAT_004226a4);
      free(__ptr);
      return 0xffffffff;
    }
    puVar2 = *(undefined4 **)(param_2 + 4);
    *__ptr = param_2;
    *(int **)(param_2 + 4) = __ptr;
    *puVar2 = __ptr;
    __ptr[1] = (int)puVar2;
    iVar3 = sobj_strcmp(iVar1);
    if (iVar3 == 0) break;
    iVar3 = sobj_strcmp(iVar1,&DAT_004226a0);
    if (iVar3 != 0) {
      client_printf(*param_1,"\n!! %s >>>>>>>>>>>>>>>>>>>>>>>>>\n","SYNTAX ERROR");
      client_printf(*param_1,"!! %s: File:[%s]\n","SYNTAX ERROR",param_1[2]);
      uVar5 = *param_1;
      uVar4 = sobj_get_string(iVar1);
      client_printf(uVar5,"got an invalid token [%s]",uVar4);
      client_printf(*param_1,"\n!! %s <<<<<<<<<<<<<<<<<<<<<<<<<\n","SYNTAX ERROR");
      uVar4 = 0xffffffff;
      goto LAB_00408e08;
    }
    sobj_del(iVar1);
  }
  uVar4 = 0;
LAB_00408e08:
  sobj_del(iVar1);
  return uVar4;
}