KiComputeNewSystemTime

UINT64 __stdcall KiComputeNewSystemTime(UINT64 QpcTimeStamp){
  unsigned __int128 v1; 
  UINT64 v2; 

  *((_QWORD *)&v1 + 1) = 0i64;
  if( QpcTimeStamp > KUSER_SHARED_DATA.BaselineSystemTimeQpc )
  {
    v2 = QpcTimeStamp - KUSER_SHARED_DATA.BaselineSystemTimeQpc;
    if( KUSER_SHARED_DATA.QpcSystemTimeIncrementShift )
      v2 <<= KUSER_SHARED_DATA.QpcSystemTimeIncrementShift;
    v1 = v2 * (unsigned __int128)KUSER_SHARED_DATA.QpcSystemTimeIncrement;
    qword_140C50468 += v1;
    if( qword_140C50468 < (unsigned __int64)v1 )
      ++*((_QWORD *)&v1 + 1);
  }
  return *((_QWORD *)&v1 + 1) + *(_QWORD *)&KUSER_SHARED_DATA.SystemTime.LowPart;
}

Referenced by:

KiUpdateSystemTime
KiUpdateTimeAssist