rewriting MD5 assembly to use macros