HvlpAllocateOverlayPages

NTSTATUS __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;
    LODWORD(ContiguousNodeMemory) = (unsigned int)MmAllocateContiguousNodeMemory(
                                                    0x1000ui64,
                                                    0i64,
                                                    (LARGE_INTEGER)-1i64,
                                                    0i64,
                                                    Protect,
                                                    PreferredNode);
  }
  return(int)ContiguousNodeMemory;
}

Referenced by:

HvlInitializeProcessor
HvlSetupPhysicalFaultNotificationQueue