void AsicAddPairwiseKeyEntry(int param_1,uint param_2,byte *param_3)
{
byte *pbVar1;
byte bVar2;
char cVar3;
uint uVar4;
int iVar5;
uint *puVar6;
uint uVar7;
byte *pbVar8;
uint uVar9;
uint uVar10;
uint uVar11;
uVar7 = Status;
bVar2 = param_3[0x40];
uVar11 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar11 = uVar7 & 1;
*(undefined1 *)(param_1 + 0x5154) = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x400) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x400) & 0xfff7ffff;
}
}
uVar9 = ((param_2 & 0xff) + 0x200) * 0x20;
uVar10 = uVar9 + 0x10;
uVar7 = uVar9;
pbVar8 = param_3;
do {
puVar6 = (uint *)(*(int *)(param_1 + 0xdc) + (uVar7 - (uVar7 & 3)));
iVar5 = (uVar7 & 3) << 3;
uVar7 = uVar7 + 1;
*puVar6 = *puVar6 & ~(0xff << iVar5) | (uint)*pbVar8 << iVar5;
pbVar8 = pbVar8 + 1;
uVar4 = uVar9;
} while (uVar7 != uVar10);
do {
uVar4 = uVar4 + 4;
} while (uVar4 != uVar7);
if (param_3 != (byte *)0xfffffff0) {
pbVar8 = param_3;
do {
puVar6 = (uint *)(*(int *)(param_1 + 0xdc) + (uVar10 - (uVar10 & 3)));
iVar5 = (uVar10 & 3) << 3;
pbVar1 = pbVar8 + 0x10;
pbVar8 = pbVar8 + 1;
*puVar6 = *puVar6 & ~(0xff << iVar5) | (uint)*pbVar1 << iVar5;
uVar10 = uVar10 + 1;
} while (pbVar8 != param_3 + 8);
}
if (param_3 == (byte *)0xffffffe8) {
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
uVar9 = uVar9 + 0x18;
pbVar8 = param_3;
do {
puVar6 = (uint *)(*(int *)(param_1 + 0xdc) + (uVar9 - (uVar9 & 3)));
iVar5 = (uVar9 & 3) << 3;
pbVar1 = pbVar8 + 0x18;
pbVar8 = pbVar8 + 1;
*puVar6 = *puVar6 & ~(0xff << iVar5) | (uint)*pbVar1 << iVar5;
uVar9 = uVar9 + 1;
} while (pbVar8 != param_3 + 8);
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
if (cVar3 == '\x01') {
*(undefined1 *)(param_1 + 0x5154) = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x400) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x400) & 0xfff7ffff;
}
Status = Status & 0xfffffffe;
if (uVar11 != 0) {
Status = Status | 1;
}
}
if (2 < RTDebugLevel) {
printk("AsicAddPairwiseKeyEntry: WCID #%d Alg=%s\n",param_2 & 0xff,
*(undefined4 *)(CipherName + (uint)bVar2 * 4));
}
if (2 < RTDebugLevel) {
printk("\tKey = %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n"
,*param_3,param_3[1],param_3[2],param_3[3],param_3[4],param_3[5],param_3[6],param_3[7],
param_3[8],param_3[9],param_3[10],param_3[0xb],param_3[0xc],param_3[0xd],param_3[0xe],
param_3[0xf]);
}
if ((param_3 != (byte *)0xffffffe8) && (2 < RTDebugLevel)) {
printk("\tRx MIC Key = %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n",param_3[0x18],param_3[0x19],
param_3[0x1a],param_3[0x1b],param_3[0x1c],param_3[0x1d],param_3[0x1e],param_3[0x1f]);
}
if ((param_3 != (byte *)0xfffffff0) && (2 < RTDebugLevel)) {
printk("\tTx MIC Key = %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n",param_3[0x10],param_3[0x11],
param_3[0x12],param_3[0x13],param_3[0x14],param_3[0x15],param_3[0x16],param_3[0x17]);
}
return;
}