> McSema is an executable lifter. It translates ("lifts") executable binaries from native machine code to LLVM bitcode.
—
1. https://en.wikipedia.org/wiki/Executor_(software) "Executor translates 68k big-endian binary code into x86 little-endian binary code."
Translated bitcode can be analyzed or recompiled as a new, working executable with functionality identical to the original.
One of my personal annoyances is the invention of new terminology when there are perfectly fitting existing words which are precise and unambiguous. That's basically a decompiler.
That said, decompiler is pretty ambiguous. Do you target a readable output? A retargetable output? An executable (and functionally equivalent) output? An analyzable output? Are you going to try to preserve undocumented but reliable behavior, or are you going to permit the output to vary in undefined behavior? Do you guarantee that a single function can be recompiled and substituted in the original binary? There are going to be cases where your implementation is going to have to vary based on what your output is.