MiMarkPfnVerified

CHAR __fastcall MiMarkPfnVerified(UINT64 a1, CHAR dl0){
  WCHAR *v2; 
  unsigned int v3; 
  signed __int64 v5; 
  __int64 v6; 
  unsigned __int8 v7; 
  int v8; 
  char v9; 
  int v10; 
  __int16 v11; 
  CHAR result; 
  __int128 a2; 
  v3 = dl0;
  a2 = 0i64;
  v5 = a1 - (_QWORD)MmGetPfnDb();
  v6 = v5 / 48;
  if( (dl0 & 4) != 0 )
    v7 = 17;
  else
    v7 = MiLockPageInline(a1);
  if( (v3 & 2) != 0 && ((*(_QWORD *)(a1 + 40) >> 60) & 7) == 3 )
    v3 &= ~2u;
  if( (v3 & 2) != 0 && (MiFlags & 0x10000) != 0 )
  {
    LOBYTE(v8) = MI_PFN_IS_PROTO((UNICODE_STRING *)a1, (UNICODE_STRING *)v3, v5, v2);
    if( !v8 && (MiFlags & 0x8000) != 0 )
      *(_QWORD *)&a2 = (__int64)((*(_QWORD *)(a1 + 8) << 25) - ((_QWORD)MmGetPteBase() << 25)) >> 16;
    v10 = v3 & 1;
    LOBYTE(v3) = v9 & 0xFE;
    if( !v10 )
      LOBYTE(v3) = v9;
    v11 = 4 * v10 + 2;
    if( (v3 & 0x20) != 0 )
    {
      v11 |= 0x40u;
      if( (*(_BYTE *)(a1 + 34) & 0x10) == 0 && (*(_DWORD *)(a1 + 16) & 4) == 0 )
        v11 |= 0x800u;
    }
    if( KeSetPagePrivilege(v6, &a2, v11) < 0 )
      KeBugCheckEx(0x1Au, 0x5150Cui64, v6, 0i64, 0i64);
  }
  result = (*(_QWORD *)(a1 + 40) >> 60) & 7;
  if( result != 3 )
  {
    result = 0;
    *(_QWORD *)(a1 + 40) = *(_QWORD *)(a1 + 40) & 0x8FFFFFFFFFFFFFFFui64 | 0x3000000000000000i64;
  }
  if( (v3 & 1) != 0 && (MiFlags & 0x10000) != 0 )
  {
    MiGetPagePrivilege(a1, 1, (unsigned __int64 *)&a2);
    result = KeSetPagePrivilege(v6, &a2, 4);
  }
  if( v7 != 17 )
  {
    _InterlockedAnd64((volatile signed __int64 *)(a1 + 24), 0x7FFFFFFFFFFFFFFFui64);
    result = v7;
    __writecr8(v7);
  }
  return result;
}

Referenced by:

MiAllocateWsle
MiCopyPage
MiFillPerSessionProtos
MiGatherMappedPages
MiInitializeBootLoadedDriverPfns
MiRevertValidPte
MiSetSystemCodeProtection
MiSwitchToPfns
MiValidateImagePfn
MiValidateInPage
MiValidateKernelHalLargePageRange