Две распространенные ошибки, которые можно сделать здесь Прежде всего, приведите к unsigned char*
вместо char *. Далее, и самый важный, Project + Properties, Linker, General и отключите инкрементное связывание.
Если включено инкрементное связывание, адрес функции фактически указывает на небольшую заглушку, которая не содержит ничего, кроме JMP для реальной функции. Что позволяет компоновщику заменить старый код новым кодом без необходимости перестраивать весь исполняемый образ. Ваш код читает эту заглушку вместо реальной функции, когда включено инкрементное связывание. Правильный вывод:
Reading dummy...
90 90 90 90 C3 //... rest is random