HvlpMarkHvlPagesForHibernation

VOID __stdcall HvlpMarkHvlPagesForHibernation(){
  UINT64 v0; 
  VOID(__fastcall *v1)(CHAR, _BYTE *); 
  unsigned int v2; 
  unsigned int ActiveProcessorCount; 
  __int64 v4; 
  UINT64 Tag; 
  UINT64 Tagb; 
  UINT64 Taga; 
  if( (HvlpFlags & 2) != 0 )
  {
    v0 = 0i64;
    v1 = HvlGetReferenceTimeUsingTscPage;
  }
  else
  {
    LODWORD(Tag) = 1684829768;
    PoSetHiberRange(0i64, 0x10000ui64, HvlpReferenceTscPage, 0x1000ui64, Tag);
    v1 = (VOID(__fastcall *)(CHAR, _BYTE *))HvlpHypercallCodeVa;
    v0 = 4096i64;
  }
  LODWORD(Tag) = 1668052552;
  PoSetHiberRange(0i64, 0x10000ui64, v1, v0, Tag);
  LODWORD(Tagb) = 1684829768;
  PoSetHiberRange(0i64, 0x10000ui64, &HvlpFlags, 0i64, Tagb);
  v2 = 0;
  ActiveProcessorCount = KeQueryActiveProcessorCountEx(0xFFFFu);
  if( ActiveProcessorCount )
  {
    do
    {
      KeGetPrcb(v2);
      LODWORD(Taga) = 1684829768;
      PoSetHiberRange(0i64, 0x10000ui64, *(VOID **)(v4 + 33664), 0x6000ui64, Taga);
      ++v2;
    }
    while( v2 < ActiveProcessorCount );
  }
}

Referenced by:

HvlMarkHiberPhase