void APMakeAllBssBeacon(int param_1)
{
char cVar1;
bool bVar2;
undefined1 uVar3;
char *pcVar4;
int iVar5;
uint uVar6;
byte bVar7;
uint uVar8;
ushort *puVar9;
uint uVar10;
pcVar4 = (char *)(param_1 + 0x62e8);
bVar7 = 0;
iVar5 = 0;
while (bVar2 = iVar5 < (int)(uint)*(byte *)(param_1 + 0x51aa), iVar5 = iVar5 + 1, bVar2) {
if (*pcVar4 == '\0') {
pcVar4 = pcVar4 + 0x1140;
}
else {
pcVar4[1] = bVar7;
bVar7 = bVar7 + 1;
pcVar4 = pcVar4 + 0x1140;
}
}
uVar10 = (uint)bVar7;
puVar9 = (ushort *)(param_1 + 0x516c);
uVar8 = 0;
cVar1 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
while( true ) {
uVar6 = Status;
if (cVar1 == '\x01') {
Status = Status & 0xfffffffe;
uVar8 = uVar6 & 1;
*(undefined1 *)(param_1 + 0x5154) = 1;
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x400) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x400) | 0x80000;
}
}
iVar5 = 0;
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
if (cVar1 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + iVar5 + (uint)*puVar9) = 0;
}
iVar5 = iVar5 + 4;
if (iVar5 == 0x10) break;
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
if (*(char *)(param_1 + 0xad) == '\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 (uVar8 != 0) {
Status = Status | 1;
}
}
puVar9 = puVar9 + 1;
if (puVar9 == (ushort *)(param_1 + 0x517c)) break;
cVar1 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
iVar5 = 0;
while( true ) {
uVar8 = (uint)*(byte *)(param_1 + 0x51aa);
if ((int)uVar8 <= iVar5) break;
APMakeBssBeacon(param_1,iVar5);
iVar5 = iVar5 + 1;
}
uVar6 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar6 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x1014);
}
uVar6 = uVar6 & 0xffff;
if (uVar8 < 2) {
uVar3 = 0xff;
}
else if (uVar8 == 2) {
if (((*(byte *)(param_1 + 0x16978) & 1) != 0) && (RTDebugLevel != 0)) {
printk("The 2-BSSID mode is enabled, the BSSID byte5 MUST be the multiple of 2\n");
}
uVar6 = uVar6 | 0x10000;
uVar3 = 0xfe;
}
else if (uVar8 < 5) {
if (((*(byte *)(param_1 + 0x16978) & 3) != 0) && (RTDebugLevel != 0)) {
printk("The 4-BSSID mode is enabled, the BSSID byte5 MUST be the multiple of 4\n");
}
uVar6 = uVar6 | 0x20000;
uVar3 = 0xfc;
}
else if (uVar8 < 9) {
if (((*(byte *)(param_1 + 0x16978) & 7) != 0) && (RTDebugLevel != 0)) {
printk("The 8-BSSID mode is enabled, the BSSID byte5 MUST be the multiple of 8\n");
}
uVar6 = uVar6 | 0x30000;
uVar3 = 0xf8;
}
else {
if (0x10 < uVar8) goto LAB_00071480;
uVar6 = uVar6 | 0x400000;
uVar3 = 0xf0;
}
*(undefined1 *)(param_1 + 0x51ab) = uVar3;
LAB_00071480:
if (1 < uVar10) {
if (8 < uVar10) {
uVar6 = uVar6 | ((int)(uVar10 - 1) >> 3) << 0x17;
}
uVar6 = uVar6 | (uVar10 - 1 & 7) << 0x12;
}
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x1014) = uVar6;
}
return;
}