undefined4 CntlEnqueueForRecv(int param_1,uint param_2,uint param_3,int param_4)
{
uint uVar1;
char *pcVar2;
short sVar3;
uint uVar4;
uVar1 = ((uint)*(byte *)(param_4 + 0x11) << 0x18) >> 0x1c;
if (2 < RTDebugLevel) {
printk("%s(): BAR-Wcid(%ld), Tid (%d)\n","CntlEnqueueForRecv",param_2,uVar1);
}
if ((*(uint *)(param_1 + 0x76904) & 0x140) == 0) {
if (param_3 < 0x641) {
if (param_3 == 0x14) {
if (0x1f < param_2) {
return 0;
}
if (7 < uVar1) {
return 0;
}
uVar4 = (uint)*(ushort *)(param_1 + (param_2 * 0x510 + uVar1 + 0x2e9ac) * 2 + 6);
if (2 < RTDebugLevel) {
printk("BAR(%ld) : Tid (%d) - %04x:%04x\n",param_2,uVar1,
(uint)*(byte *)(param_4 + 0x13) << 4 | (uint)(*(byte *)(param_4 + 0x12) >> 4),
*(undefined2 *)(uVar4 * 0x4c + param_1 + 0x72f70));
}
if (((uint)*(ushort *)(param_1 + uVar4 * 0x4c + 0x72f70) -
((uint)*(byte *)(param_4 + 0x13) << 4 | (uint)(*(byte *)(param_4 + 0x12) >> 4)) & 0x800
) == 0) {
return 1;
}
ba_indicate_reordering_mpdus_le_seq(param_1,param_1 + uVar4 * 0x4c + 0x72f6c);
uVar1 = (uint)*(byte *)(param_4 + 0x13) << 4 | (uint)(*(byte *)(param_4 + 0x12) >> 4);
sVar3 = 0xfff //possible issue identified - semgrep
if (uVar1 != 0) {
sVar3 = (short)uVar1 + -1 //possible issue identified - semgrep
}
*(short *)(uVar4 * 0x4c + param_1 + 0x72f70) = sVar3;
return 1;
}
printk("ERROR!!! ");
pcVar2 = "CntlEnqueueForRecv: BlockAck Request frame length size = %ld incorrect\n";
}
else {
printk("ERROR!!! ");
pcVar2 = "CntlEnqueueForRecv: frame too large, size = %ld \n";
}
printk(pcVar2,param_3);
}
return 0;
}