HalpTimerWatchdogStart
INT64 __fastcall HalpTimerWatchdogStart(){
void *v0;
void *v1;
void *v2;
void(__fastcall **v3)(_QWORD);
INT64 result;
__int64 v5;
unsigned __int64 v6;
v3 = (void(__fastcall **)(_QWORD))HalpWatchdogTimer;
if( HalpWatchdogTimer )
{
if( HalpTimerWatchdogStopCount < 0
|| (result = (unsigned int)(HalpTimerWatchdogStopCount - 1), HalpTimerWatchdogStopCount = result, (int)result < 0) )
{
HalpTimerGetInternalData((KDPC *)HalpWatchdogTimer, v0, v1, v2);
v3[13](v5);
HalpTimerWatchdogLastReset = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
result = HalpSetTimer((__int64)v3, 3u, HalpTimerWatchdogTimeout, 1, &v6);
if( (int)result >= 0 )
{
HalpTimerWatchdogArmed = 1;
HalpTimerWatchdogWakeSetDueTime();
}
}
}
return result;
}Referenced by:
HalpTimerInitializeSystemWatchdog