ExpRefreshSystemTime

VOID __stdcall ExpRefreshSystemTime(INT64 a1){
  _EX_TIMEZONE_STATE *ExTimeZoneState; 
  char v2; 
  int LastTimeZoneBias; 
  _LARGE_INTEGER v4; 
  INT64 v5; 
  _TIME_FIELDS TimeFields; 
  _LARGE_INTEGER SystemTime; 
  _LARGE_INTEGER NewTime; 
  _LARGE_INTEGER Time; 

  SystemTime.QuadPart = 0i64;
  NewTime.QuadPart = 0i64;
  Time.QuadPart = 0i64;
  TimeFields = 0i64;
  ExTimeZoneState = PsGetCurrentServerSiloGlobals((_KSPIN_LOCK *)a1)->ExTimeZoneState;
  ExAcquireTimeRefreshLock(1u);
  v2 = ExpSystemIsInCmosMode;
  if( (unsigned __int8)HalQueryRealTimeClock(&TimeFields) )
  {
    if( RtlTimeFieldsToTime(&TimeFields, &Time) )
    {
      LastTimeZoneBias = ExTimeZoneState->LastTimeZoneBias;
      if( ExpRefreshTimeZoneInformation() )
      {
        if( LastTimeZoneBias != ExTimeZoneState->LastTimeZoneBias )
        {
          v4 = *(_LARGE_INTEGER *)&KUSER_SHARED_DATA.SystemTime.LowPart;
          SystemTime = *(_LARGE_INTEGER *)&KUSER_SHARED_DATA.SystemTime.LowPart;
          if( !*(&stru_140CF2E80 + 1829) )
          {
            if( v2 )
            {
              ExLocalTimeToSystemTime(&Time, &NewTime);
              KeSetSystemTime(&NewTime, &SystemTime, 0i64);
              goto LABEL_9;
            }
            ExSystemTimeToLocalTime(&SystemTime, &Time);
            RtlTimeToTimeFields((INT64 *)&Time, (WORD *)&TimeFields, v5);
            HalSetRealTimeClock(&TimeFields.Year);
            v4 = SystemTime;
          }
          NewTime = v4;
LABEL_9:
          PoNotifySystemTimeSet(&NewTime, &SystemTime, TimeChangeTimeZone);
        }
      }
    }
  }
  ExReleaseResourceLite((PERESOURCE)((char *)&ExBootDevicesRemovedEvent + 384));
  KeLeaveCriticalRegion();
}

Referenced by:

CmCompleteRegistryInitialization
CmpFinishSystemHivesLoad