void BAOriSessionSetupTimeout(undefined4 param_1,byte *param_2)
{
byte bVar1;
code *pcVar2;
undefined2 uVar3;
int iVar4;
byte *pbVar5;
undefined1 local_28;
undefined1 auStack_27 [6];
byte local_21;
undefined2 local_20;
byte local_1e;
byte local_1d;
if ((param_2 != (byte *)0x0) && (pbVar5 = *(byte **)(param_2 + 0x34), pbVar5[0x76a0c] == 0x80)) {
if ((*(int *)(param_2 + 8) == 2) && (param_2[3] < 8)) {
iVar4 = (uint)*param_2 * 0xa20;
memset(&local_28,0,0xe) //possible issue identified - semgrep
memcpy(auStack_27,pbVar5 + iVar4 + 0x5d190,6) //possible issue identified - semgrep
local_1e = param_2[1];
local_28 = (undefined1)*(undefined2 *)(pbVar5 + iVar4 + 0x5d1b6);
local_21 = pbVar5[0x16a64];
local_1d = param_2[3];
local_20 = 0;
MlmeEnqueue(pbVar5,9,0x12,0xe,&local_28,0);
MlmeHandler(pbVar5);
if (RTDebugLevel < 3) {
bVar1 = param_2[3];
}
else {
printk("BA Ori Session Timeout(%d) : Send ADD BA again\n",param_2[3]);
bVar1 = param_2[3];
}
pbVar5 = param_2 + 0xc;
param_2[3] = bVar1 + 1;
uVar3 = 2000;
pcVar2 = RTMPSetTimer;
}
else {
uVar3 = *(undefined2 *)
(pbVar5 + ((uint)*param_2 * 0x510 + (uint)param_2[1] + 0x2e9b4) * 2 + 6);
pcVar2 = BATableFreeOriEntry;
}
(*pcVar2)(pbVar5,uVar3);
}
return;
}