disassembler (assembler + dis-; negation)
A computer program that examines another computer program and attempts to generate assembly language source code that would, in theory, reproduce the target program