void RTMPAddWcidAttributeEntry(int param_1,uint param_2,uint param_3,uint param_4,int *param_5)
{
uint uVar1;
uint uVar2;
int iVar3;
char *pcVar4;
uint *puVar5;
char cVar6;
uint uVar7;
uint uVar8;
param_2 = param_2 & 0xff;
param_4 = param_4 & 0xff;
if (param_2 < *(byte *)(param_1 + 0x51aa)) {
if (param_5 == (int *)0x0) {
uVar8 = (*(byte *)(param_1 + 0xb0) - 3) + param_2 & 0xffff;
}
else {
uVar8 = (uint)*(ushort *)((int)param_5 + 0x27e);
}
cVar6 = '\0';
if (param_2 == 0) {
cVar6 = *(char *)(param_1 + 0x52b5) //possible issue identified - semgrep
}
if ((param_5 == (int *)0x0) ||
((((*param_5 != 2 && (*param_5 != 4)) && (1 < (param_4 - 3 & 0xff))) &&
((param_4 != 0 && (cVar6 != '\x01')))))) {
uVar1 = param_2 << 4;
param_2 = param_4 << 1;
}
else {
param_2 = param_2 << 4 | 1;
uVar1 = param_4 << 1;
}
param_2 = param_2 | uVar1;
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + ((uVar8 + 0x1a00) * 4 & 0xffff)) = param_2;
}
uVar1 = (param_3 & 0xff) << 6;
uVar7 = uVar1 & 0xff;
if ((param_4 - 3 & 0xff) < 2) {
uVar7 = uVar1 & 0xff | 0x20;
}
uVar1 = ((uVar8 + 0xc00) * 8 & 0xffff) + 3;
uVar2 = uVar1 & 3;
puVar5 = (uint *)(*(int *)(param_1 + 0xdc) + (uVar1 - uVar2));
iVar3 = uVar2 << 3;
*puVar5 = uVar7 << iVar3 | *puVar5 & ~(0xff << iVar3);
if (2 < RTDebugLevel) {
printk("RTMPAddWcidAttributeEntry: WCID #%d, KeyIndex #%d, Alg=%s\n",uVar8,param_3 & 0xff,
*(undefined4 *)(CipherName + param_4 * 4));
}
if (RTDebugLevel < 3) {
return;
}
pcVar4 = "\tWCIDAttri = 0x%x \n";
}
else {
if (RTDebugLevel == 0) {
return;
}
pcVar4 = "RTMPAddWcidAttributeEntry: The BSS-index(%d) is out of range for MBSSID link. \n";
}
printk(pcVar4,param_2);
return;
}