PopHiberCheckResume
UINT8 __fastcall PopHiberCheckResume(){
ULONG_PTR v0;
UINT8 v1;
__int64 v2;
unsigned __int64 v3;
INT64 v4;
UINT64 *v5;
__int64 v6;
_OWORD *v7;
__int128 v8;
_BYTE *v10;
INT64 v11;
__int64 v12;
__int128 v13;
__int128 v14;
UINT64 v15;
INT64 result;
int v17;
__int64 v18;
__int64 v19;
__int128 v20;
__int128 v21;
memset((INT64)&result, 0i64);
v0 = HiberContext;
v1 = 0;
v2 = *(_QWORD *)(HiberContext + 200);
if( *(_DWORD *)v2 )
{
PopCheckpointSystemSleep(PopSleepCheckpointHiberKernelHandoff);
((void(__fastcall *)(_QWORD))off_140C00838[0])(0i64);
PoResumeFromHibernate = 1;
v3 = __rdtsc();
((void(__fastcall *)(__int64))off_140C006C0[0])(5i64);
((void(__fastcall *)(__int64))off_140C00838[0])(1i64);
if( (_BYTE)HvlHypervisorConnected )
{
HvlRestoreEnlightenment();
off_140C007A8[0]();
}
((void(__fastcall *)(__int64))off_140C007C0)(5i64);
if( (_BYTE)HvlHypervisorConnected )
{
HvlConfigureMemoryZeroingOnReset(1);
if( (HvlpFlags & 2) != 0 )
{
HvlNotifyDebugDeviceAvailable(v11, v10);
HvlNotifyAcpiReenabled();
}
}
if( (_BYTE)KdDebuggerEnabled && !KdPitchDebugger || KdEventLoggingEnabled )
{
LOBYTE(KdDebuggerEnabled) = 0;
KdInitSystem(0i64, 0i64);
}
if( (_BYTE)KdDebuggerEnabled && *(_DWORD *)v2 == 1347113538 )
__debugbreak();
if( (*(_DWORD *)PopSimulate & 0x40000000) != 0 )
__debugbreak();
HalInitializeOnResume(*(MDL **)(v0 + 224), *(PVOID *)(v0 + 232));
if( *(_QWORD *)(v2 + 928) )
{
v12 = *(_QWORD *)(v0 + 264);
v13 = *(_OWORD *)(v2 + 928);
v17 = 80;
v14 = *(_OWORD *)(v2 + 944);
v15 = *(_QWORD *)(v12 + 8);
v18 = 0i64;
v19 = 0x4000i64;
v20 = v13;
v21 = v14;
MmMapMemoryDumpMdlEx2(v15, v4, (INT64)&result, 1i64);
memset(*(void **)(*(_QWORD *)(v0 + 264) + 8i64), 0, 0x4000ui64);
}
v5 = &qword_140C237B8;
v6 = 3i64;
qword_140C19658 = *(_QWORD *)(v2 + 904);
v7 = (_OWORD *)(v2 + 136);
do
{
*(_OWORD *)v5 = *v7;
*((_OWORD *)v5 + 1) = v7[1];
*((_OWORD *)v5 + 2) = v7[2];
*((_OWORD *)v5 + 3) = v7[3];
*((_OWORD *)v5 + 4) = v7[4];
*((_OWORD *)v5 + 5) = v7[5];
*((_OWORD *)v5 + 6) = v7[6];
v5 += 16;
v8 = v7[7];
v7 += 8;
*((_OWORD *)v5 - 1) = v8;
--v6;
}
while( v6 );
*(_OWORD *)v5 = *v7;
*((_OWORD *)v5 + 1) = v7[1];
*((_OWORD *)v5 + 2) = v7[2];
*((_OWORD *)v5 + 3) = v7[3];
*((_OWORD *)v5 + 4) = v7[4];
*((_OWORD *)v5 + 5) = v7[5];
*((_OWORD *)v5 + 6) = v7[6];
v5[14] = *((_QWORD *)v7 + 14);
*(_BYTE *)(v0 + 4) = 0;
qword_140C23888 = v3;
qword_140C23818 = v3 - qword_140C23820;
if( (HvlpFlags & 2) != 0 )
*(_DWORD *)(v0 + 20) = 0;
return 1;
}
return v1;
}Referenced by:
PopSaveHiberContextWrapper