MmFreeNonChargedSecurePages
VOID __fastcall MmFreeNonChargedSecurePages(UINT64 **a1, INT64 a2, UINT64 *a3){
int v4;
ULONG_PTR v5;
ULONG_PTR i;
char *v7;
unsigned __int64 v8;
v4 = a2;
LODWORD(v5) = MiPartitionObjectToPartition(a1);
for( i = v5; v4; --v4 )
{
v7 = (char *)MmGetPfnDb() + 48 * *a3;
v8 = (unsigned __int8)MiLockPageInline((INT64)v7);
*((_QWORD *)v7 + 3) &= 0xC000000000000000ui64;
*((_QWORD *)v7 + 5) &= 0x8FFFFFFFFFFFFFFFui64;
*((_WORD *)v7 + 16) = 0;
if( _InterlockedDecrement64((volatile signed __int64 *)(i + 432)) < 0 )
KeBugCheckEx(0x1Au, 0x42403ui64, i, 0i64, 0i64);
MiInsertPageInFreeOrZeroedList(*a3, 2ui64);
_InterlockedAnd64((volatile signed __int64 *)v7 + 3, 0x7FFFFFFFFFFFFFFFui64);
__writecr8(v8);
++a3;
}
}Referenced by:
PspIumFreePartitionPages