void WpaSend(int param_1,void *param_2,int param_3)

{
  byte bVar1;
  int iVar2;
  int iVar3;
  char *pcVar4;
  undefined1 auStack_30 [8];
  undefined1 auStack_28 [16];
  
  memmove(auStack_30,param_2,6)   //possible issue identified - semgrep
  memmove(auStack_28,param_2,0xe)   //possible issue identified - semgrep
  iVar2 = MacTableLookup(param_1,auStack_30);
  if (iVar2 != 0) {
    if (((2 < *(uint *)(iVar2 + 0x1e4)) && (*(char *)((int)param_2 + 0xf) != '\x03')) ||
       (*(char *)((uint)*(byte *)(iVar2 + 0x31) * 0x1140 + param_1 + 0x52b5) == '\x01')) {
      RTMPToWirelessSta(param_1,iVar2,auStack_28,0xe,(int)param_2 + 0xe,param_3 + -0xe,
                        *(short *)(iVar2 + 0x1f2) != 1);
    }
    iVar3 = memcmp((void *)((int)param_2 + 0xc),&EAPOL,2);
    if (iVar3 == 0) {
      if (*(char *)((int)param_2 + 0x12) == '\x01') {
        if (*(byte *)(iVar2 + 0x1f0) < 10) {
          return;
        }
        if (*(char *)((int)param_2 + 0xf) != '\0') {
          return;
        }
        *(undefined1 *)(iVar2 + 0x1f0) = 4;
        if (RTDebugLevel < 3) {
          return;
        }
        pcVar4 = "Start to re-authentication by 802.1x daemon\n";
      }
      else {
        if (*(char *)((int)param_2 + 0x12) != '\x03') {
          return;
        }
        if (*(uint *)(iVar2 + 0x1e4) < 3) {
          bVar1 = *(byte *)(iVar2 + 0x31);
        }
        else {
          if (*(char *)((int)param_2 + 0xf) != '\x03') {
            if (RTDebugLevel < 3) {
              iVar3 = *(int *)(iVar2 + 0x274);
            }
            else {
              printk("Send EAP_CODE_SUCCESS\n\n");
              iVar3 = *(int *)(iVar2 + 0x274);
            }
            if (iVar3 != 2) {
              return;
            }
            *(undefined1 *)(iVar2 + 0x1f0) = 6;
            *(undefined1 *)(iVar2 + 0x1ba) = 0;
            WPAStart4WayHS(param_1,iVar2,1000);
            return;
          }
          bVar1 = *(byte *)(iVar2 + 0x31);
        }
        *(undefined1 *)(iVar2 + 0x1f0) = 10;
        *(undefined4 *)(iVar2 + 500) = 0;
        *(undefined1 *)((uint)bVar1 * 0x1140 + param_1 + 0x52d7) = 1;
        *(undefined2 *)(iVar2 + 0x1f2) = 1;
        if (RTDebugLevel < 3) {
          return;
        }
        pcVar4 = "IEEE8021X-WEP : Send EAP_CODE_SUCCESS\n\n";
      }
      printk(pcVar4);
    }
    else {
      if (2 < RTDebugLevel) {
        printk("Send Deauth, Reason : REASON_NO_LONGER_VALID\n");
      }
      MlmeDeAuthAction(param_1,iVar2,2,0);
    }
  }
  return;
}