r2dec-js
r2dec-js copied to clipboard
Missing instructions for x86
- [ ]
__asm (bt ecx, eax);
- [x]
__asm (pxor xmm0, xmm0);
- [ ]
__asm (movdqu xmm0, xmmword [r14]);
- [ ]
__asm (movdqa xmmword [r13 + 0x110], xmm0);
- [ ]
__asm (movdqa xmmword [rbx], xmm0);
- [ ]
__asm (aeskeygenassist xmm1, xmm0, 1);
- [ ]
__asm (pshufd xmm0, xmm0, 0xff);
- [ ]
__asm (pslldq xmm1, 4);
- [ ]
__asm (punpcklqdq xmm1, xmm0);
- [ ]
__asm (palignr xmm3, xmm0, 8);
- [x]
__asm (imul eax, ebx, imm8)
- [x]
__asm ("fld qword [local_8h]");
- [x]
__asm ("fmul qword [0x0047f570]");
- [x]
__asm ("fstp qword [local_10h]");
also __asm(imul eax, ebx, imm8)
@elicn can you check the imul
? @rfc2119 can you provide an example?
imul
is fixed, thanks!
https://asciinema.org/a/tioh1c9gJk7FCjNE9dPpaDLaI
ok
- [ ] Also missing instructions to work with FPU register stack. Like this:
__asm ("fld qword [local_8h]");
__asm ("fmul qword [0x0047f570]");
__asm ("fstp qword [local_10h]");
added to the list above, thanks
@wargio pxor
was already implemented in fb71f5854942123a5fd256b75c5d76e355c61f0d. See here
I checked all the PE from r2r and the MachO from /bin/* and here are the missing one's
- [ ] __asm ("adc al, al");
- [ ] __asm ("addsd xmm1, xmm0");
- [ ] __asm ("andnps xmm0, xmm1");
- [ ] __asm ("arpl word [ebp + 0x2d], sp");
- [ ] __asm ("bts rcx, 0x2a");
- [ ] __asm ("cli");
- [ ] __asm ("cmovns r14d, r13d");
- [ ] __asm ("cvtsi2sd xmm0, qword [rbx]");
- [ ] __asm ("enter 0, 0");
- [ ] __asm ("fadd st(1)");
- [ ] __asm ("fcomip st(1)");
- [ ] __asm ("ficom word [eax]");
- [ ] __asm ("fild dword [0x40070]");
- [ ] __asm ("fld1");
- [ ] __asm ("fldz");
- [ ] __asm ("fninit");
- [ ] __asm ("fst qword [eax]");
- [ ] __asm ("fsubp st(3)");
- [ ] __asm ("fxch st(1)");
- [ ] __asm ("insb byte es:[edi], dx");
- [ ] __asm ("insw word es:[di], dx");
- [ ] __asm ("int3");
- [ ] __asm ("into");
- [ ] __asm ("jcxz 0x22b");
- [ ] __asm ("jo 0x10001102");
- [ ] __asm ("jrcxz 0x4010c4");
- [ ] __asm ("les eax, [ebx + eax*8]");
- [ ] __asm ("lock adc byte [eax], al");
- [ ] __asm ("loop 0x222");
- [ ] __asm ("loopne 0x100010de");
- [ ] __asm ("movaps xmmword [var_10h], xmm7");
- [ ] __asm ("movups xmm0, xmmword [r13 + rax*8 + 0x700]");
- [ ] __asm ("mulsd xmm1, qword [0x100003228]");
- [ ] __asm ("outsb dx, byte [esi]");
- [ ] __asm ("outsd dx, dword [esi]");
- [ ] __asm ("outsw dx, word [si]");
- [ ] __asm ("pextrq rax, xmm0, 1");
- [ ] __asm ("popal");
- [ ] __asm ("psrldq xmm0, 8");
- [ ] __asm ("rcl bx, 1");
- [ ] __asm ("rdmsr");
- [ ] __asm ("retf");
- [ ] __asm ("sti");
- [ ] __asm ("xorps xmm0, xmm0");