void RTMPIoctlAddWPAKey(int *param_1,int *param_2)
{
undefined1 uVar1;
int iVar2;
uint uVar3;
int iVar4;
uint uVar5;
uint uVar6;
undefined4 uVar7;
iVar4 = *param_2;
uVar5 = (uint)*(byte *)(*param_1 + 0xfc);
uVar3 = *(uint *)(iVar4 + 0x10);
if ((uint)param_1[uVar5 * 0x450 + 0x1477] < 3) {
if (uVar3 < 0x11) {
uVar3 = *(uint *)(iVar4 + 0xc);
uVar6 = uVar3 & 0xfffffff;
if (uVar6 < 4) {
if ((int)uVar3 < 0) {
if (2 < RTDebugLevel) {
printk("RTMPIoctlAddWPAKey-IF(ra%d) : Set Group Key\n",uVar5);
}
*(char *)(param_1 + uVar5 * 0x450 + 0x1490) = (char)uVar6;
if (0x10 < *(uint *)(iVar4 + 0x10)) {
if (2 < RTDebugLevel) {
printk("RTMPIoctlAddWPAKey-IF(ra%d) : Key length too long %d\n",uVar5);
}
*(undefined4 *)(iVar4 + 0x10) = 0x10;
}
iVar2 = uVar5 * 0x10c + uVar6 * 0x43;
*(char *)((int)param_1 + iVar2 + 0x755d5) = (char)*(undefined4 *)(iVar4 + 0x10);
memmove((void *)((int)param_1 + iVar2 + 0x75594),(void *)(iVar4 + 0x14),
*(size_t *)(iVar4 + 0x10)) //possible issue identified - semgrep
if (*(int *)(iVar4 + 0x10) == 5) {
uVar1 = 1;
}
else {
uVar1 = 2;
}
*(undefined1 *)((int)param_1 + iVar2 + 0x755d4) = uVar1;
iVar4 = uVar5 * 0x10c + uVar6 * 0x43;
uVar1 = *(undefined1 *)((int)param_1 + iVar4 + 0x755d4);
AsicAddSharedKeyEntry(param_1,uVar5,uVar3 & 0xff,(int)param_1 + iVar4 + 0x75594);
uVar6 = uVar5 + (*(byte *)(param_1 + 0x2c) - 3) & 0xff;
uVar7 = 0;
}
else {
iVar2 = MacTableLookup(param_1,iVar4 + 4);
if (iVar2 == 0) {
return;
}
if (RTDebugLevel < 3) {
uVar1 = (undefined1)*(undefined4 *)(iVar4 + 0x10);
}
else {
printk("RTMPIoctlAddWPAKey-IF(ra%d) : Set Pair-wise Key\n",uVar5);
uVar1 = (undefined1)*(undefined4 *)(iVar4 + 0x10);
}
*(undefined1 *)(iVar2 + 0x239) = uVar1;
memmove((void *)(iVar2 + 0x1f8),(void *)(iVar4 + 0x14),*(size_t *)(iVar4 + 0x10)) //possible issue identified - semgrep
if (*(int *)(iVar4 + 0x10) == 5) {
uVar1 = 1;
}
else {
uVar1 = 2;
}
*(undefined1 *)(iVar2 + 0x238) = uVar1;
AsicAddPairwiseKeyEntry(param_1,*(undefined1 *)(iVar2 + 0x27e),iVar2 + 0x1f8);
uVar6 = (uint)*(byte *)(iVar2 + 0x27e);
uVar5 = (uint)*(byte *)(iVar2 + 0x31);
uVar1 = *(undefined1 *)(iVar2 + 0x238);
uVar7 = 1;
}
RTMPSetWcidSecurityInfo(param_1,uVar5,uVar3 & 0xff,uVar1,uVar6,uVar7);
}
}
}
else if (((uVar3 == 0x20) || (uVar3 == 0x40)) &&
(iVar2 = MacTableLookup(param_1,iVar4 + 4), iVar2 != 0)) {
iVar2 = uVar5 * 0x1140;
memmove((void *)((int)param_1 + iVar2 + 0x5275),(void *)(iVar4 + 0x14),0x20) //possible issue identified - semgrep
if (2 < RTDebugLevel) {
printk("RTMPIoctlAddWPAKey-IF(ra%d) : Add PMK=%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x....\n",
uVar5,*(undefined1 *)((int)param_1 + iVar2 + 0x5275),
*(undefined1 *)((int)param_1 + iVar2 + 0x5276),
*(undefined1 *)((int)param_1 + iVar2 + 0x5277),(char)param_1[uVar5 * 0x450 + 0x149e],
*(undefined1 *)((int)param_1 + iVar2 + 0x5279),
*(undefined1 *)((int)param_1 + iVar2 + 0x527a),
*(undefined1 *)((int)param_1 + iVar2 + 0x527b),(char)param_1[uVar5 * 0x450 + 0x149f]);
}
}
return;
}