/* WARNING: Type propagation algorithm not settling */
void APUpdateBeaconFrame(int param_1,int param_2)
{
byte bVar1;
char cVar2;
undefined1 uVar3;
undefined2 uVar4;
bool bVar5;
byte bVar6;
int iVar7;
undefined1 *puVar8;
int iVar9;
undefined1 *puVar10;
undefined1 *puVar11;
char *pcVar12;
int iVar13;
byte *pbVar14;
uint uVar15;
uint uVar16;
char *pcVar17;
uint uVar18;
undefined2 *puVar19;
int iVar20;
undefined1 local_60;
undefined1 local_5f;
undefined1 local_5e;
byte local_5d;
undefined2 local_5c [2];
uint local_58 [4];
uint local_48;
char acStack_46 [2];
undefined4 local_44;
undefined4 local_40;
undefined4 local_3c;
undefined2 local_38;
uint local_30;
local_60 = 0xdd;
iVar7 = param_2 * 0x1140 + param_1;
local_5f = 0x30;
local_30 = (uint)*(byte *)(iVar7 + 0x551a);
bVar1 = *(byte *)(iVar7 + 0x62ea);
if (param_2 == 0) {
cVar2 = *(char *)(param_1 + 0x62e8) //possible issue identified - semgrep
}
else {
cVar2 = *(char *)(iVar7 + 0x62e8) //possible issue identified - semgrep
}
if (cVar2 != '\x01') {
return;
}
uVar16 = 0;
iVar7 = param_1 + param_2 * 0x1140;
iVar20 = iVar7 + 0x5720;
puVar10 = (undefined1 *)(iVar20 + (uint)*(byte *)(iVar7 + 0x551b));
*puVar10 = (char)*(undefined2 *)(iVar7 + 0x51d4);
pbVar14 = (byte *)(iVar7 + 0x5250);
puVar10[1] = (char)((ushort)*(undefined2 *)(iVar7 + 0x51d4) >> 8);
puVar10 = (undefined1 *)(iVar20 + (uint)*(byte *)(iVar7 + 0x551a));
*puVar10 = 5;
uVar15 = 0;
puVar10[2] = *(undefined1 *)(param_1 + 0x16631);
uVar18 = 0;
puVar10[3] = *(undefined1 *)(param_1 + 0x16632);
bVar6 = *pbVar14;
while( true ) {
if (uVar15 == 0) {
bVar6 = bVar6 & 0xfe;
}
pbVar14 = pbVar14 + 1;
if ((bVar6 != 0) && (uVar18 = uVar15, uVar16 == 0)) {
uVar16 = uVar15;
}
uVar15 = uVar15 + 1 & 0xff;
if (uVar15 == 5) break;
bVar6 = *pbVar14;
}
if ((uVar16 & 1) != 0) {
uVar16 = uVar16 - 1 & 0xff;
}
puVar10[1] = ((char)uVar18 + '\x04') - (char)uVar16;
puVar10[4] = (char)uVar16;
puVar8 = (undefined1 *)(param_1 + param_2 * 0x1140 + uVar16 + 0x5250);
puVar11 = puVar10;
while( true ) {
bVar5 = uVar18 < uVar16;
uVar16 = uVar16 + 1;
if (bVar5) break;
uVar3 = *puVar8;
puVar8 = puVar8 + 1;
puVar11[5] = uVar3;
puVar11 = puVar11 + 1;
}
if (*(char *)(param_1 + 0x16631) == '\0') {
puVar10[4] = puVar10[4] | *(byte *)(param_2 * 0x1140 + param_1 + 0x5250) & 1;
}
iVar7 = local_30 + 2 + (uint)(byte)puVar10[1];
if (*(char *)(param_1 + 0x16a07) == '\0') {
LAB_00070094:
if (4 < bVar1) {
if (*(char *)(param_2 * 0x1140 + param_1 + 0x520a) != '\0') {
local_5d = 0x1a;
local_5e = 0x16;
MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,1,&HtCapIe,1,&local_5d,0x1a,param_1 + 0x16afe,
1,&AddHtInfoIe,1,&local_5e,0x16,param_1 + 0x16b18,0xffffffff);
iVar7 = iVar7 + local_58[1];
}
if (((*(byte *)(param_1 + 0x169ec) < 0xf) &&
(*(char *)(param_2 * 0x1140 + param_1 + 0x520a) != '\0')) &&
(*(int *)(param_1 + 0x16afc) << 0xe < 0)) {
local_58[2] = *(undefined4 *)(param_1 + 0x16b5e);
local_58[3] = *(undefined4 *)(param_1 + 0x16b62);
local_48 = *(uint *)(param_1 + 0x16b66);
local_5e = 0x4a;
local_5d = 0xe;
local_44 = CONCAT22(local_44._2_2_,*(undefined2 *)(param_1 + 0x16b6a));
MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,1,&local_5e,1,&local_5d,0xe,local_58 + 2,
0xffffffff);
iVar7 = iVar7 + local_58[1];
}
}
}
else {
puVar10 = (undefined1 *)(iVar20 + iVar7);
if (bVar1 != 1) {
*puVar10 = 0x2a;
puVar10[1] = 1;
iVar7 = iVar7 + 3;
puVar10[2] = *(undefined1 *)(param_1 + 0x16633);
goto LAB_00070094;
}
}
local_5d = 1;
memset(local_58,0,1) //possible issue identified - semgrep
if (((4 < bVar1) && (*(byte *)(param_1 + 0x169ec) < 0xf)) &&
((*(char *)(param_2 * 0x1140 + param_1 + 0x520a) != '\0' &&
(*(char *)(param_1 + 0x16b30) == '\x01')))) {
local_58[0] = local_58[0] & 0xfffffffe | 1;
}
uVar16 = 0;
do {
bVar5 = local_5d <= uVar16;
pcVar12 = (char *)((int)local_58 + uVar16);
uVar16 = uVar16 + 1;
if (bVar5) goto LAB_000702fc;
} while (*pcVar12 == '\0');
MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,1,&ExtCapIe,1,&local_5d,(uint)local_5d,local_58,
0xffffffff);
iVar7 = iVar7 + local_58[1];
LAB_000702fc:
iVar9 = *(int *)(param_2 * 0x1140 + param_1 + 0x51dc);
if (iVar9 - 3U < 2) {
local_60 = 0xdd;
}
else if (iVar9 - 6U < 2) {
local_60 = 0x30;
}
iVar9 = param_2 * 0x1140;
iVar13 = param_1 + iVar9;
if (*(uint *)(iVar13 + 0x51dc) - 8 < 2) {
iVar9 = param_1 + iVar9 + 0x52e0;
MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,1,&local_60,1,iVar9 + 4,
*(undefined1 *)(iVar13 + 0x52e4),iVar9 + 6,1,&local_5f,1,iVar13 + 0x52e5,
*(undefined1 *)(iVar13 + 0x52e5),iVar13 + 0x53e5,0xffffffff);
}
else {
if (*(uint *)(iVar13 + 0x51dc) < 3) goto LAB_00070430;
iVar9 = param_1 + iVar9 + 0x52e0;
MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,1,&local_60,1,iVar9 + 4,
*(undefined1 *)(iVar13 + 0x52e4),iVar9 + 6,0xffffffff);
}
iVar7 = iVar7 + local_58[1];
LAB_00070430:
if (*(char *)(param_2 * 0x1140 + param_1 + 0x5b30) != '\0') {
bVar6 = 0x80;
if (*(char *)(param_1 + 0x16a2c) == '\0') {
bVar6 = 0;
}
local_58[2] = 0x500018dd;
local_48 = (uint)(bVar6 | *(byte *)(param_1 + 0x1687a) & 0xf);
local_44 = 0;
local_40 = 0;
local_3c = 0;
local_38 = 0;
local_58[3] = 0x10102f2;
memmove(local_58,(void *)(param_1 + 0x1687b),4) //possible issue identified - semgrep
pcVar17 = (char *)(param_1 + 0x16883);
puVar19 = (undefined2 *)(param_1 + 0x16888);
pcVar12 = acStack_46;
iVar9 = 0;
do {
*pcVar12 = (*(byte *)((int)local_58 + iVar9) & 0xf) + pcVar17[0xd] * '\x10' +
(char)iVar9 * ' ';
uVar4 = *puVar19;
iVar9 = iVar9 + 1;
pcVar12[1] = (pcVar17[-4] & 0xfU) + *pcVar17 * '\x10';
pcVar12[2] = (char)uVar4;
pcVar12[3] = (char)((ushort)uVar4 >> 8);
pcVar17 = pcVar17 + 1;
pcVar12 = pcVar12 + 4;
puVar19 = puVar19 + 1;
} while (iVar9 != 4);
MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,0x1a,local_58 + 2,0xffffffff);
iVar7 = iVar7 + local_58[1];
}
if (*(char *)(param_1 + 0x76b44) != '\0') {
iVar9 = QBSS_LoadElementAppend(param_1,iVar20 + iVar7);
iVar7 = iVar7 + iVar9;
}
if (((4 < bVar1) && (*(char *)(param_2 * 0x1140 + param_1 + 0x520a) != '\0')) &&
(*(char *)(param_1 + 0x769e8) == '\x01')) {
local_58[0] = 0x334c9000;
local_58[2] = 0x344c9000;
local_5d = 0x1e;
MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,1,&WpaIe,1,&local_5d,4,local_58,0x1a,
param_1 + 0x16afe,0xffffffff);
iVar7 = iVar7 + local_58[1];
local_5d = 0x1a;
MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,1,&WpaIe,1,&local_5d,4,local_58 + 2,0x16,
param_1 + 0x16b18,0xffffffff);
iVar7 = iVar7 + local_58[1];
}
local_58[2] = 0xc0007dd;
local_58[3] = 0x43;
local_48 = local_48 & 0xffffff00;
if (*(char *)(param_1 + 0x16a7e) != '\0') {
local_58[3] = 0x143;
}
if (*(char *)(param_1 + 0x16a7f) != '\0') {
local_58[3] = local_58[3] | 0x200;
}
if (*(char *)(param_1 + 0x16a88) != '\0') {
local_58[3] = local_58[3] | 0x400;
}
MakeOutgoingFrame(iVar20 + iVar7,local_58 + 1,9,local_58 + 2,0xffffffff);
local_5c[0] = 0;
RTMPWriteTxWI(param_1,param_1 + 0x5155,0,0,1,0,0,1,0,0xff,iVar7 + local_58[1],5,0xd,0,0,0,local_5c
);
RT28xx_UpdateBeaconToAsic(param_1,param_2,iVar7 + local_58[1],local_30);
return;
}