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