undefined4
MlmeEnqueue(int param_1,undefined4 param_2,undefined4 param_3,uint param_4,void *param_5,
undefined4 param_6)
{
undefined4 uVar1;
int iVar2;
int iVar3;
int iVar4;
if ((*(uint *)(param_1 + 0x76904) & 0x140) == 0) {
if (param_4 < 0x641) {
iVar2 = MlmeQueueFull(param_1 + 0x16fc8,1);
uVar1 = 0;
if (iVar2 == 0) {
local_bh_disable();
iVar2 = *(int *)(param_1 + 0x16fd0);
*(int *)(param_1 + 0x16fc8) = *(int *)(param_1 + 0x16fc8) + 1;
*(int *)(param_1 + 0x16fd0) = iVar2 + 1;
if (iVar2 + 1 == 0x14) {
*(undefined4 *)(param_1 + 0x16fd0) = 0;
}
iVar3 = (iVar2 + 1) * 0x668 + param_1;
*(undefined1 *)(iVar3 + 0x16fce) = 1;
iVar4 = param_1 + iVar2 * 0x668;
*(undefined4 *)(iVar4 + 0x17638) = param_6;
*(undefined1 *)(iVar3 + 0x16fcd) = 0xff;
*(undefined4 *)(iVar4 + 0x17618) = param_2;
*(undefined4 *)(iVar4 + 0x1761c) = param_3;
*(uint *)(iVar4 + 0x17620) = param_4;
if (param_5 != (void *)0x0) {
memmove((void *)(param_1 + iVar2 * 0x668 + 0x16fd8),param_5,param_4) //possible issue identified - semgrep
}
local_bh_enable();
uVar1 = 1;
}
}
else {
printk("ERROR!!! ");
printk("MlmeEnqueue: msg too large, size = %ld \n",param_4);
uVar1 = 0;
}
}
else {
uVar1 = 0;
}
return uVar1;
}