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