mirror of
https://github.com/bitdefender/bddisasm.git
synced 2024-12-01 20:08:09 +00:00
752bc626c4
Fixed VEX decoding in 32 bit mode - vex.vvvv bit 3 is simply ignored. Fixed several FMA instructions decoding (L/W flag should be ignored). Print the 64 bit immediate value in disassembly, instead of the raw immediate (note that the operand always contains the sign-extended, full immediate). XBEGIN always uses 32/64 bit RIP size (0x66 does not affect its size). Decode WBINVD even if it's preceded by 0x66/0xF2 prefixes. Several mnemonic fixes (FXSAVE64, FXRSTOR64, PUSHA/PUSHAD...). Properly decode VPERMIL2* instructions. Fixed SSE register decoding when it is encoded in immediate. Decode SCATTER instructions even though they use the VSIB index as source. Some disp8 fixes (t1s -> t1s8/t1s16). SYSCALL/SYSRET are decoded and executed in 32 bit compat modem, even though SDM states they are invalid. RDPID uses 32/64 bit reg size, never 16. Various other minor tweaks & fixes. Re-generated the test files, and added some more, new tests.
170 lines
15 KiB
Plaintext
170 lines
15 KiB
Plaintext
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000000000 RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200000 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200000 LEA rsi, [rel 0x20005f]
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x000000000020005f RDI = 0x0000000000000000
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200007 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200007 LEA rdi, [rel 0x20007f]
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x000000000020005f RDI = 0x000000000020007f
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x000000000020000e RFLAGS = 0x0000000000000202
|
|
Emulating: 0x000000000020000e MOVSB
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000200060 RDI = 0x0000000000200080
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x000000000020000f RFLAGS = 0x0000000000000202
|
|
Emulating: 0x000000000020000f MOVSB
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000200061 RDI = 0x0000000000200081
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200010 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200010 MOVSB
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000200062 RDI = 0x0000000000200082
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200011 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200011 MOVSB
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000200063 RDI = 0x0000000000200083
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200012 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200012 MOVSD
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000200067 RDI = 0x0000000000200087
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200013 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200013 SUB rsi, 0x0000000000000008
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x000000000020005f RDI = 0x0000000000200087
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200017 RFLAGS = 0x0000000000000206
|
|
Emulating: 0x0000000000200017 SUB rdi, 0x0000000000000008
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x000000000020005f RDI = 0x000000000020007f
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x000000000020001b RFLAGS = 0x0000000000000202
|
|
Emulating: 0x000000000020001b MOV ecx, 0x00000004
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000004 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x000000000020005f RDI = 0x000000000020007f
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200020 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200020 REP MOVSQ
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x000000000020007f RDI = 0x000000000020009f
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200023 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200023 LEA rsi, [rel 0x20005f]
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x000000000020005f RDI = 0x000000000020009f
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x000000000020002a RFLAGS = 0x0000000000000202
|
|
Emulating: 0x000000000020002a LEA rdi, [rel 0x20007f]
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x000000000020005f RDI = 0x000000000020007f
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200031 RFLAGS = 0x0000000000000202
|
|
Emulating: 0x0000000000200031 XOR ecx, ecx
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x000000000020005f RDI = 0x000000000020007f
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200033 RFLAGS = 0x0000000000000246
|
|
Emulating: 0x0000000000200033 REPZ CMPSB
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x000000000020005f RDI = 0x000000000020007f
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200035 RFLAGS = 0x0000000000000246
|
|
Emulating: 0x0000000000200035 MOV ecx, 0x00000004
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000004 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x000000000020005f RDI = 0x000000000020007f
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x000000000020003a RFLAGS = 0x0000000000000246
|
|
Emulating: 0x000000000020003a REPZ CMPSB
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000000 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000200063 RDI = 0x0000000000200083
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x000000000020003c RFLAGS = 0x0000000000000246
|
|
Emulating: 0x000000000020003c MOV ecx, 0x00000004
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000004 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000200063 RDI = 0x0000000000200083
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200041 RFLAGS = 0x0000000000000246
|
|
Emulating: 0x0000000000200041 XOR al, al
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000004 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000200063 RDI = 0x0000000000200083
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200043 RFLAGS = 0x0000000000000246
|
|
Emulating: 0x0000000000200043 REPNZ SCASB
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000003 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000200063 RDI = 0x0000000000200084
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200045 RFLAGS = 0x0000000000000246
|
|
Emulating: 0x0000000000200045 LEA rdi, [rel 0x20009f]
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000003 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000200063 RDI = 0x000000000020009f
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x000000000020004c RFLAGS = 0x0000000000000246
|
|
Emulating: 0x000000000020004c MOV ecx, 0x00000100
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000100 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000200063 RDI = 0x000000000020009f
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200051 RFLAGS = 0x0000000000000246
|
|
Emulating: 0x0000000000200051 XOR al, al
|
|
RAX = 0x0000000000000000 RCX = 0x0000000000000100 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000200063 RDI = 0x000000000020009f
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200053 RFLAGS = 0x0000000000000246
|
|
Emulating: 0x0000000000200053 REPNZ SCASB
|
|
RAX = 0x0000000000000000 RCX = 0x00000000000000f3 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000200063 RDI = 0x00000000002000ac
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x0000000000200055 RFLAGS = 0x0000000000000246
|
|
Emulating: 0x0000000000200055 MOV eax, 0x00000100
|
|
RAX = 0x0000000000000100 RCX = 0x00000000000000f3 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000200063 RDI = 0x00000000002000ac
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x000000000020005a RFLAGS = 0x0000000000000246
|
|
Emulating: 0x000000000020005a SUB eax, ecx
|
|
RAX = 0x000000000000000d RCX = 0x00000000000000f3 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000200063 RDI = 0x00000000002000ac
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x000000000020005c RFLAGS = 0x0000000000000202
|
|
Emulating: 0x000000000020005c DEC eax
|
|
RAX = 0x000000000000000c RCX = 0x00000000000000f3 RDX = 0x0000000000000000 RBX = 0x0000000000000000
|
|
RSP = 0x0000000000101000 RBP = 0x0000000000000000 RSI = 0x0000000000200063 RDI = 0x00000000002000ac
|
|
R8 = 0x0000000000000000 R9 = 0x0000000000000000 R10 = 0x0000000000000000 R11 = 0x0000000000000000
|
|
R12 = 0x0000000000000000 R13 = 0x0000000000000000 R14 = 0x0000000000000000 R15 = 0x0000000000000000
|
|
RIP = 0x000000000020005e RFLAGS = 0x0000000000000206
|
|
Emulating: 0x000000000020005e RETN
|
|
Emulation terminated with status 0x00000002, flags: 0x0, 0 NOPs
|