MiGetSystemPage

_MMPFN *__stdcall MiGetSystemPage(ULONG_PTR *Partition, _MI_COLOR_BASE *ColorBase){
  unsigned __int32 v3; 
  __int64 v4; 
  UINT64 v5; 
  _MMPFN *v6; 
  unsigned __int64 v7; 

  v3 = ColorBase[2] & _InterlockedExchangeAdd(*(volatile signed __int32 **)ColorBase, 1u) | ColorBase[3];
  for( LODWORD(v4) = MiGetPage(Partition, v3, 0x302ui64); ; LODWORD(v4) = MiGetPage(Partition, v3, 0x302ui64) )
  {
    if( v4 != -1 )
    {
      v6 = &MmGetPfnDb()[v4];
      v7 = MiLockPageInline(v6);
      v6->u2._bf_0 &= 0xC000000000000000ui64;
      _InterlockedAnd64(&v6->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
      __writecr8(v7);
      return v6;
    }
    if( KeGetCurrentIrql() == 2 )
      break;
    MiWaitForFreePage((_MI_PARTITION *)Partition, v5);
  }
  return 0i64;
}

Referenced by:

MiGetPageForHeader
MiMapNewSession