KiDispatchInterrupt

VOID __stdcall KiDispatchInterrupt(UINT8 PreviousIrql){
  __int64 v1; 
  struct _KPRCB *CurrentPrcb; 
  __int64 v3; 
  char v4; 
  KiCheckForSListAddress((KTRAP_FRAME *)(v1 - 128));
  CurrentPrcb = KeGetCurrentPrcb();
  _disable();
  if( (*((_BYTE *)CurrentPrcb + 12588) & 0x3F) != 0 )
  {
    KyRetireDpcList((struct KPRCB *)CurrentPrcb);
  }
  else
  {
    _enable();
    if( *((_BYTE *)CurrentPrcb + 12585) )
    {
      *((_BYTE *)CurrentPrcb + 12585) = 0;
      KiQuantumEnd();
    }
    else if( *((_QWORD *)CurrentPrcb + 2) )
    {
      v3 = *((_QWORD *)CurrentPrcb + 1);
      if( (*(_BYTE *)(v3 + 2) & 4) == 0 || (KiDeferGroupSchedulingPreemption((_ETHREAD *)v3, CurrentPrcb), !v4) )
        KxDispatchInterrupt();
    }
  }
}

Referenced by:

KiDpcInterrupt
KiDpcInterruptBypass