ExUpdateSystemTimeFromCmos

VOID __stdcall ExUpdateSystemTimeFromCmos(UINT8 UpdateInterruptTime, UINT64 MaxSepInSeconds){
  unsigned __int64 v3; 
  unsigned __int64 v4; 
  _LARGE_INTEGER Time; 
  _LARGE_INTEGER SystemTime; 
  _LARGE_INTEGER PreviousTime; 
  _TIME_FIELDS TimeFields; 

  SystemTime.QuadPart = 0i64;
  Time.QuadPart = 0i64;
  TimeFields = 0i64;
  if( !(_DWORD)MaxSepInSeconds )
    LODWORD(MaxSepInSeconds) = ExpMaxTimeSeperationBeforeCorrect;
  v3 = 10000000i64 * (unsigned int)MaxSepInSeconds;
  if( (unsigned __int8)HalQueryRealTimeClock(&TimeFields) && RtlTimeFieldsToTime(&TimeFields, &Time) )
  {
    if( *(&stru_140CF2E80 + 1829) )
      SystemTime = Time;
    else
      ExLocalTimeToSystemTime(&Time, &SystemTime);
    PreviousTime = *(_LARGE_INTEGER *)&KUSER_SHARED_DATA.SystemTime.LowPart;
    if( SystemTime.QuadPart <= *(__int64 *)&KUSER_SHARED_DATA.SystemTime.LowPart )
      v4 = *(_QWORD *)&KUSER_SHARED_DATA.SystemTime.LowPart - SystemTime.QuadPart;
    else
      v4 = SystemTime.QuadPart - *(_QWORD *)&KUSER_SHARED_DATA.SystemTime.LowPart;
    if( v4 > v3 )
      ExpSetSystemTime(0, UpdateInterruptTime, TimeChangeHardwareSync, SystemTime, &PreviousTime);
  }
}

Referenced by:

ExpTimeRefreshWork
KdpTimeSlipWork
PopTransitionSystemPowerStateEx