A bad UTF-8 decoder
(let ((in-byte (read-byte s nil nil)))
(cond
((null in-byte) :eof)
((eq #b11100000 (logand #b11110000 in-byte))
(let* ((in-byte2 (read-byte s nil nil))
(in-byte3 (read-byte s nil nil)))
(code-char (logior (ash (logand #b00011111 in-byte) 12)
(ash (logand #b00111111 in-byte2) 6)
(logand #b00111111 in-byte3)))))
((eq #b11000000 (logand #b11100000 in-byte))
(let* ((in-byte2 (read-byte s nil nil)))
(code-char (logior (ash (logand #b00011111 in-byte) 6)
(logand #b00111111 in-byte2)))))
(t (code-char in-byte))))