MiQueryPfn

CHAR __fastcall MiQueryPfn(INT64 a1, INT64 a2){
  INT64 v2; 
  _MMPFN *PfnDb; 
  INT64 v4; 
  int PfnPriority; 
  __int64 v6; 
  __int64 v7; 
  __int64 v8; 
  __int64 v9; 
  __int64 v10; 
  CHAR result; 
  v2 = a2;
  PfnDb = MmGetPfnDb();
  v4 = (INT64)PfnDb + 48 * a1;
  if( (*(_BYTE *)(v4 + 35) & 0x40) != 0 || MiIsPageOnBadList((INT64)PfnDb + 48 * a1) )
    *(_QWORD *)(v2 + 8) |= 0x80000000ui64;
  PfnPriority = MiGetPfnPriority(v4);
  v9 = v8 ^ ((unsigned int)v8 ^ (PfnPriority << 24)) & 0x7000000;
  *(_QWORD *)(v6 + 8) = v9;
  result = *(_BYTE *)(v10 + 34) & 7;
  if( result == 3 )
    v7 = 0x8000000i64;
  *(_QWORD *)(v6 + 8) = v9 & 0xFFFFFFFFF77FFFFFui64 | v7 & 0xFFFFFFFFFF7FFFFFui64 | 0x400000;
  return result;
}

Referenced by:

MiGetWorkingSetInfoList