void RTMPMakeRSNIE(int param_1,int param_2,int param_3,uint param_4)
{
char cVar1;
int iVar2;
int iVar3;
void *__s;
uint uVar4;
byte local_30;
byte local_2f [7];
param_4 = param_4 & 0xff;
if (param_4 != 0) {
if (RTDebugLevel == 0) {
param_4 = 0;
}
else {
printk("%s> Error! apidx = %d > MAX_MBSSID_NUM!\n","RTMPMakeRSNIE",param_4);
param_4 = 0;
}
}
if ((((param_2 - 3U < 2) || (param_2 == 6)) || (param_2 == 7)) ||
((param_2 == 8 || (param_2 == 9)))) {
if (2 < RTDebugLevel) {
printk("==> RTMPMakeRSNIE(AP-ra%d)\n",param_4);
}
if (param_3 == 8) {
iVar2 = param_4 * 0x1140 + param_1;
*(undefined4 *)(iVar2 + 0x51e4) = 4;
uVar4 = *(uint *)(iVar2 + 0x51e8);
}
else {
uVar4 = 0;
*(int *)(param_4 * 0x1140 + param_1 + 0x51e4) = param_3;
}
iVar3 = param_1 + param_4 * 0x1140 + 0x52e0;
iVar2 = param_1 + param_4 * 0x1140;
__s = (void *)(iVar3 + 6);
*(undefined1 *)(iVar2 + 0x52e5) = 0;
*(undefined1 *)(iVar2 + 0x52e4) = 0;
memset(__s,0,0xff) //possible issue identified - semgrep
memset((void *)(iVar3 + 0x105),0,0xff) //possible issue identified - semgrep
if (((param_2 - 3U < 3) || (param_2 == 8)) || (cVar1 = Wpa2Ie, param_2 == 9)) {
cVar1 = WpaIe;
}
RTMPMakeRsnIeCipher(param_1,cVar1,param_3,param_4,0,uVar4 & 0xff,__s,local_2f);
RTMPMakeRsnIeAKM(param_1,cVar1,param_2,param_4,__s,local_2f);
if (WpaIe != cVar1) {
if (param_4 < *(byte *)(param_1 + 0x51aa)) {
*(byte *)((int)__s + (uint)local_2f[0]) =
*(byte *)((int)__s + (uint)local_2f[0]) & 0xfe |
*(char *)(param_4 * 0x1140 + param_1 + 0x52b6) == '\x01';
}
local_2f[0] = local_2f[0] + 2;
}
iVar2 = param_1 + param_4 * 0x1140;
*(byte *)(iVar2 + 0x52e4) = local_2f[0];
hex_dump("The primary RSNIE",__s);
if ((*(char *)(param_1 + 0x16964) == '\x01') && (param_2 - 8U < 2)) {
iVar3 = iVar2 + 0x53e5;
RTMPMakeRsnIeCipher(param_1,Wpa2Ie,param_3,param_4,0,uVar4 & 0xff,iVar3,&local_30);
RTMPMakeRsnIeAKM(param_1,Wpa2Ie,param_2,param_4,iVar3,&local_30);
if (Wpa2Ie != WpaIe) {
if (param_4 < *(byte *)(param_1 + 0x51aa)) {
*(byte *)(iVar3 + (uint)local_30) =
*(byte *)(iVar3 + (uint)local_30) & 0xfe | *(char *)(iVar2 + 0x52b6) == '\x01';
}
local_30 = local_30 + 2;
}
*(byte *)(param_4 * 0x1140 + param_1 + 0x52e5) = local_30;
hex_dump("The secondary RSNIE",iVar3);
}
}
return;
}