void APPeerProbeReqAction(int param_1,int param_2)
{
byte bVar1;
undefined2 uVar2;
int iVar3;
byte *pbVar4;
uint *puVar5;
uint uVar6;
int iVar7;
byte bVar8;
char cVar9;
uint uVar10;
int iVar11;
char *pcVar12;
uint *puVar13;
char *pcVar14;
int iVar15;
undefined2 *puVar16;
undefined1 *puVar17;
uint *puVar18;
uint uVar19;
uint uVar20;
uint uVar21;
uint uVar22;
undefined4 uVar23;
undefined1 *puVar24;
uint uVar25;
undefined4 uVar26;
undefined1 *puVar27;
undefined4 uVar28;
byte *pbVar29;
undefined4 uVar30;
undefined1 *puVar31;
undefined4 uVar32;
byte *pbVar33;
undefined4 uVar34;
undefined4 uVar35;
byte local_1d0 [5];
undefined4 local_1cb;
byte local_1c7 [3];
int local_1c4;
int local_1c0;
uint local_1bc;
uint local_1b8;
int local_1b4;
undefined1 auStack_1b0 [8];
byte abStack_1a8 [8];
undefined1 auStack_1a0 [24];
undefined1 auStack_188 [32];
uint local_168;
uint local_164;
undefined4 local_160;
undefined4 local_15c;
undefined4 local_158;
undefined4 local_154;
undefined2 local_150;
uint *local_68;
int local_64;
int local_60;
byte *local_5c;
uint *local_58;
uint *local_54;
uint *local_50;
undefined1 *local_4c;
uint *local_48;
int local_44;
int local_40;
uint *local_3c;
uint local_38;
uint local_34;
uint local_30;
local_1d0[4] = 0xdd;
local_1cb._0_1_ = 0x30;
local_1d0[2] = 1;
local_1c4 = 0;
local_1c0 = 0;
local_1d0[1] = 1;
local_1cb._1_1_ = 0;
iVar3 = PeerProbeReqSanity(param_1,param_2,*(undefined4 *)(param_2 + 0x648),auStack_1b0,
auStack_188,local_1d0,(int)&local_1cb + 1);
if (iVar3 != 0) {
local_5c = (byte *)(param_1 + 0x16b2e);
local_40 = param_1 + 0x169ee;
local_34 = 0x334c9000;
local_3c = (uint *)(param_1 + 0x169ea);
local_44 = param_1 + 0x169ec;
local_48 = (uint *)(param_1 + 0x16633);
local_4c = (undefined1 *)(param_1 + 0x16a07);
local_50 = (uint *)(param_1 + 0x169fb);
local_54 = (uint *)(param_1 + 0x16afe);
local_58 = (uint *)(param_1 + 0x16b18);
local_68 = (uint *)(param_1 + 0x1697d);
local_30 = 0x344c9000;
local_64 = param_1 + 0x5058;
local_60 = param_1 + 0x4e3e;
local_38 = 0xc0007dd;
for (uVar21 = 0; uVar21 < *(byte *)(param_1 + 0x51aa); uVar21 = uVar21 + 1 & 0xff) {
iVar3 = *(int *)(uVar21 * 0x1140 + param_1 + 0x51d8);
local_1d0[4] = 0xdd;
if ((iVar3 == 0) || ((*(uint *)(iVar3 + 0xc0) & 1) != 0)) {
uVar10 = (uint)local_1d0[0];
iVar3 = uVar21 * 0x1140 + param_1;
bVar1 = *(byte *)(iVar3 + 0x62ea);
if (((uVar10 == 0) && (*(char *)(iVar3 + 0x5920) == '\0')) ||
((*(byte *)(param_1 + uVar21 * 0x1140 + 0x51b2) == uVar10 &&
(iVar3 = memcmp(auStack_188,(void *)(param_1 + uVar21 * 0x1140 + 0x51b3),uVar10),
iVar3 == 0)))) {
iVar3 = os_alloc_mem(param_1,&local_1c4,0x640);
if (iVar3 != 0) {
return;
}
MgtMacHeaderInit(param_1,auStack_1a0,5,0,auStack_1b0,param_1 + uVar21 * 0x1140 + 0x51ac);
iVar3 = *(int *)(param_1 + uVar21 * 0x1140 + 0x51dc);
if (iVar3 - 3U < 2) {
local_1d0[4] = 0xdd;
}
else if (iVar3 - 6U < 2) {
local_1d0[4] = 0x30;
}
local_1d0[3] = *(byte *)(param_1 + 0x169fa);
if (bVar1 == 1) {
local_1d0[3] = 4;
}
uVar20 = (uint)local_1d0[3];
iVar3 = param_1 + uVar21 * 0x1140;
uVar19 = (uint)*(byte *)(iVar3 + 0x51b2);
puVar5 = (uint *)(iVar3 + 0x51d4);
pbVar4 = abStack_1a8;
pbVar29 = local_1d0 + 3;
pbVar33 = local_1d0 + 1;
puVar24 = &SsidIe;
iVar3 = param_1 + uVar21 * 0x1140 + 0x51a8;
puVar27 = &SupRateIe;
puVar17 = (undefined1 *)(iVar3 + 0xb);
puVar13 = (uint *)(iVar3 + 10);
uVar10 = 2;
uVar22 = 2;
uVar23 = 1;
uVar25 = 1;
uVar26 = 1;
uVar28 = 1;
uVar30 = 1;
puVar31 = &DsIe;
uVar32 = 1;
uVar34 = 1;
uVar35 = 0xffffffff;
puVar18 = local_3c;
iVar3 = local_40;
iVar11 = local_44;
MakeOutgoingFrame(local_1c4,&local_1c0,0x18,auStack_1a0,8,pbVar4,2,local_3c,2,puVar5,1,
&SsidIe,1,puVar13,uVar19,puVar17,1,&SupRateIe,1,pbVar29,uVar20,local_40,
1,&DsIe,1,pbVar33,1,local_44,0xffffffff);
uVar6 = (uint)*(byte *)(param_1 + 0x16a07);
if (uVar6 == 0) {
LAB_00075fb0:
if ((4 < bVar1) && (*(char *)(uVar21 * 0x1140 + param_1 + 0x520a) != '\0')) {
local_1c7[0] = 0x1a;
local_1cb._2_1_ = 0x16;
local_1cb._3_1_ = 1;
pbVar4 = local_1c7;
uVar22 = 0x1a;
puVar5 = (uint *)&AddHtInfoIe;
puVar24 = (undefined1 *)((int)&local_1cb + 2);
uVar25 = 0x16;
puVar17 = &NewExtChanIe;
puVar27 = (undefined1 *)((int)&local_1cb + 3);
uVar20 = 0xffffffff;
uVar28 = 1;
uVar10 = 1;
uVar23 = 1;
uVar19 = 1;
uVar26 = 1;
puVar18 = local_54;
puVar13 = local_58;
pbVar29 = local_5c;
MakeOutgoingFrame(local_1c4 + local_1c0,&local_1b4,1,&HtCapIe,1,pbVar4,0x1a,local_54,1
,&AddHtInfoIe,1,puVar24,0x16,local_58,1,&NewExtChanIe,1,puVar27,1,
local_5c,0xffffffff,iVar3,uVar30,puVar31,uVar32,pbVar33,uVar34,
iVar11,uVar35);
local_1c0 = local_1c0 + local_1b4;
}
}
else if (bVar1 != 1) {
pbVar4 = local_1d0 + 2;
puVar5 = (uint *)&ExtRateIe;
uVar23 = 1;
uVar19 = 0xffffffff;
uVar22 = 1;
uVar10 = 1;
puVar18 = local_48;
puVar24 = local_4c;
puVar13 = local_50;
MakeOutgoingFrame(local_1c4 + local_1c0,&local_1bc,1,&ErpIe,1,pbVar4,1,local_48,1,
&ExtRateIe,1,local_4c,uVar6,local_50,0xffffffff,puVar17,uVar26,puVar27
,uVar28,pbVar29,uVar20,iVar3,uVar30,puVar31,uVar32,pbVar33,uVar34,
iVar11,uVar35);
local_1c0 = local_1c0 + local_1bc;
uVar25 = uVar6;
goto LAB_00075fb0;
}
iVar15 = param_1 + uVar21 * 0x1140;
if (2 < *(uint *)(iVar15 + 0x51dc)) {
iVar7 = uVar21 * 0x1140 + 0x52e0;
uVar22 = (uint)*(byte *)(iVar15 + 0x52e4);
if (*(uint *)(iVar15 + 0x51dc) - 8 < 2) {
iVar7 = param_1 + iVar7;
puVar18 = (uint *)(iVar7 + 6);
pbVar4 = (byte *)(iVar7 + 4);
puVar5 = &local_1cb;
uVar23 = 1;
uVar10 = 1;
MakeOutgoingFrame(local_1c4 + local_1c0,&local_1bc,1,local_1d0 + 4,1,pbVar4,uVar22,
puVar18,1,puVar5,1,iVar15 + 0x52e5,*(undefined1 *)(iVar15 + 0x52e5),
iVar15 + 0x53e5,0xffffffff,puVar17,uVar26,puVar27,uVar28,pbVar29,
uVar20,iVar3,uVar30,puVar31,uVar32,pbVar33,uVar34,iVar11,uVar35);
}
else {
iVar7 = param_1 + iVar7;
puVar18 = (uint *)(iVar7 + 6);
pbVar4 = (byte *)(iVar7 + 4);
uVar10 = 0xffffffff;
MakeOutgoingFrame(local_1c4 + local_1c0,&local_1bc,1,local_1d0 + 4,1,pbVar4,uVar22,
puVar18,0xffffffff,puVar5,uVar23,puVar24,uVar25,puVar13,uVar19,
puVar17,uVar26,puVar27,uVar28,pbVar29,uVar20,iVar3,uVar30,puVar31,
uVar32,pbVar33,uVar34,iVar11,uVar35);
}
local_1c0 = local_1c0 + local_1bc;
}
if (*(char *)(uVar21 * 0x1140 + param_1 + 0x5b30) != '\0') {
bVar8 = 0x80;
if (*(char *)(param_1 + 0x16a2c) == '\0') {
bVar8 = 0;
}
pcVar14 = (char *)(param_1 + 0x16883);
local_168 = 0x500018dd;
local_160 = (uint)(bVar8 | *(byte *)(param_1 + 0x1687a) & 0xf);
local_15c = 0;
local_158 = 0;
local_154 = 0;
local_150 = 0;
local_164 = 0x10102f2;
puVar16 = (undefined2 *)(param_1 + 0x16888);
pcVar12 = (char *)((int)&local_160 + 2);
cVar9 = '\0';
do {
*pcVar12 = (pcVar14[-8] & 0xfU) + pcVar14[0xd] * '\x10' + cVar9 * ' ';
uVar2 = *puVar16;
cVar9 = cVar9 + '\x01';
pcVar12[1] = (pcVar14[-4] & 0xfU) + *pcVar14 * '\x10';
pcVar12[2] = (char)uVar2;
pcVar12[3] = (char)((ushort)uVar2 >> 8);
pcVar14 = pcVar14 + 1;
pcVar12 = pcVar12 + 4;
puVar16 = puVar16 + 1;
} while (cVar9 != '\x04');
MakeOutgoingFrame(local_1c4 + local_1c0,&local_1bc,0x1a,&local_168,0xffffffff);
local_1c0 = local_1c0 + local_1bc;
}
iVar3 = local_1c0;
if (*(char *)(param_1 + 0x76b44) != '\0') {
local_1c0 = QBSS_LoadElementAppend(param_1,local_1c4 + local_1c0);
local_1c0 = local_1c0 + iVar3;
}
if ((((4 < bVar1) && (*(byte *)(param_1 + 0x169ec) < 0xf)) &&
(*(char *)(uVar21 * 0x1140 + param_1 + 0x520a) != '\0')) &&
(*(int *)(param_1 + 0x16afc) << 0xe < 0)) {
local_168 = *(uint *)(param_1 + 0x16b5e);
local_164 = *(uint *)(param_1 + 0x16b62);
local_160 = *(uint *)(param_1 + 0x16b66);
local_1cb._3_1_ = 0x4a;
local_1cb._2_1_ = 0xe;
pbVar4 = (byte *)((int)&local_1cb + 2);
uVar22 = 0xe;
puVar18 = &local_168;
local_15c = CONCAT22(local_15c._2_2_,*(undefined2 *)(param_1 + 0x16b6a));
uVar10 = 0xffffffff;
MakeOutgoingFrame(local_1c4 + local_1c0,&local_1b4,1,(int)&local_1cb + 3,1,pbVar4,0xe,
puVar18,0xffffffff);
local_1c0 = local_1c0 + local_1b4;
}
puVar13 = &local_1b8;
local_1cb._2_1_ = 1;
memset(puVar13,0,1) //possible issue identified - semgrep
if (((4 < bVar1) && (*(byte *)(param_1 + 0x169ec) < 0xf)) &&
((*(char *)(uVar21 * 0x1140 + param_1 + 0x520a) != '\0' &&
(*(char *)(param_1 + 0x16b30) == '\x01')))) {
uVar22 = (uint)local_1cb._2_1_;
pbVar4 = (byte *)((int)&local_1cb + 2);
local_1b8 = local_1b8 & 0xfffffffe | 1;
uVar10 = 0xffffffff;
MakeOutgoingFrame(local_1c4 + local_1c0,&local_1b4,1,&ExtCapIe,1,pbVar4,uVar22,puVar13,
0xffffffff);
local_1c0 = local_1c0 + local_1b4;
puVar18 = puVar13;
}
local_164 = 0x43;
local_160 = local_160 & 0xffffff00;
local_168 = local_38;
if (*(char *)(param_1 + 0x16a7e) != '\0') {
local_164 = 0x143;
}
if (*(char *)(param_1 + 0x16a7f) != '\0') {
local_164 = local_164 | 0x200;
}
if (*(char *)(param_1 + 0x16a88) != '\0') {
local_164 = local_164 | 0x400;
}
puVar13 = &local_168;
MakeOutgoingFrame(local_1c4 + local_1c0,&local_1b4,9,puVar13,0xffffffff,pbVar4,uVar22,
puVar18,uVar10);
local_1c0 = local_1c0 + local_1b4;
if (*(char *)(param_1 + 0x1697c) != '\0') {
local_1cb._2_1_ = 7;
local_1cb._3_1_ = 0x10;
memset(puVar13,0,0x100) //possible issue identified - semgrep
MakeOutgoingFrame(puVar13,&local_1bc,1,local_60,1,local_64,1,(int)&local_1cb + 3,
0xffffffff);
pbVar4 = local_1c7;
if ((local_1bc & 1) == 0) {
local_1c7[0] = (char)local_1bc + 4;
uVar10 = local_1bc + 1;
}
else {
local_1c7[0] = (char)local_1bc + 3;
uVar10 = local_1bc;
}
uVar23 = 0xffffffff;
uVar22 = 3;
puVar18 = local_68;
MakeOutgoingFrame(local_1c4 + local_1c0,&local_1bc,1,(int)&local_1cb + 2,1,pbVar4,3,
local_68,uVar10,puVar13,0xffffffff);
local_1c0 = local_1c0 + local_1bc;
puVar5 = puVar13;
}
if (((4 < bVar1) && (*(char *)(uVar21 * 0x1140 + param_1 + 0x520a) != '\0')) &&
(*(char *)(param_1 + 0x769e8) == '\x01')) {
local_1c7[0] = 0x1e;
local_1b8 = local_34;
pbVar4 = local_1c7;
local_168 = local_30;
MakeOutgoingFrame(local_1c4 + local_1c0,&local_1b4,1,&WpaIe,1,pbVar4,4,&local_1b8,0x1a,
local_54,0xffffffff);
local_1c0 = local_1b4 + local_1c0;
puVar18 = &local_168;
uVar10 = 0x16;
local_1c7[0] = 0x1a;
uVar22 = 4;
uVar23 = 0xffffffff;
puVar5 = local_58;
MakeOutgoingFrame(local_1c4 + local_1c0,&local_1b4,1,&WpaIe,1,pbVar4,4,puVar18,0x16,
local_58,0xffffffff);
local_1c0 = local_1c0 + local_1b4;
}
iVar3 = param_1 + uVar21 * 0x1140;
iVar11 = *(int *)(iVar3 + 0x61e0);
if (iVar11 != 0) {
local_1b4 = 0;
MakeOutgoingFrame(local_1c4 + local_1c0,&local_1b4,iVar11,iVar3 + 0x60e0,0xffffffff,
pbVar4,uVar22,puVar18,uVar10,puVar5,uVar23);
local_1c0 = local_1c0 + local_1b4;
}
MiniportMMRequest(param_1,0,local_1c4,local_1c0);
MiniportMMRequest(param_1,0,local_1c4,local_1c0);
MiniportMMRequest(param_1,0,local_1c4,local_1c0);
os_free_mem(param_1,local_1c4);
}
}
}
}
return;
}