I have two IntPtr values pointing to some data areas of length bytes. length may have an order of magnitude of 200k to 400k.
I think the answer needs an update in .net 4.6 there is
Buffer.MemoryCopy Method (Void*, Void*, Int64, Int64)
This method copies sourceBytesToCopy bytes from the address specified by source to the address specified by destination. If the buffers overlap and the difference between destination minus source is less than sourceBytesToCopy, the source block is copied to the destination block in reverse order.
So if you not on 4.6 or universal windows app 10 then use the previous answer.