@@ -646,6 +646,7 @@ static size_t GetInstructionSize(uptr address, size_t* rel_offset = nullptr) {
646646 case 0xC033 : // 33 C0 : xor eax, eax
647647 case 0xC933 : // 33 C9 : xor ecx, ecx
648648 case 0xD233 : // 33 D2 : xor edx, edx
649+ case 0xff33 : // 33 FF : xor edi, edi
649650 case 0x9066 : // 66 90 : xchg %ax,%ax (Two-byte NOP)
650651 case 0xDB84 : // 84 DB : test bl,bl
651652 case 0xC084 : // 84 C0 : test al,al
@@ -764,6 +765,7 @@ static size_t GetInstructionSize(uptr address, size_t* rel_offset = nullptr) {
764765
765766 switch (0x00FFFFFF & *(u32 *)address) {
766767 case 0x10b70f : // 0f b7 10 : movzx edx, WORD PTR [rax]
768+ case 0x02b70f : // 0f b7 02 : movzx edx, WORD PTR [rdx]
767769 case 0xc00b4d : // 4d 0b c0 : or r8, r8
768770 case 0xc03345 : // 45 33 c0 : xor r8d, r8d
769771 case 0xc08548 : // 48 85 c0 : test rax, rax
@@ -802,6 +804,7 @@ static size_t GetInstructionSize(uptr address, size_t* rel_offset = nullptr) {
802804 case 0xca2b48 : // 48 2b ca : sub rcx, rdx
803805 case 0xca3b48 : // 48 3b ca : cmp rcx, rdx
804806 case 0xd12b48 : // 48 2b d1 : sub rdx, rcx
807+ case 0xc22b4c : // 4c 2b c2 : sub r8, rdx
805808 case 0xd18b48 : // 48 8b d1 : mov rdx, rcx
806809 case 0xd18b4c : // 4c 8b d1 : mov r10, rcx
807810 case 0xd28548 : // 48 85 d2 : test rdx, rdx
@@ -813,6 +816,7 @@ static size_t GetInstructionSize(uptr address, size_t* rel_offset = nullptr) {
813816 case 0xd9f748 : // 48 f7 d9 : neg rcx
814817 case 0xc03145 : // 45 31 c0 : xor r8d,r8d
815818 case 0xc93145 : // 45 31 c9 : xor r9d,r9d
819+ case 0xd23345 : // 45 33 d2 : xor r10d,r10d
816820 case 0xdb3345 : // 45 33 db : xor r11d, r11d
817821 case 0xc08445 : // 45 84 c0 : test r8b,r8b
818822 case 0xd28445 : // 45 84 d2 : test r10b,r10b
0 commit comments