/* WARNING: Removing unreachable block (ram,0x0006d260) */
/* WARNING: Type propagation algorithm not settling */

void APPeerReassocReqAction(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 = 1;
  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","ReASSOC",
           *(undefined1 *)(iVar6 + 0x31),"ReASSOC",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","ReASSOC","ReASSOC",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;
}