• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Attribute VB_Name = "mx86"
2Option Explicit
3
4'Capstone Disassembly Engine bindings for VB6
5'Contributed by FireEye FLARE Team
6'Author:  David Zimmer <david.zimmer@fireeye.com>, <dzzie@yahoo.com>
7'License: Apache
8'Copyright: FireEye 2017
9
10
11Enum x86_reg
12    X86_REG_INVALID = 0
13    X86_REG_AH
14    X86_REG_AL
15    X86_REG_AX
16    X86_REG_BH
17    X86_REG_BL
18    X86_REG_BP
19    X86_REG_BPL
20    X86_REG_BX
21    X86_REG_CH
22    X86_REG_CL
23    X86_REG_CS
24    X86_REG_CX
25    X86_REG_DH
26    X86_REG_DI
27    X86_REG_DIL
28    X86_REG_DL
29    X86_REG_DS
30    X86_REG_DX
31    X86_REG_EAX
32    X86_REG_EBP
33    X86_REG_EBX
34    X86_REG_ECX
35    X86_REG_EDI
36    X86_REG_EDX
37    X86_REG_EFLAGS
38    X86_REG_EIP
39    X86_REG_EIZ
40    X86_REG_ES
41    X86_REG_ESI
42    X86_REG_ESP
43    X86_REG_FPSW
44    X86_REG_FS
45    X86_REG_GS
46    X86_REG_IP
47    X86_REG_RAX
48    X86_REG_RBP
49    X86_REG_RBX
50    X86_REG_RCX
51    X86_REG_RDI
52    X86_REG_RDX
53    X86_REG_RIP
54    X86_REG_RIZ
55    X86_REG_RSI
56    X86_REG_RSP
57    X86_REG_SI
58    X86_REG_SIL
59    X86_REG_SP
60    X86_REG_SPL
61    X86_REG_SS
62    X86_REG_CR0
63    X86_REG_CR1
64    X86_REG_CR2
65    X86_REG_CR3
66    X86_REG_CR4
67    X86_REG_CR5
68    X86_REG_CR6
69    X86_REG_CR7
70    X86_REG_CR8
71    X86_REG_CR9
72    X86_REG_CR10
73    X86_REG_CR11
74    X86_REG_CR12
75    X86_REG_CR13
76    X86_REG_CR14
77    X86_REG_CR15
78    X86_REG_DR0
79    X86_REG_DR1
80    X86_REG_DR2
81    X86_REG_DR3
82    X86_REG_DR4
83    X86_REG_DR5
84    X86_REG_DR6
85    X86_REG_DR7
86    X86_REG_FP0
87    X86_REG_FP1
88    X86_REG_FP2
89    X86_REG_FP3
90    X86_REG_FP4
91    X86_REG_FP5
92    X86_REG_FP6
93    X86_REG_FP7
94    X86_REG_K0
95    X86_REG_K1
96    X86_REG_K2
97    X86_REG_K3
98    X86_REG_K4
99    X86_REG_K5
100    X86_REG_K6
101    X86_REG_K7
102    X86_REG_MM0
103    X86_REG_MM1
104    X86_REG_MM2
105    X86_REG_MM3
106    X86_REG_MM4
107    X86_REG_MM5
108    X86_REG_MM6
109    X86_REG_MM7
110    X86_REG_R8
111    X86_REG_R9
112    X86_REG_R10
113    X86_REG_R11
114    X86_REG_R12
115    X86_REG_R13
116    X86_REG_R14
117    X86_REG_R15
118    X86_REG_ST0
119    X86_REG_ST1
120    X86_REG_ST2
121    X86_REG_ST3
122    X86_REG_ST4
123    X86_REG_ST5
124    X86_REG_ST6
125    X86_REG_ST7
126    X86_REG_XMM0
127    X86_REG_XMM1
128    X86_REG_XMM2
129    X86_REG_XMM3
130    X86_REG_XMM4
131    X86_REG_XMM5
132    X86_REG_XMM6
133    X86_REG_XMM7
134    X86_REG_XMM8
135    X86_REG_XMM9
136    X86_REG_XMM10
137    X86_REG_XMM11
138    X86_REG_XMM12
139    X86_REG_XMM13
140    X86_REG_XMM14
141    X86_REG_XMM15
142    X86_REG_XMM16
143    X86_REG_XMM17
144    X86_REG_XMM18
145    X86_REG_XMM19
146    X86_REG_XMM20
147    X86_REG_XMM21
148    X86_REG_XMM22
149    X86_REG_XMM23
150    X86_REG_XMM24
151    X86_REG_XMM25
152    X86_REG_XMM26
153    X86_REG_XMM27
154    X86_REG_XMM28
155    X86_REG_XMM29
156    X86_REG_XMM30
157    X86_REG_XMM31
158    X86_REG_YMM0
159    X86_REG_YMM1
160    X86_REG_YMM2
161    X86_REG_YMM3
162    X86_REG_YMM4
163    X86_REG_YMM5
164    X86_REG_YMM6
165    X86_REG_YMM7
166    X86_REG_YMM8
167    X86_REG_YMM9
168    X86_REG_YMM10
169    X86_REG_YMM11
170    X86_REG_YMM12
171    X86_REG_YMM13
172    X86_REG_YMM14
173    X86_REG_YMM15
174    X86_REG_YMM16
175    X86_REG_YMM17
176    X86_REG_YMM18
177    X86_REG_YMM19
178    X86_REG_YMM20
179    X86_REG_YMM21
180    X86_REG_YMM22
181    X86_REG_YMM23
182    X86_REG_YMM24
183    X86_REG_YMM25
184    X86_REG_YMM26
185    X86_REG_YMM27
186    X86_REG_YMM28
187    X86_REG_YMM29
188    X86_REG_YMM30
189    X86_REG_YMM31
190    X86_REG_ZMM0
191    X86_REG_ZMM1
192    X86_REG_ZMM2
193    X86_REG_ZMM3
194    X86_REG_ZMM4
195    X86_REG_ZMM5
196    X86_REG_ZMM6
197    X86_REG_ZMM7
198    X86_REG_ZMM8
199    X86_REG_ZMM9
200    X86_REG_ZMM10
201    X86_REG_ZMM11
202    X86_REG_ZMM12
203    X86_REG_ZMM13
204    X86_REG_ZMM14
205    X86_REG_ZMM15
206    X86_REG_ZMM16
207    X86_REG_ZMM17
208    X86_REG_ZMM18
209    X86_REG_ZMM19
210    X86_REG_ZMM20
211    X86_REG_ZMM21
212    X86_REG_ZMM22
213    X86_REG_ZMM23
214    X86_REG_ZMM24
215    X86_REG_ZMM25
216    X86_REG_ZMM26
217    X86_REG_ZMM27
218    X86_REG_ZMM28
219    X86_REG_ZMM29
220    X86_REG_ZMM30
221    X86_REG_ZMM31
222    X86_REG_R8B
223    X86_REG_R9B
224    X86_REG_R10B
225    X86_REG_R11B
226    X86_REG_R12B
227    X86_REG_R13B
228    X86_REG_R14B
229    X86_REG_R15B
230    X86_REG_R8D
231    X86_REG_R9D
232    X86_REG_R10D
233    X86_REG_R11D
234    X86_REG_R12D
235    X86_REG_R13D
236    X86_REG_R14D
237    X86_REG_R15D
238    X86_REG_R8W
239    X86_REG_R9W
240    X86_REG_R10W
241    X86_REG_R11W
242    X86_REG_R12W
243    X86_REG_R13W
244    X86_REG_R14W
245    X86_REG_R15W
246    X86_REG_ENDING          '  <-- mark    the end of  the list    of  registers
247End Enum
248
249'Operand type for instruction's operands
250Enum x86_op_type
251    X86_OP_INVALID = 0   'CS_OP_INVALID (Uninitialized).
252    X86_OP_REG           'CS_OP_REG (Register operand).
253    X86_OP_IMM           'CS_OP_IMM (Immediate operand).
254    x86_op_mem           'CS_OP_MEM (Memory operand).
255    X86_OP_FP            'CS_OP_FP  (Floating-Point operand).
256End Enum
257
258'AVX broadcast type
259Public Enum x86_avx_bcast
260    X86_AVX_BCAST_INVALID = 0 ' Uninitialized.
261    X86_AVX_BCAST_2         ' AVX512 broadcast type {1to2}
262    X86_AVX_BCAST_4         ' AVX512 broadcast type {1to4}
263    X86_AVX_BCAST_8         ' AVX512 broadcast type {1to8}
264    X86_AVX_BCAST_16        ' AVX512 broadcast type {1to16}
265End Enum
266
267
268'SSE Code Condition type
269Public Enum x86_sse_cc
270    X86_SSE_CC_INVALID = 0 ' Uninitialized.
271    X86_SSE_CC_EQ
272    X86_SSE_CC_LT
273    X86_SSE_CC_LE
274    X86_SSE_CC_UNORD
275    X86_SSE_CC_NEQ
276    X86_SSE_CC_NLT
277    X86_SSE_CC_NLE
278    X86_SSE_CC_ORD
279    X86_SSE_CC_EQ_UQ
280    X86_SSE_CC_NGE
281    X86_SSE_CC_NGT
282    X86_SSE_CC_FALSE
283    X86_SSE_CC_NEQ_OQ
284    X86_SSE_CC_GE
285    X86_SSE_CC_GT
286    X86_SSE_CC_TRUE
287End Enum
288
289'AVX Code Condition type
290Public Enum x86_avx_cc
291    X86_AVX_CC_INVALID = 0 ' Uninitialized.
292    X86_AVX_CC_EQ
293    X86_AVX_CC_LT
294    X86_AVX_CC_LE
295    X86_AVX_CC_UNORD
296    X86_AVX_CC_NEQ
297    X86_AVX_CC_NLT
298    X86_AVX_CC_NLE
299    X86_AVX_CC_ORD
300    X86_AVX_CC_EQ_UQ
301    X86_AVX_CC_NGE
302    X86_AVX_CC_NGT
303    X86_AVX_CC_FALSE
304    X86_AVX_CC_NEQ_OQ
305    X86_AVX_CC_GE
306    X86_AVX_CC_GT
307    X86_AVX_CC_TRUE
308    X86_AVX_CC_EQ_OS
309    X86_AVX_CC_LT_OQ
310    X86_AVX_CC_LE_OQ
311    X86_AVX_CC_UNORD_S
312    X86_AVX_CC_NEQ_US
313    X86_AVX_CC_NLT_UQ
314    X86_AVX_CC_NLE_UQ
315    X86_AVX_CC_ORD_S
316    X86_AVX_CC_EQ_US
317    X86_AVX_CC_NGE_UQ
318    X86_AVX_CC_NGT_UQ
319    X86_AVX_CC_FALSE_OS
320    X86_AVX_CC_NEQ_OS
321    X86_AVX_CC_GE_OQ
322    X86_AVX_CC_GT_OQ
323    X86_AVX_CC_TRUE_US
324End Enum
325
326'AVX static rounding mode type
327Public Enum x86_avx_rm
328    X86_AVX_RM_INVALID = 0 ' Uninitialized.
329    X86_AVX_RM_RN        ' Round to nearest
330    X86_AVX_RM_RD        ' Round down
331    X86_AVX_RM_RU        ' Round up
332    X86_AVX_RM_RZ        ' Round toward zero
333End Enum
334
335'Instruction prefixes - to be used in cs_x86.prefix[]
336Public Enum x86_prefix
337    X86_PREFIX_LOCK = &HF0     ' lock (cs_x86.prefix[0]
338    X86_PREFIX_REP = &HF3      ' rep (cs_x86.prefix[0]
339    X86_PREFIX_REPNE = &HF2    ' repne (cs_x86.prefix[0]
340    X86_PREFIX_CS = &H2E       ' segment override CS (cs_x86.prefix[1]
341    X86_PREFIX_SS = &H36       ' segment override SS (cs_x86.prefix[1]
342    X86_PREFIX_DS = &H3E       ' segment override DS (cs_x86.prefix[1]
343    X86_PREFIX_ES = &H26       ' segment override ES (cs_x86.prefix[1]
344    X86_PREFIX_FS = &H64       ' segment override FS (cs_x86.prefix[1]
345    X86_PREFIX_GS = &H65       ' segment override GS (cs_x86.prefix[1]
346    X86_PREFIX_OPSIZE = &H66   ' operand-size override (cs_x86.prefix[2]
347    X86_PREFIX_ADDRSIZE = &H67 ' address-size override (cs_x86.prefix[3]
348End Enum
349
350'Instruction's operand referring to memory
351'This is associated with X86_OP_MEM operand type above
352Public Type x86_op_mem
353    segment As Long  ' segment register (or X86_REG_INVALID if irrelevant) UNSIGNED
354    base As Long     ' base register (or X86_REG_INVALID if irrelevant) UNSIGNED
355    index As Long    ' index register (or X86_REG_INVALID if irrelevant) UNSIGNED
356    scale As Long    ' scale for index register
357    disp As Currency ' displacement value
358End Type
359
360'Instruction operand 48 bytes
361'typedef struct cs_x86_op {
362'        x86_op_type type;   // operand type
363'        union {
364'            x86_reg reg;    // register value for REG operand
365'            int64_t imm;        // immediate value for IMM operand
366'            double fp;      // floating point value for FP operand
367'            x86_op_mem mem;     // base/index/scale/disp value for MEM operand
368'        };
369'
370'        // size of this operand (in bytes).
371'        uint8_t size;
372'
373'        // AVX broadcast type, or 0 if irrelevant
374'        x86_avx_bcast avx_bcast;
375'
376'        // AVX zero opmask {z}
377'        bool avx_zero_opmask;
378'} cs_x86_op;
379
380'Instruction structure
381Public Type cs_x86
382    ' Instruction prefix, which can be up to 4 bytes.
383    ' A prefix byte gets value 0 when irrelevant.
384    ' prefix[0] indicates REP/REPNE/LOCK prefix (See X86_PREFIX_REP/REPNE/LOCK above)
385    ' prefix[1] indicates segment override (irrelevant for x86_64):
386    ' See X86_PREFIX_CS/SS/DS/ES/FS/GS above.
387    ' prefix[2] indicates operand-size override (X86_PREFIX_OPSIZE)
388    ' prefix[3] indicates address-size override (X86_PREFIX_ADDRSIZE)
389    prefix(0 To 3) As Byte        ' UNSIGNED
390
391    ' Instruction opcode, wich can be from 1 to 4 bytes in size.
392    ' This contains VEX opcode as well.
393    ' An trailing opcode byte gets value 0 when irrelevant.
394    opcode(0 To 3) As Byte        ' UNSIGNED
395
396    rex As Byte                   ' REX prefix: only a non-zero value is relavant for x86_64  UNSIGNED
397    addr_size As Byte             ' Address size, which can be overrided with above prefix[5].  UNSIGNED
398    modrm As Byte                 ' ModR/M byte  UNSIGNED
399    sib As Byte                   ' SIB value, or 0 when irrelevant.  UNSIGNED
400    disp As Long                  ' Displacement value, or 0 when irrelevant.
401    sib_index As x86_reg          ' SIB index register, or X86_REG_INVALID when irrelevant.
402    sib_scale As Byte             ' SIB scale. only applicable if sib_index is relavant.
403    sib_base As x86_reg           ' SIB base register, or X86_REG_INVALID when irrelevant.
404    sse_cc As x86_sse_cc          ' SSE Code Condition
405    avx_cc As x86_avx_cc          ' AVX Code Condition
406    avx_sae As Byte               ' AVX Suppress all Exception
407    avx_rm As x86_avx_rm          ' AVX static rounding mode
408    op_count As Byte              ' Number of operands of this instruction, or 0 when instruction has no operand.UNSIGNED
409
410    'operands(0 To 7) As cs_x86_op ' operands for this instruction.
411    'opBuf(0 To 383) As Byte
412
413End Type
414
415'X86 instructions
416Public Enum x86_insn
417    X86_INS_INVALID = 0
418    X86_INS_AAA
419    X86_INS_AAD
420    X86_INS_AAM
421    X86_INS_AAS
422    X86_INS_FABS
423    X86_INS_ADC
424    X86_INS_ADCX
425    X86_INS_ADD
426    X86_INS_ADDPD
427    X86_INS_ADDPS
428    X86_INS_ADDSD
429    X86_INS_ADDSS
430    X86_INS_ADDSUBPD
431    X86_INS_ADDSUBPS
432    X86_INS_FADD
433    X86_INS_FIADD
434    X86_INS_FADDP
435    X86_INS_ADOX
436    X86_INS_AESDECLAST
437    X86_INS_AESDEC
438    X86_INS_AESENCLAST
439    X86_INS_AESENC
440    X86_INS_AESIMC
441    X86_INS_AESKEYGENASSIST
442    X86_INS_AND
443    X86_INS_ANDN
444    X86_INS_ANDNPD
445    X86_INS_ANDNPS
446    X86_INS_ANDPD
447    X86_INS_ANDPS
448    X86_INS_ARPL
449    X86_INS_BEXTR
450    X86_INS_BLCFILL
451    X86_INS_BLCI
452    X86_INS_BLCIC
453    X86_INS_BLCMSK
454    X86_INS_BLCS
455    X86_INS_BLENDPD
456    X86_INS_BLENDPS
457    X86_INS_BLENDVPD
458    X86_INS_BLENDVPS
459    X86_INS_BLSFILL
460    X86_INS_BLSI
461    X86_INS_BLSIC
462    X86_INS_BLSMSK
463    X86_INS_BLSR
464    X86_INS_BOUND
465    X86_INS_BSF
466    X86_INS_BSR
467    X86_INS_BSWAP
468    X86_INS_BT
469    X86_INS_BTC
470    X86_INS_BTR
471    X86_INS_BTS
472    X86_INS_BZHI
473    X86_INS_CALL
474    X86_INS_CBW
475    X86_INS_CDQ
476    X86_INS_CDQE
477    X86_INS_FCHS
478    X86_INS_CLAC
479    X86_INS_CLC
480    X86_INS_CLD
481    X86_INS_CLFLUSH
482    X86_INS_CLGI
483    X86_INS_CLI
484    X86_INS_CLTS
485    X86_INS_CMC
486    X86_INS_CMOVA
487    X86_INS_CMOVAE
488    X86_INS_CMOVB
489    X86_INS_CMOVBE
490    X86_INS_FCMOVBE
491    X86_INS_FCMOVB
492    X86_INS_CMOVE
493    X86_INS_FCMOVE
494    X86_INS_CMOVG
495    X86_INS_CMOVGE
496    X86_INS_CMOVL
497    X86_INS_CMOVLE
498    X86_INS_FCMOVNBE
499    X86_INS_FCMOVNB
500    X86_INS_CMOVNE
501    X86_INS_FCMOVNE
502    X86_INS_CMOVNO
503    X86_INS_CMOVNP
504    X86_INS_FCMOVNU
505    X86_INS_CMOVNS
506    X86_INS_CMOVO
507    X86_INS_CMOVP
508    X86_INS_FCMOVU
509    X86_INS_CMOVS
510    X86_INS_CMP
511    X86_INS_CMPPD
512    X86_INS_CMPPS
513    X86_INS_CMPSB
514    X86_INS_CMPSD
515    X86_INS_CMPSQ
516    X86_INS_CMPSS
517    X86_INS_CMPSW
518    X86_INS_CMPXCHG16B
519    X86_INS_CMPXCHG
520    X86_INS_CMPXCHG8B
521    X86_INS_COMISD
522    X86_INS_COMISS
523    X86_INS_FCOMP
524    X86_INS_FCOMPI
525    X86_INS_FCOMI
526    X86_INS_FCOM
527    X86_INS_FCOS
528    X86_INS_CPUID
529    X86_INS_CQO
530    X86_INS_CRC32
531    X86_INS_CVTDQ2PD
532    X86_INS_CVTDQ2PS
533    X86_INS_CVTPD2DQ
534    X86_INS_CVTPD2PS
535    X86_INS_CVTPS2DQ
536    X86_INS_CVTPS2PD
537    X86_INS_CVTSD2SI
538    X86_INS_CVTSD2SS
539    X86_INS_CVTSI2SD
540    X86_INS_CVTSI2SS
541    X86_INS_CVTSS2SD
542    X86_INS_CVTSS2SI
543    X86_INS_CVTTPD2DQ
544    X86_INS_CVTTPS2DQ
545    X86_INS_CVTTSD2SI
546    X86_INS_CVTTSS2SI
547    X86_INS_CWD
548    X86_INS_CWDE
549    X86_INS_DAA
550    X86_INS_DAS
551    X86_INS_DATA16
552    X86_INS_DEC
553    X86_INS_DIV
554    X86_INS_DIVPD
555    X86_INS_DIVPS
556    X86_INS_FDIVR
557    X86_INS_FIDIVR
558    X86_INS_FDIVRP
559    X86_INS_DIVSD
560    X86_INS_DIVSS
561    X86_INS_FDIV
562    X86_INS_FIDIV
563    X86_INS_FDIVP
564    X86_INS_DPPD
565    X86_INS_DPPS
566    X86_INS_RET
567    X86_INS_ENCLS
568    X86_INS_ENCLU
569    X86_INS_ENTER
570    X86_INS_EXTRACTPS
571    X86_INS_EXTRQ
572    X86_INS_F2XM1
573    X86_INS_LCALL
574    X86_INS_LJMP
575    X86_INS_FBLD
576    X86_INS_FBSTP
577    X86_INS_FCOMPP
578    X86_INS_FDECSTP
579    X86_INS_FEMMS
580    X86_INS_FFREE
581    X86_INS_FICOM
582    X86_INS_FICOMP
583    X86_INS_FINCSTP
584    X86_INS_FLDCW
585    X86_INS_FLDENV
586    X86_INS_FLDL2E
587    X86_INS_FLDL2T
588    X86_INS_FLDLG2
589    X86_INS_FLDLN2
590    X86_INS_FLDPI
591    X86_INS_FNCLEX
592    X86_INS_FNINIT
593    X86_INS_FNOP
594    X86_INS_FNSTCW
595    X86_INS_FNSTSW
596    X86_INS_FPATAN
597    X86_INS_FPREM
598    X86_INS_FPREM1
599    X86_INS_FPTAN
600    X86_INS_FRNDINT
601    X86_INS_FRSTOR
602    X86_INS_FNSAVE
603    X86_INS_FSCALE
604    X86_INS_FSETPM
605    X86_INS_FSINCOS
606    X86_INS_FNSTENV
607    X86_INS_FXAM
608    X86_INS_FXRSTOR
609    X86_INS_FXRSTOR64
610    X86_INS_FXSAVE
611    X86_INS_FXSAVE64
612    X86_INS_FXTRACT
613    X86_INS_FYL2X
614    X86_INS_FYL2XP1
615    X86_INS_MOVAPD
616    X86_INS_MOVAPS
617    X86_INS_ORPD
618    X86_INS_ORPS
619    X86_INS_VMOVAPD
620    X86_INS_VMOVAPS
621    X86_INS_XORPD
622    X86_INS_XORPS
623    X86_INS_GETSEC
624    X86_INS_HADDPD
625    X86_INS_HADDPS
626    X86_INS_HLT
627    X86_INS_HSUBPD
628    X86_INS_HSUBPS
629    X86_INS_IDIV
630    X86_INS_FILD
631    X86_INS_IMUL
632    X86_INS_IN
633    X86_INS_INC
634    X86_INS_INSB
635    X86_INS_INSERTPS
636    X86_INS_INSERTQ
637    X86_INS_INSD
638    X86_INS_INSW
639    X86_INS_INT
640    X86_INS_INT1
641    X86_INS_INT3
642    X86_INS_INTO
643    X86_INS_INVD
644    X86_INS_INVEPT
645    X86_INS_INVLPG
646    X86_INS_INVLPGA
647    X86_INS_INVPCID
648    X86_INS_INVVPID
649    X86_INS_IRET
650    X86_INS_IRETD
651    X86_INS_IRETQ
652    X86_INS_FISTTP
653    X86_INS_FIST
654    X86_INS_FISTP
655    X86_INS_UCOMISD
656    X86_INS_UCOMISS
657    X86_INS_VCMP
658    X86_INS_VCOMISD
659    X86_INS_VCOMISS
660    X86_INS_VCVTSD2SS
661    X86_INS_VCVTSI2SD
662    X86_INS_VCVTSI2SS
663    X86_INS_VCVTSS2SD
664    X86_INS_VCVTTSD2SI
665    X86_INS_VCVTTSD2USI
666    X86_INS_VCVTTSS2SI
667    X86_INS_VCVTTSS2USI
668    X86_INS_VCVTUSI2SD
669    X86_INS_VCVTUSI2SS
670    X86_INS_VUCOMISD
671    X86_INS_VUCOMISS
672    X86_INS_JAE
673    X86_INS_JA
674    X86_INS_JBE
675    X86_INS_JB
676    X86_INS_JCXZ
677    X86_INS_JECXZ
678    X86_INS_JE
679    X86_INS_JGE
680    X86_INS_JG
681    X86_INS_JLE
682    X86_INS_JL
683    X86_INS_JMP
684    X86_INS_JNE
685    X86_INS_JNO
686    X86_INS_JNP
687    X86_INS_JNS
688    X86_INS_JO
689    X86_INS_JP
690    X86_INS_JRCXZ
691    X86_INS_JS
692    X86_INS_KANDB
693    X86_INS_KANDD
694    X86_INS_KANDNB
695    X86_INS_KANDND
696    X86_INS_KANDNQ
697    X86_INS_KANDNW
698    X86_INS_KANDQ
699    X86_INS_KANDW
700    X86_INS_KMOVB
701    X86_INS_KMOVD
702    X86_INS_KMOVQ
703    X86_INS_KMOVW
704    X86_INS_KNOTB
705    X86_INS_KNOTD
706    X86_INS_KNOTQ
707    X86_INS_KNOTW
708    X86_INS_KORB
709    X86_INS_KORD
710    X86_INS_KORQ
711    X86_INS_KORTESTW
712    X86_INS_KORW
713    X86_INS_KSHIFTLW
714    X86_INS_KSHIFTRW
715    X86_INS_KUNPCKBW
716    X86_INS_KXNORB
717    X86_INS_KXNORD
718    X86_INS_KXNORQ
719    X86_INS_KXNORW
720    X86_INS_KXORB
721    X86_INS_KXORD
722    X86_INS_KXORQ
723    X86_INS_KXORW
724    X86_INS_LAHF
725    X86_INS_LAR
726    X86_INS_LDDQU
727    X86_INS_LDMXCSR
728    X86_INS_LDS
729    X86_INS_FLDZ
730    X86_INS_FLD1
731    X86_INS_FLD
732    X86_INS_LEA
733    X86_INS_LEAVE
734    X86_INS_LES
735    X86_INS_LFENCE
736    X86_INS_LFS
737    X86_INS_LGDT
738    X86_INS_LGS
739    X86_INS_LIDT
740    X86_INS_LLDT
741    X86_INS_LMSW
742    X86_INS_OR
743    X86_INS_SUB
744    X86_INS_XOR
745    X86_INS_LODSB
746    X86_INS_LODSD
747    X86_INS_LODSQ
748    X86_INS_LODSW
749    X86_INS_LOOP
750    X86_INS_LOOPE
751    X86_INS_LOOPNE
752    X86_INS_RETF
753    X86_INS_RETFQ
754    X86_INS_LSL
755    X86_INS_LSS
756    X86_INS_LTR
757    X86_INS_XADD
758    X86_INS_LZCNT
759    X86_INS_MASKMOVDQU
760    X86_INS_MAXPD
761    X86_INS_MAXPS
762    X86_INS_MAXSD
763    X86_INS_MAXSS
764    X86_INS_MFENCE
765    X86_INS_MINPD
766    X86_INS_MINPS
767    X86_INS_MINSD
768    X86_INS_MINSS
769    X86_INS_CVTPD2PI
770    X86_INS_CVTPI2PD
771    X86_INS_CVTPI2PS
772    X86_INS_CVTPS2PI
773    X86_INS_CVTTPD2PI
774    X86_INS_CVTTPS2PI
775    X86_INS_EMMS
776    X86_INS_MASKMOVQ
777    X86_INS_MOVD
778    X86_INS_MOVDQ2Q
779    X86_INS_MOVNTQ
780    X86_INS_MOVQ2DQ
781    X86_INS_MOVQ
782    X86_INS_PABSB
783    X86_INS_PABSD
784    X86_INS_PABSW
785    X86_INS_PACKSSDW
786    X86_INS_PACKSSWB
787    X86_INS_PACKUSWB
788    X86_INS_PADDB
789    X86_INS_PADDD
790    X86_INS_PADDQ
791    X86_INS_PADDSB
792    X86_INS_PADDSW
793    X86_INS_PADDUSB
794    X86_INS_PADDUSW
795    X86_INS_PADDW
796    X86_INS_PALIGNR
797    X86_INS_PANDN
798    X86_INS_PAND
799    X86_INS_PAVGB
800    X86_INS_PAVGW
801    X86_INS_PCMPEQB
802    X86_INS_PCMPEQD
803    X86_INS_PCMPEQW
804    X86_INS_PCMPGTB
805    X86_INS_PCMPGTD
806    X86_INS_PCMPGTW
807    X86_INS_PEXTRW
808    X86_INS_PHADDSW
809    X86_INS_PHADDW
810    X86_INS_PHADDD
811    X86_INS_PHSUBD
812    X86_INS_PHSUBSW
813    X86_INS_PHSUBW
814    X86_INS_PINSRW
815    X86_INS_PMADDUBSW
816    X86_INS_PMADDWD
817    X86_INS_PMAXSW
818    X86_INS_PMAXUB
819    X86_INS_PMINSW
820    X86_INS_PMINUB
821    X86_INS_PMOVMSKB
822    X86_INS_PMULHRSW
823    X86_INS_PMULHUW
824    X86_INS_PMULHW
825    X86_INS_PMULLW
826    X86_INS_PMULUDQ
827    X86_INS_POR
828    X86_INS_PSADBW
829    X86_INS_PSHUFB
830    X86_INS_PSHUFW
831    X86_INS_PSIGNB
832    X86_INS_PSIGND
833    X86_INS_PSIGNW
834    X86_INS_PSLLD
835    X86_INS_PSLLQ
836    X86_INS_PSLLW
837    X86_INS_PSRAD
838    X86_INS_PSRAW
839    X86_INS_PSRLD
840    X86_INS_PSRLQ
841    X86_INS_PSRLW
842    X86_INS_PSUBB
843    X86_INS_PSUBD
844    X86_INS_PSUBQ
845    X86_INS_PSUBSB
846    X86_INS_PSUBSW
847    X86_INS_PSUBUSB
848    X86_INS_PSUBUSW
849    X86_INS_PSUBW
850    X86_INS_PUNPCKHBW
851    X86_INS_PUNPCKHDQ
852    X86_INS_PUNPCKHWD
853    X86_INS_PUNPCKLBW
854    X86_INS_PUNPCKLDQ
855    X86_INS_PUNPCKLWD
856    X86_INS_PXOR
857    X86_INS_MONITOR
858    X86_INS_MONTMUL
859    X86_INS_MOV
860    X86_INS_MOVABS
861    X86_INS_MOVBE
862    X86_INS_MOVDDUP
863    X86_INS_MOVDQA
864    X86_INS_MOVDQU
865    X86_INS_MOVHLPS
866    X86_INS_MOVHPD
867    X86_INS_MOVHPS
868    X86_INS_MOVLHPS
869    X86_INS_MOVLPD
870    X86_INS_MOVLPS
871    X86_INS_MOVMSKPD
872    X86_INS_MOVMSKPS
873    X86_INS_MOVNTDQA
874    X86_INS_MOVNTDQ
875    X86_INS_MOVNTI
876    X86_INS_MOVNTPD
877    X86_INS_MOVNTPS
878    X86_INS_MOVNTSD
879    X86_INS_MOVNTSS
880    X86_INS_MOVSB
881    X86_INS_MOVSD
882    X86_INS_MOVSHDUP
883    X86_INS_MOVSLDUP
884    X86_INS_MOVSQ
885    X86_INS_MOVSS
886    X86_INS_MOVSW
887    X86_INS_MOVSX
888    X86_INS_MOVSXD
889    X86_INS_MOVUPD
890    X86_INS_MOVUPS
891    X86_INS_MOVZX
892    X86_INS_MPSADBW
893    X86_INS_MUL
894    X86_INS_MULPD
895    X86_INS_MULPS
896    X86_INS_MULSD
897    X86_INS_MULSS
898    X86_INS_MULX
899    X86_INS_FMUL
900    X86_INS_FIMUL
901    X86_INS_FMULP
902    X86_INS_MWAIT
903    X86_INS_NEG
904    X86_INS_NOP
905    X86_INS_NOT
906    X86_INS_OUT
907    X86_INS_OUTSB
908    X86_INS_OUTSD
909    X86_INS_OUTSW
910    X86_INS_PACKUSDW
911    X86_INS_PAUSE
912    X86_INS_PAVGUSB
913    X86_INS_PBLENDVB
914    X86_INS_PBLENDW
915    X86_INS_PCLMULQDQ
916    X86_INS_PCMPEQQ
917    X86_INS_PCMPESTRI
918    X86_INS_PCMPESTRM
919    X86_INS_PCMPGTQ
920    X86_INS_PCMPISTRI
921    X86_INS_PCMPISTRM
922    X86_INS_PDEP
923    X86_INS_PEXT
924    X86_INS_PEXTRB
925    X86_INS_PEXTRD
926    X86_INS_PEXTRQ
927    X86_INS_PF2ID
928    X86_INS_PF2IW
929    X86_INS_PFACC
930    X86_INS_PFADD
931    X86_INS_PFCMPEQ
932    X86_INS_PFCMPGE
933    X86_INS_PFCMPGT
934    X86_INS_PFMAX
935    X86_INS_PFMIN
936    X86_INS_PFMUL
937    X86_INS_PFNACC
938    X86_INS_PFPNACC
939    X86_INS_PFRCPIT1
940    X86_INS_PFRCPIT2
941    X86_INS_PFRCP
942    X86_INS_PFRSQIT1
943    X86_INS_PFRSQRT
944    X86_INS_PFSUBR
945    X86_INS_PFSUB
946    X86_INS_PHMINPOSUW
947    X86_INS_PI2FD
948    X86_INS_PI2FW
949    X86_INS_PINSRB
950    X86_INS_PINSRD
951    X86_INS_PINSRQ
952    X86_INS_PMAXSB
953    X86_INS_PMAXSD
954    X86_INS_PMAXUD
955    X86_INS_PMAXUW
956    X86_INS_PMINSB
957    X86_INS_PMINSD
958    X86_INS_PMINUD
959    X86_INS_PMINUW
960    X86_INS_PMOVSXBD
961    X86_INS_PMOVSXBQ
962    X86_INS_PMOVSXBW
963    X86_INS_PMOVSXDQ
964    X86_INS_PMOVSXWD
965    X86_INS_PMOVSXWQ
966    X86_INS_PMOVZXBD
967    X86_INS_PMOVZXBQ
968    X86_INS_PMOVZXBW
969    X86_INS_PMOVZXDQ
970    X86_INS_PMOVZXWD
971    X86_INS_PMOVZXWQ
972    X86_INS_PMULDQ
973    X86_INS_PMULHRW
974    X86_INS_PMULLD
975    X86_INS_POP
976    X86_INS_POPAW
977    X86_INS_POPAL
978    X86_INS_POPCNT
979    X86_INS_POPF
980    X86_INS_POPFD
981    X86_INS_POPFQ
982    X86_INS_PREFETCH
983    X86_INS_PREFETCHNTA
984    X86_INS_PREFETCHT0
985    X86_INS_PREFETCHT1
986    X86_INS_PREFETCHT2
987    X86_INS_PREFETCHW
988    X86_INS_PSHUFD
989    X86_INS_PSHUFHW
990    X86_INS_PSHUFLW
991    X86_INS_PSLLDQ
992    X86_INS_PSRLDQ
993    X86_INS_PSWAPD
994    X86_INS_PTEST
995    X86_INS_PUNPCKHQDQ
996    X86_INS_PUNPCKLQDQ
997    X86_INS_PUSH
998    X86_INS_PUSHAW
999    X86_INS_PUSHAL
1000    X86_INS_PUSHF
1001    X86_INS_PUSHFD
1002    X86_INS_PUSHFQ
1003    X86_INS_RCL
1004    X86_INS_RCPPS
1005    X86_INS_RCPSS
1006    X86_INS_RCR
1007    X86_INS_RDFSBASE
1008    X86_INS_RDGSBASE
1009    X86_INS_RDMSR
1010    X86_INS_RDPMC
1011    X86_INS_RDRAND
1012    X86_INS_RDSEED
1013    X86_INS_RDTSC
1014    X86_INS_RDTSCP
1015    X86_INS_ROL
1016    X86_INS_ROR
1017    X86_INS_RORX
1018    X86_INS_ROUNDPD
1019    X86_INS_ROUNDPS
1020    X86_INS_ROUNDSD
1021    X86_INS_ROUNDSS
1022    X86_INS_RSM
1023    X86_INS_RSQRTPS
1024    X86_INS_RSQRTSS
1025    X86_INS_SAHF
1026    X86_INS_SAL
1027    X86_INS_SALC
1028    X86_INS_SAR
1029    X86_INS_SARX
1030    X86_INS_SBB
1031    X86_INS_SCASB
1032    X86_INS_SCASD
1033    X86_INS_SCASQ
1034    X86_INS_SCASW
1035    X86_INS_SETAE
1036    X86_INS_SETA
1037    X86_INS_SETBE
1038    X86_INS_SETB
1039    X86_INS_SETE
1040    X86_INS_SETGE
1041    X86_INS_SETG
1042    X86_INS_SETLE
1043    X86_INS_SETL
1044    X86_INS_SETNE
1045    X86_INS_SETNO
1046    X86_INS_SETNP
1047    X86_INS_SETNS
1048    X86_INS_SETO
1049    X86_INS_SETP
1050    X86_INS_SETS
1051    X86_INS_SFENCE
1052    X86_INS_SGDT
1053    X86_INS_SHA1MSG1
1054    X86_INS_SHA1MSG2
1055    X86_INS_SHA1NEXTE
1056    X86_INS_SHA1RNDS4
1057    X86_INS_SHA256MSG1
1058    X86_INS_SHA256MSG2
1059    X86_INS_SHA256RNDS2
1060    X86_INS_SHL
1061    X86_INS_SHLD
1062    X86_INS_SHLX
1063    X86_INS_SHR
1064    X86_INS_SHRD
1065    X86_INS_SHRX
1066    X86_INS_SHUFPD
1067    X86_INS_SHUFPS
1068    X86_INS_SIDT
1069    X86_INS_FSIN
1070    X86_INS_SKINIT
1071    X86_INS_SLDT
1072    X86_INS_SMSW
1073    X86_INS_SQRTPD
1074    X86_INS_SQRTPS
1075    X86_INS_SQRTSD
1076    X86_INS_SQRTSS
1077    X86_INS_FSQRT
1078    X86_INS_STAC
1079    X86_INS_STC
1080    X86_INS_STD
1081    X86_INS_STGI
1082    X86_INS_STI
1083    X86_INS_STMXCSR
1084    X86_INS_STOSB
1085    X86_INS_STOSD
1086    X86_INS_STOSQ
1087    X86_INS_STOSW
1088    X86_INS_STR
1089    X86_INS_FST
1090    X86_INS_FSTP
1091    X86_INS_FSTPNCE
1092    X86_INS_SUBPD
1093    X86_INS_SUBPS
1094    X86_INS_FSUBR
1095    X86_INS_FISUBR
1096    X86_INS_FSUBRP
1097    X86_INS_SUBSD
1098    X86_INS_SUBSS
1099    X86_INS_FSUB
1100    X86_INS_FISUB
1101    X86_INS_FSUBP
1102    X86_INS_SWAPGS
1103    X86_INS_SYSCALL
1104    X86_INS_SYSENTER
1105    X86_INS_SYSEXIT
1106    X86_INS_SYSRET
1107    X86_INS_T1MSKC
1108    X86_INS_TEST
1109    X86_INS_UD2
1110    X86_INS_FTST
1111    X86_INS_TZCNT
1112    X86_INS_TZMSK
1113    X86_INS_FUCOMPI
1114    X86_INS_FUCOMI
1115    X86_INS_FUCOMPP
1116    X86_INS_FUCOMP
1117    X86_INS_FUCOM
1118    X86_INS_UD2B
1119    X86_INS_UNPCKHPD
1120    X86_INS_UNPCKHPS
1121    X86_INS_UNPCKLPD
1122    X86_INS_UNPCKLPS
1123    X86_INS_VADDPD
1124    X86_INS_VADDPS
1125    X86_INS_VADDSD
1126    X86_INS_VADDSS
1127    X86_INS_VADDSUBPD
1128    X86_INS_VADDSUBPS
1129    X86_INS_VAESDECLAST
1130    X86_INS_VAESDEC
1131    X86_INS_VAESENCLAST
1132    X86_INS_VAESENC
1133    X86_INS_VAESIMC
1134    X86_INS_VAESKEYGENASSIST
1135    X86_INS_VALIGND
1136    X86_INS_VALIGNQ
1137    X86_INS_VANDNPD
1138    X86_INS_VANDNPS
1139    X86_INS_VANDPD
1140    X86_INS_VANDPS
1141    X86_INS_VBLENDMPD
1142    X86_INS_VBLENDMPS
1143    X86_INS_VBLENDPD
1144    X86_INS_VBLENDPS
1145    X86_INS_VBLENDVPD
1146    X86_INS_VBLENDVPS
1147    X86_INS_VBROADCASTF128
1148    X86_INS_VBROADCASTI128
1149    X86_INS_VBROADCASTI32X4
1150    X86_INS_VBROADCASTI64X4
1151    X86_INS_VBROADCASTSD
1152    X86_INS_VBROADCASTSS
1153    X86_INS_VCMPPD
1154    X86_INS_VCMPPS
1155    X86_INS_VCMPSD
1156    X86_INS_VCMPSS
1157    X86_INS_VCVTDQ2PD
1158    X86_INS_VCVTDQ2PS
1159    X86_INS_VCVTPD2DQX
1160    X86_INS_VCVTPD2DQ
1161    X86_INS_VCVTPD2PSX
1162    X86_INS_VCVTPD2PS
1163    X86_INS_VCVTPD2UDQ
1164    X86_INS_VCVTPH2PS
1165    X86_INS_VCVTPS2DQ
1166    X86_INS_VCVTPS2PD
1167    X86_INS_VCVTPS2PH
1168    X86_INS_VCVTPS2UDQ
1169    X86_INS_VCVTSD2SI
1170    X86_INS_VCVTSD2USI
1171    X86_INS_VCVTSS2SI
1172    X86_INS_VCVTSS2USI
1173    X86_INS_VCVTTPD2DQX
1174    X86_INS_VCVTTPD2DQ
1175    X86_INS_VCVTTPD2UDQ
1176    X86_INS_VCVTTPS2DQ
1177    X86_INS_VCVTTPS2UDQ
1178    X86_INS_VCVTUDQ2PD
1179    X86_INS_VCVTUDQ2PS
1180    X86_INS_VDIVPD
1181    X86_INS_VDIVPS
1182    X86_INS_VDIVSD
1183    X86_INS_VDIVSS
1184    X86_INS_VDPPD
1185    X86_INS_VDPPS
1186    X86_INS_VERR
1187    X86_INS_VERW
1188    X86_INS_VEXTRACTF128
1189    X86_INS_VEXTRACTF32X4
1190    X86_INS_VEXTRACTF64X4
1191    X86_INS_VEXTRACTI128
1192    X86_INS_VEXTRACTI32X4
1193    X86_INS_VEXTRACTI64X4
1194    X86_INS_VEXTRACTPS
1195    X86_INS_VFMADD132PD
1196    X86_INS_VFMADD132PS
1197    X86_INS_VFMADD213PD
1198    X86_INS_VFMADD213PS
1199    X86_INS_VFMADDPD
1200    X86_INS_VFMADD231PD
1201    X86_INS_VFMADDPS
1202    X86_INS_VFMADD231PS
1203    X86_INS_VFMADDSD
1204    X86_INS_VFMADD213SD
1205    X86_INS_VFMADD132SD
1206    X86_INS_VFMADD231SD
1207    X86_INS_VFMADDSS
1208    X86_INS_VFMADD213SS
1209    X86_INS_VFMADD132SS
1210    X86_INS_VFMADD231SS
1211    X86_INS_VFMADDSUB132PD
1212    X86_INS_VFMADDSUB132PS
1213    X86_INS_VFMADDSUB213PD
1214    X86_INS_VFMADDSUB213PS
1215    X86_INS_VFMADDSUBPD
1216    X86_INS_VFMADDSUB231PD
1217    X86_INS_VFMADDSUBPS
1218    X86_INS_VFMADDSUB231PS
1219    X86_INS_VFMSUB132PD
1220    X86_INS_VFMSUB132PS
1221    X86_INS_VFMSUB213PD
1222    X86_INS_VFMSUB213PS
1223    X86_INS_VFMSUBADD132PD
1224    X86_INS_VFMSUBADD132PS
1225    X86_INS_VFMSUBADD213PD
1226    X86_INS_VFMSUBADD213PS
1227    X86_INS_VFMSUBADDPD
1228    X86_INS_VFMSUBADD231PD
1229    X86_INS_VFMSUBADDPS
1230    X86_INS_VFMSUBADD231PS
1231    X86_INS_VFMSUBPD
1232    X86_INS_VFMSUB231PD
1233    X86_INS_VFMSUBPS
1234    X86_INS_VFMSUB231PS
1235    X86_INS_VFMSUBSD
1236    X86_INS_VFMSUB213SD
1237    X86_INS_VFMSUB132SD
1238    X86_INS_VFMSUB231SD
1239    X86_INS_VFMSUBSS
1240    X86_INS_VFMSUB213SS
1241    X86_INS_VFMSUB132SS
1242    X86_INS_VFMSUB231SS
1243    X86_INS_VFNMADD132PD
1244    X86_INS_VFNMADD132PS
1245    X86_INS_VFNMADD213PD
1246    X86_INS_VFNMADD213PS
1247    X86_INS_VFNMADDPD
1248    X86_INS_VFNMADD231PD
1249    X86_INS_VFNMADDPS
1250    X86_INS_VFNMADD231PS
1251    X86_INS_VFNMADDSD
1252    X86_INS_VFNMADD213SD
1253    X86_INS_VFNMADD132SD
1254    X86_INS_VFNMADD231SD
1255    X86_INS_VFNMADDSS
1256    X86_INS_VFNMADD213SS
1257    X86_INS_VFNMADD132SS
1258    X86_INS_VFNMADD231SS
1259    X86_INS_VFNMSUB132PD
1260    X86_INS_VFNMSUB132PS
1261    X86_INS_VFNMSUB213PD
1262    X86_INS_VFNMSUB213PS
1263    X86_INS_VFNMSUBPD
1264    X86_INS_VFNMSUB231PD
1265    X86_INS_VFNMSUBPS
1266    X86_INS_VFNMSUB231PS
1267    X86_INS_VFNMSUBSD
1268    X86_INS_VFNMSUB213SD
1269    X86_INS_VFNMSUB132SD
1270    X86_INS_VFNMSUB231SD
1271    X86_INS_VFNMSUBSS
1272    X86_INS_VFNMSUB213SS
1273    X86_INS_VFNMSUB132SS
1274    X86_INS_VFNMSUB231SS
1275    X86_INS_VFRCZPD
1276    X86_INS_VFRCZPS
1277    X86_INS_VFRCZSD
1278    X86_INS_VFRCZSS
1279    X86_INS_VORPD
1280    X86_INS_VORPS
1281    X86_INS_VXORPD
1282    X86_INS_VXORPS
1283    X86_INS_VGATHERDPD
1284    X86_INS_VGATHERDPS
1285    X86_INS_VGATHERPF0DPD
1286    X86_INS_VGATHERPF0DPS
1287    X86_INS_VGATHERPF0QPD
1288    X86_INS_VGATHERPF0QPS
1289    X86_INS_VGATHERPF1DPD
1290    X86_INS_VGATHERPF1DPS
1291    X86_INS_VGATHERPF1QPD
1292    X86_INS_VGATHERPF1QPS
1293    X86_INS_VGATHERQPD
1294    X86_INS_VGATHERQPS
1295    X86_INS_VHADDPD
1296    X86_INS_VHADDPS
1297    X86_INS_VHSUBPD
1298    X86_INS_VHSUBPS
1299    X86_INS_VINSERTF128
1300    X86_INS_VINSERTF32X4
1301    X86_INS_VINSERTF64X4
1302    X86_INS_VINSERTI128
1303    X86_INS_VINSERTI32X4
1304    X86_INS_VINSERTI64X4
1305    X86_INS_VINSERTPS
1306    X86_INS_VLDDQU
1307    X86_INS_VLDMXCSR
1308    X86_INS_VMASKMOVDQU
1309    X86_INS_VMASKMOVPD
1310    X86_INS_VMASKMOVPS
1311    X86_INS_VMAXPD
1312    X86_INS_VMAXPS
1313    X86_INS_VMAXSD
1314    X86_INS_VMAXSS
1315    X86_INS_VMCALL
1316    X86_INS_VMCLEAR
1317    X86_INS_VMFUNC
1318    X86_INS_VMINPD
1319    X86_INS_VMINPS
1320    X86_INS_VMINSD
1321    X86_INS_VMINSS
1322    X86_INS_VMLAUNCH
1323    X86_INS_VMLOAD
1324    X86_INS_VMMCALL
1325    X86_INS_VMOVQ
1326    X86_INS_VMOVDDUP
1327    X86_INS_VMOVD
1328    X86_INS_VMOVDQA32
1329    X86_INS_VMOVDQA64
1330    X86_INS_VMOVDQA
1331    X86_INS_VMOVDQU16
1332    X86_INS_VMOVDQU32
1333    X86_INS_VMOVDQU64
1334    X86_INS_VMOVDQU8
1335    X86_INS_VMOVDQU
1336    X86_INS_VMOVHLPS
1337    X86_INS_VMOVHPD
1338    X86_INS_VMOVHPS
1339    X86_INS_VMOVLHPS
1340    X86_INS_VMOVLPD
1341    X86_INS_VMOVLPS
1342    X86_INS_VMOVMSKPD
1343    X86_INS_VMOVMSKPS
1344    X86_INS_VMOVNTDQA
1345    X86_INS_VMOVNTDQ
1346    X86_INS_VMOVNTPD
1347    X86_INS_VMOVNTPS
1348    X86_INS_VMOVSD
1349    X86_INS_VMOVSHDUP
1350    X86_INS_VMOVSLDUP
1351    X86_INS_VMOVSS
1352    X86_INS_VMOVUPD
1353    X86_INS_VMOVUPS
1354    X86_INS_VMPSADBW
1355    X86_INS_VMPTRLD
1356    X86_INS_VMPTRST
1357    X86_INS_VMREAD
1358    X86_INS_VMRESUME
1359    X86_INS_VMRUN
1360    X86_INS_VMSAVE
1361    X86_INS_VMULPD
1362    X86_INS_VMULPS
1363    X86_INS_VMULSD
1364    X86_INS_VMULSS
1365    X86_INS_VMWRITE
1366    X86_INS_VMXOFF
1367    X86_INS_VMXON
1368    X86_INS_VPABSB
1369    X86_INS_VPABSD
1370    X86_INS_VPABSQ
1371    X86_INS_VPABSW
1372    X86_INS_VPACKSSDW
1373    X86_INS_VPACKSSWB
1374    X86_INS_VPACKUSDW
1375    X86_INS_VPACKUSWB
1376    X86_INS_VPADDB
1377    X86_INS_VPADDD
1378    X86_INS_VPADDQ
1379    X86_INS_VPADDSB
1380    X86_INS_VPADDSW
1381    X86_INS_VPADDUSB
1382    X86_INS_VPADDUSW
1383    X86_INS_VPADDW
1384    X86_INS_VPALIGNR
1385    X86_INS_VPANDD
1386    X86_INS_VPANDND
1387    X86_INS_VPANDNQ
1388    X86_INS_VPANDN
1389    X86_INS_VPANDQ
1390    X86_INS_VPAND
1391    X86_INS_VPAVGB
1392    X86_INS_VPAVGW
1393    X86_INS_VPBLENDD
1394    X86_INS_VPBLENDMD
1395    X86_INS_VPBLENDMQ
1396    X86_INS_VPBLENDVB
1397    X86_INS_VPBLENDW
1398    X86_INS_VPBROADCASTB
1399    X86_INS_VPBROADCASTD
1400    X86_INS_VPBROADCASTMB2Q
1401    X86_INS_VPBROADCASTMW2D
1402    X86_INS_VPBROADCASTQ
1403    X86_INS_VPBROADCASTW
1404    X86_INS_VPCLMULQDQ
1405    X86_INS_VPCMOV
1406    X86_INS_VPCMP
1407    X86_INS_VPCMPD
1408    X86_INS_VPCMPEQB
1409    X86_INS_VPCMPEQD
1410    X86_INS_VPCMPEQQ
1411    X86_INS_VPCMPEQW
1412    X86_INS_VPCMPESTRI
1413    X86_INS_VPCMPESTRM
1414    X86_INS_VPCMPGTB
1415    X86_INS_VPCMPGTD
1416    X86_INS_VPCMPGTQ
1417    X86_INS_VPCMPGTW
1418    X86_INS_VPCMPISTRI
1419    X86_INS_VPCMPISTRM
1420    X86_INS_VPCMPQ
1421    X86_INS_VPCMPUD
1422    X86_INS_VPCMPUQ
1423    X86_INS_VPCOMB
1424    X86_INS_VPCOMD
1425    X86_INS_VPCOMQ
1426    X86_INS_VPCOMUB
1427    X86_INS_VPCOMUD
1428    X86_INS_VPCOMUQ
1429    X86_INS_VPCOMUW
1430    X86_INS_VPCOMW
1431    X86_INS_VPCONFLICTD
1432    X86_INS_VPCONFLICTQ
1433    X86_INS_VPERM2F128
1434    X86_INS_VPERM2I128
1435    X86_INS_VPERMD
1436    X86_INS_VPERMI2D
1437    X86_INS_VPERMI2PD
1438    X86_INS_VPERMI2PS
1439    X86_INS_VPERMI2Q
1440    X86_INS_VPERMIL2PD
1441    X86_INS_VPERMIL2PS
1442    X86_INS_VPERMILPD
1443    X86_INS_VPERMILPS
1444    X86_INS_VPERMPD
1445    X86_INS_VPERMPS
1446    X86_INS_VPERMQ
1447    X86_INS_VPERMT2D
1448    X86_INS_VPERMT2PD
1449    X86_INS_VPERMT2PS
1450    X86_INS_VPERMT2Q
1451    X86_INS_VPEXTRB
1452    X86_INS_VPEXTRD
1453    X86_INS_VPEXTRQ
1454    X86_INS_VPEXTRW
1455    X86_INS_VPGATHERDD
1456    X86_INS_VPGATHERDQ
1457    X86_INS_VPGATHERQD
1458    X86_INS_VPGATHERQQ
1459    X86_INS_VPHADDBD
1460    X86_INS_VPHADDBQ
1461    X86_INS_VPHADDBW
1462    X86_INS_VPHADDDQ
1463    X86_INS_VPHADDD
1464    X86_INS_VPHADDSW
1465    X86_INS_VPHADDUBD
1466    X86_INS_VPHADDUBQ
1467    X86_INS_VPHADDUBW
1468    X86_INS_VPHADDUDQ
1469    X86_INS_VPHADDUWD
1470    X86_INS_VPHADDUWQ
1471    X86_INS_VPHADDWD
1472    X86_INS_VPHADDWQ
1473    X86_INS_VPHADDW
1474    X86_INS_VPHMINPOSUW
1475    X86_INS_VPHSUBBW
1476    X86_INS_VPHSUBDQ
1477    X86_INS_VPHSUBD
1478    X86_INS_VPHSUBSW
1479    X86_INS_VPHSUBWD
1480    X86_INS_VPHSUBW
1481    X86_INS_VPINSRB
1482    X86_INS_VPINSRD
1483    X86_INS_VPINSRQ
1484    X86_INS_VPINSRW
1485    X86_INS_VPLZCNTD
1486    X86_INS_VPLZCNTQ
1487    X86_INS_VPMACSDD
1488    X86_INS_VPMACSDQH
1489    X86_INS_VPMACSDQL
1490    X86_INS_VPMACSSDD
1491    X86_INS_VPMACSSDQH
1492    X86_INS_VPMACSSDQL
1493    X86_INS_VPMACSSWD
1494    X86_INS_VPMACSSWW
1495    X86_INS_VPMACSWD
1496    X86_INS_VPMACSWW
1497    X86_INS_VPMADCSSWD
1498    X86_INS_VPMADCSWD
1499    X86_INS_VPMADDUBSW
1500    X86_INS_VPMADDWD
1501    X86_INS_VPMASKMOVD
1502    X86_INS_VPMASKMOVQ
1503    X86_INS_VPMAXSB
1504    X86_INS_VPMAXSD
1505    X86_INS_VPMAXSQ
1506    X86_INS_VPMAXSW
1507    X86_INS_VPMAXUB
1508    X86_INS_VPMAXUD
1509    X86_INS_VPMAXUQ
1510    X86_INS_VPMAXUW
1511    X86_INS_VPMINSB
1512    X86_INS_VPMINSD
1513    X86_INS_VPMINSQ
1514    X86_INS_VPMINSW
1515    X86_INS_VPMINUB
1516    X86_INS_VPMINUD
1517    X86_INS_VPMINUQ
1518    X86_INS_VPMINUW
1519    X86_INS_VPMOVDB
1520    X86_INS_VPMOVDW
1521    X86_INS_VPMOVMSKB
1522    X86_INS_VPMOVQB
1523    X86_INS_VPMOVQD
1524    X86_INS_VPMOVQW
1525    X86_INS_VPMOVSDB
1526    X86_INS_VPMOVSDW
1527    X86_INS_VPMOVSQB
1528    X86_INS_VPMOVSQD
1529    X86_INS_VPMOVSQW
1530    X86_INS_VPMOVSXBD
1531    X86_INS_VPMOVSXBQ
1532    X86_INS_VPMOVSXBW
1533    X86_INS_VPMOVSXDQ
1534    X86_INS_VPMOVSXWD
1535    X86_INS_VPMOVSXWQ
1536    X86_INS_VPMOVUSDB
1537    X86_INS_VPMOVUSDW
1538    X86_INS_VPMOVUSQB
1539    X86_INS_VPMOVUSQD
1540    X86_INS_VPMOVUSQW
1541    X86_INS_VPMOVZXBD
1542    X86_INS_VPMOVZXBQ
1543    X86_INS_VPMOVZXBW
1544    X86_INS_VPMOVZXDQ
1545    X86_INS_VPMOVZXWD
1546    X86_INS_VPMOVZXWQ
1547    X86_INS_VPMULDQ
1548    X86_INS_VPMULHRSW
1549    X86_INS_VPMULHUW
1550    X86_INS_VPMULHW
1551    X86_INS_VPMULLD
1552    X86_INS_VPMULLW
1553    X86_INS_VPMULUDQ
1554    X86_INS_VPORD
1555    X86_INS_VPORQ
1556    X86_INS_VPOR
1557    X86_INS_VPPERM
1558    X86_INS_VPROTB
1559    X86_INS_VPROTD
1560    X86_INS_VPROTQ
1561    X86_INS_VPROTW
1562    X86_INS_VPSADBW
1563    X86_INS_VPSCATTERDD
1564    X86_INS_VPSCATTERDQ
1565    X86_INS_VPSCATTERQD
1566    X86_INS_VPSCATTERQQ
1567    X86_INS_VPSHAB
1568    X86_INS_VPSHAD
1569    X86_INS_VPSHAQ
1570    X86_INS_VPSHAW
1571    X86_INS_VPSHLB
1572    X86_INS_VPSHLD
1573    X86_INS_VPSHLQ
1574    X86_INS_VPSHLW
1575    X86_INS_VPSHUFB
1576    X86_INS_VPSHUFD
1577    X86_INS_VPSHUFHW
1578    X86_INS_VPSHUFLW
1579    X86_INS_VPSIGNB
1580    X86_INS_VPSIGND
1581    X86_INS_VPSIGNW
1582    X86_INS_VPSLLDQ
1583    X86_INS_VPSLLD
1584    X86_INS_VPSLLQ
1585    X86_INS_VPSLLVD
1586    X86_INS_VPSLLVQ
1587    X86_INS_VPSLLW
1588    X86_INS_VPSRAD
1589    X86_INS_VPSRAQ
1590    X86_INS_VPSRAVD
1591    X86_INS_VPSRAVQ
1592    X86_INS_VPSRAW
1593    X86_INS_VPSRLDQ
1594    X86_INS_VPSRLD
1595    X86_INS_VPSRLQ
1596    X86_INS_VPSRLVD
1597    X86_INS_VPSRLVQ
1598    X86_INS_VPSRLW
1599    X86_INS_VPSUBB
1600    X86_INS_VPSUBD
1601    X86_INS_VPSUBQ
1602    X86_INS_VPSUBSB
1603    X86_INS_VPSUBSW
1604    X86_INS_VPSUBUSB
1605    X86_INS_VPSUBUSW
1606    X86_INS_VPSUBW
1607    X86_INS_VPTESTMD
1608    X86_INS_VPTESTMQ
1609    X86_INS_VPTESTNMD
1610    X86_INS_VPTESTNMQ
1611    X86_INS_VPTEST
1612    X86_INS_VPUNPCKHBW
1613    X86_INS_VPUNPCKHDQ
1614    X86_INS_VPUNPCKHQDQ
1615    X86_INS_VPUNPCKHWD
1616    X86_INS_VPUNPCKLBW
1617    X86_INS_VPUNPCKLDQ
1618    X86_INS_VPUNPCKLQDQ
1619    X86_INS_VPUNPCKLWD
1620    X86_INS_VPXORD
1621    X86_INS_VPXORQ
1622    X86_INS_VPXOR
1623    X86_INS_VRCP14PD
1624    X86_INS_VRCP14PS
1625    X86_INS_VRCP14SD
1626    X86_INS_VRCP14SS
1627    X86_INS_VRCP28PD
1628    X86_INS_VRCP28PS
1629    X86_INS_VRCP28SD
1630    X86_INS_VRCP28SS
1631    X86_INS_VRCPPS
1632    X86_INS_VRCPSS
1633    X86_INS_VRNDSCALEPD
1634    X86_INS_VRNDSCALEPS
1635    X86_INS_VRNDSCALESD
1636    X86_INS_VRNDSCALESS
1637    X86_INS_VROUNDPD
1638    X86_INS_VROUNDPS
1639    X86_INS_VROUNDSD
1640    X86_INS_VROUNDSS
1641    X86_INS_VRSQRT14PD
1642    X86_INS_VRSQRT14PS
1643    X86_INS_VRSQRT14SD
1644    X86_INS_VRSQRT14SS
1645    X86_INS_VRSQRT28PD
1646    X86_INS_VRSQRT28PS
1647    X86_INS_VRSQRT28SD
1648    X86_INS_VRSQRT28SS
1649    X86_INS_VRSQRTPS
1650    X86_INS_VRSQRTSS
1651    X86_INS_VSCATTERDPD
1652    X86_INS_VSCATTERDPS
1653    X86_INS_VSCATTERPF0DPD
1654    X86_INS_VSCATTERPF0DPS
1655    X86_INS_VSCATTERPF0QPD
1656    X86_INS_VSCATTERPF0QPS
1657    X86_INS_VSCATTERPF1DPD
1658    X86_INS_VSCATTERPF1DPS
1659    X86_INS_VSCATTERPF1QPD
1660    X86_INS_VSCATTERPF1QPS
1661    X86_INS_VSCATTERQPD
1662    X86_INS_VSCATTERQPS
1663    X86_INS_VSHUFPD
1664    X86_INS_VSHUFPS
1665    X86_INS_VSQRTPD
1666    X86_INS_VSQRTPS
1667    X86_INS_VSQRTSD
1668    X86_INS_VSQRTSS
1669    X86_INS_VSTMXCSR
1670    X86_INS_VSUBPD
1671    X86_INS_VSUBPS
1672    X86_INS_VSUBSD
1673    X86_INS_VSUBSS
1674    X86_INS_VTESTPD
1675    X86_INS_VTESTPS
1676    X86_INS_VUNPCKHPD
1677    X86_INS_VUNPCKHPS
1678    X86_INS_VUNPCKLPD
1679    X86_INS_VUNPCKLPS
1680    X86_INS_VZEROALL
1681    X86_INS_VZEROUPPER
1682    X86_INS_WAIT
1683    X86_INS_WBINVD
1684    X86_INS_WRFSBASE
1685    X86_INS_WRGSBASE
1686    X86_INS_WRMSR
1687    X86_INS_XABORT
1688    X86_INS_XACQUIRE
1689    X86_INS_XBEGIN
1690    X86_INS_XCHG
1691    X86_INS_FXCH
1692    X86_INS_XCRYPTCBC
1693    X86_INS_XCRYPTCFB
1694    X86_INS_XCRYPTCTR
1695    X86_INS_XCRYPTECB
1696    X86_INS_XCRYPTOFB
1697    X86_INS_XEND
1698    X86_INS_XGETBV
1699    X86_INS_XLATB
1700    X86_INS_XRELEASE
1701    X86_INS_XRSTOR
1702    X86_INS_XRSTOR64
1703    X86_INS_XSAVE
1704    X86_INS_XSAVE64
1705    X86_INS_XSAVEOPT
1706    X86_INS_XSAVEOPT64
1707    X86_INS_XSETBV
1708    X86_INS_XSHA1
1709    X86_INS_XSHA256
1710    X86_INS_XSTORE
1711    X86_INS_XTEST
1712    X86_INS_ENDING ' mark the end of the list of insn
1713End Enum
1714
1715'Group of X86 instructions
1716Public Enum x86_insn_group
1717    X86_GRP_INVALID = 0 ' = CS_GRP_INVALID
1718
1719    ' > Generic groups                      '
1720    X86_GRP_JUMP      'all jump instructions (conditional+direct+indirect jumps) = CS_GRP_JUMP
1721    X86_GRP_CALL      'all call instructions = CS_GRP_CALL
1722    X86_GRP_RET       ' all return instructions = CS_GRP_RET
1723    X86_GRP_INT       'all interrupt instructions (int+syscall) = CS_GRP_INT
1724    X86_GRP_IRET      'all interrupt return instructions = CS_GRP_IRET
1725
1726    ' > Architecture-specific groups
1727    X86_GRP_VM = 128  ' all virtualization instructions (VT-x + AMD-V)
1728    X86_GRP_3DNOW
1729    X86_GRP_AES
1730    X86_GRP_ADX
1731    X86_GRP_AVX
1732    X86_GRP_AVX2
1733    X86_GRP_AVX512
1734    X86_GRP_BMI
1735    X86_GRP_BMI2
1736    X86_GRP_CMOV
1737    X86_GRP_F16C
1738    X86_GRP_FMA
1739    X86_GRP_FMA4
1740    X86_GRP_FSGSBASE
1741    X86_GRP_HLE
1742    X86_GRP_MMX
1743    X86_GRP_MODE32
1744    X86_GRP_MODE64
1745    X86_GRP_RTM
1746    X86_GRP_SHA
1747    X86_GRP_SSE1
1748    X86_GRP_SSE2
1749    X86_GRP_SSE3
1750    X86_GRP_SSE41
1751    X86_GRP_SSE42
1752    X86_GRP_SSE4A
1753    X86_GRP_SSSE3
1754    X86_GRP_PCLMUL
1755    X86_GRP_XOP
1756    X86_GRP_CDI
1757    X86_GRP_ERI
1758    X86_GRP_TBM
1759    X86_GRP_16BITMODE
1760    X86_GRP_NOT64BITMODE
1761    X86_GRP_SGX
1762    X86_GRP_DQI
1763    X86_GRP_BWI
1764    X86_GRP_PFI
1765    X86_GRP_VLX
1766    X86_GRP_SMAP
1767    X86_GRP_NOVLX
1768    X86_GRP_ENDING
1769End Enum
1770
1771
1772
1773Function x86_sse_cc2str(v As x86_sse_cc) As String
1774     Dim r As String
1775    If v = X86_SSE_CC_INVALID Then r = "X86_SSE_CC_INVALID"
1776    If v = X86_SSE_CC_EQ Then r = "X86_SSE_CC_EQ"
1777    If v = X86_SSE_CC_LT Then r = "X86_SSE_CC_LT"
1778    If v = X86_SSE_CC_LE Then r = "X86_SSE_CC_LE"
1779    If v = X86_SSE_CC_UNORD Then r = "X86_SSE_CC_UNORD"
1780    If v = X86_SSE_CC_NEQ Then r = "X86_SSE_CC_NEQ"
1781    If v = X86_SSE_CC_NLT Then r = "X86_SSE_CC_NLT"
1782    If v = X86_SSE_CC_NLE Then r = "X86_SSE_CC_NLE"
1783    If v = X86_SSE_CC_ORD Then r = "X86_SSE_CC_ORD"
1784    If v = X86_SSE_CC_EQ_UQ Then r = "X86_SSE_CC_EQ_UQ"
1785    If v = X86_SSE_CC_NGE Then r = "X86_SSE_CC_NGE"
1786    If v = X86_SSE_CC_NGT Then r = "X86_SSE_CC_NGT"
1787    If v = X86_SSE_CC_FALSE Then r = "X86_SSE_CC_FALSE"
1788    If v = X86_SSE_CC_NEQ_OQ Then r = "X86_SSE_CC_NEQ_OQ"
1789    If v = X86_SSE_CC_GE Then r = "X86_SSE_CC_GE"
1790    If v = X86_SSE_CC_GT Then r = "X86_SSE_CC_GT"
1791    If v = X86_SSE_CC_TRUE Then r = "X86_SSE_CC_TRUE"
1792
1793    If Len(r) = 0 Then
1794        r = "Unknown: " & Hex(v)
1795    ElseIf DEBUG_DUMP Then
1796        r = r & " (" & Hex(v) & ")"
1797    End If
1798
1799    x86_sse_cc2str = r
1800
1801End Function
1802
1803Function x86_avx_cc2str(v As x86_avx_cc) As String
1804     Dim r As String
1805    If v = X86_AVX_CC_INVALID Then r = "X86_AVX_CC_INVALID"
1806    If v = X86_AVX_CC_EQ Then r = "X86_AVX_CC_EQ"
1807    If v = X86_AVX_CC_LT Then r = "X86_AVX_CC_LT"
1808    If v = X86_AVX_CC_LE Then r = "X86_AVX_CC_LE"
1809    If v = X86_AVX_CC_UNORD Then r = "X86_AVX_CC_UNORD"
1810    If v = X86_AVX_CC_NEQ Then r = "X86_AVX_CC_NEQ"
1811    If v = X86_AVX_CC_NLT Then r = "X86_AVX_CC_NLT"
1812    If v = X86_AVX_CC_NLE Then r = "X86_AVX_CC_NLE"
1813    If v = X86_AVX_CC_ORD Then r = "X86_AVX_CC_ORD"
1814    If v = X86_AVX_CC_EQ_UQ Then r = "X86_AVX_CC_EQ_UQ"
1815    If v = X86_AVX_CC_NGE Then r = "X86_AVX_CC_NGE"
1816    If v = X86_AVX_CC_NGT Then r = "X86_AVX_CC_NGT"
1817    If v = X86_AVX_CC_FALSE Then r = "X86_AVX_CC_FALSE"
1818    If v = X86_AVX_CC_NEQ_OQ Then r = "X86_AVX_CC_NEQ_OQ"
1819    If v = X86_AVX_CC_GE Then r = "X86_AVX_CC_GE"
1820    If v = X86_AVX_CC_GT Then r = "X86_AVX_CC_GT"
1821    If v = X86_AVX_CC_TRUE Then r = "X86_AVX_CC_TRUE"
1822    If v = X86_AVX_CC_EQ_OS Then r = "X86_AVX_CC_EQ_OS"
1823    If v = X86_AVX_CC_LT_OQ Then r = "X86_AVX_CC_LT_OQ"
1824    If v = X86_AVX_CC_LE_OQ Then r = "X86_AVX_CC_LE_OQ"
1825    If v = X86_AVX_CC_UNORD_S Then r = "X86_AVX_CC_UNORD_S"
1826    If v = X86_AVX_CC_NEQ_US Then r = "X86_AVX_CC_NEQ_US"
1827    If v = X86_AVX_CC_NLT_UQ Then r = "X86_AVX_CC_NLT_UQ"
1828    If v = X86_AVX_CC_NLE_UQ Then r = "X86_AVX_CC_NLE_UQ"
1829    If v = X86_AVX_CC_ORD_S Then r = "X86_AVX_CC_ORD_S"
1830    If v = X86_AVX_CC_EQ_US Then r = "X86_AVX_CC_EQ_US"
1831    If v = X86_AVX_CC_NGE_UQ Then r = "X86_AVX_CC_NGE_UQ"
1832    If v = X86_AVX_CC_NGT_UQ Then r = "X86_AVX_CC_NGT_UQ"
1833    If v = X86_AVX_CC_FALSE_OS Then r = "X86_AVX_CC_FALSE_OS"
1834    If v = X86_AVX_CC_NEQ_OS Then r = "X86_AVX_CC_NEQ_OS"
1835    If v = X86_AVX_CC_GE_OQ Then r = "X86_AVX_CC_GE_OQ"
1836    If v = X86_AVX_CC_GT_OQ Then r = "X86_AVX_CC_GT_OQ"
1837    If v = X86_AVX_CC_TRUE_US Then r = "X86_AVX_CC_TRUE_US"
1838
1839    If Len(r) = 0 Then
1840        r = "Unknown: " & Hex(v)
1841    ElseIf DEBUG_DUMP Then
1842        r = r & " (" & Hex(v) & ")"
1843    End If
1844
1845    x86_avx_cc2str = r
1846
1847End Function
1848
1849
1850Function x86_avx_rm2str(v As x86_avx_rm) As String
1851    Dim r As String
1852
1853    If v = X86_AVX_RM_INVALID Then r = "X86_AVX_RM_INVALID"
1854    If v = X86_AVX_RM_RN Then r = "X86_AVX_RM_RN"
1855    If v = X86_AVX_RM_RD Then r = "X86_AVX_RM_RD"
1856    If v = X86_AVX_RM_RU Then r = "X86_AVX_RM_RU"
1857    If v = X86_AVX_RM_RZ Then r = "X86_AVX_RM_RZ"
1858
1859    If Len(r) = 0 Then
1860        r = "Unknown: " & Hex(v)
1861    ElseIf DEBUG_DUMP Then
1862        r = r & " (" & Hex(v) & ")"
1863    End If
1864
1865    x86_avx_rm2str = r
1866End Function
1867
1868
1869