HalpSetVirtualRtc
INT64 __fastcall HalpSetVirtualRtc(LARGE_INTEGER *CurrentTime){
LARGE_INTEGER v1;
INT64 result;
LARGE_INTEGER v4;
__int128 v5;
LARGE_INTEGER v6;
result = (unsigned int)SystemPowerPhase;
v5 = 0i64;
if( SystemPowerPhase == 2 )
goto LABEL_9;
if( CurrentTime )
{
v4 = *CurrentTime;
v6 = *CurrentTime;
}
else
{
if( SystemPowerPhase )
{
LABEL_9:
LOBYTE(result) = 0;
return result;
}
v4.QuadPart = RtlGetSystemTimePrecise();
v6 = v4;
}
RtlpTimeToTimeFields(&v6, &v5, v1);
result = 1601i64;
if( (__int16)v5 <= 1601 )
goto LABEL_9;
result = KeQueryPerformanceCounter(0i64).QuadPart;
dword_140C4A3A0 = HIDWORD(result);
qword_140C4A398 = result;
dword_140C4A394 = v6.HighPart;
qword_140C4A38C = v4.QuadPart;
dword_140C4A388 = HIDWORD(result);
VrtcTime = result;
if( CurrentTime )
HalpVrtcTimeStale = 0;
LOBYTE(result) = 1;
return result;
}Referenced by:
HalCalibratePerformanceCounter
HalQueryRealTimeClock
HalSetRealTimeClock
HalpSetResumeTime