MiFreeModifiedReservations

VOID __stdcall MiFreeModifiedReservations(_MMPAGING_FILE *PagingFile, UINT64 FreeAllPages){
  __int16 v2; 
  int v3; 
  INT64 v4; 
  unsigned __int64 v5; 
  unsigned __int64 v6; 
  __int64 v7; 
  char *v8; 
  unsigned __int8 v9; 
  unsigned __int64 v10; 
  WORK_QUEUE_TYPE v11; 
  PVOID v12; 
  UINT64 v13; 
  INT64 v14; 
  __int64 v15; 
  _BYTE LockHandle[72]; 
  v2 = *((_WORD *)PagingFile + 102);
  v3 = FreeAllPages;
  memset(LockHandle, 0, 24);
  if( (v2 & 0x40) == 0 )
  {
    v4 = *((_QWORD *)PagingFile + 31);
    v5 = 0i64;
    v6 = (_DWORD)FreeAllPages == 0 ? 0x10000 : 0;
    v7 = 5i64 * (v2 & 0xF);
    while( 1 )
    {
      v15 = *(_QWORD *)(v4 + 8 * v7 + 2832);
      if( v15 == 0xFFFFFFFFFi64 )
        break;
      v8 = (char *)MmGetPfnDb() + 48 * v15;
      v9 = MiLockPageInline((INT64)v8);
      *(_QWORD *)LockHandle = 0i64;
      v10 = v9;
      *(_QWORD *)&LockHandle[8] = v4 + 7520;
      KxAcquireQueuedSpinLock((PIO_WORKITEM)LockHandle, (PIO_WORKITEM_ROUTINE)(v4 + 7520), v11, v12);
      if( v15 == *(_QWORD *)(v4 + 8 * v7 + 2832) )
      {
        MiUnlinkPageFromList((_MMPFN *)v8, 1ui64);
        v13 = *((_QWORD *)v8 + 2);
        *((_QWORD *)v8 + 2) = v13 & 0xFFFFFFFFFFFFFFFDui64;
        MiInsertPageInList((_MMPFN *)v8, 0x88ui64);
        KeReleaseInStackQueuedSpinLockFromDpcLevel((_KLOCK_QUEUE_HANDLE *)LockHandle);
        _InterlockedAnd64((volatile signed __int64 *)v8 + 3, 0x7FFFFFFFFFFFFFFFui64);
        MiReleasePageFileInfo(
          v4,
          v13,
          1,
          v14,
          *(INT64 *)LockHandle,
          *(INT64 *)&LockHandle[8],
          *(INT64 *)&LockHandle[16],
          *(INT64 *)&LockHandle[24],
          *(INT64 *)&LockHandle[32],
          *(INT64 *)&LockHandle[40],
          *(INT64 *)&LockHandle[48],
          *(INT64 *)&LockHandle[56]);
        __writecr8(v10);
        ++v5;
        if( !v3 && v5 >= v6 )
          return;
      }
      else
      {
        KeReleaseInStackQueuedSpinLockFromDpcLevel((_KLOCK_QUEUE_HANDLE *)LockHandle);
        _InterlockedAnd64((volatile signed __int64 *)v8 + 3, 0x7FFFFFFFFFFFFFFFui64);
        __writecr8(v10);
      }
    }
  }
}

Referenced by:

MiModifiedPageWriter
MiPageFileNoFreeSpace