Code obfuscation with a metamorphic engine