/* WARNING: Type propagation algorithm not settling */
void ap_cmm_peer_assoc_req_action(int param_1,int param_2,uint param_3)
{
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;
uint uVar19;
uint *__dest;
char *pcVar20;
undefined2 *puVar21;
byte *pbVar22;
int iVar23;
char *pcVar24;
code *pcVar25;
uint uVar26;
uint uVar27;
ushort *puVar28;
undefined1 *puVar29;
undefined4 uVar30;
undefined4 uVar31;
byte local_118;
byte local_117;
undefined1 local_116;
undefined1 local_115;
byte local_114;
undefined1 local_113;
undefined1 local_112 [2];
undefined1 local_110;
byte local_10f;
byte local_10e;
undefined1 local_10d [3];
undefined2 local_10a;
undefined2 local_108;
short local_106;
ushort local_104 [2];
int local_100;
int local_fc;
int local_f8;
int local_f4;
uint local_f0;
int local_ec;
uint local_e8 [2];
undefined1 auStack_e0 [8];
undefined1 local_d8;
undefined1 local_d7;
undefined1 local_d6;
undefined1 local_d5;
undefined1 local_d4;
undefined1 local_d3;
byte local_d0 [12];
undefined1 auStack_c4 [24];
undefined4 local_ac;
undefined1 local_a8;
undefined1 local_a7;
undefined1 local_a6;
byte local_a5;
int local_9c;
uint local_98;
uint local_90;
uint local_8c;
undefined4 local_88;
undefined4 local_84;
undefined4 local_80;
undefined4 local_7c;
undefined2 local_78;
uint auStack_74 [7];
undefined1 auStack_58 [32];
uint local_38;
ushort *local_34;
int local_30;
uint local_2c;
local_2c = param_3 & 0xff;
local_106 = 0;
local_100 = 0;
local_fc = 0;
local_f8 = 0;
if (local_2c == 0) {
pcVar24 = "ASSOC";
}
else {
pcVar24 = "ReASSOC";
}
local_113 = 0;
local_112[0] = 0;
os_alloc_mem(0,&local_f8,0xff);
if (local_f8 == 0) {
return;
}
memset(&local_110,0,1) //possible issue identified - semgrep
RTMPZeroMemory(&local_ac,0x1a);
pbVar22 = local_d0;
iVar6 = PeerAssocReqCmmSanity
(param_1,local_2c,param_2,*(undefined4 *)(param_2 + 0x648),&local_d8,&local_10a,
local_10d + 1,auStack_e0,&local_118,auStack_58,&local_117,pbVar22,local_f8,
&local_116,&local_115,&local_113,&local_f4,&local_110,&local_114,&local_ac);
if (iVar6 != 0) {
iVar6 = MacTableLookup(param_1,&local_d8);
if (iVar6 != 0) {
local_38 = (uint)*(byte *)((uint)*(byte *)(iVar6 + 0x31) * 0x1140 + param_1 + 0x62ea);
bVar15 = 0;
pbVar17 = pbVar22;
LAB_0006d438:
bVar14 = bVar15;
bVar15 = bVar15 + 1;
LAB_0006d43c:
while( true ) {
if (local_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",local_d8,local_d7,local_d6,local_d5,
local_d4,local_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) = local_113;
uVar11 = (uint)*(byte *)(iVar12 + 0x51b2);
if ((uVar11 != local_118) ||
(iVar12 = memcmp(auStack_58,(void *)(iVar12 + 0x51b3),uVar11), iVar12 != 0)) goto LAB_0006e804;
local_30 = ApCheckAccessControlList(param_1,&local_d8,*(undefined1 *)(iVar6 + 0x31));
if (2 < RTDebugLevel) {
printk("%s - MBSS(%d), receive %s request from %02x:%02x:%02x:%02x:%02x:%02x\n",pcVar24,
*(undefined1 *)(iVar6 + 0x31),pcVar24,local_d8,local_d7,local_d6,local_d5,local_d4,
local_d3);
}
bVar15 = 0;
while (pbVar22 != local_d0 + local_117) {
bVar14 = *pbVar22;
pbVar22 = pbVar22 + 1;
if (bVar15 < (bVar14 & 0x7f)) {
bVar15 = bVar14 & 0x7f;
}
}
*(byte *)(iVar6 + 0x477) = local_117;
iVar12 = APBuildAssociation(param_1,iVar6,local_10a,bVar15,local_f8,&local_116,local_115,local_f4,
local_110,&local_ac,&local_114,local_104);
local_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,&local_100,0x640);
if (iVar12 != 0) goto LAB_0006e804;
if (2 < RTDebugLevel) {
printk("%s - Send %s response (Status=%d)...\n",pcVar24,pcVar24,local_106);
}
local_104[0] = local_104[0] | 0xc000;
local_10f = *(byte *)(param_1 + 0x169fa);
local_108 = *(undefined2 *)((uint)*(byte *)(iVar6 + 0x31) * 0x1140 + param_1 + 0x51d4);
uVar18 = 1;
if (local_2c != 0) {
uVar18 = 3;
}
if (bVar3) {
local_10f = 4;
}
puVar29 = &local_d8;
puVar9 = (uint *)&local_108;
__dest = (uint *)&local_106;
if (local_30 == 0) {
MgtMacHeaderInit(param_1,auStack_c4,uVar18,0,puVar29,
(uint)*(byte *)(iVar6 + 0x31) * 0x1140 + param_1 + 0x51ac);
local_106 = 1 //possible issue identified - semgrep
MakeOutgoingFrame(local_100,&local_fc,0x18,auStack_c4,2,puVar9,2,__dest,2,local_104,1,&SupRateIe
,1,&local_10f,local_10f,param_1 + 0x169ee,0xffffffff);
MiniportMMRequest(param_1,0,local_100,local_fc);
os_free_mem(param_1,local_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 = local_104;
uVar19 = (uint)local_10f;
iVar12 = param_1 + 0x169ee;
puVar29 = &SupRateIe;
puVar13 = (ushort *)&local_10f;
uVar27 = 2;
uVar26 = 2;
uVar18 = 1;
uVar30 = 1;
uVar31 = 0xffffffff;
MakeOutgoingFrame(local_100,&local_fc,0x18,auStack_c4,2,puVar9,2,__dest,2,puVar28,1,&SupRateIe,1
,puVar13,uVar19,iVar12,0xffffffff);
uVar11 = (uint)*(byte *)(param_1 + 0x16a07);
if (uVar11 == 0) {
uVar8 = (uint)*(byte *)(iVar6 + 0x31);
uVar11 = uVar26;
}
else if (local_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(local_100 + local_fc,&local_f0,1,&ExtRateIe,1,puVar9,uVar11,__dest,
0xffffffff,puVar28,uVar18,puVar29,uVar30,puVar13,uVar19,iVar12,uVar31);
local_fc = local_fc + local_f0;
uVar8 = (uint)*(byte *)(iVar6 + 0x31);
}
__n = (size_t)local_114;
if ((*(char *)(uVar8 * 0x1140 + param_1 + 0x5b30) != '\0') &&
((*(uint *)(iVar6 + 0x414) & 1) != 0)) {
bVar15 = 0x80;
if (*(char *)(param_1 + 0x16a2c) == '\0') {
bVar15 = 0;
}
pcVar20 = (char *)(param_1 + 0x16883);
local_90 = 0x500018dd;
local_88 = (uint)(bVar15 | *(byte *)(param_1 + 0x1687a) & 0xf);
local_84 = 0;
local_80 = 0;
local_7c = 0;
local_78 = 0;
local_8c = 0x10102f2;
puVar21 = (undefined2 *)(param_1 + 0x16888);
pcVar24 = (char *)((int)&local_88 + 2);
cVar16 = '\0';
do {
*pcVar24 = (pcVar20[-8] & 0xfU) + pcVar20[0xd] * '\x10' + cVar16 * ' ';
uVar2 = *puVar21;
cVar16 = cVar16 + '\x01';
pcVar24[1] = (pcVar20[-4] & 0xfU) + *pcVar20 * '\x10';
pcVar24[2] = (char)uVar2;
pcVar24[3] = (char)((ushort)uVar2 >> 8);
pcVar20 = pcVar20 + 1;
pcVar24 = pcVar24 + 4;
puVar21 = puVar21 + 1;
} while (cVar16 != '\x04');
MakeOutgoingFrame(local_100 + local_fc,&local_f0,0x1a,&local_90,0xffffffff);
local_fc = local_fc + local_f0;
__n = (size_t)local_114;
}
if ((__n != 0) && (4 < *(byte *)(param_1 + 0x16982))) {
__dest = auStack_74;
memmove(__dest,(void *)(param_1 + 0x16afe),__n) //possible issue identified - semgrep
local_10e = 0x16;
puVar9 = (uint *)&local_114;
puVar28 = (ushort *)&AddHtInfoIe;
puVar29 = &local_10e;
uVar11 = (uint)local_114;
uVar30 = 0x16;
puVar13 = (ushort *)(param_1 + 0x16b18);
uVar19 = 0xffffffff;
uVar27 = 1;
uVar18 = 1;
local_34 = puVar13;
MakeOutgoingFrame(local_100 + local_fc,&local_ec,1,&HtCapIe,1,puVar9,uVar11,__dest,1,
&AddHtInfoIe,1,puVar29,0x16,puVar13,0xffffffff,iVar12,uVar31);
local_fc = local_fc + local_ec;
if ((local_f4 == 0) || (*(char *)(param_1 + 0x769e8) == '\x01')) {
local_10d[0] = local_114 + 4;
local_e8[0] = 0x334c9000;
local_90 = 0x344c9000;
puVar9 = (uint *)local_10d;
MakeOutgoingFrame(local_100 + local_fc,&local_ec,1,&WpaIe,1,puVar9,4,local_e8,local_114,
auStack_74,0xffffffff,puVar29,uVar30,puVar13,uVar19);
uVar27 = (uint)local_10e;
local_fc = local_fc + local_ec;
local_10d[0] = local_10e + 4;
__dest = &local_90;
uVar11 = 4;
uVar18 = 0xffffffff;
puVar28 = local_34;
MakeOutgoingFrame(local_100 + local_fc,&local_ec,1,&WpaIe,1,puVar9,4,__dest,uVar27,local_34,
0xffffffff);
local_fc = local_fc + local_ec;
}
if ((4 < *(byte *)(param_1 + 0x16982)) && (*(int *)(param_1 + 0x16afc) << 0xe < 0)) {
local_90 = *(uint *)(param_1 + 0x16b5e);
local_8c = *(uint *)(param_1 + 0x16b62);
local_88 = *(uint *)(param_1 + 0x16b66);
local_10d[0] = 'J';
local_f0 = CONCAT31(local_f0._1_3_,0xe);
puVar9 = &local_f0;
uVar11 = 0xe;
__dest = &local_90;
uVar27 = 0xffffffff;
local_84 = CONCAT22(local_84._2_2_,*(undefined2 *)(param_1 + 0x16b6a));
MakeOutgoingFrame(local_100 + local_fc,local_e8 + 1,1,local_10d,1,puVar9,0xe,__dest,
0xffffffff,puVar28,uVar18,puVar29,uVar30,puVar13,uVar19);
local_fc = local_fc + local_e8[1];
}
}
local_f0 = CONCAT31(local_f0._1_3_,1);
memset(local_e8,0,1) //possible issue identified - semgrep
if (((4 < *(byte *)(param_1 + 0x16982)) && (*(byte *)(param_1 + 0x169ec) < 0xf)) &&
(*(char *)(param_1 + 0x16b30) == '\x01')) {
local_e8[0] = local_e8[0] & 0xfffffffe | 1;
}
uVar26 = local_f0 & 0xff;
uVar8 = 0;
puVar10 = local_e8;
do {
bVar3 = uVar26 <= uVar8;
pcVar24 = (char *)((int)puVar10 + uVar8);
uVar8 = uVar8 + 1;
if (bVar3) {
bVar15 = *(byte *)(iVar6 + 0x31);
uVar26 = uVar11;
puVar10 = __dest;
goto LAB_0006de5c;
}
} while (*pcVar24 == '\0');
puVar9 = &local_f0;
uVar27 = 0xffffffff;
MakeOutgoingFrame(local_100 + local_fc,local_e8 + 1,1,&ExtCapIe,1,puVar9,uVar26,puVar10,
0xffffffff,puVar28,uVar18,puVar29,uVar30,puVar13,uVar19);
local_fc = local_fc + local_e8[1];
bVar15 = *(byte *)(iVar6 + 0x31);
LAB_0006de5c:
if (*(int *)((uint)bVar15 * 0x1140 + param_1 + 0x62e4) != 0) {
local_e8[1] = 0;
iVar12 = param_1 + (uint)*(byte *)(iVar6 + 0x31) * 0x1140;
MakeOutgoingFrame(local_100 + local_fc,local_e8 + 1,*(undefined4 *)(iVar12 + 0x62e4),
iVar12 + 0x61e4,0xffffffff,puVar9,uVar26,puVar10,uVar27);
local_fc = local_fc + local_e8[1];
}
local_90 = 0xc0007dd;
local_8c = 0x43;
local_88 = local_88 & 0xffffff00;
if (*(char *)(param_1 + 0x16a7e) != '\0') {
local_8c = 0x143;
}
if (*(char *)(param_1 + 0x16a7f) != '\0') {
local_8c = local_8c | 0x200;
}
if (*(char *)(param_1 + 0x16a88) != '\0') {
local_8c = local_8c | 0x400;
}
uVar11 = 0xffffffff;
MakeOutgoingFrame(local_100 + local_fc,local_e8 + 1,9,&local_90,0xffffffff,puVar9,uVar26,puVar10
,uVar27);
local_fc = local_e8[1] + local_fc;
MiniportMMRequest(param_1,0,local_100,local_fc);
os_free_mem(param_1,local_100);
if (local_106 != 0) goto LAB_0006e804;
uVar5 = *(undefined1 *)(iVar6 + 0x31);
*(undefined1 *)(iVar6 + 0x270) = 0;
uVar18 = get_netdev_from_bssid(param_1,uVar5);
iVar23 = iVar6 + 600;
iVar12 = RtmpOsPktIappMakeUp(uVar18,iVar23);
if (iVar12 != 0) {
announce_802_3_packet(param_1,iVar12,1);
IAPP_L2_UpdatePostCtrl(param_1,iVar23,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 (local_2c == 0) {
pcVar24 = "ASSOC";
}
else {
pcVar24 = "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",pcVar24,
*(undefined2 *)(iVar6 + 0x27e),*(undefined1 *)(iVar6 + 600),uVar11,puVar9,uVar26,
puVar10,uVar27);
}
if ((local_114 == 0) || (*(byte *)(param_1 + 0x16982) < 5)) {
if (2 < RTDebugLevel) {
printk("%s - legacy STA\n",pcVar24);
}
if (2 < RTDebugLevel) {
printk("\n%s - MODE=%d, MCS=%d\n",pcVar24,(*(uint *)(iVar6 + 0x418) << 0x10) >> 0x1e,
*(uint *)(iVar6 + 0x418) & 0x7f,uVar11,puVar9,uVar26,puVar10,uVar27);
}
}
else {
if (2 < RTDebugLevel) {
printk("%s - 11n HT STA\n",pcVar24);
}
if (2 < RTDebugLevel) {
printk("\tHT Cap Info: \n");
}
if (2 < RTDebugLevel) {
uVar11 = (local_ac << 0x1b) >> 0x1f;
puVar9 = (uint *)((local_ac << 0x1a) >> 0x1f);
uVar26 = (local_ac << 0x19) >> 0x1f;
printk("\t\t AdvCode(%d), BW(%d), MIMOPS(%d), GF(%d), ShortGI_20(%d), ShortGI_40(%d)\n",
local_ac & 1,(local_ac << 0x1e) >> 0x1f,(local_ac << 0x1c) >> 0x1e,uVar11,puVar9,
uVar26,puVar10,uVar27);
}
if (2 < RTDebugLevel) {
uVar11 = (local_ac << 0x14) >> 0x1f;
puVar9 = (uint *)((local_ac << 0x13) >> 0x1f);
printk("\t\t TxSTBC(%d), RxSTBC(%d), DelayedBA(%d), A-MSDU(%d), CCK_40(%d)\n",
(local_ac << 0x18) >> 0x1f,(local_ac << 0x16) >> 0x1e,(local_ac << 0x15) >> 0x1f,
uVar11,puVar9,uVar26);
}
if (2 < RTDebugLevel) {
printk("\t\t PSMP(%d), Forty_Mhz_Intolerant(%d), L-SIG(%d)\n",(local_ac << 0x12) >> 0x1f,
(local_ac << 0x11) >> 0x1f,(local_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",(local_ac << 0xe) >> 0x1e,
(local_ac << 0xb) >> 0x1d);
}
if (2 < RTDebugLevel) {
printk("\tHT MCS set: \n");
}
if (2 < RTDebugLevel) {
puVar9 = (uint *)(uint)local_a5;
printk("\t\t %02x %02x %02x %02x %02x\n",local_ac._3_1_,local_a8,local_a7,local_a6,puVar9);
}
if (2 < RTDebugLevel) {
printk("\tExt HT Cap Info: \n");
}
if (2 < RTDebugLevel) {
puVar9 = (uint *)((local_98 << 0x1c) >> 0x1f);
printk("\t\t PCO(%d), TransTime(%d), MCSFeedback(%d), +HTC(%d), RDG(%d)\n",
(uint)(local_9c << 7) >> 0x1f,(uint)(local_9c << 5) >> 0x1e,local_98 & 3,
(local_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"
,pcVar24,(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"
,pcVar24,(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,iVar23,0,0,RtmpDrvSendWirelessEvent);
*(char *)(iVar6 + 0x27c) = (char)local_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)local_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(local_f8,local_116,4,local_112);
if (__s1 != (void *)0x0) {
iVar12 = RTMPSearchPMKIDCache(param_1,*(undefined1 *)(iVar6 + 0x31),iVar23);
if ((iVar12 == -1) ||
(iVar23 = memcmp(__s1,(void *)(param_1 + ((uint)*(byte *)(iVar6 + 0x31) * 0x45 + iVar12
) * 0x40 + 0x5526),0x10), iVar23 != 0)) {
*(undefined4 *)(iVar6 + 0x240) = 0xff;
if (RTDebugLevel == 0) goto LAB_0006e804;
pcVar24 = "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;
pcVar24 = "ASSOC - 2.PMKID matched and start key cache algorithm\n";
}
printk(pcVar24);
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 (local_f8 != 0) {
os_free_mem(0);
}
return;
}