MmDbgCopyMemory

NTSTATUS __stdcall MmDbgCopyMemory(
        UINT64 UntrustedAddress,
        VOID *Buffer,
        UINT64 NumberOfBytes,
        UINT64 ChunkSize,
        UINT64 Flags){
  unsigned int v5; 
  unsigned int v6; 
  NTSTATUS result; 
  unsigned int v10; 
  UINT64 v11; 

  v5 = ChunkSize;
  v6 = NumberOfBytes;
  if( (unsigned int)ChunkSize > 2 && (_DWORD)ChunkSize != 4 && (_DWORD)ChunkSize != 8 )
    return -2147483646;
  result = 0;
  if( (_DWORD)NumberOfBytes )
  {
    do
    {
      LODWORD(v11) = Flags;
      v10 = v6;
      if( 4096 - (UntrustedAddress & 0xFFF) <= v6 )
        v10 = 4096 - (UntrustedAddress & 0xFFF);
      result = MiDbgCopyMemory(UntrustedAddress, Buffer, v10, v5, v11);
      if( result < 0 )
        break;
      UntrustedAddress += v10;
      Buffer = (char *)Buffer + v10;
      v6 -= v10;
    }
    while( v6 );
  }
  return result;
}

Referenced by:

KdpCopyMemoryChunks
KdpReadPhysicalMemory
KdpSearchMemory
KdpSearchPhysicalPage
KiTpWriteMemory