void PeerAddBAReqAction(int param_1,int param_2)
{
byte bVar1;
uint uVar2;
int iVar3;
uint uVar4;
undefined4 uVar5;
uint uVar6;
undefined1 uVar7;
undefined4 local_50;
undefined4 local_4c;
undefined1 auStack_48 [8];
undefined1 auStack_40 [24];
undefined2 local_28;
undefined1 uStack_26;
undefined1 uStack_25;
uint local_24;
uint local_20;
local_50 = 0;
if (2 < RTDebugLevel) {
printk("%s ==> (Wcid = %d)\n","PeerAddBAReqAction",*(undefined1 *)(param_2 + 0x65d));
}
bVar1 = *(byte *)(param_2 + 0x65d);
if (bVar1 < 0x20) {
if (RTDebugLevel < 3) {
uVar5 = *(undefined4 *)(param_2 + 0x648);
}
else {
printk("BA - PeerAddBAReqAction----> \n");
uVar5 = *(undefined4 *)(param_2 + 0x648);
}
iVar3 = PeerAddBAReqActionSanity(param_1,param_2,uVar5,auStack_48);
uVar7 = 1;
if ((iVar3 != 0) && (uVar7 = 0x25, *(char *)(param_1 + 0x16e05) == '\0')) {
if (*(uint *)((uint)bVar1 * 0xa20 + param_1 + 0x5d350) >> 0x1e < 2) {
uVar7 = 0x25;
}
else {
printk("Rcv Wcid(%d) AddBAReq\n",*(undefined1 *)(param_2 + 0x65d));
iVar3 = BARecSessionAdd(param_1,param_1 + (uint)*(byte *)(param_2 + 0x65d) * 0xa20 + 0x5cf38
,param_2);
uVar7 = 0;
if (iVar3 == 0) {
uVar7 = 0x26;
}
}
}
iVar3 = (uint)*(byte *)(param_2 + 0x65d) * 0xa20 + param_1;
if ((*(int *)(iVar3 + 0x5cf38) == 1) && (*(int *)(iVar3 + 0x5d1ac) != 2)) {
printk("<4>/home/eric/release/dir600b5/progs.priv/rt2860v2/build/rt2860v2_ap/../rt2860v2/common/ba_action.c:%d assert pAd->MacTab.Content[Elem->Wcid].Sst == SST_ASSOCfailed\n"
,0x4da);
}
iVar3 = os_alloc_mem(param_1,&local_50,0x640);
if (iVar3 == 0) {
memset(auStack_40,0,0x21) //possible issue identified - semgrep
iVar3 = (uint)*(byte *)((uint)*(byte *)(param_2 + 0x65d) * 0xa20 + param_1 + 0x5cf69) * 0x1140
+ param_1 + 0x51ac;
ActHeaderInit(param_1,auStack_40,auStack_48,iVar3,iVar3);
uVar4 = (*(byte *)(param_2 + 0x1c) & 0x3f) << 2 | (uint)(*(byte *)(param_2 + 0x1b) >> 6);
uVar6 = (uint)*(byte *)(param_1 + 0x16a64);
if (uVar4 < *(byte *)(param_1 + 0x16a64)) {
uVar6 = uVar4;
}
uVar4 = (((uint)*(byte *)(param_2 + 0x1b) << 0x1a) >> 0x1c) << 10;
uVar2 = local_24 & 0xff0002ff | 0x200 | uVar4 | uVar6 << 0xe;
if (uVar6 == 0) {
uVar2 = local_24 & 0xff0002ff | 0x200 | uVar4 | 0x100000;
}
local_24 = uVar2;
local_20 = local_20 & 0xffffff00;
local_24 = local_24 & 0xffff00;
_local_28 = CONCAT13(uVar7,CONCAT12(*(undefined1 *)(param_2 + 0x1a),0x103));
MakeOutgoingFrame(local_50,&local_4c,0x21,auStack_40,0xffffffff);
MiniportMMRequest(param_1,0,local_50,local_4c);
os_free_mem(param_1,local_50);
if (2 < RTDebugLevel) {
printk("%s(%d): TID(%d), BufSize(%d) <== \n","PeerAddBAReqAction",
*(undefined1 *)(param_2 + 0x65d),(local_24 << 0x12) >> 0x1c,(local_24 << 8) >> 0x16);
}
}
else if (2 < RTDebugLevel) {
printk("ACTION - PeerBAAction() allocate memory failed \n");
}
}
return;
}