Ваш код в порядке. Ваш тест неверен. Вы не конвертировали 6c20...
в двоичный файл. 2de3
- это CRC этой строки цифр и букв ASCII. Если вы конвертируете его в двоичный файл, вы получите eb3e
.
Хотя обратите внимание, что по каким-то причинам последние три строки вашей процедуры обращают байты в обратном порядке. Таким образом, вы получите 3eeb
.