HvlIterateSecurePagesForHibernation

INT64 __fastcall HvlIterateSecurePagesForHibernation(INT64 a1, INT64 a2, UINT8 *a3, _DWORD *a4){
  CHAR v4; 
  UINT8 v5; 
  INT64 result; 
  NTSTATUS SecurePageList; 
  UINT64 v8; 
  int a3a; 
  LONGLONG *v10; 
  INT64 a4a; 
  a4a = a1;
  v4 = (char)a3;
  v10 = 0i64;
  v5 = a2;
  a3a = 0;
  LODWORD(v8) = (HvlpHibernateScratchPageCount - 2) << 12;
  result = HvlpStartSecurePageListIteration(
             0i64,
             3ui64,
             (CHAR *)HvlpHibernateScratchPage + 4096,
             (char *)HvlpHibernateScratchPage + (unsigned int)v8 + 4096,
             v8,
             &v10);
  if( (int)result >= 0 )
  {
    do
    {
      LOBYTE(a4a) = 0;
      SecurePageList = VslGetSecurePageList(1u, 0i64, &a3a, &a4a);
      if( SecurePageList >= 0 )
        PopWriteSecurePagesCallback(v5);
    }
    while( !SecurePageList );
    HvlpEndSecurePageListIteration(0i64, v4);
    if( SecurePageList == -2147483622 )
      return 0;
    return(unsigned int)SecurePageList;
  }
  return result;
}

Referenced by:

PopWriteSecurePages