void NICUpdateFifoStaCounters(int param_1)
{
uint uVar1;
char cVar2;
undefined1 uVar3;
short sVar4;
int iVar5;
int iVar6;
int *piVar7;
uint uVar8;
uint uVar9;
int iVar10;
int iVar11;
undefined4 local_38;
if (*(char *)(param_1 + 0x76a0c) == -0x80) {
iVar11 = 1;
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
if (cVar2 == '\0') {
local_38 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x1718);
}
else {
local_38 = 0;
}
if ((local_38 & 1) == 0) break;
uVar9 = local_38 >> 8 & 0xff;
if (((local_38 & 0x80) != 0) && (uVar9 < 0x20)) {
iVar6 = param_1 + uVar9 * 0xa20;
*(int *)(iVar6 + 0x5d274) = *(int *)(iVar6 + 0x5d274) + 1;
iVar10 = param_1 + uVar9 * 0xa20 + 0x5cf38;
uVar1 = (local_38 << 0x1b) >> 0x1c;
UAPSD_SP_AUE_Handle(param_1,iVar10,(local_38 << 0x1a) >> 0x1f);
if ((local_38 & 0x20) == 0) {
iVar5 = *(int *)(iVar6 + 0x5d270) + 1;
*(int *)(iVar6 + 0x5d310) = *(int *)(iVar6 + 0x5d310) + 1;
*(int *)(iVar6 + 0x5d270) = iVar5;
if (iVar5 != 0) {
if (2 < RTDebugLevel) {
printk(&_LC22) //possible issue identified - semgrep
}
iVar6 = uVar9 * 0xa20 + param_1;
*(undefined2 *)(iVar6 + 0x5d22c) = 0x40;
*(int *)(iVar6 + 0x5d314) = *(int *)(iVar6 + 0x5d314) + 1;
if (*(char *)(iVar6 + 0x5d1a8) == '\0') {
uVar3 = *(undefined1 *)(iVar6 + 0x5d1b6);
iVar5 = 0;
while( true ) {
BAOriSessionTearDown(param_1,uVar3,iVar5,0,0);
if (iVar5 + 1 == 8) break;
uVar3 = *(undefined1 *)(iVar6 + 0x5d1b6);
iVar5 = iVar5 + 1;
}
}
}
iVar6 = uVar9 * 0xa20 + param_1;
if (*(uint *)(iVar6 + 0x5d314) < *(uint *)(param_1 + 0x168c4)) goto LAB_00029320;
uVar8 = local_38._2_1_ & 0x7f;
if ((param_1 != 0) && (iVar10 != 0)) {
iVar5 = 3;
iVar10 = 0x1824;
do {
sVar4 = 0;
piVar7 = (int *)(iVar10 + param_1 + 0x184);
do {
sVar4 = sVar4 + 1 //possible issue identified - semgrep
if (((*(byte *)(*piVar7 + 7) & 0x80) == 0) &&
(iVar10 = piVar7[5],
(ushort)*(byte *)(iVar10 + 5) == *(ushort *)(iVar6 + 0x5d1b6))) {
*(byte *)(iVar10 + 4) = *(byte *)(iVar10 + 4) & 0xfe;
}
piVar7 = piVar7 + 8;
} while (sVar4 != 0x40);
iVar5 = iVar5 + -1;
iVar10 = iVar5 * 0x80c;
} while (iVar5 != -1);
goto LAB_00029320;
}
}
else {
if ((((*(char *)(iVar6 + 0x5d1a8) != '\x01') &&
(sVar4 = *(short *)(iVar6 + 0x5d22c), sVar4 != 0)) && //possible issue identified - semgrep
(*(short *)(iVar6 + 0x5d22c) = sVar4 + -1, sVar4 == 1)) && (2 < RTDebugLevel)) {
printk(&_LC23) //possible issue identified - semgrep
}
iVar6 = uVar9 * 0xa20 + param_1;
*(undefined4 *)(iVar6 + 0x5d314) = 0;
*(int *)(iVar6 + 0x5d308) = *(int *)(iVar6 + 0x5d308) + 1;
*(undefined4 *)(iVar6 + 0x5d270) = 0;
*(undefined4 *)(iVar6 + 0x5d1bc) = 0;
LAB_00029320:
uVar8 = local_38._2_1_ & 0x7f;
}
iVar6 = uVar1 - uVar8;
if ((local_38 & 0x20) == 0) {
iVar10 = uVar9 * 0x288 + uVar1;
iVar5 = 0x1751a;
LAB_00029398:
iVar10 = iVar10 + iVar5;
}
else {
iVar10 = uVar9 * 0x288 + uVar1;
iVar5 = param_1 + (iVar10 + 0x174fa) * 4;
*(int *)(iVar5 + 4) = *(int *)(iVar5 + 4) + 1;
if (uVar1 != uVar8) {
iVar10 = uVar1 * 0x10 + uVar9 * 0x288 + uVar8;
iVar5 = 0x1752a;
goto LAB_00029398;
}
iVar10 = iVar10 + 0x1750a;
}
iVar10 = param_1 + iVar10 * 4;
*(int *)(iVar10 + 4) = *(int *)(iVar10 + 4) + 1;
if (0 < iVar6) {
if ((0xb < uVar1) && (uVar8 < 8)) {
iVar6 = iVar6 + -4;
}
iVar10 = uVar9 * 0xa20 + param_1;
*(int *)(iVar10 + 0x5d30c) = iVar6 + *(int *)(iVar10 + 0x5d30c);
}
}
iVar11 = iVar11 + 1;
if (iVar11 == 0x81) {
return;
}
cVar2 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
}
return;
}