MiGetPageSlist

INT64 __fastcall MiGetPageSlist(INT64 a1, CHAR a2, CHAR a3){
  int v3; 
  __int64 *v4; 
  int v5; 
  unsigned int v7; 
  int v8; 
  INT64 result; 
  v3 = dword_140C4DC38;
  v4 = &MiZeroThenZero;
  v5 = a2;
  v7 = a2;
  v8 = (a3 & 0x4000) != 0 ? 16 : 1;
  if( (a3 & 2) == 0 )
    v4 = (__int64 *)&MiFreeThenFree;
  while( 1 )
  {
    result = MiSlistGetFreePage((_MI_PARTITION *)a1, (_MMLISTS)v4, v7);
    if( result )
      break;
    v7 = v7 & ~v3 | v3 & (v8 + v7);
    if( v7 == v5 )
      return 0i64;
  }
  return result;
}

Referenced by:

MiGetFreeOrZeroPageAnyColor