KiUpdateSystemTime

VOID __stdcall KiUpdateSystemTime(UINT64 TimeDelta, UINT64 Flags, UINT64 a3){
  char v3; 
  UINT64 PerformanceCounter; 
  _LARGE_INTEGER v7; 
  __int16 v8; 

  v3 = a3;
  _disable();
  RtlWriteAcquireTickLock((signed __int64 *)&KUSER_SHARED_DATA.TimeUpdateLock);
  PerformanceCounter = KeQueryPerformanceCounter(0i64);
  v7.QuadPart = KiComputeNewSystemTime(PerformanceCounter);
  if( TimeDelta )
  {
    qword_140C50468 = 0i64;
    v7.QuadPart = TimeDelta + *(_QWORD *)&KUSER_SHARED_DATA.SystemTime.LowPart;
  }
  KUSER_SHARED_DATA.BaselineSystemTimeQpc = PerformanceCounter;
  KUSER_SHARED_DATA.SystemTime.High2Time = v7.anonymous_0.HighPart;
  *(_LARGE_INTEGER *)&KUSER_SHARED_DATA.SystemTime.LowPart = v7;
  if( Flags )
  {
    KUSER_SHARED_DATA.QpcSystemTimeIncrement = *(_QWORD *)Flags;
    KUSER_SHARED_DATA.QpcSystemTimeIncrementShift = *(_BYTE *)(Flags + 8);
  }
  ++KUSER_SHARED_DATA.TimeUpdateLock;
  if( (v3 & 1) == 0 )
  {
    if( (v3 & 4) != 0 )
    {
      KeBootTimeBias = 0i64;
      KeBootTime = v7;
    }
    else
    {
      KeBootTime.QuadPart += TimeDelta;
      KeBootTimeBias += TimeDelta;
    }
  }
  if( (v8 & 0x200) != 0 )
    _enable();
}

Referenced by:

KeSetTimeAdjustment
KiCalibrateTimeAdjustment
KiSetSystemTimeDpc