A self-contained decompiler for Motorola M·CORE architecture, packaged as an IDA Pro 9.4+ plugin. It lifts the disassembly produced by IDA's built-in M-CORE processor into its own intermediate representation, optimizes and structures it, and emits readable C pseudocode with recovered local variables and arguments. The decompiler is bound to the F5 key inside any M-CORE (old and new) databases.
Hex-Rays does not provide a decompiler backend for M-CORE, so there is no microcode target to plug into. This project takes an alternative route: a small, independent decompilation pipeline (IR + optimizer + control-flow + structuring + C emitter) with no dependency on Hex-Rays decompiler APIs. Arguments, structured if statements, and struct-field accesses can still be recovered.
You can find ready-to-install libraries on the GitHub Actions page:
https://github.com/MotoFanRu/IDA_Decompiler_M-CORE/actions
git clone https://github.com/MotoFanRu/IDA_Decompiler_M-CORE --depth=1 -b master
git submodule update --init --recursive --depth=1
cd IDA_Decompiler_M-CORE
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
# -> build/mcore_decompiler.dll
# -> build/mcore_decompiler.so
# -> build/mcore_decompiler.dylibPlace mcore_decompiler.{dll,so,dylib} file into the plugins directory of your root IDA Pro installation.
Select a function and press F5 to decompile it.
