yegord / snowman

Snowman decompiler

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FPU instructions support

ivan-ushakov opened this issue · comments

commented

Looks like currently Snowman doesn't support FPU instructions:

.text:0054C430                 mov     eax, [esp+arg_0]
.text:0054C434                 fld     dword ptr [eax+68h]
.text:0054C437                 push    esi
.text:0054C438                 fsub    ds:flt_5A21A4
.text:0054C43E                 mov     esi, [ecx+0CCh]
.text:0054C444                 push    edi
.text:0054C445                 fstp    dword ptr [ecx+0DCh]
.text:0054C44B                 fld     dword ptr [eax+70h]
.text:0054C44E                 fadd    ds:flt_5A21A4
.text:0054C454                 fstp    dword ptr [ecx+0E0h]
.text:0054C45A                 fld     dword ptr [eax+6Ch]
.text:0054C45D                 fsub    ds:flt_5A21A4
.text:0054C463                 fstp    dword ptr [ecx+0E4h]
.text:0054C469                 fld     dword ptr [eax+74h]
.text:0054C46C                 fadd    ds:flt_5A21A4
.text:0054C472                 fstp    dword ptr [ecx+0E8h]
.text:0054C478                 fld     dword ptr [eax+88h]
.text:0054C47E                 fsub    ds:flt_5A21A4
.text:0054C484                 fstp    dword ptr [ecx+0ECh]
.text:0054C48A                 fld     dword ptr [eax+8Ch]
.text:0054C490                 fadd    ds:flt_5A21A4
.text:0054C496                 fstp    dword ptr [ecx+0F0h]

__asm__("fld dword [eax+0x68]");
__asm__("fsub dword [0x5a21a4]");
esi3 = ecx->0xcc;
__asm__("fstp dword [ecx+0xdc]");
__asm__("fld dword [eax+0x70]");
__asm__("fadd dword [0x5a21a4]");
__asm__("fstp dword [ecx+0xe0]");
__asm__("fld dword [eax+0x6c]");
__asm__("fsub dword [0x5a21a4]");
__asm__("fstp dword [ecx+0xe4]");
__asm__("fld dword [eax+0x74]");
__asm__("fadd dword [0x5a21a4]");
__asm__("fstp dword [ecx+0xe8]");
__asm__("fld dword [eax+0x88]");
__asm__("fsub dword [0x5a21a4]");
__asm__("fstp dword [ecx+0xec]");
__asm__("fld dword [eax+0x8c]");
__asm__("fadd dword [0x5a21a4]");
__asm__("fstp dword [ecx+0xf0]");

Any chance to have this feature in future versions?

Close to zero. Somebody has to sit down and get the semantics of instructions implemented. Not me at this moment.