MiFlushAcquire

UINT64 __stdcall MiFlushAcquire(_CONTROL_AREA *ControlArea, _SUBSECTION *Subsection, _SUBSECTION *LastSubsection){
  INT64 *v3; 
  unsigned __int64 v7; 
  __int64 v8; 
  unsigned int v9; 
  v3 = (INT64 *)((char *)ControlArea + 72);
  v7 = ExAcquireSpinLockExclusive((PEX_SPIN_LOCK)ControlArea + 18);
  v8 = *((_QWORD *)ControlArea + 5);
  if( v8 == -1 )
  {
    ExReleaseSpinLockExclusiveFromDpcLevel(v3);
    v9 = 0;
  }
  else
  {
    if( Subsection )
    {
      MiReferenceSubsection(Subsection, 0i64);
      MiReferenceSubsection(LastSubsection, 0i64);
      v8 = *((_QWORD *)ControlArea + 5);
    }
    *((_QWORD *)ControlArea + 5) = v8 + 1;
    ExReleaseSpinLockExclusiveFromDpcLevel(v3);
    v9 = 1;
  }
  __writecr8(v7);
  return v9;
}

Referenced by:

MiAllocateVirtualMemory
MmFlushVirtualMemory