MmIsAddressValidEx

BOOL __fastcall MmIsAddressValidEx(INT64 a1){
  _MMPTE *PteLimit; 
  _MMPTE *PteBase; 
  _MMPTE *Pml4eBase; 
  __int64 v5; 
  unsigned int PxeUserLimit; 
  _MMPTE *v7; 
  __int64 v8; 
  __int64 v10; 
  unsigned __int64 v11; 
  unsigned __int64 v12; 
  unsigned __int64 v13; 
  __int64 v14; 
  PteLimit = (_MMPTE *)((a1 >> 47) + 1);
  if( a1 >> 47 == -1 || PteLimit == (_MMPTE *)1 )
  {
    PteBase = MmGetPteBase();
    v11 = (unsigned __int64)PteBase + (((unsigned __int64)a1 >> 9) & 0x7FFFFFFFF8i64);
    v12 = (unsigned __int64)PteBase + ((v11 >> 9) & 0x7FFFFFFFF8i64);
    v13 = (unsigned __int64)PteBase + ((v12 >> 9) & 0x7FFFFFFFF8i64);
    Pml4eBase = MmGetPml4eBase();
    v14 = (__int64)PteBase + ((v13 >> 9) & 0x7FFFFFFFF8i64);
    v5 = 4i64;
    PxeUserLimit = (unsigned int)MmGetPxeUserLimit();
    while( 1 )
    {
      v7 = (_MMPTE *)*(&v10 + v5--);
      v8 = *(_QWORD *)v7;
      LODWORD(PteLimit) = (_DWORD)Pml4eBase;
      if( v7 >= Pml4eBase )
        LODWORD(PteLimit) = PxeUserLimit;
      if( (v8 & 1) == 0 )
        break;
      if( (v8 & 0x80u) != 0i64 )
      {
        LODWORD(PteLimit) = (_DWORD)PteBase;
        if( a1 < (unsigned __int64)PteBase || (PteLimit = MmGetPteLimit(), a1 > (unsigned __int64)PteLimit) )
        {
LABEL_8:
          LOBYTE(PteLimit) = 1;
          return(int)PteLimit;
        }
        break;
      }
      if( !v5 )
        goto LABEL_8;
    }
  }
  LOBYTE(PteLimit) = 0;
  return(int)PteLimit;
}

Referenced by:

EtwpIsValidImageAddress
IoFreeDumpRange
IoSetDumpRange
IopGetMaxValidMemorySize
IopGetMaxValidMemorySizeDown
IopGetMaxValidSectionSize
IopGetMaxValidSectionSizeDown
KeValidateBugCheckCallbackRecord
KiDumpParameterImages
KiIsAddressRangeValid
KiPcToFileHeader
KiScanBugCheckCallbackList
KiValidateComponentName
MiAddUnicodeStringToCrashDump
MiCommitExistingVad
MiDbgCopyMemory
MiDbgWriteCheck
MiFreedUnusedPfnPagesWorker
MiInPagePageTable
MiIncreaseUsedPtesCount
MiKernelWriteToExecutableMemory
MiMakeSystemAddressValid
MiSetProtectionOnSection
MiWaitForInPageComplete
MmIsAddressValid
MmIsSpecialPoolAddress
RtlMarkHiberPhase
ViFreeTrackedPool