/* WARNING: Removing unreachable block (ram,0x0006d254) */
/* WARNING: Type propagation algorithm not settling */
void APPeerAssocReqAction(int param_1,int param_2)
{
undefined1 uVar1;
undefined2 uVar2;
bool bVar3;
byte bVar4;
undefined1 uVar5;
int iVar6;
code *pcVar7;
uint uVar8;
uint *puVar9;
uint *puVar10;
void *__s1;
uint uVar11;
int iVar12;
ushort *puVar13;
byte bVar14;
byte bVar15;
char cVar16;
byte *pbVar17;
undefined4 uVar18;
size_t __n;
char *pcVar19;
uint uVar20;
uint *__dest;
char *pcVar21;
undefined2 *puVar22;
byte *pbVar23;
int iVar24;
code *pcVar25;
uint uVar26;
uint uVar27;
ushort *puVar28;
undefined1 *puVar29;
undefined4 uVar30;
undefined4 uVar31;
byte bStack_118;
byte bStack_117;
undefined1 uStack_116;
undefined1 uStack_115;
byte bStack_114;
undefined1 uStack_113;
undefined1 auStack_112 [2];
undefined1 uStack_110;
byte bStack_10f;
byte bStack_10e;
undefined1 auStack_10d [3];
undefined2 uStack_10a;
undefined2 uStack_108;
short sStack_106;
ushort auStack_104 [2];
int iStack_100;
int iStack_fc;
int iStack_f8;
int iStack_f4;
uint uStack_f0;
int iStack_ec;
uint auStack_e8 [2];
undefined1 auStack_e0 [8];
undefined1 uStack_d8;
undefined1 uStack_d7;
undefined1 uStack_d6;
undefined1 uStack_d5;
undefined1 uStack_d4;
undefined1 uStack_d3;
byte abStack_d0 [12];
undefined1 auStack_c4 [24];
undefined4 uStack_ac;
undefined1 uStack_a8;
undefined1 uStack_a7;
undefined1 uStack_a6;
byte bStack_a5;
int iStack_9c;
uint uStack_98;
uint uStack_90;
uint uStack_8c;
undefined4 uStack_88;
undefined4 uStack_84;
undefined4 uStack_80;
undefined4 uStack_7c;
undefined2 uStack_78;
uint auStack_74 [7];
undefined1 auStack_58 [32];
uint uStack_38;
ushort *puStack_34;
int iStack_30;
int iStack_2c;
iStack_2c = 0;
sStack_106 = 0;
iStack_100 = 0;
iStack_fc = 0;
iStack_f8 = 0;
uStack_113 = 0;
auStack_112[0] = 0;
os_alloc_mem(0,&iStack_f8,0xff);
if (iStack_f8 == 0) {
return;
}
memset(&uStack_110,0,1) //possible issue identified - semgrep
RTMPZeroMemory(&uStack_ac,0x1a);
pbVar23 = abStack_d0;
iVar6 = PeerAssocReqCmmSanity
(param_1,iStack_2c,param_2,*(undefined4 *)(param_2 + 0x648),&uStack_d8,
&uStack_10a,auStack_10d + 1,auStack_e0,&bStack_118,auStack_58,&bStack_117,
pbVar23,iStack_f8,&uStack_116,&uStack_115,&uStack_113,&iStack_f4,&uStack_110,
&bStack_114,&uStack_ac);
if (iVar6 != 0) {
iVar6 = MacTableLookup(param_1,&uStack_d8);
if (iVar6 != 0) {
uStack_38 = (uint)*(byte *)((uint)*(byte *)(iVar6 + 0x31) * 0x1140 + param_1 + 0x62ea);
bVar15 = 0;
pbVar17 = pbVar23;
LAB_0006d438:
bVar14 = bVar15;
bVar15 = bVar15 + 1;
LAB_0006d43c:
while( true ) {
if (bStack_117 <= bVar14) {
bVar3 = true;
goto LAB_0006d44c;
}
bVar4 = *pbVar17 & 0x7f;
pbVar17 = pbVar17 + 1;
if (bVar4 == 2) break;
bVar14 = bVar15;
if (bVar4 == 4) {
bVar15 = bVar15 + 1;
}
else {
if (bVar4 != 0xb) goto code_r0x0006d428;
bVar15 = bVar15 + 1;
}
}
goto LAB_0006d438;
}
if (RTDebugLevel != 0) {
printk("NoAuth MAC - %02x:%02x:%02x:%02x:%02x:%02x\n",uStack_d8,uStack_d7,uStack_d6,uStack_d5,
uStack_d4,uStack_d3);
}
}
goto LAB_0006e804;
code_r0x0006d428:
bVar15 = bVar15 + 1;
if (bVar4 == 0x16) goto LAB_0006d43c;
bVar3 = false;
LAB_0006d44c:
if (*(short *)(iVar6 + 0x27e) == 0) {
uVar11 = (uint)*(byte *)(iVar6 + 0x31);
}
else if ((*(uint *)(iVar6 + 0x1e8) < 4) &&
(*(char *)((uint)*(byte *)(iVar6 + 0x31) * 0x1140 + param_1 + 0x52b5) == '\0')) {
uVar11 = (uint)*(byte *)(iVar6 + 0x31);
}
else {
*(undefined1 *)(iVar6 + 0x1f1) = 0;
memset((void *)(iVar6 + 0x1f8),0,0x43) //possible issue identified - semgrep
AsicRemovePairwiseKeyEntry(param_1,*(undefined1 *)(iVar6 + 0x27e));
if ((*(int *)(iVar6 + 0x1e4) == 3) ||
((*(int *)(iVar6 + 0x1e4) == 6 ||
(*(char *)((uint)*(byte *)(iVar6 + 0x31) * 0x1140 + param_1 + 0x52b5) != '\0')))) {
DOT1X_InternalCmdAction(param_1,iVar6,0);
uVar11 = (uint)*(byte *)(iVar6 + 0x31);
}
else {
uVar11 = (uint)*(byte *)(iVar6 + 0x31);
}
}
iVar12 = param_1 + uVar11 * 0x1140;
*(undefined1 *)(iVar6 + 0x4b0) = uStack_113;
uVar11 = (uint)*(byte *)(iVar12 + 0x51b2);
if ((uVar11 != bStack_118) ||
(iVar12 = memcmp(auStack_58,(void *)(iVar12 + 0x51b3),uVar11), iVar12 != 0)) goto LAB_0006e804;
iStack_30 = ApCheckAccessControlList(param_1,&uStack_d8,*(undefined1 *)(iVar6 + 0x31));
if (2 < RTDebugLevel) {
printk("%s - MBSS(%d), receive %s request from %02x:%02x:%02x:%02x:%02x:%02x\n",&_LC12,
*(undefined1 *)(iVar6 + 0x31),&_LC12,uStack_d8,uStack_d7,uStack_d6,uStack_d5,uStack_d4,
uStack_d3);
}
bVar15 = 0;
while (pbVar23 != abStack_d0 + bStack_117) {
bVar14 = *pbVar23;
pbVar23 = pbVar23 + 1;
if (bVar15 < (bVar14 & 0x7f)) {
bVar15 = bVar14 & 0x7f;
}
}
*(byte *)(iVar6 + 0x477) = bStack_117;
iVar12 = APBuildAssociation(param_1,iVar6,uStack_10a,bVar15,iStack_f8,&uStack_116,uStack_115,
iStack_f4,uStack_110,&uStack_ac,&bStack_114,auStack_104);
sStack_106 = (short)iVar12 //possible issue identified - semgrep
if (iVar12 == 0x12) {
RtmpOsSendWirelessEvent
(param_1,0x214,iVar6 + 600,*(undefined1 *)(iVar6 + 0x31),0,RtmpDrvSendWirelessEvent);
}
iVar12 = os_alloc_mem(param_1,&iStack_100,0x640);
if (iVar12 != 0) goto LAB_0006e804;
if (2 < RTDebugLevel) {
printk("%s - Send %s response (Status=%d)...\n",&_LC12,&_LC12,sStack_106);
}
auStack_104[0] = auStack_104[0] | 0xc000;
bStack_10f = *(byte *)(param_1 + 0x169fa);
uStack_108 = *(undefined2 *)((uint)*(byte *)(iVar6 + 0x31) * 0x1140 + param_1 + 0x51d4);
uVar18 = 1;
if (iStack_2c != 0) {
uVar18 = 3;
}
if (bVar3) {
bStack_10f = 4;
}
puVar29 = &uStack_d8;
puVar9 = (uint *)&uStack_108;
__dest = (uint *)&sStack_106;
if (iStack_30 == 0) {
MgtMacHeaderInit(param_1,auStack_c4,uVar18,0,puVar29,
(uint)*(byte *)(iVar6 + 0x31) * 0x1140 + param_1 + 0x51ac);
sStack_106 = 1 //possible issue identified - semgrep
MakeOutgoingFrame(iStack_100,&iStack_fc,0x18,auStack_c4,2,puVar9,2,__dest,2,auStack_104,1,
&SupRateIe,1,&bStack_10f,bStack_10f,param_1 + 0x169ee,0xffffffff);
MiniportMMRequest(param_1,0,iStack_100,iStack_fc);
os_free_mem(param_1,iStack_100);
uVar1 = *(undefined1 *)(iVar6 + 0x31);
pcVar25 = RtmpDrvSendWirelessEvent;
uVar11 = 0x215;
uVar5 = 0;
pcVar7 = RtmpOsSendWirelessEvent;
LAB_0006e7f8:
(*pcVar7)(param_1,uVar11,puVar29,uVar1,uVar5,pcVar25);
}
else {
MgtMacHeaderInit(param_1,auStack_c4,uVar18,0,puVar29,
(uint)*(byte *)(iVar6 + 0x31) * 0x1140 + param_1 + 0x51ac);
puVar28 = auStack_104;
uVar20 = (uint)bStack_10f;
iVar12 = param_1 + 0x169ee;
puVar29 = &SupRateIe;
puVar13 = (ushort *)&bStack_10f;
uVar27 = 2;
uVar26 = 2;
uVar18 = 1;
uVar30 = 1;
uVar31 = 0xffffffff;
MakeOutgoingFrame(iStack_100,&iStack_fc,0x18,auStack_c4,2,puVar9,2,__dest,2,puVar28,1,&SupRateIe
,1,puVar13,uVar20,iVar12,0xffffffff);
uVar11 = (uint)*(byte *)(param_1 + 0x16a07);
if (uVar11 == 0) {
uVar8 = (uint)*(byte *)(iVar6 + 0x31);
uVar11 = uVar26;
}
else if (uStack_38 == 1) {
uVar8 = (uint)*(byte *)(iVar6 + 0x31);
uVar11 = uVar26;
}
else if (bVar3) {
uVar8 = (uint)*(byte *)(iVar6 + 0x31);
uVar11 = uVar26;
}
else {
puVar9 = (uint *)(param_1 + 0x16a07);
__dest = (uint *)(param_1 + 0x169fb);
uVar27 = 0xffffffff;
MakeOutgoingFrame(iStack_100 + iStack_fc,&uStack_f0,1,&ExtRateIe,1,puVar9,uVar11,__dest,
0xffffffff,puVar28,uVar18,puVar29,uVar30,puVar13,uVar20,iVar12,uVar31);
iStack_fc = iStack_fc + uStack_f0;
uVar8 = (uint)*(byte *)(iVar6 + 0x31);
}
__n = (size_t)bStack_114;
if ((*(char *)(uVar8 * 0x1140 + param_1 + 0x5b30) != '\0') &&
((*(uint *)(iVar6 + 0x414) & 1) != 0)) {
bVar15 = 0x80;
if (*(char *)(param_1 + 0x16a2c) == '\0') {
bVar15 = 0;
}
pcVar21 = (char *)(param_1 + 0x16883);
uStack_90 = 0x500018dd;
uStack_88 = (uint)(bVar15 | *(byte *)(param_1 + 0x1687a) & 0xf);
uStack_84 = 0;
uStack_80 = 0;
uStack_7c = 0;
uStack_78 = 0;
uStack_8c = 0x10102f2;
puVar22 = (undefined2 *)(param_1 + 0x16888);
pcVar19 = (char *)((int)&uStack_88 + 2);
cVar16 = '\0';
do {
*pcVar19 = (pcVar21[-8] & 0xfU) + pcVar21[0xd] * '\x10' + cVar16 * ' ';
uVar2 = *puVar22;
cVar16 = cVar16 + '\x01';
pcVar19[1] = (pcVar21[-4] & 0xfU) + *pcVar21 * '\x10';
pcVar19[2] = (char)uVar2;
pcVar19[3] = (char)((ushort)uVar2 >> 8);
pcVar21 = pcVar21 + 1;
pcVar19 = pcVar19 + 4;
puVar22 = puVar22 + 1;
} while (cVar16 != '\x04');
MakeOutgoingFrame(iStack_100 + iStack_fc,&uStack_f0,0x1a,&uStack_90,0xffffffff);
iStack_fc = iStack_fc + uStack_f0;
__n = (size_t)bStack_114;
}
if ((__n != 0) && (4 < *(byte *)(param_1 + 0x16982))) {
__dest = auStack_74;
memmove(__dest,(void *)(param_1 + 0x16afe),__n) //possible issue identified - semgrep
bStack_10e = 0x16;
puVar9 = (uint *)&bStack_114;
puVar28 = (ushort *)&AddHtInfoIe;
puVar29 = &bStack_10e;
uVar11 = (uint)bStack_114;
uVar30 = 0x16;
puVar13 = (ushort *)(param_1 + 0x16b18);
uVar20 = 0xffffffff;
uVar27 = 1;
uVar18 = 1;
puStack_34 = puVar13;
MakeOutgoingFrame(iStack_100 + iStack_fc,&iStack_ec,1,&HtCapIe,1,puVar9,uVar11,__dest,1,
&AddHtInfoIe,1,puVar29,0x16,puVar13,0xffffffff,iVar12,uVar31);
iStack_fc = iStack_fc + iStack_ec;
if ((iStack_f4 == 0) || (*(char *)(param_1 + 0x769e8) == '\x01')) {
auStack_10d[0] = bStack_114 + 4;
auStack_e8[0] = 0x334c9000;
uStack_90 = 0x344c9000;
puVar9 = (uint *)auStack_10d;
MakeOutgoingFrame(iStack_100 + iStack_fc,&iStack_ec,1,&WpaIe,1,puVar9,4,auStack_e8,
bStack_114,auStack_74,0xffffffff,puVar29,uVar30,puVar13,uVar20);
uVar27 = (uint)bStack_10e;
iStack_fc = iStack_fc + iStack_ec;
auStack_10d[0] = bStack_10e + 4;
__dest = &uStack_90;
uVar11 = 4;
uVar18 = 0xffffffff;
puVar28 = puStack_34;
MakeOutgoingFrame(iStack_100 + iStack_fc,&iStack_ec,1,&WpaIe,1,puVar9,4,__dest,uVar27,
puStack_34,0xffffffff);
iStack_fc = iStack_fc + iStack_ec;
}
if ((4 < *(byte *)(param_1 + 0x16982)) && (*(int *)(param_1 + 0x16afc) << 0xe < 0)) {
uStack_90 = *(uint *)(param_1 + 0x16b5e);
uStack_8c = *(uint *)(param_1 + 0x16b62);
uStack_88 = *(uint *)(param_1 + 0x16b66);
auStack_10d[0] = 'J';
uStack_f0 = CONCAT31(uStack_f0._1_3_,0xe);
puVar9 = &uStack_f0;
uVar11 = 0xe;
__dest = &uStack_90;
uVar27 = 0xffffffff;
uStack_84 = CONCAT22(uStack_84._2_2_,*(undefined2 *)(param_1 + 0x16b6a));
MakeOutgoingFrame(iStack_100 + iStack_fc,auStack_e8 + 1,1,auStack_10d,1,puVar9,0xe,__dest,
0xffffffff,puVar28,uVar18,puVar29,uVar30,puVar13,uVar20);
iStack_fc = iStack_fc + auStack_e8[1];
}
}
uStack_f0 = CONCAT31(uStack_f0._1_3_,1);
memset(auStack_e8,0,1) //possible issue identified - semgrep
if (((4 < *(byte *)(param_1 + 0x16982)) && (*(byte *)(param_1 + 0x169ec) < 0xf)) &&
(*(char *)(param_1 + 0x16b30) == '\x01')) {
auStack_e8[0] = auStack_e8[0] & 0xfffffffe | 1;
}
uVar26 = uStack_f0 & 0xff;
uVar8 = 0;
puVar10 = auStack_e8;
do {
bVar3 = uVar26 <= uVar8;
pcVar19 = (char *)((int)puVar10 + uVar8);
uVar8 = uVar8 + 1;
if (bVar3) {
bVar15 = *(byte *)(iVar6 + 0x31);
uVar26 = uVar11;
puVar10 = __dest;
goto LAB_0006de5c;
}
} while (*pcVar19 == '\0');
puVar9 = &uStack_f0;
uVar27 = 0xffffffff;
MakeOutgoingFrame(iStack_100 + iStack_fc,auStack_e8 + 1,1,&ExtCapIe,1,puVar9,uVar26,puVar10,
0xffffffff,puVar28,uVar18,puVar29,uVar30,puVar13,uVar20);
iStack_fc = iStack_fc + auStack_e8[1];
bVar15 = *(byte *)(iVar6 + 0x31);
LAB_0006de5c:
if (*(int *)((uint)bVar15 * 0x1140 + param_1 + 0x62e4) != 0) {
auStack_e8[1] = 0;
iVar12 = param_1 + (uint)*(byte *)(iVar6 + 0x31) * 0x1140;
MakeOutgoingFrame(iStack_100 + iStack_fc,auStack_e8 + 1,*(undefined4 *)(iVar12 + 0x62e4),
iVar12 + 0x61e4,0xffffffff,puVar9,uVar26,puVar10,uVar27);
iStack_fc = iStack_fc + auStack_e8[1];
}
uStack_90 = 0xc0007dd;
uStack_8c = 0x43;
uStack_88 = uStack_88 & 0xffffff00;
if (*(char *)(param_1 + 0x16a7e) != '\0') {
uStack_8c = 0x143;
}
if (*(char *)(param_1 + 0x16a7f) != '\0') {
uStack_8c = uStack_8c | 0x200;
}
if (*(char *)(param_1 + 0x16a88) != '\0') {
uStack_8c = uStack_8c | 0x400;
}
uVar11 = 0xffffffff;
MakeOutgoingFrame(iStack_100 + iStack_fc,auStack_e8 + 1,9,&uStack_90,0xffffffff,puVar9,uVar26,
puVar10,uVar27);
iStack_fc = auStack_e8[1] + iStack_fc;
MiniportMMRequest(param_1,0,iStack_100,iStack_fc);
os_free_mem(param_1,iStack_100);
if (sStack_106 != 0) goto LAB_0006e804;
uVar5 = *(undefined1 *)(iVar6 + 0x31);
*(undefined1 *)(iVar6 + 0x270) = 0;
uVar18 = get_netdev_from_bssid(param_1,uVar5);
iVar24 = iVar6 + 600;
iVar12 = RtmpOsPktIappMakeUp(uVar18,iVar24);
if (iVar12 != 0) {
announce_802_3_packet(param_1,iVar12,1);
IAPP_L2_UpdatePostCtrl(param_1,iVar24,uVar5);
}
if (2 < RTDebugLevel) {
uVar11 = (uint)*(byte *)(iVar6 + 0x25b);
puVar9 = (uint *)(uint)*(byte *)(iVar6 + 0x25c);
uVar26 = (uint)*(byte *)(iVar6 + 0x25d);
printk("####### Send L2 Frame Mac=%02x:%02x:%02x:%02x:%02x:%02x\n",
*(undefined1 *)(iVar6 + 600),*(undefined1 *)(iVar6 + 0x259),
*(undefined1 *)(iVar6 + 0x25a),uVar11,puVar9,uVar26);
}
if (iStack_2c == 0) {
pcVar19 = "ASSOC";
}
else {
pcVar19 = "ReASSOC";
}
if (2 < RTDebugLevel) {
uVar11 = (uint)*(byte *)(iVar6 + 0x259);
puVar9 = (uint *)(uint)*(byte *)(iVar6 + 0x25a);
uVar26 = (uint)*(byte *)(iVar6 + 0x25b);
puVar10 = (uint *)(uint)*(byte *)(iVar6 + 0x25c);
uVar27 = (uint)*(byte *)(iVar6 + 0x25d);
printk("%s - \n\tAssign AID=%d to STA %02x:%02x:%02x:%02x:%02x:%02x\n",pcVar19,
*(undefined2 *)(iVar6 + 0x27e),*(undefined1 *)(iVar6 + 600),uVar11,puVar9,uVar26,
puVar10,uVar27);
}
if ((bStack_114 == 0) || (*(byte *)(param_1 + 0x16982) < 5)) {
if (2 < RTDebugLevel) {
printk("%s - legacy STA\n",pcVar19);
}
if (2 < RTDebugLevel) {
printk("\n%s - MODE=%d, MCS=%d\n",pcVar19,(*(uint *)(iVar6 + 0x418) << 0x10) >> 0x1e,
*(uint *)(iVar6 + 0x418) & 0x7f,uVar11,puVar9,uVar26,puVar10,uVar27);
}
}
else {
if (2 < RTDebugLevel) {
printk("%s - 11n HT STA\n",pcVar19);
}
if (2 < RTDebugLevel) {
printk("\tHT Cap Info: \n");
}
if (2 < RTDebugLevel) {
uVar11 = (uStack_ac << 0x1b) >> 0x1f;
puVar9 = (uint *)((uStack_ac << 0x1a) >> 0x1f);
uVar26 = (uStack_ac << 0x19) >> 0x1f;
printk("\t\t AdvCode(%d), BW(%d), MIMOPS(%d), GF(%d), ShortGI_20(%d), ShortGI_40(%d)\n",
uStack_ac & 1,(uStack_ac << 0x1e) >> 0x1f,(uStack_ac << 0x1c) >> 0x1e,uVar11,puVar9,
uVar26,puVar10,uVar27);
}
if (2 < RTDebugLevel) {
uVar11 = (uStack_ac << 0x14) >> 0x1f;
puVar9 = (uint *)((uStack_ac << 0x13) >> 0x1f);
printk("\t\t TxSTBC(%d), RxSTBC(%d), DelayedBA(%d), A-MSDU(%d), CCK_40(%d)\n",
(uStack_ac << 0x18) >> 0x1f,(uStack_ac << 0x16) >> 0x1e,(uStack_ac << 0x15) >> 0x1f,
uVar11,puVar9,uVar26);
}
if (2 < RTDebugLevel) {
printk("\t\t PSMP(%d), Forty_Mhz_Intolerant(%d), L-SIG(%d)\n",(uStack_ac << 0x12) >> 0x1f,
(uStack_ac << 0x11) >> 0x1f,(uStack_ac << 0x10) >> 0x1f,uVar11,puVar9,uVar26);
}
if (2 < RTDebugLevel) {
printk("\tHT Parm Info: \n");
}
if (2 < RTDebugLevel) {
printk("\t\t MaxRx A-MPDU Factor(%d), MPDU Density(%d)\n",(uStack_ac << 0xe) >> 0x1e,
(uStack_ac << 0xb) >> 0x1d);
}
if (2 < RTDebugLevel) {
printk("\tHT MCS set: \n");
}
if (2 < RTDebugLevel) {
puVar9 = (uint *)(uint)bStack_a5;
printk("\t\t %02x %02x %02x %02x %02x\n",uStack_ac._3_1_,uStack_a8,uStack_a7,uStack_a6,
puVar9);
}
if (2 < RTDebugLevel) {
printk("\tExt HT Cap Info: \n");
}
if (2 < RTDebugLevel) {
puVar9 = (uint *)((uStack_98 << 0x1c) >> 0x1f);
printk("\t\t PCO(%d), TransTime(%d), MCSFeedback(%d), +HTC(%d), RDG(%d)\n",
(uint)(iStack_9c << 7) >> 0x1f,(uint)(iStack_9c << 5) >> 0x1e,uStack_98 & 3,
(uStack_98 << 0x1d) >> 0x1f,puVar9);
}
if (2 < RTDebugLevel) {
uVar11 = *(uint *)(iVar6 + 0x418);
puVar9 = (uint *)((uint)(*(int *)(iVar6 + 0x418) << 0x17) >> 0x1f);
uVar26 = (uint)*(byte *)(iVar6 + 0x457);
puVar10 = (uint *)(uint)*(byte *)(iVar6 + 0x456);
uVar27 = (uint)*(byte *)(iVar6 + 0x459);
puVar28 = (ushort *)(uint)*(byte *)(iVar6 + 0x458);
printk("\n%s - MODE=%d, BW=%d, MCS=%d, ShortGI=%d, MaxRxFactor=%d, MpduDensity=%d, MIMOPS=%d, AMSDU=%d\n"
,pcVar19,(uVar11 << 0x10) >> 0x1e,(uVar11 << 0x18) >> 0x1f,uVar11 & 0x7f,puVar9,
uVar26,puVar10,uVar27,puVar28);
}
if (2 < RTDebugLevel) {
puVar9 = (uint *)(uint)*(byte *)(param_1 + 0x71351);
printk("\n%s - Update AP OperaionMode=%d , fAnyStationIsLegacy=%d, fAnyStation20Only=%d, fAnyStationNonGF=%d\n\n"
,pcVar19,(uint)(*(int *)(param_1 + 0x16b18) << 0xe) >> 0x1e,
*(undefined1 *)(param_1 + 0x71350),*(undefined1 *)(param_1 + 0x71352),puVar9,uVar26,
puVar10,uVar27,puVar28);
}
if (2 < RTDebugLevel) {
printk("\tExt Cap Info: \n");
}
if (2 < RTDebugLevel) {
printk("\t\tBss2040CoexistMgmt=%d\n",*(undefined1 *)(iVar6 + 0x474));
}
}
if (2 < RTDebugLevel) {
printk("\tAuthMode=%d, WepStatus=%d, WpaState=%d, GroupKeyWepStatus=%d\n",
*(undefined4 *)(iVar6 + 0x1e4),*(undefined4 *)(iVar6 + 0x1e8),
*(undefined1 *)(iVar6 + 0x1f0),
*(undefined4 *)((uint)*(byte *)(iVar6 + 0x31) * 0x1140 + param_1 + 0x51e4),puVar9,
uVar26,puVar10,uVar27);
}
if (2 < RTDebugLevel) {
uVar11 = *(uint *)(iVar6 + 0x414);
printk("\tWMMCapable=%d, Legacy AGGRE=%d, PiggyBack=%d, RDG=%d, TxAMSDU=%d, IdleTimeout=%d\n",
uVar11 & 1,(uVar11 << 0x1e) >> 0x1f,(uVar11 << 0x1d) >> 0x1f,(uVar11 << 0x16) >> 0x1f,
(uVar11 << 0x1c) >> 0x1f,*(undefined4 *)(iVar6 + 0x2a0));
}
RtmpOsSendWirelessEvent(param_1,0x200,iVar24,0,0,RtmpDrvSendWirelessEvent);
*(char *)(iVar6 + 0x27c) = (char)iStack_2c;
*(undefined2 *)(iVar6 + 0x420) = 0;
if (*(uint *)(iVar6 + 0x418) >> 0x1e < 2) {
LAB_0006e61c:
iVar12 = *(int *)(iVar6 + 0x1e4);
}
else {
*(uint *)(iVar6 + 0x414) = *(uint *)(iVar6 + 0x414) | 1;
if (*(byte *)(param_1 + 0x169ec) < 0xf) {
if ((*(uint *)(param_1 + 0x16b18) & 0x300) == 0) {
iVar12 = *(int *)(iVar6 + 0x1e4);
}
else {
if (((byte)uStack_ac & 2) != 0) {
SendBeaconRequest(param_1,*(undefined1 *)(iVar6 + 0x27e));
goto LAB_0006e61c;
}
iVar12 = *(int *)(iVar6 + 0x1e4);
}
}
else {
iVar12 = *(int *)(iVar6 + 0x1e4);
}
}
if ((iVar12 == 4) || (iVar12 == 7)) {
if (*(char *)(iVar6 + 6) != '\0') goto LAB_0006e804;
uVar5 = 1;
}
else {
if (iVar12 == 6) {
__s1 = (void *)WPA_ExtractSuiteFromRSNIE(iStack_f8,uStack_116,4,auStack_112);
if (__s1 != (void *)0x0) {
iVar12 = RTMPSearchPMKIDCache(param_1,*(undefined1 *)(iVar6 + 0x31),iVar24);
if ((iVar12 == -1) ||
(iVar24 = memcmp(__s1,(void *)(param_1 + ((uint)*(byte *)(iVar6 + 0x31) * 0x45 + iVar12
) * 0x40 + 0x5526),0x10), iVar24 != 0)) {
*(undefined4 *)(iVar6 + 0x240) = 0xff;
if (RTDebugLevel == 0) goto LAB_0006e804;
pcVar19 = "ASSOC - 2.PMKID not found \n";
}
else {
if (*(char *)(iVar6 + 6) == '\0') {
*(undefined1 *)(iVar6 + 6) = 1;
RTMPSetTimer(iVar6 + 8,200);
*(int *)(iVar6 + 0x240) = iVar12;
}
else {
*(int *)(iVar6 + 0x240) = iVar12;
}
if (RTDebugLevel == 0) goto LAB_0006e804;
pcVar19 = "ASSOC - 2.PMKID matched and start key cache algorithm\n";
}
printk(pcVar19);
goto LAB_0006e804;
}
iVar12 = *(int *)(iVar6 + 0x1e4);
}
else {
iVar12 = *(int *)(iVar6 + 0x1e4);
}
if ((iVar12 != 3) && (iVar12 != 6)) {
uVar11 = (uint)*(byte *)(iVar6 + 0x31);
iVar12 = uVar11 * 0x1140 + param_1;
if (*(char *)(iVar12 + 0x52b5) == '\0') {
if (*(int *)(iVar6 + 0x1e8) != 0) goto LAB_0006e804;
puVar29 = (undefined1 *)(uint)*(byte *)(iVar12 + 0x5240);
uVar1 = *(undefined1 *)(param_1 + uVar11 * 0x10c + (int)puVar29 * 0x43 + 0x755d4);
uVar5 = *(undefined1 *)(iVar6 + 0x27e);
pcVar25 = (code *)0x0;
pcVar7 = RTMPSetWcidSecurityInfo;
goto LAB_0006e7f8;
}
}
if (*(char *)(iVar6 + 6) != '\0') goto LAB_0006e804;
uVar5 = 2;
}
*(undefined1 *)(iVar6 + 6) = uVar5;
RTMPSetTimer(iVar6 + 8,200);
}
LAB_0006e804:
if (iStack_f8 != 0) {
os_free_mem(0);
}
return;
}