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