HvlpAllocateOverlayPages

VOID *__stdcall HvlpAllocateOverlayPages(UINT64 PageCount){
  VOID *ContiguousNodeMemory; 
  unsigned int v2; 
  _LARGE_INTEGER v3; 
  unsigned int v4; 
  UINT64 Protect; 
  UINT64 PreferredNode; 

  ContiguousNodeMemory = 0i64;
  v2 = 0;
  v3.QuadPart = -1i64;
  do
  {
    v4 = v2++;
    if( v4 >= 4 )
      break;
    v3.QuadPart += 0x40000000i64;
    LODWORD(PreferredNode) = 0x80000000;
    LODWORD(Protect) = 4;
    ContiguousNodeMemory = MmAllocateContiguousNodeMemory(0x1000ui64, 0i64, v3, 0i64, Protect, PreferredNode);
  }
  while( !ContiguousNodeMemory );
  if( !ContiguousNodeMemory )
  {
    LODWORD(PreferredNode) = 0x80000000;
    LODWORD(Protect) = 4;
    return MmAllocateContiguousNodeMemory(0x1000ui64, 0i64, (_LARGE_INTEGER)-1i64, 0i64, Protect, PreferredNode);
  }
  return ContiguousNodeMemory;
}

Referenced by:

HvlInitializeProcessor
HvlSetupPhysicalFaultNotificationQueue