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