1------- Copy 17 bytes from BUFFER to TARGET 2before: buffer = |0123456789abcdefXXXXX| 3before: target = |---------------------| 4after: buffer = |0123456789abcdefXXXXX| 5after: target = |0123456789abcdefX----| 6 7------- Destructive overlap #1 8before: |012345678901234567890| 9after: |000000000000000000890| 10------- Destructive overlap #2 11before: target = |---------------------| 12after: target = |-xxx-----------------| 13------- Destructive overlap #3 (max length) 14 15------- Non-destructive overlap buf[0:4] = buf[10:14] 16before: buf = |0123456789abcde| 17after: buf = |abcde56789abcde| 18