MiUpdatePartitionMemory

void __fastcall MiUpdatePartitionMemory(__int64 a1, __int64 a2, int a3){
  INT64 *v3; 
  KIRQL v6; 
  INT64 v7; 
  __int64 v8; 
  INT64 v9; 
  unsigned __int64 v10; 
  struct _KLOCK_QUEUE_HANDLE LockHandle; 
  v3 = (INT64 *)(a1 + 200);
  memset(&LockHandle, 0, sizeof(LockHandle));
  v6 = ExAcquireSpinLockExclusive((PEX_SPIN_LOCK)(a1 + 200));
  v7 = *(_QWORD *)(a1 + 32);
  v8 = *(_QWORD *)(a2 + 8);
  v9 = *(_QWORD *)(a1 + 96);
  *(_QWORD *)(a1 + 32) = *(_QWORD *)(a2 + 16);
  v10 = v6;
  *(_QWORD *)(a1 + 96) = v8;
  KeAcquireInStackQueuedSpinLock(&qword_140C4E340, &LockHandle);
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  __writecr8(LockHandle.OldIrql);
  ExReleaseSpinLockExclusiveFromDpcLevel(v3);
  __writecr8(v10);
  MiComputeNodeMemory((_MI_PARTITION *)a1);
  if( v7 )
    MiDereferencePageRunsEx(v7, 0i64);
  if( v9 )
    MiDereferencePageRunsEx(v9, 0i64);
}

Referenced by:

MiMakePartitionMemoryBlock