/* 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;
}