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