MiUnmapLockedPagesInUserSpace

VOID __stdcall MiUnmapLockedPagesInUserSpace(VOID *BaseAddress, _MDL *MemoryDescriptorList){
  _EPROCESS *Process; 
  __int64 v5; 
  _MMVAD *v6; 
  __int64 v7; 
  VOID *v8; 
  _QWORD *OldestSecure; 
  VOID *v10; 
  _MI_DELETE_VA_INFO *DeleteInfo; 
  UINT8 WsIrql[16]; 
  __int128 v13; 
  __int128 v14; 
  INT64 v15; 

  Process = KeGetCurrentThread()->ApcState.Process;
  LODWORD(v5) = MiObtainReferencedVadEx((UINT64)BaseAddress, 1, &v15);
  v6 = (_MMVAD *)v5;
  if( v5 )
  {
    v7 = *(unsigned int *)(v5 + 24);
    v8 = (VOID *)((v7 | ((unsigned __int64)*(unsigned __int8 *)(v5 + 32) << 32)) << 12);
    if( (*(_DWORD *)(v5 + 48) & 0x70) != 16
      || (VOID *)((unsigned __int64)BaseAddress & 0xFFFFFFFFFFFFF000ui64) != v8
      || MemoryDescriptorList != (_MDL *)((*(unsigned int *)(v5 + 28) | ((unsigned __int64)*(unsigned __int8 *)(v5 + 33) << 32))
                                        - (v7 | ((unsigned __int64)*(unsigned __int8 *)(v5 + 32) << 32))
                                        + 1) )
    {
      goto LABEL_9;
    }
    OldestSecure = MiLocateOldestSecure(v5);
    if( !OldestSecure )
      KeBugCheckEx(0x1Au, (PVOID)0x1402, BaseAddress, v6, 0i64);
    MiRemoveSecureEntry(v6, OldestSecure);
    if( (v6->Core.u.LongFlags & 8) != 0 && (Process->Flags & 0x20) == 0 )
    {
      LOBYTE(DeleteInfo) = 0;
      if( MiCheckSecuredVad(
             &v6->Core,
             v8,
             ((v6->Core.EndingVpn | ((unsigned __int64)v6->Core.EndingVpnHigh << 32))
            - (v6->Core.StartingVpn | ((unsigned __int64)v6->Core.StartingVpnHigh << 32))
            + 1) << 12,
             0x55ui64) < 0 )
      {
        v10 = (VOID *)(((v6->Core.EndingVpn | ((unsigned __int64)v6->Core.EndingVpnHigh << 32)) << 12) | 0xFFF);
        *(_OWORD *)WsIrql = 0i64;
        v13 = 0i64;
        v14 = 0i64;
        MiDeleteVirtualAddresses(v8, v10, 0x40ui64, (UINT8)WsIrql, DeleteInfo);
LABEL_9:
        MiUnlockAndDereferenceVad(&v6->Core);
        return;
      }
    }
    MiDeleteVad(v6, 0i64);
  }
}

Referenced by:

MmUnlockPages
MmUnmapLockedPages