void PeerHTAction(int param_1,int param_2)
{
char cVar1;
byte bVar2;
uint uVar3;
int iVar4;
undefined4 local_38;
undefined4 local_34;
undefined1 auStack_30 [24];
uint local_18;
cVar1 = *(char *)(param_2 + 0x19) //possible issue identified - semgrep
if (*(byte *)(param_2 + 0x65d) < 0x20) {
if (cVar1 == '\x01') {
if (RTDebugLevel < 3) {
bVar2 = *(byte *)(param_2 + 0x1a);
}
else {
printk("ACTION - SMPS action----> \n");
bVar2 = *(byte *)(param_2 + 0x1a);
}
if ((bVar2 & 1) == 0) {
*(undefined1 *)((uint)*(byte *)(param_2 + 0x65d) * 0xa20 + param_1 + 0x5d391) = 3;
}
else if ((bVar2 & 2) == 0) {
*(undefined1 *)((uint)*(byte *)(param_2 + 0x65d) * 0xa20 + param_1 + 0x5d391) = 0;
}
else {
*(undefined1 *)((uint)*(byte *)(param_2 + 0x65d) * 0xa20 + param_1 + 0x5d391) = 1;
}
if (2 < RTDebugLevel) {
printk("Aid(%d) MIMO PS = %d\n",(uint)*(byte *)(param_2 + 0x65d),
*(undefined1 *)((uint)*(byte *)(param_2 + 0x65d) * 0xa20 + param_1 + 0x5d391));
}
}
else if (cVar1 == '\0') {
if (RTDebugLevel < 3) {
cVar1 = *(char *)(param_2 + 0x1a) //possible issue identified - semgrep
}
else {
printk("ACTION - HT Notify Channel bandwidth action----> \n");
cVar1 = *(char *)(param_2 + 0x1a) //possible issue identified - semgrep
}
if (cVar1 == '\0') {
param_1 = (uint)*(byte *)(param_2 + 0x65d) * 0xa20 + param_1;
*(uint *)(param_1 + 0x5d350) = *(uint *)(param_1 + 0x5d350) & 0xffffff7f;
}
else {
iVar4 = (uint)*(byte *)(param_2 + 0x65d) * 0xa20 + param_1;
uVar3 = *(uint *)(iVar4 + 0x5d350);
*(uint *)(iVar4 + 0x5d350) =
uVar3 & 0xffffff7f | ((*(int *)(param_1 + 0x16afc) << 0xe & uVar3 << 8) >> 0x1f) << 7;
}
}
else if (cVar1 == '\b') {
if (RTDebugLevel < 3) {
bVar2 = *(byte *)(param_2 + 0x1a);
}
else {
printk("ACTION - HT Information Exchange action----> \n");
bVar2 = *(byte *)(param_2 + 0x1a);
}
if ((bVar2 & 1) == 0) {
bVar2 = *(byte *)(param_2 + 0x1a);
}
else {
local_38 = 0;
iVar4 = os_alloc_mem(param_1,&local_38,0x640);
if (iVar4 == 0) {
memset(auStack_30,0,0x1b) //possible issue identified - semgrep
iVar4 = (uint)*(byte *)((uint)*(byte *)(param_2 + 0x65d) * 0xa20 + param_1 + 0x5cf69) *
0x1140 + param_1 + 0x51ac;
ActHeaderInit(param_1,auStack_30,param_2 + 10,iVar4,iVar4);
local_18 = CONCAT22(local_18._2_2_,0x807);
local_18 = local_18 & 0xfff8ffff |
((uint)(*(int *)(param_1 + 0x16afc) << 1) >> 0x1f) << 0x11 |
((uint)(*(int *)(param_1 + 0x16b18) << 0x15) >> 0x1f) << 0x12;
MakeOutgoingFrame(local_38,&local_34,0x1b,auStack_30,0xffffffff);
MiniportMMRequest(param_1,0,local_38,local_34);
os_free_mem(param_1,local_38);
bVar2 = *(byte *)(param_2 + 0x1a);
}
else if (RTDebugLevel < 3) {
bVar2 = *(byte *)(param_2 + 0x1a);
}
else {
printk("ACTION - respond_ht_information_exchange_action() allocate memory failed \n");
bVar2 = *(byte *)(param_2 + 0x1a);
}
}
if ((bVar2 & 2) != 0) {
Handle_BSS_Width_Trigger_Events(param_1);
}
}
}
return;
}