MiDecrementAweMapCount

NTSTATUS __stdcall MiDecrementAweMapCount(VOID *CommitBase, UINT64 CommitSize, UINT64 ReserveSize){
  char v3; 
  char v4; 
  UINT8 v7; 
  __int64 v8; 
  unsigned __int64 v9; 
  __int64 v10; 
  __int64 v11; 
  char v12; 

  v4 = v3;
  v7 = MiLockPageInline((_MMPFN *)CommitSize);
  v8 = *(_QWORD *)(CommitSize + 24);
  v9 = v7;
  v10 = (v8 & 0x3FFFFFFFFFFFFFFFi64) - 1;
  v11 = v8 ^ (v10 ^ v8) & 0x3FFFFFFFFFFFFFFFi64;
  *(_QWORD *)(CommitSize + 24) = v11;
  if( (v4 & 1) != 0 )
  {
    *(_QWORD *)(CommitSize + 24) = v11 | 0x4000000000000000i64;
  }
  else if( (v8 & 0x3FFFFFFFFFFFFFFFi64) == 1 )
  {
    v12 = *(_BYTE *)(CommitSize + 34);
    if( (v12 & 8) != 0 )
    {
      LODWORD(v10) = 1;
    }
    else
    {
      *(_BYTE *)(CommitSize + 34) = v12 | 8;
      *(_QWORD *)(CommitSize + 16) = *(_QWORD *)ReserveSize;
      *(_QWORD *)ReserveSize = CommitSize;
    }
  }
  _InterlockedAnd64((volatile signed __int64 *)(CommitSize + 24), 0x7FFFFFFFFFFFFFFFui64);
  __writecr8(v9);
  return v10;
}

Referenced by:

MiFreePhysicalPages
MiReferenceIncomingPhysicalPages
MiWriteAwePtes