ScratchABlock icon indicating copy to clipboard operation
ScratchABlock copied to clipboard

Yet another crippled decompiler project

Results 15 ScratchABlock issues
Sort by recently updated
recently updated
newest added

The root dir of the project is quite crowded already. Add to that thoughts of how to allow to reuse ScratchABlock in other projects, and it call to move all...

So, I pushed initial support for conversion to SSA, e.g. tests: https://github.com/pfalcon/ScratchABlock/commit/72a047e4c10aea2f6b5a2782a38cb57a2737ef0e . To remind, I wanted to postpone introduction of SSA, to not fall into common trap when people...

This issue is to discuss ideas on changes to PseudoC syntax - mostly to implementation aspects in ScratchABlock, but maybe general PseudoC matters too.

Reference: https://academic.oup.com/comjnl/article-pdf/20/1/45/975771/200045.pdf Abnormal selection pattern is an `if`/`if-else` pattern, where branch(es) are not dominated by the pattern header. In other words, it's an if/if-else, where something else jumps directly into...

The problem is that it contains 2 different kinds of classes: * "Atomic"/"Simple", e.g. REG, ADDR * "Complex"/"Recursive", e.g. EXPR, Inst Simple types are oftentimes imported by other modules. And...

SAB fails to decompile the following real-world code: ``` sub_201100: $cr0.eq = (i32)$r4 == 0 $cr0.lt = (i32)$r4 < 0 $cr0.gt = (i32)$r4 > 0 $r11 = 0 if ($cr0.eq)...

[Induction variables](https://en.wikipedia.org/wiki/Induction_variable) are widely emitted by compilers during program optimization. They greatly assist in [strength reduction](https://en.wikipedia.org/wiki/Strength_reduction). Consider the following code: ```C int arrayOfInts[10] = [1, 2, 3, 4, 5, 6,...

Hello Paul, can you tell me off the top of your head how ScratchABlock deals with function calls? Especially, where arguments and return value are expected to be specified. The...

Hello Paul, I recently picked up another real-world code snippet that makes use of the `switch` control operator. [You'll find its Pseudo-C code here.](https://github.com/pfalcon/ScratchABlock/files/1602246/sub_20486c.txt) Recovering switch statements is another big...

The most obvious one: 1. Complex expressions should not be propagated to multiple places, as that makes the code more complex.