HvlDiscardSecurePagesFromHibernation

NTSTATUS __stdcall HvlDiscardSecurePagesFromHibernation(PVOID MemoryMap){
  NTSTATUS result; 
  LONGLONG *v3; 
  NTSTATUS SecurePageList; 
  unsigned int i; 
  unsigned __int64 v6; 
  UINT64 Tag; 
  UINT64 Taga; 
  LONGLONG *a4; 
  a4 = 0i64;
  LODWORD(Tag) = 0;
  result = HvlpStartSecurePageListIteration(0i64, 7ui64, 0i64, 0i64, Tag, &a4);
  if( result >= 0 )
  {
    v3 = a4;
    do
    {
      LOBYTE(a4) = 0;
      SecurePageList = VslGetSecurePageList(1u, 0i64, 0i64, &a4);
      if( SecurePageList >= 0 )
      {
        for( i = 0; i < *((unsigned __int16 *)v3 + 4); ++i )
        {
          LODWORD(Taga) = 1751938632;
          v6 = v3[i + 2];
          PoSetHiberRange(MemoryMap, 0xC000ui64, (VOID *)(v6 & 0xFFFFFFFFFFi64), (v6 >> 40) + 1, Taga);
        }
      }
    }
    while( !SecurePageList );
    HvlpEndSecurePageListIteration(0i64, 0);
    return HvlDiscardPagesFromHibernation(MemoryMap);
  }
  return result;
}

Referenced by:

PopSaveHiberContext