void SendBSS2040CoexistMgmtAction(int param_1,uint param_2,uint param_3,uint param_4)
{
undefined4 uVar1;
undefined2 uVar2;
int iVar3;
undefined6 *puVar4;
undefined4 local_48;
undefined1 local_44;
undefined1 local_43;
undefined1 local_42;
undefined4 local_40;
undefined4 local_3c;
undefined1 auStack_38 [24];
undefined1 local_20;
undefined1 local_1f;
param_2 = param_2 & 0xff;
local_40 = 0;
if (2 < RTDebugLevel) {
printk("SendBSS2040CoexistMgmtAction(): Wcid=%d, apidx=%d, InfoReq=%d!\n",param_2,param_3 & 0xff
,param_4 & 0xff);
}
memset(&local_48,0,3) //possible issue identified - semgrep
memset(&local_44,0,3) //possible issue identified - semgrep
uVar2 = local_48._2_2_;
local_48 = CONCAT22(local_48._2_2_,0x100);
local_48 = CONCAT31(local_48._1_3_,0x48);
uVar1 = local_48;
local_48._3_1_ = SUB21(uVar2,1);
local_48._0_3_ = CONCAT12(*(undefined1 *)(param_1 + 0x16b74),(short)uVar1);
local_48 = local_48 & 0xfffeffff | (param_4 & 1) << 0x10;
local_44 = 0x49;
local_43 = 1;
local_42 = get_regulatory_class(param_1);
iVar3 = os_alloc_mem(param_1,&local_40,0x640);
if (iVar3 == 0) {
if (param_2 == 0) {
puVar4 = &BROADCAST_ADDR;
}
else {
puVar4 = (undefined6 *)(param_1 + param_2 * 0xa20 + 0x5d190);
}
iVar3 = (param_3 & 0xff) * 0x1140 + param_1 + 0x51ac;
ActHeaderInit(param_1,auStack_38,puVar4,iVar3,iVar3);
local_20 = 4;
local_1f = 0;
MakeOutgoingFrame(local_40,&local_3c,0x1a,auStack_38,3,&local_48,3,&local_44,0xffffffff);
MiniportMMRequest(param_1,0,local_40,local_3c);
os_free_mem(param_1,local_40);
if (RTDebugLevel != 0) {
printk("ACT - SendBSS2040CoexistMgmtAction( BSSCoexist2040 = 0x%x ) \n",local_48._2_1_);
}
}
else if (RTDebugLevel != 0) {
printk("ACT - SendBSS2040CoexistMgmtAction() allocate memory failed \n");
}
return;
}