A disassembler is a computer program that translates machine language into assembly languageāthe inverse operation to that of an assembler. The output of disassembly is typically formatted for human-readability rather than for input to an assembler, making disassemblers primarily a reverse-engineering tool. Common uses include analyzing the output of high-level programming language compilers and their optimizations, recovering source code when the original is lost, performing malware analysis, modifying software, and software cracking.

https://github.com/wtetzner/waterbear
Assembler/Disassembler for the Dreamcast VMU