MmFreeNonChargedSecurePages
VOID __stdcall MmFreeNonChargedSecurePages(UINT64 **a1, INT64 a2, UINT64 *a3){
int v4;
volatile signed __int64 *v5;
volatile signed __int64 *i;
_MMPFN *v7;
INT64 v8;
UINT64 v9;
unsigned __int64 v10;
PVOID BugCheckParameter4;
UINT64 v12;
v4 = a2;
LODWORD(v5) = MiPartitionObjectToPartition(a1);
for( i = v5; v4; --v4 )
{
v7 = &MmGetPfnDb()[*a3];
v10 = MiLockPageInline(v7);
v7->u2._bf_0 &= 0xC000000000000000ui64;
v7->u4._bf_0 &= 0x8FFFFFFFFFFFFFFFui64;
v7->u3.ReferenceCount = 0;
if( _InterlockedDecrement64(i + 54) < 0 )
KeBugCheckEx(0x1Au, (PVOID)0x42403, (PVOID)i, 0i64, 0i64);
MiInsertPageInFreeOrZeroedList(*a3, 2ui64, v8, v9, (UINT64)BugCheckParameter4, v12);
_InterlockedAnd64(&v7->u2.Lock, 0x7FFFFFFFFFFFFFFFui64);
__writecr8(v10);
++a3;
}
}Referenced by:
PspIumFreePartitionPages