IopGetMaxValidMemorySize

UINT64 __stdcall IopGetMaxValidMemorySize(PVOID Base, UINT64 MaxSize){
  int v2; 
  unsigned int v3; 
  unsigned __int64 v4; 
  unsigned int v5; 
  v2 = 4096 - ((unsigned __int16)Base & 0xFFF);
  v3 = 0;
  v4 = (unsigned __int64)Base & 0xFFFFFFFFFFFFF000ui64;
  v5 = MaxSize;
  if( !(_DWORD)MaxSize )
    return v5;
  do
  {
    if( !MmIsAddressValidEx(v4) )
      break;
    v3 += v2;
    v4 += 4096i64;
    if( !v4 )
      break;
    v2 = 4096;
  }
  while( v3 < v5 );
  if( v3 >= v5 )
    return v5;
  return v3;
}

Referenced by:

IoFillTriageDumpBuffer
IopAddBugcheckTriageThread
IopAddRunTimeTriageDataBlocks
IopCalculateStackInformation
IopMarkPagesForRunTimeTriageDataBlocks
IopUpdateMinidumpContext