MiDecrementCombinedPte

_MI_PAGE_DELETE_RESULT __stdcall MiDecrementCombinedPte(_MMPTE *ProtoPte){
  _MMPTE *v1; 
  _MMPTE *v2; 
  __int64 v3; 
  _MI_CROSS_PARTITION_CHARGES *v4; 
  _MI_PAGE_DELETE_RESULT v5; 

  v2 = v1;
  v3 = *(_QWORD *)(((unsigned __int64)&v1[-6] & 0xFFFFFFFFFFFFF000ui64) + 0x10);
  v4 = *(_MI_CROSS_PARTITION_CHARGES **)v3;
  _InterlockedExchangeAdd((volatile signed __int32 *)(v3 + 392), 0xFFFFFFFF);
  v5 = PageNonExistent;
  if( ProtoPte
    && *(_MI_CROSS_PARTITION_CHARGES **)(*(&stru_140C4DB30 + 267) + 8i64 * HIWORD(ProtoPte[21].u.TimeStamp._bf_0)) != v4
    && _InterlockedExchangeAdd64((volatile signed __int64 *)&v1[1], 0xFFFFFFFFFFFFFFFFui64) == 1 )
  {
    MiReturnCrossPartitionCombineCharges(v4, 1i64);
  }
  if( _InterlockedExchangeAdd64((volatile signed __int64 *)&v2[-2], 0xFFFFFFFFFFFFFFFFui64) != 1 )
    return 2;
  if( v2[-3].u.Long )
    v5 = MiDeleteMergedPte((_MI_PARTITION *)v4, v2);
  MiFreeCombineBlock((_MI_COMBINE_BLOCK *)&v2[-6]);
  return v5;
}

Referenced by:

MiCopyOnWrite
MiDecommitPages
MiDeletePteList
MiDeletePteRun
MiDeleteSystemPagableVm
MiDeleteVa
MiDeleteValidSystemPage
MiDereferenceCombineBlock
MiDereferenceCombineCrc
MiProcessCrcList