MiCountWslesInPageTable

UINT64 __fastcall MiCountWslesInPageTable(INT64 a1, UINT64 a2, _OWORD *a3){
  _MMPTE *PteBase; 
  _MMPTE *Pml4eBase; 
  _MMPTE *PxeUserLimit; 
  UINT64 v6; 
  UINT64 result; 
  __int64 v8; 
  PteBase = MmGetPteBase();
  Pml4eBase = MmGetPml4eBase();
  PxeUserLimit = MmGetPxeUserLimit();
  *a3 = 0i64;
  v6 = ((unsigned __int64)PteBase + ((a2 >> 9) & 0x7FFFFFFFF8i64)) & 0xFFFFFFFFFFFFF000ui64;
  a3[1] = 0i64;
  do
  {
    result = (UINT64)Pml4eBase;
    if( v6 >= (unsigned __int64)Pml4eBase )
      result = (UINT64)PxeUserLimit;
    if( (*(_QWORD *)v6 & 1) != 0 )
    {
      v8 = HIBYTE(*(_QWORD *)((char *)PteBase
                            + ((((__int64)((v6 << 25) - ((_QWORD)PteBase << 25)) >> 16) & 0xFFFFFFFFF000ui64) >> 9))) & 0xF;
      result = (unsigned int)(v8 - 8);
      if( (unsigned __int8)(v8 - 8) > 2u )
      {
        result = (unsigned __int8)v8;
        ++*((_DWORD *)a3 + (unsigned __int8)v8);
      }
    }
    v6 += 8i64;
  }
  while( (v6 & 0xFFF) != 0 );
  return result;
}

Referenced by:

MiAddWorkingSetEntries
MiDeleteVa
MiRebuildPageTableLeafAges
MiSetVaAgeList
MiTerminateWsle
MiTerminateWsleCluster