undefined4 RTMPCheckAUTH(int param_1,char *param_2,int param_3)

{
  byte bVar1;
  byte bVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  char *pcVar6;
  ushort local_28 [6];
  
  if (param_3 == 0) {
    printk("<4>/home/eric/release/dir600b5/progs.priv/rt2860v2/build/rt2860v2_ap/../rt2860v2/ap/ap_wpa.c:%d assert pEntryfailed\n"
           ,0x1a4);
  }
  if (*(byte *)(param_3 + 0x31) < *(byte *)(param_1 + 0x51aa)) {
    bVar1 = param_2[1];
  }
  else {
    printk("<4>/home/eric/release/dir600b5/progs.priv/rt2860v2/build/rt2860v2_ap/../rt2860v2/ap/ap_wpa.c:%d assert pEntry->apidx < pAd->ApCfg.BssidNumfailed\n"
           ,0x1a5);
    bVar1 = param_2[1];
  }
  bVar2 = *(byte *)(param_3 + 0x31);
  if (bVar1 < 0x10) {
    if (RTDebugLevel == 0) {
      return 0;
    }
    pcVar6 = "RTMPCheckAUTH ==> WPAIE len is too short(%d) \n";
  }
  else {
    pcVar6 = param_2 + 8;
    if ((*param_2 == '0') || (pcVar6 = param_2 + 0xc, *param_2 == -0x23)) {
      memmove(local_28,pcVar6,2)   //possible issue identified - semgrep
      pcVar6 = pcVar6 + (uint)local_28[0] * 4 + 2;
      local_28[0] = 0;
      memmove(local_28,pcVar6,2)   //possible issue identified - semgrep
      if ((byte)param_2[1] < 0x10) {
        return 0;
      }
      if (*param_2 == -0x23) {
        pcVar6 = pcVar6 + 2;
        while( true ) {
          if (local_28[0] == 0) {
            return 0;
          }
          iVar3 = RTMPCheckAKM(pcVar6,(uint)bVar2 * 0x1140 + param_1 + 0x52e6,0);
          if (iVar3 != 0) break;
          local_28[0] = local_28[0] - 1;
          pcVar6 = pcVar6 + 4;
        }
        return 1;
      }
      if (*param_2 != '0') {
        return 0;
      }
      iVar3 = (uint)bVar2 * 0x1140;
      iVar5 = *(int *)(param_1 + iVar3 + 0x51dc);
      pcVar6 = pcVar6 + 2;
      while( true ) {
        if (local_28[0] == 0) {
          return 0;
        }
        iVar4 = RTMPCheckAKM(pcVar6,(uint)(iVar5 - 8U < 2) * 0xff + param_1 + iVar3 + 0x52e6,1);
        if (iVar4 != 0) break;
        local_28[0] = local_28[0] - 1;
        pcVar6 = pcVar6 + 4;
      }
      return 1;
    }
    if (RTDebugLevel == 0) {
      return 0;
    }
    pcVar6 = "RTMPCheckAUTH ==> Unknown WPAIE, WPAIE=%d\n";
  }
  printk(pcVar6);
  return 0;
}