Describe the bug
The decompiler fails to analyze correctly code that is making use of the x87 FPU subset of instructions.
To Reproduce
Import the binary attached(it is a standard PE), several mistakes can be seen at the following adresses:
if ((((bullet->state != 0) && (bullet->state != 5)) &&
(bullet->sprites[0].additional_infos != (something_56_bytes *)0x0)) &&
((!in_PF && (!in_PF)))) {
while the correct output should be something more along the lines of
if bullet->state != 0 && bullet->state != 5 && (bullet->sprites[0].additional_infos) != 0x0 && (30. <= (bullet->sprites[0].additional_infos)->height) && bullet->speed == 0. {
Expected behavior
The decompiler analyzing correctly the file
Attachments
binary.txt
Environment (please complete the following information):
The first issue is resolved now in the master branch with the addition of full support for the x86 parity flag. The fsincos problem is a different issue with the detection of stack aliases but is also resolved in master; thanks for reporting it. Fixes should be present in the 9.2 release.
Most helpful comment
The first issue is resolved now in the master branch with the addition of full support for the x86 parity flag. The fsincos problem is a different issue with the detection of stack aliases but is also resolved in master; thanks for reporting it. Fixes should be present in the 9.2 release.