undefined4 RTMPCheckWPAframe(undefined4 param_1,int param_2,void *param_3,uint param_4)
{
char cVar1;
undefined2 uVar2;
int iVar3;
undefined4 uVar4;
char *pcVar5;
undefined1 auStack_18 [8];
if (param_4 < 0xc) {
return 0;
}
iVar3 = memcmp(&SNAP_802_1H,param_3,6);
if ((iVar3 == 0) || (iVar3 = memcmp(&SNAP_BRIDGE_TUNNEL,param_3,6), iVar3 == 0)) {
param_3 = (void *)((int)param_3 + 6);
}
iVar3 = memcmp(&EAPOL,param_3,2);
if (iVar3 != 0) {
return 0;
}
uVar4 = 0;
switch(*(undefined1 *)((int)param_3 + 3)) {
case 0:
if (2 < RTDebugLevel) {
uVar2 = CONCAT11(*(undefined1 *)((int)param_3 + 4),*(undefined1 *)((int)param_3 + 5));
pcVar5 = "Receive EAP-Packet frame, TYPE = 0, Length = %ld\n";
LAB_000424a4:
printk(pcVar5,uVar2);
return 1;
}
break;
case 1:
if (RTDebugLevel < 3) {
cVar1 = *(char *)(param_2 + 6) //possible issue identified - semgrep
}
else {
printk("Receive EAPOL-Start frame, TYPE = 1 \n");
cVar1 = *(char *)(param_2 + 6) //possible issue identified - semgrep
}
if (cVar1 != '\0') {
if (2 < RTDebugLevel) {
printk("Cancel the EnqueueEapolStartTimerRunning \n");
}
RTMPCancelTimer(param_2 + 8,auStack_18);
*(undefined1 *)(param_2 + 6) = 0;
}
break;
case 2:
if (RTDebugLevel < 3) {
return 1;
}
pcVar5 = "Receive EAPOLLogoff frame, TYPE = 2 \n";
goto LAB_000424d4;
case 3:
if (2 < RTDebugLevel) {
uVar2 = CONCAT11(*(undefined1 *)((int)param_3 + 4),*(undefined1 *)((int)param_3 + 5));
pcVar5 = "Receive EAPOL-Key frame, TYPE = 3, Length = %ld\n";
goto LAB_000424a4;
}
break;
case 4:
if (RTDebugLevel < 3) {
return 1;
}
pcVar5 = "Receive EAPOLASFAlert frame, TYPE = 4 \n";
LAB_000424d4:
printk(pcVar5);
uVar4 = 1;
default:
goto switchD_000423c4_default;
}
uVar4 = 1;
switchD_000423c4_default:
return uVar4;
}