My implementation doesn't check to ensure the src and destination haven't overlapped.  This is a problem, say, if your source data starts with a lone 0x9B.