MiInitializePageColorBase

UINT64 *__fastcall MiInitializePageColorBase(INT64 a1, INT64 a2, INT64 a3){
  UINT64 *result; 
  struct _KPRCB *CurrentPrcb; 
  int v5; 
  result = (UINT64 *)a1;
  if( (_DWORD)a2 )
  {
    CurrentPrcb = KeGetCurrentPrcb();
    v5 = ((_DWORD)a2 - 1) << byte_140C4DBCC;
  }
  else
  {
    CurrentPrcb = *(&KiProcessorBlock + *((unsigned int *)KeGetCurrentThread() + 147));
    v5 = *((_DWORD *)CurrentPrcb + 8134);
  }
  *(_DWORD *)(a3 + 12) = v5;
  *(_DWORD *)(a3 + 8) = (1 << byte_140C4DBCD) - 1;
  if( !a1 || (*(_BYTE *)(a1 + 184) & 7u) >= 2 )
    result = (UINT64 *)((char *)CurrentPrcb + 32528);
  *(_QWORD *)a3 = result;
  return result;
}

Referenced by:

MiAllocateDriverPage
MiAllocateKernelStackPages
MiAllocateMdlPagesByLists
MiAllocateTopLevelPage
MiBuildForkPte
MiCombineIdenticalPages
MiCopyOnWrite
MiDoneWithThisPageGetAnother
MiFillPerSessionProtos
MiGetClusterPage
MiGetLargePagesDemoteAsNeeded
MiGetPageForHeader
MiGetPoolPages
MiHandleForkTransitionPte
MiHugePageOperation
MiIdealClusterPage
MiInitializeColorBase
MiInitializeScrubPacket
MiMakeOutswappedPageResident
MiMapNewSession
MiMapPageFileHash
MiPfPrepareReadList
MiPfPrepareSequentialReadList
MiPfPutPagesInTransition
MiPrefetchPreallocatePages
MiProcessVaContiguityInformation
MiPruneStandbyPages
MiResolveMappedFileFault
MiResolvePrivateZeroFault
MiScrubNodeLargePages
MiSwitchToTransition
MiTimeSingleLargePageZeroWorker
MiWalkEntireImage
MmAllocateIndependentPagesEx
MmAllocateNonChargedSecurePages
MmCheckCachedPageStates
MxRelocatePageTables