MiGetSlabAllocator

INT64 __fastcall MiGetSlabAllocator(INT64 a1, INT64 a2, CHAR a3){
  int v4; 
  __int64 v5; 
  v4 = a3 & 5;
  if( v4 == 4 || (v5 = 0i64, (_DWORD)a2) && v4 == 5 )
  {
    v5 = 3i64;
  }
  else if( (a3 & 2) == 0 )
  {
    if( (a3 & 1) != 0 )
    {
      if( (_DWORD)a2 || (MiFlags & 0x10000) != 0 )
        v5 = 1i64;
    }
    else
    {
      v5 = 2i64;
    }
  }
  return a1 + 120 * (v5 + 4i64 * (int)a2) + 5184;
}

Referenced by:

MiCheckSlabPage
MiCreateKernelHalSlabRange
MiCreateSlabAllocationsFromLoaderBlock
MiGetSlabPage
MiPfPrepareReadList
MiPfPrepareSequentialReadList
MiPfPutPagesInTransition
MmUpdateSlabRangeProtection