MiUpdatePfnPriority

NTSTATUS __stdcall MiUpdatePfnPriority(_MMPFN *Pfn1, UINT64 DesiredPriority, UINT64 AllowDecrease){
  char v3; 
  unsigned __int64 v4; 
  __int64 v5; 
  UINT8 *v6; 
  __int64 v7; 
  unsigned int v8; 
  unsigned int v9; 
  char v10; 
  char v11; 

  v3 = -1;
  LODWORD(v4) = MiGetPfnPriority(Pfn1);
  v9 = v4;
  if( v8 != (_DWORD)v4 )
  {
    v10 = 0;
    if( v8 >= (unsigned int)v4
      || (_DWORD)v6
      && ((unsigned int)v4 <= 5
       || (LOBYTE(v4) = MI_PFN_IS_PROTO(
                          (_UNICODE_STRING *)v5,
                          (_UNICODE_STRING *)(unsigned int)v4,
                          (UINT8)v6,
                          (PWCHAR)v7),
           !(_DWORD)v4)) )
    {
      v11 = *(_BYTE *)(v5 + 34) & 7;
      if( v11 == 2 )
      {
        if( v9
          || (*(_DWORD *)(v5 + 16) & 0x400i64) != 0
          || (LODWORD(v4) = MiIsPteInStore(
                              *(_MI_PARTITION **)(*(&stru_140C4DB30 + 267)
                                                + 8 * ((*(_QWORD *)(v5 + 40) >> 39) & 0x3FFi64)),
                              *(_MMPTE *)(v5 + 16)),
              !(_DWORD)v4) )
        {
          LODWORD(v4) = MiRelinkStandbyPage(v7, v8, v6);
        }
      }
      else if( v11 != 6 || (v4 = *(_QWORD *)(v5 + 24) & 0x3FFFFFFFFFFFFFFFi64, v4 <= 1) || v8 >= v9 )
      {
        *(_BYTE *)(v7 + 35) ^= (*(_BYTE *)(v7 + 35) ^ v8) & 7;
        if( v9 < 5 )
        {
          v3 = -1;
          if( v8 == 5 )
            v3 = v10;
        }
        else if( v8 < 5 )
        {
          v3 = 7;
        }
      }
    }
  }
  LOBYTE(v4) = v3;
  return v4;
}

Referenced by:

MiActOnPte
MiConvertPrivateToProto
MiDeprioritizeVirtualAddresses
MiPfPutPagesInTransition
MiResolveTransitionFault
MiUpdatePrefetchPriority
NtLockVirtualMemory