MiDecrementCombinedPte

INT64 __fastcall MiDecrementCombinedPte(INT64 a1, _MMPTE *a2){
  __int64 v3; 
  volatile INT64 *v4; 
  unsigned int v5; 
  v3 = *(_QWORD *)((((unsigned __int64)a2 - 48) & 0xFFFFFFFFFFFFF000ui64) + 0x10);
  v4 = *(volatile INT64 **)v3;
  _InterlockedExchangeAdd((volatile signed __int32 *)(v3 + 392), 0xFFFFFFFF);
  v5 = 0;
  if( a1
    && *(volatile INT64 **)(qword_140C4E388 + 8i64 * *(unsigned __int16 *)(a1 + 174)) != v4
    && _InterlockedExchangeAdd64((volatile signed __int64 *)a2 + 1, 0xFFFFFFFFFFFFFFFFui64) == 1 )
  {
    MiReturnCrossPartitionCombineCharges(v4, 1i64);
  }
  if( _InterlockedExchangeAdd64((volatile signed __int64 *)a2 - 2, 0xFFFFFFFFFFFFFFFFui64) != 1 )
    return 2i64;
  if( *((_QWORD *)a2 - 3) )
    v5 = MiDeleteMergedPte((_MI_PARTITION *)v4, a2);
  MiFreeCombineBlock((INT64)a2 - 48);
  return v5;
}

Referenced by:

MiCopyOnWrite
MiDecommitPages
MiDeletePteList
MiDeletePteRun
MiDeleteSystemPagableVm
MiDeleteVa
MiDeleteValidSystemPage
MiDereferenceCombineBlock
MiDereferenceCombineCrc
MiProcessCrcList