undefined4 FUN_00408e6c(undefined4 *param_1,int param_2)

{
  int *__s;
  int *piVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  undefined4 *puVar5;
  int *piVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  
  while( true ) {
    __s = (int *)malloc(0x20)   //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,0x20)   //possible issue identified - semgrep
    piVar1 = __s + 2;
    piVar6 = __s + 4;
    __s[3] = (int)piVar1;
    __s[2] = (int)piVar1;
    __s[5] = (int)piVar6;
    __s[4] = (int)piVar6;
    iVar2 = FUN_00407f84(param_1,piVar1);
    if (iVar2 == 0) goto LAB_00409234;
    iVar3 = sobj_strcmp(iVar2,&DAT_004226b8);
    if (iVar3 == 0) {
      __s[6] = 0;
      goto LAB_00409074;
    }
    iVar3 = sobj_strcmp(iVar2,&DAT_004226bc);
    iVar4 = 1;
    if (iVar3 != 0) break;
LAB_00409000:
    __s[6] = iVar4;
LAB_00409074:
    sobj_del(iVar2);
    iVar2 = FUN_00407f84(param_1,piVar6);
    if (iVar2 == 0) goto LAB_00409234;
    iVar3 = sobj_strcmp(iVar2,&DAT_004226a4);
    if (iVar3 == 0) {
      __s[7] = 0;
    }
    else {
      iVar3 = sobj_strcmp(iVar2,&DAT_004226a8);
      iVar4 = 1;
      if (iVar3 != 0) {
        iVar3 = sobj_strcmp(iVar2,&DAT_004226ac);
        iVar4 = 2;
        if (iVar3 != 0) goto LAB_00409104;
      }
      __s[7] = iVar4;
    }
    puVar5 = *(undefined4 **)(param_2 + 4);
    *__s = param_2;
    *(int **)(param_2 + 4) = __s;
    *puVar5 = __s;
    __s[1] = (int)puVar5;
    iVar3 = sobj_strcmp(iVar2,&DAT_004226a4);
    uVar8 = 0;
    if (iVar3 == 0) goto LAB_004091e4;
    sobj_del(iVar2);
  }
  iVar3 = sobj_strcmp(iVar2,&DAT_004226b0);
  iVar4 = 2;
  if (iVar3 == 0) goto LAB_00409000;
  iVar3 = sobj_strcmp(iVar2,&DAT_004226b4);
  if (iVar3 == 0) {
    __s[6] = 3;
    goto LAB_00409074;
  }
  iVar3 = sobj_strcmp(iVar2,&DAT_004226c4);
  if (iVar3 == 0) {
    __s[6] = 4;
    goto LAB_00409074;
  }
  iVar3 = sobj_strcmp(iVar2,&DAT_004226c0);
  if (iVar3 == 0) {
    __s[6] = 5;
    goto LAB_00409074;
  }
LAB_00409104:
  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;
  uVar8 = sobj_get_string(iVar2);
  client_printf(uVar7,"got an invalid token [%s]",uVar8);
  client_printf(*param_1,"\n!! %s <<<<<<<<<<<<<<<<<<<<<<<<<\n","SYNTAX ERROR");
LAB_00409234:
  FUN_00408e24(__s);
  uVar8 = 0xffffffff;
LAB_004091e4:
  if (iVar2 == 0) {
    return uVar8;
  }
  sobj_del(iVar2);
  return uVar8;
}