pureMD5 rolled version (MD5.Rolled) is around just for historical purposes, but if you want a real challange then try to make a compiler that will compile the rolled version to run as fast as the unrolled version.