HalpTimerWatchdogStart

NTSTATUS __stdcall HalpTimerWatchdogStart(){
  void *v0; 
  void *v1; 
  void *v2; 
  _KDPC *v3; 
  NTSTATUS result; 
  __int64 v5; 
  INT64 a5; 

  v3 = (_KDPC *)HalpWatchdogTimer;
  if( HalpWatchdogTimer )
  {
    if( dword_140C4A338 < 0 || (result = dword_140C4A338 - 1, dword_140C4A338 = result, result < 0) )
    {
      HalpTimerGetInternalData((_KDPC *)HalpWatchdogTimer, v0, v1, v2);
      ((void(__fastcall *)(__int64))v3[1].SystemArgument1)(v5);
      qword_140C4A350 = *(_QWORD *)&KUSER_SHARED_DATA.InterruptTime.LowPart;
      result = HalpSetTimer(v3, 3ui64, qword_140C4A330, 1, (INT64)&a5);
      if( result >= 0 )
      {
        byte_140C4A348 = 1;
        HalpTimerWatchdogWakeSetDueTime();
      }
    }
  }
  return result;
}

Referenced by:

HalpTimerInitializeSystemWatchdog