MiGenerateRandomPte

CHAR *__fastcall MiGenerateRandomPte(INT64 a1){
  __int64 v1; 
  __int64 v2; 
  unsigned __int64 v3; 
  __int64 v4; 
  __int64 v6; 
  _QWORD a2[5]; 
  MiInitializeWalkBounds(a1, a2);
  v1 = (unsigned int)ExGenRandom(1i64);
  v2 = (unsigned int)ExGenRandom(1i64);
  v3 = a2[1] - a2[0] + 1i64;
  v4 = v1 | (v2 << 32);
  if( _BitScanReverse64((unsigned __int64 *)&v6, v3) )
    v3 = 1i64 << v6;
  return(char *)MmGetPteBase() + (((a2[0] + (v4 & (v3 - 1))) >> 9) & 0x7FFFFFFFF8i64);
}

Referenced by:

MiAgeWorkingSet
MiSimpleAging
MiTrimWorkingSet