IopMarkPagesForRunTimeTriageDataBlocks

__int64 __fastcall IopMarkPagesForRunTimeTriageDataBlocks(
        __int64 (__fastcall **a1)(_QWORD, __int64, __int64),
        __int64 a2,
        unsigned __int64 a3,
        unsigned __int64 a4){
  __int64 MaxValidMemorySizeDown; 
  int MaxValidMemorySize; 
  __int64 result; 
  unsigned int v11; 
  char *v12; 
  unsigned __int16 v13; 
  unsigned __int64 v14; 
  MaxValidMemorySizeDown = (unsigned int)IopGetMaxValidMemorySizeDown(*(PVOID *)(a2 + 248));
  MaxValidMemorySize = IopGetMaxValidMemorySize(*(PVOID *)(a2 + 248), 0x100ui64);
  result = MmAddRangeToCrashDump(
             a1,
             *(_QWORD *)(a2 + 248) - MaxValidMemorySizeDown,
             (unsigned int)(MaxValidMemorySize + MaxValidMemorySizeDown));
  v11 = result;
  if( (int)result >= 0 )
  {
    v12 = &IopRunTimeContextOffsets;
    v13 = 144;
    while( 1 )
    {
      v14 = *(_QWORD *)(v13 + a2);
      if( v14 < a3 || v14 >= a4 )
      {
        result = MmAddRangeToCrashDump(a1, v14 & 0xFFFFFFFFFFFFF000ui64, 4096i64);
        v11 = result;
        if( (int)result < 0 )
          break;
      }
      v12 += 2;
      v13 = *(_WORD *)v12;
      if( *(_WORD *)v12 == 0xFFFF )
        return v11;
    }
  }
  return result;
}

Referenced by:

IopAddMiniDumpPagesToPartialKernelDump