HalpTimerWatchdogPreResetInterrupt

NTSTATUS __stdcall HalpTimerWatchdogPreResetInterrupt(_KINTERRUPT *Interrupt, VOID *ServiceContext){
  void *v2; 
  void *v3; 
  __int64 v4; 
  __int64 v5; 
  __int64 v6; 
  UINT64 v7; 
  void *v8; 
  unsigned __int64 BugCheckParameter4; 
  PVOID v10; 
  UINT64 QpcTimeStamp; 

  HalpTimerGetInternalData((_KDPC *)HalpWatchdogTimer, HalpWatchdogTimer, v2, v3);
  v6 = (*(__int64(__fastcall **)(__int64))(v4 + 120))(v5);
  if( (unsigned __int64)qword_140C4A340 <= 0xFFFFFFFFFFFFFFFDui64 )
  {
    v8 = (void *)(*(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart - qword_140C4A350);
    if( *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart - qword_140C4A350 < (unsigned __int64)qword_140C4A340 >> 1 )
    {
      BugCheckParameter4 = (unsigned int)KiClockTimerOwner;
      LODWORD(v10) = KeQueryInterruptTimePrecise(&QpcTimeStamp);
      KeBugCheckEx(0x101u, v8, (PVOID)((unsigned __int64)qword_140C4A340 >> 1), v10, (PVOID)BugCheckParameter4);
    }
    HalpTimerWatchdogResetCountdown(v7);
  }
  LOBYTE(v6) = 1;
  return v6;
}

Referenced by:

No references.