New answers tagged


You can give a try. I've heard it can decompile larger functions without much error. According to them it supports decompiling a whole binary file. So it possibly could decompile this function without much hesitation. Although I can't promise anything. Good luck! :-)


The answer of @igor says about algorithm failures of IDA. Beside, I think you can use a function which is not type-able in the type system of the decompilation target language of IDA (I believe it's a subset of C), e.g. int foo(void *f, int i) { return ((int (*)(void*, int))(f))(foo, i); } clang -c test.c then IDA decompilers gives something likes ...


You can check "graceful failures" for some common problems that can prevent decompilation and try to induce them deliberately. However, most of them can be worked around with a bit of effort so don’t expect them to stop a motivated person.


check if jump destination is a continuous area behind the function, if true, alt+p, adjust function range. if not, first undefine target area, then use IDA-built-in function "append_func_tail" to add that chunk to owner function. here is the IDA-reference doc link one jump out done. if there is too many, then write a script to automate it.

Top 50 recent answers are included