MiClusterVadFull
INT64 __fastcall MiClusterVadFull(_MMPFN *Pfn1, _SUBSECTION *Subsection){
unsigned __int64 v2;
signed __int64 v3;
unsigned __int64 v4;
unsigned __int64 v5;
_QWORD *v6;
unsigned int v7;
unsigned __int64 v8;
v2 = *((_QWORD *)Pfn1 + 1) | 0x8000000000000000ui64;
v3 = (Pfn1 - MmGetPfnDb()) / 48;
if( Subsection )
{
v4 = *((_QWORD *)Subsection + 1);
if( v2 < v4
|| v2 >= v4 - 8i64 * (*((_DWORD *)Subsection + 13) & 0x3FFFFFFF) + 8i64 * *((unsigned int *)Subsection + 11) )
{
return 0i64;
}
v5 = (__int64)(v2 - v4) >> 3;
}
else
{
v5 = (unsigned __int64)*((unsigned int *)Pfn1 + 2) >> 3;
}
if( (((unsigned __int8)v5 ^ (unsigned __int8)v3) & 0xF) == 0 )
{
v6 = (_QWORD *)((char *)Pfn1 + 88);
v7 = 1;
v8 = v2 + 8;
while( (*(v6 - 4) | 0x8000000000000000ui64) == v8
&& (*v6 & 0xFFFFFFFFFi64) == (*((_QWORD *)Pfn1 + 5) & 0xFFFFFFFFFi64) )
{
v8 += 8i64;
++v7;
v6 += 6;
if( v7 >= 0x10 )
return 1i64;
}
}
return 0i64;
}Referenced by:
MiPfnsWorthTrying
MiTrimSharedPage