From 2ffca64bcd813fc08c8fb1dcba5587f70a1e2b8f Mon Sep 17 00:00:00 2001 From: flobernd Date: Mon, 18 May 2015 02:33:04 +0200 Subject: [PATCH] Added instruction mnemonic enum to the C-bindings --- Zydis/ZydisAPI.h | 918 ++++++++++++++++++++++++++++ Zydis/ZydisInstructionFormatter.cpp | 4 +- Zydis/ZydisInstructionFormatter.hpp | 4 +- Zydis/ZydisSymbolResolver.cpp | 4 +- 4 files changed, 924 insertions(+), 6 deletions(-) diff --git a/Zydis/ZydisAPI.h b/Zydis/ZydisAPI.h index 107ba5f..34209ce 100644 --- a/Zydis/ZydisAPI.h +++ b/Zydis/ZydisAPI.h @@ -701,6 +701,924 @@ ZYDIS_EXPORT bool ZydisExactSymbolResolverClear(const ZydisSymbolResolverContext ZYDIS_EXPORT bool ZydisFreeSymbolResolver(const ZydisSymbolResolverContext* resolver); +/* Opcode Table ================================================================================= */ + +/** + * @brief Values that represent an instruction mnemonic. + */ +typedef enum _ZydisInstructionMnemonic /* : uint16_t */ +{ + /* 000 */ ZYDIS_MNEM_INVALID, + /* 001 */ ZYDIS_MNEM_AAA, + /* 002 */ ZYDIS_MNEM_AAD, + /* 003 */ ZYDIS_MNEM_AAM, + /* 004 */ ZYDIS_MNEM_AAS, + /* 005 */ ZYDIS_MNEM_ADC, + /* 006 */ ZYDIS_MNEM_ADD, + /* 007 */ ZYDIS_MNEM_ADDPD, + /* 008 */ ZYDIS_MNEM_ADDPS, + /* 009 */ ZYDIS_MNEM_ADDSD, + /* 00A */ ZYDIS_MNEM_ADDSS, + /* 00B */ ZYDIS_MNEM_ADDSUBPD, + /* 00C */ ZYDIS_MNEM_ADDSUBPS, + /* 00D */ ZYDIS_MNEM_AESDEC, + /* 00E */ ZYDIS_MNEM_AESDECLAST, + /* 00F */ ZYDIS_MNEM_AESENC, + /* 010 */ ZYDIS_MNEM_AESENCLAST, + /* 011 */ ZYDIS_MNEM_AESIMC, + /* 012 */ ZYDIS_MNEM_AESKEYGENASSIST, + /* 013 */ ZYDIS_MNEM_AND, + /* 014 */ ZYDIS_MNEM_ANDNPD, + /* 015 */ ZYDIS_MNEM_ANDNPS, + /* 016 */ ZYDIS_MNEM_ANDPD, + /* 017 */ ZYDIS_MNEM_ANDPS, + /* 018 */ ZYDIS_MNEM_ARPL, + /* 019 */ ZYDIS_MNEM_BLENDPD, + /* 01A */ ZYDIS_MNEM_BLENDPS, + /* 01B */ ZYDIS_MNEM_BLENDVPD, + /* 01C */ ZYDIS_MNEM_BLENDVPS, + /* 01D */ ZYDIS_MNEM_BOUND, + /* 01E */ ZYDIS_MNEM_BSF, + /* 01F */ ZYDIS_MNEM_BSR, + /* 020 */ ZYDIS_MNEM_BSWAP, + /* 021 */ ZYDIS_MNEM_BT, + /* 022 */ ZYDIS_MNEM_BTC, + /* 023 */ ZYDIS_MNEM_BTR, + /* 024 */ ZYDIS_MNEM_BTS, + /* 025 */ ZYDIS_MNEM_CALL, + /* 026 */ ZYDIS_MNEM_CBW, + /* 027 */ ZYDIS_MNEM_CDQ, + /* 028 */ ZYDIS_MNEM_CDQE, + /* 029 */ ZYDIS_MNEM_CLC, + /* 02A */ ZYDIS_MNEM_CLD, + /* 02B */ ZYDIS_MNEM_CLFLUSH, + /* 02C */ ZYDIS_MNEM_CLGI, + /* 02D */ ZYDIS_MNEM_CLI, + /* 02E */ ZYDIS_MNEM_CLTS, + /* 02F */ ZYDIS_MNEM_CMC, + /* 030 */ ZYDIS_MNEM_CMOVA, + /* 031 */ ZYDIS_MNEM_CMOVAE, + /* 032 */ ZYDIS_MNEM_CMOVB, + /* 033 */ ZYDIS_MNEM_CMOVBE, + /* 034 */ ZYDIS_MNEM_CMOVE, + /* 035 */ ZYDIS_MNEM_CMOVG, + /* 036 */ ZYDIS_MNEM_CMOVGE, + /* 037 */ ZYDIS_MNEM_CMOVL, + /* 038 */ ZYDIS_MNEM_CMOVLE, + /* 039 */ ZYDIS_MNEM_CMOVNE, + /* 03A */ ZYDIS_MNEM_CMOVNO, + /* 03B */ ZYDIS_MNEM_CMOVNP, + /* 03C */ ZYDIS_MNEM_CMOVNS, + /* 03D */ ZYDIS_MNEM_CMOVO, + /* 03E */ ZYDIS_MNEM_CMOVP, + /* 03F */ ZYDIS_MNEM_CMOVS, + /* 040 */ ZYDIS_MNEM_CMP, + /* 041 */ ZYDIS_MNEM_CMPPD, + /* 042 */ ZYDIS_MNEM_CMPPS, + /* 043 */ ZYDIS_MNEM_CMPSB, + /* 044 */ ZYDIS_MNEM_CMPSD, + /* 045 */ ZYDIS_MNEM_CMPSQ, + /* 046 */ ZYDIS_MNEM_CMPSS, + /* 047 */ ZYDIS_MNEM_CMPSW, + /* 048 */ ZYDIS_MNEM_CMPXCHG, + /* 049 */ ZYDIS_MNEM_CMPXCHG16B, + /* 04A */ ZYDIS_MNEM_CMPXCHG8B, + /* 04B */ ZYDIS_MNEM_COMISD, + /* 04C */ ZYDIS_MNEM_COMISS, + /* 04D */ ZYDIS_MNEM_CPUID, + /* 04E */ ZYDIS_MNEM_CQO, + /* 04F */ ZYDIS_MNEM_CRC32, + /* 050 */ ZYDIS_MNEM_CVTDQ2PD, + /* 051 */ ZYDIS_MNEM_CVTDQ2PS, + /* 052 */ ZYDIS_MNEM_CVTPD2DQ, + /* 053 */ ZYDIS_MNEM_CVTPD2PI, + /* 054 */ ZYDIS_MNEM_CVTPD2PS, + /* 055 */ ZYDIS_MNEM_CVTPI2PD, + /* 056 */ ZYDIS_MNEM_CVTPI2PS, + /* 057 */ ZYDIS_MNEM_CVTPS2DQ, + /* 058 */ ZYDIS_MNEM_CVTPS2PD, + /* 059 */ ZYDIS_MNEM_CVTPS2PI, + /* 05A */ ZYDIS_MNEM_CVTSD2SI, + /* 05B */ ZYDIS_MNEM_CVTSD2SS, + /* 05C */ ZYDIS_MNEM_CVTSI2SD, + /* 05D */ ZYDIS_MNEM_CVTSI2SS, + /* 05E */ ZYDIS_MNEM_CVTSS2SD, + /* 05F */ ZYDIS_MNEM_CVTSS2SI, + /* 060 */ ZYDIS_MNEM_CVTTPD2DQ, + /* 061 */ ZYDIS_MNEM_CVTTPD2PI, + /* 062 */ ZYDIS_MNEM_CVTTPS2DQ, + /* 063 */ ZYDIS_MNEM_CVTTPS2PI, + /* 064 */ ZYDIS_MNEM_CVTTSD2SI, + /* 065 */ ZYDIS_MNEM_CVTTSS2SI, + /* 066 */ ZYDIS_MNEM_CWD, + /* 067 */ ZYDIS_MNEM_CWDE, + /* 068 */ ZYDIS_MNEM_DAA, + /* 069 */ ZYDIS_MNEM_DAS, + /* 06A */ ZYDIS_MNEM_DEC, + /* 06B */ ZYDIS_MNEM_DIV, + /* 06C */ ZYDIS_MNEM_DIVPD, + /* 06D */ ZYDIS_MNEM_DIVPS, + /* 06E */ ZYDIS_MNEM_DIVSD, + /* 06F */ ZYDIS_MNEM_DIVSS, + /* 070 */ ZYDIS_MNEM_DPPD, + /* 071 */ ZYDIS_MNEM_DPPS, + /* 072 */ ZYDIS_MNEM_EMMS, + /* 073 */ ZYDIS_MNEM_ENTER, + /* 074 */ ZYDIS_MNEM_EXTRACTPS, + /* 075 */ ZYDIS_MNEM_F2XM1, + /* 076 */ ZYDIS_MNEM_FABS, + /* 077 */ ZYDIS_MNEM_FADD, + /* 078 */ ZYDIS_MNEM_FADDP, + /* 079 */ ZYDIS_MNEM_FBLD, + /* 07A */ ZYDIS_MNEM_FBSTP, + /* 07B */ ZYDIS_MNEM_FCHS, + /* 07C */ ZYDIS_MNEM_FCLEX, + /* 07D */ ZYDIS_MNEM_FCMOVB, + /* 07E */ ZYDIS_MNEM_FCMOVBE, + /* 07F */ ZYDIS_MNEM_FCMOVE, + /* 080 */ ZYDIS_MNEM_FCMOVNB, + /* 081 */ ZYDIS_MNEM_FCMOVNBE, + /* 082 */ ZYDIS_MNEM_FCMOVNE, + /* 083 */ ZYDIS_MNEM_FCMOVNU, + /* 084 */ ZYDIS_MNEM_FCMOVU, + /* 085 */ ZYDIS_MNEM_FCOM, + /* 086 */ ZYDIS_MNEM_FCOM2, + /* 087 */ ZYDIS_MNEM_FCOMI, + /* 088 */ ZYDIS_MNEM_FCOMIP, + /* 089 */ ZYDIS_MNEM_FCOMP, + /* 08A */ ZYDIS_MNEM_FCOMP3, + /* 08B */ ZYDIS_MNEM_FCOMP5, + /* 08C */ ZYDIS_MNEM_FCOMPP, + /* 08D */ ZYDIS_MNEM_FCOS, + /* 08E */ ZYDIS_MNEM_FDECSTP, + /* 08F */ ZYDIS_MNEM_FDIV, + /* 090 */ ZYDIS_MNEM_FDIVP, + /* 091 */ ZYDIS_MNEM_FDIVR, + /* 092 */ ZYDIS_MNEM_FDIVRP, + /* 093 */ ZYDIS_MNEM_FEMMS, + /* 094 */ ZYDIS_MNEM_FFREE, + /* 095 */ ZYDIS_MNEM_FFREEP, + /* 096 */ ZYDIS_MNEM_FIADD, + /* 097 */ ZYDIS_MNEM_FICOM, + /* 098 */ ZYDIS_MNEM_FICOMP, + /* 099 */ ZYDIS_MNEM_FIDIV, + /* 09A */ ZYDIS_MNEM_FIDIVR, + /* 09B */ ZYDIS_MNEM_FILD, + /* 09C */ ZYDIS_MNEM_FIMUL, + /* 09D */ ZYDIS_MNEM_FINCSTP, + /* 09E */ ZYDIS_MNEM_FIST, + /* 09F */ ZYDIS_MNEM_FISTP, + /* 0A0 */ ZYDIS_MNEM_FISTTP, + /* 0A1 */ ZYDIS_MNEM_FISUB, + /* 0A2 */ ZYDIS_MNEM_FISUBR, + /* 0A3 */ ZYDIS_MNEM_FLD, + /* 0A4 */ ZYDIS_MNEM_FLD1, + /* 0A5 */ ZYDIS_MNEM_FLDCW, + /* 0A6 */ ZYDIS_MNEM_FLDENV, + /* 0A7 */ ZYDIS_MNEM_FLDL2E, + /* 0A8 */ ZYDIS_MNEM_FLDL2T, + /* 0A9 */ ZYDIS_MNEM_FLDLG2, + /* 0AA */ ZYDIS_MNEM_FLDLN2, + /* 0AB */ ZYDIS_MNEM_FLDPI, + /* 0AC */ ZYDIS_MNEM_FLDZ, + /* 0AD */ ZYDIS_MNEM_FMUL, + /* 0AE */ ZYDIS_MNEM_FMULP, + /* 0AF */ ZYDIS_MNEM_FNDISI, + /* 0B0 */ ZYDIS_MNEM_FNENI, + /* 0B1 */ ZYDIS_MNEM_FNINIT, + /* 0B2 */ ZYDIS_MNEM_FNOP, + /* 0B3 */ ZYDIS_MNEM_FNSAVE, + /* 0B4 */ ZYDIS_MNEM_FNSETPM, + /* 0B5 */ ZYDIS_MNEM_FNSTCW, + /* 0B6 */ ZYDIS_MNEM_FNSTENV, + /* 0B7 */ ZYDIS_MNEM_FNSTSW, + /* 0B8 */ ZYDIS_MNEM_FPATAN, + /* 0B9 */ ZYDIS_MNEM_FPREM, + /* 0BA */ ZYDIS_MNEM_FPREM1, + /* 0BB */ ZYDIS_MNEM_FPTAN, + /* 0BC */ ZYDIS_MNEM_FRNDINT, + /* 0BD */ ZYDIS_MNEM_FRSTOR, + /* 0BE */ ZYDIS_MNEM_FRSTPM, + /* 0BF */ ZYDIS_MNEM_FSCALE, + /* 0C0 */ ZYDIS_MNEM_FSIN, + /* 0C1 */ ZYDIS_MNEM_FSINCOS, + /* 0C2 */ ZYDIS_MNEM_FSQRT, + /* 0C3 */ ZYDIS_MNEM_FST, + /* 0C4 */ ZYDIS_MNEM_FSTP, + /* 0C5 */ ZYDIS_MNEM_FSTP1, + /* 0C6 */ ZYDIS_MNEM_FSTP8, + /* 0C7 */ ZYDIS_MNEM_FSTP9, + /* 0C8 */ ZYDIS_MNEM_FSUB, + /* 0C9 */ ZYDIS_MNEM_FSUBP, + /* 0CA */ ZYDIS_MNEM_FSUBR, + /* 0CB */ ZYDIS_MNEM_FSUBRP, + /* 0CC */ ZYDIS_MNEM_FTST, + /* 0CD */ ZYDIS_MNEM_FUCOM, + /* 0CE */ ZYDIS_MNEM_FUCOMI, + /* 0CF */ ZYDIS_MNEM_FUCOMIP, + /* 0D0 */ ZYDIS_MNEM_FUCOMP, + /* 0D1 */ ZYDIS_MNEM_FUCOMPP, + /* 0D2 */ ZYDIS_MNEM_FXAM, + /* 0D3 */ ZYDIS_MNEM_FXCH, + /* 0D4 */ ZYDIS_MNEM_FXCH4, + /* 0D5 */ ZYDIS_MNEM_FXCH7, + /* 0D6 */ ZYDIS_MNEM_FXRSTOR, + /* 0D7 */ ZYDIS_MNEM_FXSAVE, + /* 0D8 */ ZYDIS_MNEM_FXTRACT, + /* 0D9 */ ZYDIS_MNEM_FYL2X, + /* 0DA */ ZYDIS_MNEM_FYL2XP1, + /* 0DB */ ZYDIS_MNEM_GETSEC, + /* 0DC */ ZYDIS_MNEM_HADDPD, + /* 0DD */ ZYDIS_MNEM_HADDPS, + /* 0DE */ ZYDIS_MNEM_HLT, + /* 0DF */ ZYDIS_MNEM_HSUBPD, + /* 0E0 */ ZYDIS_MNEM_HSUBPS, + /* 0E1 */ ZYDIS_MNEM_IDIV, + /* 0E2 */ ZYDIS_MNEM_IMUL, + /* 0E3 */ ZYDIS_MNEM_IN, + /* 0E4 */ ZYDIS_MNEM_INC, + /* 0E5 */ ZYDIS_MNEM_INSB, + /* 0E6 */ ZYDIS_MNEM_INSD, + /* 0E7 */ ZYDIS_MNEM_INSERTPS, + /* 0E8 */ ZYDIS_MNEM_INSW, + /* 0E9 */ ZYDIS_MNEM_INT, + /* 0EA */ ZYDIS_MNEM_INT1, + /* 0EB */ ZYDIS_MNEM_INT3, + /* 0EC */ ZYDIS_MNEM_INTO, + /* 0ED */ ZYDIS_MNEM_INVD, + /* 0EE */ ZYDIS_MNEM_INVEPT, + /* 0EF */ ZYDIS_MNEM_INVLPG, + /* 0F0 */ ZYDIS_MNEM_INVLPGA, + /* 0F1 */ ZYDIS_MNEM_INVVPID, + /* 0F2 */ ZYDIS_MNEM_IRETD, + /* 0F3 */ ZYDIS_MNEM_IRETQ, + /* 0F4 */ ZYDIS_MNEM_IRETW, + /* 0F5 */ ZYDIS_MNEM_JA, + /* 0F6 */ ZYDIS_MNEM_JB, + /* 0F7 */ ZYDIS_MNEM_JBE, + /* 0F8 */ ZYDIS_MNEM_JCXZ, + /* 0F9 */ ZYDIS_MNEM_JE, + /* 0FA */ ZYDIS_MNEM_JECXZ, + /* 0FB */ ZYDIS_MNEM_JG, + /* 0FC */ ZYDIS_MNEM_JGE, + /* 0FD */ ZYDIS_MNEM_JL, + /* 0FE */ ZYDIS_MNEM_JLE, + /* 0FF */ ZYDIS_MNEM_JMP, + /* 100 */ ZYDIS_MNEM_JNB, + /* 101 */ ZYDIS_MNEM_JNE, + /* 102 */ ZYDIS_MNEM_JNO, + /* 103 */ ZYDIS_MNEM_JNP, + /* 104 */ ZYDIS_MNEM_JNS, + /* 105 */ ZYDIS_MNEM_JO, + /* 106 */ ZYDIS_MNEM_JP, + /* 107 */ ZYDIS_MNEM_JRCXZ, + /* 108 */ ZYDIS_MNEM_JS, + /* 109 */ ZYDIS_MNEM_LAHF, + /* 10A */ ZYDIS_MNEM_LAR, + /* 10B */ ZYDIS_MNEM_LDDQU, + /* 10C */ ZYDIS_MNEM_LDMXCSR, + /* 10D */ ZYDIS_MNEM_LDS, + /* 10E */ ZYDIS_MNEM_LEA, + /* 10F */ ZYDIS_MNEM_LEAVE, + /* 110 */ ZYDIS_MNEM_LES, + /* 111 */ ZYDIS_MNEM_LFENCE, + /* 112 */ ZYDIS_MNEM_LFS, + /* 113 */ ZYDIS_MNEM_LGDT, + /* 114 */ ZYDIS_MNEM_LGS, + /* 115 */ ZYDIS_MNEM_LIDT, + /* 116 */ ZYDIS_MNEM_LLDT, + /* 117 */ ZYDIS_MNEM_LMSW, + /* 118 */ ZYDIS_MNEM_LOCK, + /* 119 */ ZYDIS_MNEM_LODSB, + /* 11A */ ZYDIS_MNEM_LODSD, + /* 11B */ ZYDIS_MNEM_LODSQ, + /* 11C */ ZYDIS_MNEM_LODSW, + /* 11D */ ZYDIS_MNEM_LOOP, + /* 11E */ ZYDIS_MNEM_LOOPE, + /* 11F */ ZYDIS_MNEM_LOOPNE, + /* 120 */ ZYDIS_MNEM_LSL, + /* 121 */ ZYDIS_MNEM_LSS, + /* 122 */ ZYDIS_MNEM_LTR, + /* 123 */ ZYDIS_MNEM_MASKMOVDQU, + /* 124 */ ZYDIS_MNEM_MASKMOVQ, + /* 125 */ ZYDIS_MNEM_MAXPD, + /* 126 */ ZYDIS_MNEM_MAXPS, + /* 127 */ ZYDIS_MNEM_MAXSD, + /* 128 */ ZYDIS_MNEM_MAXSS, + /* 129 */ ZYDIS_MNEM_MFENCE, + /* 12A */ ZYDIS_MNEM_MINPD, + /* 12B */ ZYDIS_MNEM_MINPS, + /* 12C */ ZYDIS_MNEM_MINSD, + /* 12D */ ZYDIS_MNEM_MINSS, + /* 12E */ ZYDIS_MNEM_MONITOR, + /* 12F */ ZYDIS_MNEM_MONTMUL, + /* 130 */ ZYDIS_MNEM_MOV, + /* 131 */ ZYDIS_MNEM_MOVAPD, + /* 132 */ ZYDIS_MNEM_MOVAPS, + /* 133 */ ZYDIS_MNEM_MOVBE, + /* 134 */ ZYDIS_MNEM_MOVD, + /* 135 */ ZYDIS_MNEM_MOVDDUP, + /* 136 */ ZYDIS_MNEM_MOVDQ2Q, + /* 137 */ ZYDIS_MNEM_MOVDQA, + /* 138 */ ZYDIS_MNEM_MOVDQU, + /* 139 */ ZYDIS_MNEM_MOVHLPS, + /* 13A */ ZYDIS_MNEM_MOVHPD, + /* 13B */ ZYDIS_MNEM_MOVHPS, + /* 13C */ ZYDIS_MNEM_MOVLHPS, + /* 13D */ ZYDIS_MNEM_MOVLPD, + /* 13E */ ZYDIS_MNEM_MOVLPS, + /* 13F */ ZYDIS_MNEM_MOVMSKPD, + /* 140 */ ZYDIS_MNEM_MOVMSKPS, + /* 141 */ ZYDIS_MNEM_MOVNTDQ, + /* 142 */ ZYDIS_MNEM_MOVNTDQA, + /* 143 */ ZYDIS_MNEM_MOVNTI, + /* 144 */ ZYDIS_MNEM_MOVNTPD, + /* 145 */ ZYDIS_MNEM_MOVNTPS, + /* 146 */ ZYDIS_MNEM_MOVNTQ, + /* 147 */ ZYDIS_MNEM_MOVQ, + /* 148 */ ZYDIS_MNEM_MOVQ2DQ, + /* 149 */ ZYDIS_MNEM_MOVSB, + /* 14A */ ZYDIS_MNEM_MOVSD, + /* 14B */ ZYDIS_MNEM_MOVSHDUP, + /* 14C */ ZYDIS_MNEM_MOVSLDUP, + /* 14D */ ZYDIS_MNEM_MOVSQ, + /* 14E */ ZYDIS_MNEM_MOVSS, + /* 14F */ ZYDIS_MNEM_MOVSW, + /* 150 */ ZYDIS_MNEM_MOVSX, + /* 151 */ ZYDIS_MNEM_MOVSXD, + /* 152 */ ZYDIS_MNEM_MOVUPD, + /* 153 */ ZYDIS_MNEM_MOVUPS, + /* 154 */ ZYDIS_MNEM_MOVZX, + /* 155 */ ZYDIS_MNEM_MPSADBW, + /* 156 */ ZYDIS_MNEM_MUL, + /* 157 */ ZYDIS_MNEM_MULPD, + /* 158 */ ZYDIS_MNEM_MULPS, + /* 159 */ ZYDIS_MNEM_MULSD, + /* 15A */ ZYDIS_MNEM_MULSS, + /* 15B */ ZYDIS_MNEM_MWAIT, + /* 15C */ ZYDIS_MNEM_NEG, + /* 15D */ ZYDIS_MNEM_NOP, + /* 15E */ ZYDIS_MNEM_NOT, + /* 15F */ ZYDIS_MNEM_OR, + /* 160 */ ZYDIS_MNEM_ORPD, + /* 161 */ ZYDIS_MNEM_ORPS, + /* 162 */ ZYDIS_MNEM_OUT, + /* 163 */ ZYDIS_MNEM_OUTSB, + /* 164 */ ZYDIS_MNEM_OUTSD, + /* 165 */ ZYDIS_MNEM_OUTSW, + /* 166 */ ZYDIS_MNEM_PABSB, + /* 167 */ ZYDIS_MNEM_PABSD, + /* 168 */ ZYDIS_MNEM_PABSW, + /* 169 */ ZYDIS_MNEM_PACKSSDW, + /* 16A */ ZYDIS_MNEM_PACKSSWB, + /* 16B */ ZYDIS_MNEM_PACKUSDW, + /* 16C */ ZYDIS_MNEM_PACKUSWB, + /* 16D */ ZYDIS_MNEM_PADDB, + /* 16E */ ZYDIS_MNEM_PADDD, + /* 16F */ ZYDIS_MNEM_PADDQ, + /* 170 */ ZYDIS_MNEM_PADDSB, + /* 171 */ ZYDIS_MNEM_PADDSW, + /* 172 */ ZYDIS_MNEM_PADDUSB, + /* 173 */ ZYDIS_MNEM_PADDUSW, + /* 174 */ ZYDIS_MNEM_PADDW, + /* 175 */ ZYDIS_MNEM_PALIGNR, + /* 176 */ ZYDIS_MNEM_PAND, + /* 177 */ ZYDIS_MNEM_PANDN, + /* 178 */ ZYDIS_MNEM_PAUSE, + /* 179 */ ZYDIS_MNEM_PAVGB, + /* 17A */ ZYDIS_MNEM_PAVGUSB, + /* 17B */ ZYDIS_MNEM_PAVGW, + /* 17C */ ZYDIS_MNEM_PBLENDVB, + /* 17D */ ZYDIS_MNEM_PBLENDW, + /* 17E */ ZYDIS_MNEM_PCLMULQDQ, + /* 17F */ ZYDIS_MNEM_PCMPEQB, + /* 180 */ ZYDIS_MNEM_PCMPEQD, + /* 181 */ ZYDIS_MNEM_PCMPEQQ, + /* 182 */ ZYDIS_MNEM_PCMPEQW, + /* 183 */ ZYDIS_MNEM_PCMPESTRI, + /* 184 */ ZYDIS_MNEM_PCMPESTRM, + /* 185 */ ZYDIS_MNEM_PCMPGTB, + /* 186 */ ZYDIS_MNEM_PCMPGTD, + /* 187 */ ZYDIS_MNEM_PCMPGTQ, + /* 188 */ ZYDIS_MNEM_PCMPGTW, + /* 189 */ ZYDIS_MNEM_PCMPISTRI, + /* 18A */ ZYDIS_MNEM_PCMPISTRM, + /* 18B */ ZYDIS_MNEM_PEXTRB, + /* 18C */ ZYDIS_MNEM_PEXTRD, + /* 18D */ ZYDIS_MNEM_PEXTRQ, + /* 18E */ ZYDIS_MNEM_PEXTRW, + /* 18F */ ZYDIS_MNEM_PF2ID, + /* 190 */ ZYDIS_MNEM_PF2IW, + /* 191 */ ZYDIS_MNEM_PFACC, + /* 192 */ ZYDIS_MNEM_PFADD, + /* 193 */ ZYDIS_MNEM_PFCMPEQ, + /* 194 */ ZYDIS_MNEM_PFCMPGE, + /* 195 */ ZYDIS_MNEM_PFCMPGT, + /* 196 */ ZYDIS_MNEM_PFMAX, + /* 197 */ ZYDIS_MNEM_PFMIN, + /* 198 */ ZYDIS_MNEM_PFMUL, + /* 199 */ ZYDIS_MNEM_PFNACC, + /* 19A */ ZYDIS_MNEM_PFPNACC, + /* 19B */ ZYDIS_MNEM_PFRCP, + /* 19C */ ZYDIS_MNEM_PFRCPIT1, + /* 19D */ ZYDIS_MNEM_PFRCPIT2, + /* 19E */ ZYDIS_MNEM_PFRSQIT1, + /* 19F */ ZYDIS_MNEM_PFRSQRT, + /* 1A0 */ ZYDIS_MNEM_PFSUB, + /* 1A1 */ ZYDIS_MNEM_PFSUBR, + /* 1A2 */ ZYDIS_MNEM_PHADDD, + /* 1A3 */ ZYDIS_MNEM_PHADDSW, + /* 1A4 */ ZYDIS_MNEM_PHADDW, + /* 1A5 */ ZYDIS_MNEM_PHMINPOSUW, + /* 1A6 */ ZYDIS_MNEM_PHSUBD, + /* 1A7 */ ZYDIS_MNEM_PHSUBSW, + /* 1A8 */ ZYDIS_MNEM_PHSUBW, + /* 1A9 */ ZYDIS_MNEM_PI2FD, + /* 1AA */ ZYDIS_MNEM_PI2FW, + /* 1AB */ ZYDIS_MNEM_PINSRB, + /* 1AC */ ZYDIS_MNEM_PINSRD, + /* 1AD */ ZYDIS_MNEM_PINSRQ, + /* 1AE */ ZYDIS_MNEM_PINSRW, + /* 1AF */ ZYDIS_MNEM_PMADDUBSW, + /* 1B0 */ ZYDIS_MNEM_PMADDWD, + /* 1B1 */ ZYDIS_MNEM_PMAXSB, + /* 1B2 */ ZYDIS_MNEM_PMAXSD, + /* 1B3 */ ZYDIS_MNEM_PMAXSW, + /* 1B4 */ ZYDIS_MNEM_PMAXUB, + /* 1B5 */ ZYDIS_MNEM_PMAXUD, + /* 1B6 */ ZYDIS_MNEM_PMAXUW, + /* 1B7 */ ZYDIS_MNEM_PMINSB, + /* 1B8 */ ZYDIS_MNEM_PMINSD, + /* 1B9 */ ZYDIS_MNEM_PMINSW, + /* 1BA */ ZYDIS_MNEM_PMINUB, + /* 1BB */ ZYDIS_MNEM_PMINUD, + /* 1BC */ ZYDIS_MNEM_PMINUW, + /* 1BD */ ZYDIS_MNEM_PMOVMSKB, + /* 1BE */ ZYDIS_MNEM_PMOVSXBD, + /* 1BF */ ZYDIS_MNEM_PMOVSXBQ, + /* 1C0 */ ZYDIS_MNEM_PMOVSXBW, + /* 1C1 */ ZYDIS_MNEM_PMOVSXDQ, + /* 1C2 */ ZYDIS_MNEM_PMOVSXWD, + /* 1C3 */ ZYDIS_MNEM_PMOVSXWQ, + /* 1C4 */ ZYDIS_MNEM_PMOVZXBD, + /* 1C5 */ ZYDIS_MNEM_PMOVZXBQ, + /* 1C6 */ ZYDIS_MNEM_PMOVZXBW, + /* 1C7 */ ZYDIS_MNEM_PMOVZXDQ, + /* 1C8 */ ZYDIS_MNEM_PMOVZXWD, + /* 1C9 */ ZYDIS_MNEM_PMOVZXWQ, + /* 1CA */ ZYDIS_MNEM_PMULDQ, + /* 1CB */ ZYDIS_MNEM_PMULHRSW, + /* 1CC */ ZYDIS_MNEM_PMULHRW, + /* 1CD */ ZYDIS_MNEM_PMULHUW, + /* 1CE */ ZYDIS_MNEM_PMULHW, + /* 1CF */ ZYDIS_MNEM_PMULLD, + /* 1D0 */ ZYDIS_MNEM_PMULLW, + /* 1D1 */ ZYDIS_MNEM_PMULUDQ, + /* 1D2 */ ZYDIS_MNEM_POP, + /* 1D3 */ ZYDIS_MNEM_POPA, + /* 1D4 */ ZYDIS_MNEM_POPAD, + /* 1D5 */ ZYDIS_MNEM_POPCNT, + /* 1D6 */ ZYDIS_MNEM_POPFD, + /* 1D7 */ ZYDIS_MNEM_POPFQ, + /* 1D8 */ ZYDIS_MNEM_POPFW, + /* 1D9 */ ZYDIS_MNEM_POR, + /* 1DA */ ZYDIS_MNEM_PREFETCH, + /* 1DB */ ZYDIS_MNEM_PREFETCHNTA, + /* 1DC */ ZYDIS_MNEM_PREFETCHT0, + /* 1DD */ ZYDIS_MNEM_PREFETCHT1, + /* 1DE */ ZYDIS_MNEM_PREFETCHT2, + /* 1DF */ ZYDIS_MNEM_PSADBW, + /* 1E0 */ ZYDIS_MNEM_PSHUFB, + /* 1E1 */ ZYDIS_MNEM_PSHUFD, + /* 1E2 */ ZYDIS_MNEM_PSHUFHW, + /* 1E3 */ ZYDIS_MNEM_PSHUFLW, + /* 1E4 */ ZYDIS_MNEM_PSHUFW, + /* 1E5 */ ZYDIS_MNEM_PSIGNB, + /* 1E6 */ ZYDIS_MNEM_PSIGND, + /* 1E7 */ ZYDIS_MNEM_PSIGNW, + /* 1E8 */ ZYDIS_MNEM_PSLLD, + /* 1E9 */ ZYDIS_MNEM_PSLLDQ, + /* 1EA */ ZYDIS_MNEM_PSLLQ, + /* 1EB */ ZYDIS_MNEM_PSLLW, + /* 1EC */ ZYDIS_MNEM_PSRAD, + /* 1ED */ ZYDIS_MNEM_PSRAW, + /* 1EE */ ZYDIS_MNEM_PSRLD, + /* 1EF */ ZYDIS_MNEM_PSRLDQ, + /* 1F0 */ ZYDIS_MNEM_PSRLQ, + /* 1F1 */ ZYDIS_MNEM_PSRLW, + /* 1F2 */ ZYDIS_MNEM_PSUBB, + /* 1F3 */ ZYDIS_MNEM_PSUBD, + /* 1F4 */ ZYDIS_MNEM_PSUBQ, + /* 1F5 */ ZYDIS_MNEM_PSUBSB, + /* 1F6 */ ZYDIS_MNEM_PSUBSW, + /* 1F7 */ ZYDIS_MNEM_PSUBUSB, + /* 1F8 */ ZYDIS_MNEM_PSUBUSW, + /* 1F9 */ ZYDIS_MNEM_PSUBW, + /* 1FA */ ZYDIS_MNEM_PSWAPD, + /* 1FB */ ZYDIS_MNEM_PTEST, + /* 1FC */ ZYDIS_MNEM_PUNPCKHBW, + /* 1FD */ ZYDIS_MNEM_PUNPCKHDQ, + /* 1FE */ ZYDIS_MNEM_PUNPCKHQDQ, + /* 1FF */ ZYDIS_MNEM_PUNPCKHWD, + /* 200 */ ZYDIS_MNEM_PUNPCKLBW, + /* 201 */ ZYDIS_MNEM_PUNPCKLDQ, + /* 202 */ ZYDIS_MNEM_PUNPCKLQDQ, + /* 203 */ ZYDIS_MNEM_PUNPCKLWD, + /* 204 */ ZYDIS_MNEM_PUSH, + /* 205 */ ZYDIS_MNEM_PUSHA, + /* 206 */ ZYDIS_MNEM_PUSHAD, + /* 207 */ ZYDIS_MNEM_PUSHFD, + /* 208 */ ZYDIS_MNEM_PUSHFQ, + /* 209 */ ZYDIS_MNEM_PUSHFW, + /* 20A */ ZYDIS_MNEM_PXOR, + /* 20B */ ZYDIS_MNEM_RCL, + /* 20C */ ZYDIS_MNEM_RCPPS, + /* 20D */ ZYDIS_MNEM_RCPSS, + /* 20E */ ZYDIS_MNEM_RCR, + /* 20F */ ZYDIS_MNEM_RDMSR, + /* 210 */ ZYDIS_MNEM_RDPMC, + /* 211 */ ZYDIS_MNEM_RDRAND, + /* 212 */ ZYDIS_MNEM_RDTSC, + /* 213 */ ZYDIS_MNEM_RDTSCP, + /* 214 */ ZYDIS_MNEM_REP, + /* 215 */ ZYDIS_MNEM_REPNE, + /* 216 */ ZYDIS_MNEM_RET, + /* 217 */ ZYDIS_MNEM_RETF, + /* 218 */ ZYDIS_MNEM_ROL, + /* 219 */ ZYDIS_MNEM_ROR, + /* 21A */ ZYDIS_MNEM_ROUNDPD, + /* 21B */ ZYDIS_MNEM_ROUNDPS, + /* 21C */ ZYDIS_MNEM_ROUNDSD, + /* 21D */ ZYDIS_MNEM_ROUNDSS, + /* 21E */ ZYDIS_MNEM_RSM, + /* 21F */ ZYDIS_MNEM_RSQRTPS, + /* 220 */ ZYDIS_MNEM_RSQRTSS, + /* 221 */ ZYDIS_MNEM_SAHF, + /* 222 */ ZYDIS_MNEM_SALC, + /* 223 */ ZYDIS_MNEM_SAR, + /* 224 */ ZYDIS_MNEM_SBB, + /* 225 */ ZYDIS_MNEM_SCASB, + /* 226 */ ZYDIS_MNEM_SCASD, + /* 227 */ ZYDIS_MNEM_SCASQ, + /* 228 */ ZYDIS_MNEM_SCASW, + /* 229 */ ZYDIS_MNEM_SETA, + /* 22A */ ZYDIS_MNEM_SETAE, + /* 22B */ ZYDIS_MNEM_SETB, + /* 22C */ ZYDIS_MNEM_SETBE, + /* 22D */ ZYDIS_MNEM_SETE, + /* 22E */ ZYDIS_MNEM_SETG, + /* 22F */ ZYDIS_MNEM_SETGE, + /* 230 */ ZYDIS_MNEM_SETL, + /* 231 */ ZYDIS_MNEM_SETLE, + /* 232 */ ZYDIS_MNEM_SETNE, + /* 233 */ ZYDIS_MNEM_SETNO, + /* 234 */ ZYDIS_MNEM_SETNP, + /* 235 */ ZYDIS_MNEM_SETNS, + /* 236 */ ZYDIS_MNEM_SETO, + /* 237 */ ZYDIS_MNEM_SETP, + /* 238 */ ZYDIS_MNEM_SETS, + /* 239 */ ZYDIS_MNEM_SFENCE, + /* 23A */ ZYDIS_MNEM_SGDT, + /* 23B */ ZYDIS_MNEM_SHL, + /* 23C */ ZYDIS_MNEM_SHLD, + /* 23D */ ZYDIS_MNEM_SHR, + /* 23E */ ZYDIS_MNEM_SHRD, + /* 23F */ ZYDIS_MNEM_SHUFPD, + /* 240 */ ZYDIS_MNEM_SHUFPS, + /* 241 */ ZYDIS_MNEM_SIDT, + /* 242 */ ZYDIS_MNEM_SKINIT, + /* 243 */ ZYDIS_MNEM_SLDT, + /* 244 */ ZYDIS_MNEM_SMSW, + /* 245 */ ZYDIS_MNEM_SQRTPD, + /* 246 */ ZYDIS_MNEM_SQRTPS, + /* 247 */ ZYDIS_MNEM_SQRTSD, + /* 248 */ ZYDIS_MNEM_SQRTSS, + /* 249 */ ZYDIS_MNEM_STC, + /* 24A */ ZYDIS_MNEM_STD, + /* 24B */ ZYDIS_MNEM_STGI, + /* 24C */ ZYDIS_MNEM_STI, + /* 24D */ ZYDIS_MNEM_STMXCSR, + /* 24E */ ZYDIS_MNEM_STOSB, + /* 24F */ ZYDIS_MNEM_STOSD, + /* 250 */ ZYDIS_MNEM_STOSQ, + /* 251 */ ZYDIS_MNEM_STOSW, + /* 252 */ ZYDIS_MNEM_STR, + /* 253 */ ZYDIS_MNEM_SUB, + /* 254 */ ZYDIS_MNEM_SUBPD, + /* 255 */ ZYDIS_MNEM_SUBPS, + /* 256 */ ZYDIS_MNEM_SUBSD, + /* 257 */ ZYDIS_MNEM_SUBSS, + /* 258 */ ZYDIS_MNEM_SWAPGS, + /* 259 */ ZYDIS_MNEM_SYSCALL, + /* 25A */ ZYDIS_MNEM_SYSENTER, + /* 25B */ ZYDIS_MNEM_SYSEXIT, + /* 25C */ ZYDIS_MNEM_SYSRET, + /* 25D */ ZYDIS_MNEM_TEST, + /* 25E */ ZYDIS_MNEM_UCOMISD, + /* 25F */ ZYDIS_MNEM_UCOMISS, + /* 260 */ ZYDIS_MNEM_UD2, + /* 261 */ ZYDIS_MNEM_UNPCKHPD, + /* 262 */ ZYDIS_MNEM_UNPCKHPS, + /* 263 */ ZYDIS_MNEM_UNPCKLPD, + /* 264 */ ZYDIS_MNEM_UNPCKLPS, + /* 265 */ ZYDIS_MNEM_VADDPD, + /* 266 */ ZYDIS_MNEM_VADDPS, + /* 267 */ ZYDIS_MNEM_VADDSD, + /* 268 */ ZYDIS_MNEM_VADDSS, + /* 269 */ ZYDIS_MNEM_VADDSUBPD, + /* 26A */ ZYDIS_MNEM_VADDSUBPS, + /* 26B */ ZYDIS_MNEM_VAESDEC, + /* 26C */ ZYDIS_MNEM_VAESDECLAST, + /* 26D */ ZYDIS_MNEM_VAESENC, + /* 26E */ ZYDIS_MNEM_VAESENCLAST, + /* 26F */ ZYDIS_MNEM_VAESIMC, + /* 270 */ ZYDIS_MNEM_VAESKEYGENASSIST, + /* 271 */ ZYDIS_MNEM_VANDNPD, + /* 272 */ ZYDIS_MNEM_VANDNPS, + /* 273 */ ZYDIS_MNEM_VANDPD, + /* 274 */ ZYDIS_MNEM_VANDPS, + /* 275 */ ZYDIS_MNEM_VBLENDPD, + /* 276 */ ZYDIS_MNEM_VBLENDPS, + /* 277 */ ZYDIS_MNEM_VBLENDVPD, + /* 278 */ ZYDIS_MNEM_VBLENDVPS, + /* 279 */ ZYDIS_MNEM_VBROADCASTSD, + /* 27A */ ZYDIS_MNEM_VBROADCASTSS, + /* 27B */ ZYDIS_MNEM_VCMPPD, + /* 27C */ ZYDIS_MNEM_VCMPPS, + /* 27D */ ZYDIS_MNEM_VCMPSD, + /* 27E */ ZYDIS_MNEM_VCMPSS, + /* 27F */ ZYDIS_MNEM_VCOMISD, + /* 280 */ ZYDIS_MNEM_VCOMISS, + /* 281 */ ZYDIS_MNEM_VCVTDQ2PD, + /* 282 */ ZYDIS_MNEM_VCVTDQ2PS, + /* 283 */ ZYDIS_MNEM_VCVTPD2DQ, + /* 284 */ ZYDIS_MNEM_VCVTPD2PS, + /* 285 */ ZYDIS_MNEM_VCVTPS2DQ, + /* 286 */ ZYDIS_MNEM_VCVTPS2PD, + /* 287 */ ZYDIS_MNEM_VCVTSD2SI, + /* 288 */ ZYDIS_MNEM_VCVTSD2SS, + /* 289 */ ZYDIS_MNEM_VCVTSI2SD, + /* 28A */ ZYDIS_MNEM_VCVTSI2SS, + /* 28B */ ZYDIS_MNEM_VCVTSS2SD, + /* 28C */ ZYDIS_MNEM_VCVTSS2SI, + /* 28D */ ZYDIS_MNEM_VCVTTPD2DQ, + /* 28E */ ZYDIS_MNEM_VCVTTPS2DQ, + /* 28F */ ZYDIS_MNEM_VCVTTSD2SI, + /* 290 */ ZYDIS_MNEM_VCVTTSS2SI, + /* 291 */ ZYDIS_MNEM_VDIVPD, + /* 292 */ ZYDIS_MNEM_VDIVPS, + /* 293 */ ZYDIS_MNEM_VDIVSD, + /* 294 */ ZYDIS_MNEM_VDIVSS, + /* 295 */ ZYDIS_MNEM_VDPPD, + /* 296 */ ZYDIS_MNEM_VDPPS, + /* 297 */ ZYDIS_MNEM_VERR, + /* 298 */ ZYDIS_MNEM_VERW, + /* 299 */ ZYDIS_MNEM_VEXTRACTF128, + /* 29A */ ZYDIS_MNEM_VEXTRACTPS, + /* 29B */ ZYDIS_MNEM_VHADDPD, + /* 29C */ ZYDIS_MNEM_VHADDPS, + /* 29D */ ZYDIS_MNEM_VHSUBPD, + /* 29E */ ZYDIS_MNEM_VHSUBPS, + /* 29F */ ZYDIS_MNEM_VINSERTF128, + /* 2A0 */ ZYDIS_MNEM_VINSERTPS, + /* 2A1 */ ZYDIS_MNEM_VLDDQU, + /* 2A2 */ ZYDIS_MNEM_VMASKMOVDQU, + /* 2A3 */ ZYDIS_MNEM_VMASKMOVPD, + /* 2A4 */ ZYDIS_MNEM_VMASKMOVPS, + /* 2A5 */ ZYDIS_MNEM_VMAXPD, + /* 2A6 */ ZYDIS_MNEM_VMAXPS, + /* 2A7 */ ZYDIS_MNEM_VMAXSD, + /* 2A8 */ ZYDIS_MNEM_VMAXSS, + /* 2A9 */ ZYDIS_MNEM_VMCALL, + /* 2AA */ ZYDIS_MNEM_VMCLEAR, + /* 2AB */ ZYDIS_MNEM_VMINPD, + /* 2AC */ ZYDIS_MNEM_VMINPS, + /* 2AD */ ZYDIS_MNEM_VMINSD, + /* 2AE */ ZYDIS_MNEM_VMINSS, + /* 2AF */ ZYDIS_MNEM_VMLAUNCH, + /* 2B0 */ ZYDIS_MNEM_VMLOAD, + /* 2B1 */ ZYDIS_MNEM_VMMCALL, + /* 2B2 */ ZYDIS_MNEM_VMOVAPD, + /* 2B3 */ ZYDIS_MNEM_VMOVAPS, + /* 2B4 */ ZYDIS_MNEM_VMOVD, + /* 2B5 */ ZYDIS_MNEM_VMOVDDUP, + /* 2B6 */ ZYDIS_MNEM_VMOVDQA, + /* 2B7 */ ZYDIS_MNEM_VMOVDQU, + /* 2B8 */ ZYDIS_MNEM_VMOVHLPS, + /* 2B9 */ ZYDIS_MNEM_VMOVHPD, + /* 2BA */ ZYDIS_MNEM_VMOVHPS, + /* 2BB */ ZYDIS_MNEM_VMOVLHPS, + /* 2BC */ ZYDIS_MNEM_VMOVLPD, + /* 2BD */ ZYDIS_MNEM_VMOVLPS, + /* 2BE */ ZYDIS_MNEM_VMOVMSKPD, + /* 2BF */ ZYDIS_MNEM_VMOVMSKPS, + /* 2C0 */ ZYDIS_MNEM_VMOVNTDQ, + /* 2C1 */ ZYDIS_MNEM_VMOVNTDQA, + /* 2C2 */ ZYDIS_MNEM_VMOVNTPD, + /* 2C3 */ ZYDIS_MNEM_VMOVNTPS, + /* 2C4 */ ZYDIS_MNEM_VMOVQ, + /* 2C5 */ ZYDIS_MNEM_VMOVSD, + /* 2C6 */ ZYDIS_MNEM_VMOVSHDUP, + /* 2C7 */ ZYDIS_MNEM_VMOVSLDUP, + /* 2C8 */ ZYDIS_MNEM_VMOVSS, + /* 2C9 */ ZYDIS_MNEM_VMOVUPD, + /* 2CA */ ZYDIS_MNEM_VMOVUPS, + /* 2CB */ ZYDIS_MNEM_VMPSADBW, + /* 2CC */ ZYDIS_MNEM_VMPTRLD, + /* 2CD */ ZYDIS_MNEM_VMPTRST, + /* 2CE */ ZYDIS_MNEM_VMREAD, + /* 2CF */ ZYDIS_MNEM_VMRESUME, + /* 2D0 */ ZYDIS_MNEM_VMRUN, + /* 2D1 */ ZYDIS_MNEM_VMSAVE, + /* 2D2 */ ZYDIS_MNEM_VMULPD, + /* 2D3 */ ZYDIS_MNEM_VMULPS, + /* 2D4 */ ZYDIS_MNEM_VMULSD, + /* 2D5 */ ZYDIS_MNEM_VMULSS, + /* 2D6 */ ZYDIS_MNEM_VMWRITE, + /* 2D7 */ ZYDIS_MNEM_VMXOFF, + /* 2D8 */ ZYDIS_MNEM_VMXON, + /* 2D9 */ ZYDIS_MNEM_VORPD, + /* 2DA */ ZYDIS_MNEM_VORPS, + /* 2DB */ ZYDIS_MNEM_VPABSB, + /* 2DC */ ZYDIS_MNEM_VPABSD, + /* 2DD */ ZYDIS_MNEM_VPABSW, + /* 2DE */ ZYDIS_MNEM_VPACKSSDW, + /* 2DF */ ZYDIS_MNEM_VPACKSSWB, + /* 2E0 */ ZYDIS_MNEM_VPACKUSDW, + /* 2E1 */ ZYDIS_MNEM_VPACKUSWB, + /* 2E2 */ ZYDIS_MNEM_VPADDB, + /* 2E3 */ ZYDIS_MNEM_VPADDD, + /* 2E4 */ ZYDIS_MNEM_VPADDQ, + /* 2E5 */ ZYDIS_MNEM_VPADDSB, + /* 2E6 */ ZYDIS_MNEM_VPADDSW, + /* 2E7 */ ZYDIS_MNEM_VPADDUSB, + /* 2E8 */ ZYDIS_MNEM_VPADDUSW, + /* 2E9 */ ZYDIS_MNEM_VPADDW, + /* 2EA */ ZYDIS_MNEM_VPALIGNR, + /* 2EB */ ZYDIS_MNEM_VPAND, + /* 2EC */ ZYDIS_MNEM_VPANDN, + /* 2ED */ ZYDIS_MNEM_VPAVGB, + /* 2EE */ ZYDIS_MNEM_VPAVGW, + /* 2EF */ ZYDIS_MNEM_VPBLENDVB, + /* 2F0 */ ZYDIS_MNEM_VPBLENDW, + /* 2F1 */ ZYDIS_MNEM_VPCLMULQDQ, + /* 2F2 */ ZYDIS_MNEM_VPCMPEQB, + /* 2F3 */ ZYDIS_MNEM_VPCMPEQD, + /* 2F4 */ ZYDIS_MNEM_VPCMPEQQ, + /* 2F5 */ ZYDIS_MNEM_VPCMPEQW, + /* 2F6 */ ZYDIS_MNEM_VPCMPESTRI, + /* 2F7 */ ZYDIS_MNEM_VPCMPESTRM, + /* 2F8 */ ZYDIS_MNEM_VPCMPGTB, + /* 2F9 */ ZYDIS_MNEM_VPCMPGTD, + /* 2FA */ ZYDIS_MNEM_VPCMPGTQ, + /* 2FB */ ZYDIS_MNEM_VPCMPGTW, + /* 2FC */ ZYDIS_MNEM_VPCMPISTRI, + /* 2FD */ ZYDIS_MNEM_VPCMPISTRM, + /* 2FE */ ZYDIS_MNEM_VPERM2F128, + /* 2FF */ ZYDIS_MNEM_VPERMILPD, + /* 300 */ ZYDIS_MNEM_VPERMILPS, + /* 301 */ ZYDIS_MNEM_VPEXTRB, + /* 302 */ ZYDIS_MNEM_VPEXTRD, + /* 303 */ ZYDIS_MNEM_VPEXTRQ, + /* 304 */ ZYDIS_MNEM_VPEXTRW, + /* 305 */ ZYDIS_MNEM_VPHADDD, + /* 306 */ ZYDIS_MNEM_VPHADDSW, + /* 307 */ ZYDIS_MNEM_VPHADDW, + /* 308 */ ZYDIS_MNEM_VPHMINPOSUW, + /* 309 */ ZYDIS_MNEM_VPHSUBD, + /* 30A */ ZYDIS_MNEM_VPHSUBSW, + /* 30B */ ZYDIS_MNEM_VPHSUBW, + /* 30C */ ZYDIS_MNEM_VPINSRB, + /* 30D */ ZYDIS_MNEM_VPINSRD, + /* 30E */ ZYDIS_MNEM_VPINSRQ, + /* 30F */ ZYDIS_MNEM_VPINSRW, + /* 310 */ ZYDIS_MNEM_VPMADDUBSW, + /* 311 */ ZYDIS_MNEM_VPMADDWD, + /* 312 */ ZYDIS_MNEM_VPMAXSB, + /* 313 */ ZYDIS_MNEM_VPMAXSD, + /* 314 */ ZYDIS_MNEM_VPMAXSW, + /* 315 */ ZYDIS_MNEM_VPMAXUB, + /* 316 */ ZYDIS_MNEM_VPMAXUD, + /* 317 */ ZYDIS_MNEM_VPMAXUW, + /* 318 */ ZYDIS_MNEM_VPMINSB, + /* 319 */ ZYDIS_MNEM_VPMINSD, + /* 31A */ ZYDIS_MNEM_VPMINSW, + /* 31B */ ZYDIS_MNEM_VPMINUB, + /* 31C */ ZYDIS_MNEM_VPMINUD, + /* 31D */ ZYDIS_MNEM_VPMINUW, + /* 31E */ ZYDIS_MNEM_VPMOVMSKB, + /* 31F */ ZYDIS_MNEM_VPMOVSXBD, + /* 320 */ ZYDIS_MNEM_VPMOVSXBQ, + /* 321 */ ZYDIS_MNEM_VPMOVSXBW, + /* 322 */ ZYDIS_MNEM_VPMOVSXWD, + /* 323 */ ZYDIS_MNEM_VPMOVSXWQ, + /* 324 */ ZYDIS_MNEM_VPMOVZXBD, + /* 325 */ ZYDIS_MNEM_VPMOVZXBQ, + /* 326 */ ZYDIS_MNEM_VPMOVZXBW, + /* 327 */ ZYDIS_MNEM_VPMOVZXDQ, + /* 328 */ ZYDIS_MNEM_VPMOVZXWD, + /* 329 */ ZYDIS_MNEM_VPMOVZXWQ, + /* 32A */ ZYDIS_MNEM_VPMULDQ, + /* 32B */ ZYDIS_MNEM_VPMULHRSW, + /* 32C */ ZYDIS_MNEM_VPMULHUW, + /* 32D */ ZYDIS_MNEM_VPMULHW, + /* 32E */ ZYDIS_MNEM_VPMULLD, + /* 32F */ ZYDIS_MNEM_VPMULLW, + /* 330 */ ZYDIS_MNEM_VPOR, + /* 331 */ ZYDIS_MNEM_VPSADBW, + /* 332 */ ZYDIS_MNEM_VPSHUFB, + /* 333 */ ZYDIS_MNEM_VPSHUFD, + /* 334 */ ZYDIS_MNEM_VPSHUFHW, + /* 335 */ ZYDIS_MNEM_VPSHUFLW, + /* 336 */ ZYDIS_MNEM_VPSIGNB, + /* 337 */ ZYDIS_MNEM_VPSIGND, + /* 338 */ ZYDIS_MNEM_VPSIGNW, + /* 339 */ ZYDIS_MNEM_VPSLLD, + /* 33A */ ZYDIS_MNEM_VPSLLDQ, + /* 33B */ ZYDIS_MNEM_VPSLLQ, + /* 33C */ ZYDIS_MNEM_VPSLLW, + /* 33D */ ZYDIS_MNEM_VPSRAD, + /* 33E */ ZYDIS_MNEM_VPSRAW, + /* 33F */ ZYDIS_MNEM_VPSRLD, + /* 340 */ ZYDIS_MNEM_VPSRLDQ, + /* 341 */ ZYDIS_MNEM_VPSRLQ, + /* 342 */ ZYDIS_MNEM_VPSRLW, + /* 343 */ ZYDIS_MNEM_VPSUBB, + /* 344 */ ZYDIS_MNEM_VPSUBD, + /* 345 */ ZYDIS_MNEM_VPSUBQ, + /* 346 */ ZYDIS_MNEM_VPSUBSB, + /* 347 */ ZYDIS_MNEM_VPSUBSW, + /* 348 */ ZYDIS_MNEM_VPSUBUSB, + /* 349 */ ZYDIS_MNEM_VPSUBUSW, + /* 34A */ ZYDIS_MNEM_VPSUBW, + /* 34B */ ZYDIS_MNEM_VPTEST, + /* 34C */ ZYDIS_MNEM_VPUNPCKHBW, + /* 34D */ ZYDIS_MNEM_VPUNPCKHDQ, + /* 34E */ ZYDIS_MNEM_VPUNPCKHQDQ, + /* 34F */ ZYDIS_MNEM_VPUNPCKHWD, + /* 350 */ ZYDIS_MNEM_VPUNPCKLBW, + /* 351 */ ZYDIS_MNEM_VPUNPCKLDQ, + /* 352 */ ZYDIS_MNEM_VPUNPCKLQDQ, + /* 353 */ ZYDIS_MNEM_VPUNPCKLWD, + /* 354 */ ZYDIS_MNEM_VPXOR, + /* 355 */ ZYDIS_MNEM_VRCPPS, + /* 356 */ ZYDIS_MNEM_VRCPSS, + /* 357 */ ZYDIS_MNEM_VROUNDPD, + /* 358 */ ZYDIS_MNEM_VROUNDPS, + /* 359 */ ZYDIS_MNEM_VROUNDSD, + /* 35A */ ZYDIS_MNEM_VROUNDSS, + /* 35B */ ZYDIS_MNEM_VRSQRTPS, + /* 35C */ ZYDIS_MNEM_VRSQRTSS, + /* 35D */ ZYDIS_MNEM_VSHUFPD, + /* 35E */ ZYDIS_MNEM_VSHUFPS, + /* 35F */ ZYDIS_MNEM_VSQRTPD, + /* 360 */ ZYDIS_MNEM_VSQRTPS, + /* 361 */ ZYDIS_MNEM_VSQRTSD, + /* 362 */ ZYDIS_MNEM_VSQRTSS, + /* 363 */ ZYDIS_MNEM_VSTMXCSR, + /* 364 */ ZYDIS_MNEM_VSUBPD, + /* 365 */ ZYDIS_MNEM_VSUBPS, + /* 366 */ ZYDIS_MNEM_VSUBSD, + /* 367 */ ZYDIS_MNEM_VSUBSS, + /* 368 */ ZYDIS_MNEM_VTESTPD, + /* 369 */ ZYDIS_MNEM_VTESTPS, + /* 36A */ ZYDIS_MNEM_VUCOMISD, + /* 36B */ ZYDIS_MNEM_VUCOMISS, + /* 36C */ ZYDIS_MNEM_VUNPCKHPD, + /* 36D */ ZYDIS_MNEM_VUNPCKHPS, + /* 36E */ ZYDIS_MNEM_VUNPCKLPD, + /* 36F */ ZYDIS_MNEM_VUNPCKLPS, + /* 370 */ ZYDIS_MNEM_VXORPD, + /* 371 */ ZYDIS_MNEM_VXORPS, + /* 372 */ ZYDIS_MNEM_VZEROALL, + /* 373 */ ZYDIS_MNEM_VZEROUPPER, + /* 374 */ ZYDIS_MNEM_WAIT, + /* 375 */ ZYDIS_MNEM_WBINVD, + /* 376 */ ZYDIS_MNEM_WRMSR, + /* 377 */ ZYDIS_MNEM_XADD, + /* 378 */ ZYDIS_MNEM_XCHG, + /* 379 */ ZYDIS_MNEM_XCRYPTCBC, + /* 37A */ ZYDIS_MNEM_XCRYPTCFB, + /* 37B */ ZYDIS_MNEM_XCRYPTCTR, + /* 37C */ ZYDIS_MNEM_XCRYPTECB, + /* 37D */ ZYDIS_MNEM_XCRYPTOFB, + /* 37E */ ZYDIS_MNEM_XGETBV, + /* 37F */ ZYDIS_MNEM_XLATB, + /* 380 */ ZYDIS_MNEM_XOR, + /* 381 */ ZYDIS_MNEM_XORPD, + /* 382 */ ZYDIS_MNEM_XORPS, + /* 383 */ ZYDIS_MNEM_XRSTOR, + /* 384 */ ZYDIS_MNEM_XSAVE, + /* 385 */ ZYDIS_MNEM_XSETBV, + /* 386 */ ZYDIS_MNEM_XSHA1, + /* 387 */ ZYDIS_MNEM_XSHA256, + /* 388 */ ZYDIS_MNEM_XSTORE, + + ZYDIS_MNEM_FORCE_WORD = 0x7FFF +} ZydisInstructionMnemonic; + +/* TODO: Port instruction definition types */ + /* ============================================================================================== */ #ifdef __cplusplus diff --git a/Zydis/ZydisInstructionFormatter.cpp b/Zydis/ZydisInstructionFormatter.cpp index a09b1a5..5866609 100644 --- a/Zydis/ZydisInstructionFormatter.cpp +++ b/Zydis/ZydisInstructionFormatter.cpp @@ -147,7 +147,7 @@ char const *BaseInstructionFormatter::outputString() return& m_outputBuffer[0]; } - void BaseInstructionFormatter::outputAppend(char const *text) + void BaseInstructionFormatter::outputAppend(char const* text) { // Get the string length including the null-terminator char size_t strLen = strlen(text) + 1; @@ -176,7 +176,7 @@ char const *BaseInstructionFormatter::outputString() } } - void BaseInstructionFormatter::outputAppendFormatted(char const *format, ...) + void BaseInstructionFormatter::outputAppendFormatted(char const* format, ...) { va_list arguments; va_start(arguments, format); diff --git a/Zydis/ZydisInstructionFormatter.hpp b/Zydis/ZydisInstructionFormatter.hpp index 2eea615..d2d8789 100644 --- a/Zydis/ZydisInstructionFormatter.hpp +++ b/Zydis/ZydisInstructionFormatter.hpp @@ -145,7 +145,7 @@ public: * @param info The instruction info. * @return Pointer to the formatted instruction string. */ - const char *formatInstruction(const InstructionInfo& info); + const char* formatInstruction(const InstructionInfo& info); public: /** * @brief Returns a pointer to the current symbol resolver. @@ -165,7 +165,7 @@ inline void BaseInstructionFormatter::outputSetUppercase(bool uppercase) m_outputUppercase = uppercase; } -inline char const *BaseInstructionFormatter::registerToString(Register reg) const +inline char const* BaseInstructionFormatter::registerToString(Register reg) const { if (reg == Register::NONE) { diff --git a/Zydis/ZydisSymbolResolver.cpp b/Zydis/ZydisSymbolResolver.cpp index 00f0a45..08b0938 100644 --- a/Zydis/ZydisSymbolResolver.cpp +++ b/Zydis/ZydisSymbolResolver.cpp @@ -40,7 +40,7 @@ BaseSymbolResolver::~BaseSymbolResolver() } -const char *BaseSymbolResolver::resolveSymbol(const InstructionInfo& /*info*/, +const char* BaseSymbolResolver::resolveSymbol(const InstructionInfo& /*info*/, uint64_t /*address*/, uint64_t& /*offset*/) { return nullptr; @@ -53,7 +53,7 @@ ExactSymbolResolver::~ExactSymbolResolver() } -const char *ExactSymbolResolver::resolveSymbol(const InstructionInfo& /*info*/, +const char* ExactSymbolResolver::resolveSymbol(const InstructionInfo& /*info*/, uint64_t address, uint64_t& offset) { std::unordered_map::const_iterator iterator = m_symbolMap.find(address);