You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1869 lines
40 KiB

Attribute VB_Name = "mx86"
Option Explicit
'Capstone Disassembly Engine bindings for VB6
'Contributed by FireEye FLARE Team
'Author: David Zimmer <david.zimmer@fireeye.com>, <dzzie@yahoo.com>
'License: Apache
'Copyright: FireEye 2017
Enum x86_reg
X86_REG_INVALID = 0
X86_REG_AH
X86_REG_AL
X86_REG_AX
X86_REG_BH
X86_REG_BL
X86_REG_BP
X86_REG_BPL
X86_REG_BX
X86_REG_CH
X86_REG_CL
X86_REG_CS
X86_REG_CX
X86_REG_DH
X86_REG_DI
X86_REG_DIL
X86_REG_DL
X86_REG_DS
X86_REG_DX
X86_REG_EAX
X86_REG_EBP
X86_REG_EBX
X86_REG_ECX
X86_REG_EDI
X86_REG_EDX
X86_REG_EFLAGS
X86_REG_EIP
X86_REG_EIZ
X86_REG_ES
X86_REG_ESI
X86_REG_ESP
X86_REG_FPSW
X86_REG_FS
X86_REG_GS
X86_REG_IP
X86_REG_RAX
X86_REG_RBP
X86_REG_RBX
X86_REG_RCX
X86_REG_RDI
X86_REG_RDX
X86_REG_RIP
X86_REG_RIZ
X86_REG_RSI
X86_REG_RSP
X86_REG_SI
X86_REG_SIL
X86_REG_SP
X86_REG_SPL
X86_REG_SS
X86_REG_CR0
X86_REG_CR1
X86_REG_CR2
X86_REG_CR3
X86_REG_CR4
X86_REG_CR5
X86_REG_CR6
X86_REG_CR7
X86_REG_CR8
X86_REG_CR9
X86_REG_CR10
X86_REG_CR11
X86_REG_CR12
X86_REG_CR13
X86_REG_CR14
X86_REG_CR15
X86_REG_DR0
X86_REG_DR1
X86_REG_DR2
X86_REG_DR3
X86_REG_DR4
X86_REG_DR5
X86_REG_DR6
X86_REG_DR7
X86_REG_FP0
X86_REG_FP1
X86_REG_FP2
X86_REG_FP3
X86_REG_FP4
X86_REG_FP5
X86_REG_FP6
X86_REG_FP7
X86_REG_K0
X86_REG_K1
X86_REG_K2
X86_REG_K3
X86_REG_K4
X86_REG_K5
X86_REG_K6
X86_REG_K7
X86_REG_MM0
X86_REG_MM1
X86_REG_MM2
X86_REG_MM3
X86_REG_MM4
X86_REG_MM5
X86_REG_MM6
X86_REG_MM7
X86_REG_R8
X86_REG_R9
X86_REG_R10
X86_REG_R11
X86_REG_R12
X86_REG_R13
X86_REG_R14
X86_REG_R15
X86_REG_ST0
X86_REG_ST1
X86_REG_ST2
X86_REG_ST3
X86_REG_ST4
X86_REG_ST5
X86_REG_ST6
X86_REG_ST7
X86_REG_XMM0
X86_REG_XMM1
X86_REG_XMM2
X86_REG_XMM3
X86_REG_XMM4
X86_REG_XMM5
X86_REG_XMM6
X86_REG_XMM7
X86_REG_XMM8
X86_REG_XMM9
X86_REG_XMM10
X86_REG_XMM11
X86_REG_XMM12
X86_REG_XMM13
X86_REG_XMM14
X86_REG_XMM15
X86_REG_XMM16
X86_REG_XMM17
X86_REG_XMM18
X86_REG_XMM19
X86_REG_XMM20
X86_REG_XMM21
X86_REG_XMM22
X86_REG_XMM23
X86_REG_XMM24
X86_REG_XMM25
X86_REG_XMM26
X86_REG_XMM27
X86_REG_XMM28
X86_REG_XMM29
X86_REG_XMM30
X86_REG_XMM31
X86_REG_YMM0
X86_REG_YMM1
X86_REG_YMM2
X86_REG_YMM3
X86_REG_YMM4
X86_REG_YMM5
X86_REG_YMM6
X86_REG_YMM7
X86_REG_YMM8
X86_REG_YMM9
X86_REG_YMM10
X86_REG_YMM11
X86_REG_YMM12
X86_REG_YMM13
X86_REG_YMM14
X86_REG_YMM15
X86_REG_YMM16
X86_REG_YMM17
X86_REG_YMM18
X86_REG_YMM19
X86_REG_YMM20
X86_REG_YMM21
X86_REG_YMM22
X86_REG_YMM23
X86_REG_YMM24
X86_REG_YMM25
X86_REG_YMM26
X86_REG_YMM27
X86_REG_YMM28
X86_REG_YMM29
X86_REG_YMM30
X86_REG_YMM31
X86_REG_ZMM0
X86_REG_ZMM1
X86_REG_ZMM2
X86_REG_ZMM3
X86_REG_ZMM4
X86_REG_ZMM5
X86_REG_ZMM6
X86_REG_ZMM7
X86_REG_ZMM8
X86_REG_ZMM9
X86_REG_ZMM10
X86_REG_ZMM11
X86_REG_ZMM12
X86_REG_ZMM13
X86_REG_ZMM14
X86_REG_ZMM15
X86_REG_ZMM16
X86_REG_ZMM17
X86_REG_ZMM18
X86_REG_ZMM19
X86_REG_ZMM20
X86_REG_ZMM21
X86_REG_ZMM22
X86_REG_ZMM23
X86_REG_ZMM24
X86_REG_ZMM25
X86_REG_ZMM26
X86_REG_ZMM27
X86_REG_ZMM28
X86_REG_ZMM29
X86_REG_ZMM30
X86_REG_ZMM31
X86_REG_R8B
X86_REG_R9B
X86_REG_R10B
X86_REG_R11B
X86_REG_R12B
X86_REG_R13B
X86_REG_R14B
X86_REG_R15B
X86_REG_R8D
X86_REG_R9D
X86_REG_R10D
X86_REG_R11D
X86_REG_R12D
X86_REG_R13D
X86_REG_R14D
X86_REG_R15D
X86_REG_R8W
X86_REG_R9W
X86_REG_R10W
X86_REG_R11W
X86_REG_R12W
X86_REG_R13W
X86_REG_R14W
X86_REG_R15W
X86_REG_ENDING ' <-- mark the end of the list of registers
End Enum
'Operand type for instruction's operands
Enum x86_op_type
X86_OP_INVALID = 0 'CS_OP_INVALID (Uninitialized).
X86_OP_REG 'CS_OP_REG (Register operand).
X86_OP_IMM 'CS_OP_IMM (Immediate operand).
x86_op_mem 'CS_OP_MEM (Memory operand).
X86_OP_FP 'CS_OP_FP (Floating-Point operand).
End Enum
'AVX broadcast type
Public Enum x86_avx_bcast
X86_AVX_BCAST_INVALID = 0 ' Uninitialized.
X86_AVX_BCAST_2 ' AVX512 broadcast type {1to2}
X86_AVX_BCAST_4 ' AVX512 broadcast type {1to4}
X86_AVX_BCAST_8 ' AVX512 broadcast type {1to8}
X86_AVX_BCAST_16 ' AVX512 broadcast type {1to16}
End Enum
'SSE Code Condition type
Public Enum x86_sse_cc
X86_SSE_CC_INVALID = 0 ' Uninitialized.
X86_SSE_CC_EQ
X86_SSE_CC_LT
X86_SSE_CC_LE
X86_SSE_CC_UNORD
X86_SSE_CC_NEQ
X86_SSE_CC_NLT
X86_SSE_CC_NLE
X86_SSE_CC_ORD
X86_SSE_CC_EQ_UQ
X86_SSE_CC_NGE
X86_SSE_CC_NGT
X86_SSE_CC_FALSE
X86_SSE_CC_NEQ_OQ
X86_SSE_CC_GE
X86_SSE_CC_GT
X86_SSE_CC_TRUE
End Enum
'AVX Code Condition type
Public Enum x86_avx_cc
X86_AVX_CC_INVALID = 0 ' Uninitialized.
X86_AVX_CC_EQ
X86_AVX_CC_LT
X86_AVX_CC_LE
X86_AVX_CC_UNORD
X86_AVX_CC_NEQ
X86_AVX_CC_NLT
X86_AVX_CC_NLE
X86_AVX_CC_ORD
X86_AVX_CC_EQ_UQ
X86_AVX_CC_NGE
X86_AVX_CC_NGT
X86_AVX_CC_FALSE
X86_AVX_CC_NEQ_OQ
X86_AVX_CC_GE
X86_AVX_CC_GT
X86_AVX_CC_TRUE
X86_AVX_CC_EQ_OS
X86_AVX_CC_LT_OQ
X86_AVX_CC_LE_OQ
X86_AVX_CC_UNORD_S
X86_AVX_CC_NEQ_US
X86_AVX_CC_NLT_UQ
X86_AVX_CC_NLE_UQ
X86_AVX_CC_ORD_S
X86_AVX_CC_EQ_US
X86_AVX_CC_NGE_UQ
X86_AVX_CC_NGT_UQ
X86_AVX_CC_FALSE_OS
X86_AVX_CC_NEQ_OS
X86_AVX_CC_GE_OQ
X86_AVX_CC_GT_OQ
X86_AVX_CC_TRUE_US
End Enum
'AVX static rounding mode type
Public Enum x86_avx_rm
X86_AVX_RM_INVALID = 0 ' Uninitialized.
X86_AVX_RM_RN ' Round to nearest
X86_AVX_RM_RD ' Round down
X86_AVX_RM_RU ' Round up
X86_AVX_RM_RZ ' Round toward zero
End Enum
'Instruction prefixes - to be used in cs_x86.prefix[]
Public Enum x86_prefix
X86_PREFIX_LOCK = &HF0 ' lock (cs_x86.prefix[0]
X86_PREFIX_REP = &HF3 ' rep (cs_x86.prefix[0]
X86_PREFIX_REPNE = &HF2 ' repne (cs_x86.prefix[0]
X86_PREFIX_CS = &H2E ' segment override CS (cs_x86.prefix[1]
X86_PREFIX_SS = &H36 ' segment override SS (cs_x86.prefix[1]
X86_PREFIX_DS = &H3E ' segment override DS (cs_x86.prefix[1]
X86_PREFIX_ES = &H26 ' segment override ES (cs_x86.prefix[1]
X86_PREFIX_FS = &H64 ' segment override FS (cs_x86.prefix[1]
X86_PREFIX_GS = &H65 ' segment override GS (cs_x86.prefix[1]
X86_PREFIX_OPSIZE = &H66 ' operand-size override (cs_x86.prefix[2]
X86_PREFIX_ADDRSIZE = &H67 ' address-size override (cs_x86.prefix[3]
End Enum
'Instruction's operand referring to memory
'This is associated with X86_OP_MEM operand type above
Public Type x86_op_mem
segment As Long ' segment register (or X86_REG_INVALID if irrelevant) UNSIGNED
base As Long ' base register (or X86_REG_INVALID if irrelevant) UNSIGNED
index As Long ' index register (or X86_REG_INVALID if irrelevant) UNSIGNED
scale As Long ' scale for index register
disp As Currency ' displacement value
End Type
'Instruction operand 48 bytes
'typedef struct cs_x86_op {
' x86_op_type type; // operand type
' union {
' x86_reg reg; // register value for REG operand
' int64_t imm; // immediate value for IMM operand
' double fp; // floating point value for FP operand
' x86_op_mem mem; // base/index/scale/disp value for MEM operand
' };
'
' // size of this operand (in bytes).
' uint8_t size;
'
' // AVX broadcast type, or 0 if irrelevant
' x86_avx_bcast avx_bcast;
'
' // AVX zero opmask {z}
' bool avx_zero_opmask;
'} cs_x86_op;
'Instruction structure
Public Type cs_x86
' Instruction prefix, which can be up to 4 bytes.
' A prefix byte gets value 0 when irrelevant.
' prefix[0] indicates REP/REPNE/LOCK prefix (See X86_PREFIX_REP/REPNE/LOCK above)
' prefix[1] indicates segment override (irrelevant for x86_64):
' See X86_PREFIX_CS/SS/DS/ES/FS/GS above.
' prefix[2] indicates operand-size override (X86_PREFIX_OPSIZE)
' prefix[3] indicates address-size override (X86_PREFIX_ADDRSIZE)
prefix(0 To 3) As Byte ' UNSIGNED
' Instruction opcode, wich can be from 1 to 4 bytes in size.
' This contains VEX opcode as well.
' An trailing opcode byte gets value 0 when irrelevant.
opcode(0 To 3) As Byte ' UNSIGNED
rex As Byte ' REX prefix: only a non-zero value is relavant for x86_64 UNSIGNED
addr_size As Byte ' Address size, which can be overrided with above prefix[5]. UNSIGNED
modrm As Byte ' ModR/M byte UNSIGNED
sib As Byte ' SIB value, or 0 when irrelevant. UNSIGNED
disp As Long ' Displacement value, or 0 when irrelevant.
sib_index As x86_reg ' SIB index register, or X86_REG_INVALID when irrelevant.
sib_scale As Byte ' SIB scale. only applicable if sib_index is relavant.
sib_base As x86_reg ' SIB base register, or X86_REG_INVALID when irrelevant.
sse_cc As x86_sse_cc ' SSE Code Condition
avx_cc As x86_avx_cc ' AVX Code Condition
avx_sae As Byte ' AVX Suppress all Exception
avx_rm As x86_avx_rm ' AVX static rounding mode
op_count As Byte ' Number of operands of this instruction, or 0 when instruction has no operand.UNSIGNED
'operands(0 To 7) As cs_x86_op ' operands for this instruction.
'opBuf(0 To 383) As Byte
End Type
'X86 instructions
Public Enum x86_insn
X86_INS_INVALID = 0
X86_INS_AAA
X86_INS_AAD
X86_INS_AAM
X86_INS_AAS
X86_INS_FABS
X86_INS_ADC
X86_INS_ADCX
X86_INS_ADD
X86_INS_ADDPD
X86_INS_ADDPS
X86_INS_ADDSD
X86_INS_ADDSS
X86_INS_ADDSUBPD
X86_INS_ADDSUBPS
X86_INS_FADD
X86_INS_FIADD
X86_INS_FADDP
X86_INS_ADOX
X86_INS_AESDECLAST
X86_INS_AESDEC
X86_INS_AESENCLAST
X86_INS_AESENC
X86_INS_AESIMC
X86_INS_AESKEYGENASSIST
X86_INS_AND
X86_INS_ANDN
X86_INS_ANDNPD
X86_INS_ANDNPS
X86_INS_ANDPD
X86_INS_ANDPS
X86_INS_ARPL
X86_INS_BEXTR
X86_INS_BLCFILL
X86_INS_BLCI
X86_INS_BLCIC
X86_INS_BLCMSK
X86_INS_BLCS
X86_INS_BLENDPD
X86_INS_BLENDPS
X86_INS_BLENDVPD
X86_INS_BLENDVPS
X86_INS_BLSFILL
X86_INS_BLSI
X86_INS_BLSIC
X86_INS_BLSMSK
X86_INS_BLSR
X86_INS_BOUND
X86_INS_BSF
X86_INS_BSR
X86_INS_BSWAP
X86_INS_BT
X86_INS_BTC
X86_INS_BTR
X86_INS_BTS
X86_INS_BZHI
X86_INS_CALL
X86_INS_CBW
X86_INS_CDQ
X86_INS_CDQE
X86_INS_FCHS
X86_INS_CLAC
X86_INS_CLC
X86_INS_CLD
X86_INS_CLFLUSH
X86_INS_CLGI
X86_INS_CLI
X86_INS_CLTS
X86_INS_CMC
X86_INS_CMOVA
X86_INS_CMOVAE
X86_INS_CMOVB
X86_INS_CMOVBE
X86_INS_FCMOVBE
X86_INS_FCMOVB
X86_INS_CMOVE
X86_INS_FCMOVE
X86_INS_CMOVG
X86_INS_CMOVGE
X86_INS_CMOVL
X86_INS_CMOVLE
X86_INS_FCMOVNBE
X86_INS_FCMOVNB
X86_INS_CMOVNE
X86_INS_FCMOVNE
X86_INS_CMOVNO
X86_INS_CMOVNP
X86_INS_FCMOVNU
X86_INS_CMOVNS
X86_INS_CMOVO
X86_INS_CMOVP
X86_INS_FCMOVU
X86_INS_CMOVS
X86_INS_CMP
X86_INS_CMPPD
X86_INS_CMPPS
X86_INS_CMPSB
X86_INS_CMPSD
X86_INS_CMPSQ
X86_INS_CMPSS
X86_INS_CMPSW
X86_INS_CMPXCHG16B
X86_INS_CMPXCHG
X86_INS_CMPXCHG8B
X86_INS_COMISD
X86_INS_COMISS
X86_INS_FCOMP
X86_INS_FCOMPI
X86_INS_FCOMI
X86_INS_FCOM
X86_INS_FCOS
X86_INS_CPUID
X86_INS_CQO
X86_INS_CRC32
X86_INS_CVTDQ2PD
X86_INS_CVTDQ2PS
X86_INS_CVTPD2DQ
X86_INS_CVTPD2PS
X86_INS_CVTPS2DQ
X86_INS_CVTPS2PD
X86_INS_CVTSD2SI
X86_INS_CVTSD2SS
X86_INS_CVTSI2SD
X86_INS_CVTSI2SS
X86_INS_CVTSS2SD
X86_INS_CVTSS2SI
X86_INS_CVTTPD2DQ
X86_INS_CVTTPS2DQ
X86_INS_CVTTSD2SI
X86_INS_CVTTSS2SI
X86_INS_CWD
X86_INS_CWDE
X86_INS_DAA
X86_INS_DAS
X86_INS_DATA16
X86_INS_DEC
X86_INS_DIV
X86_INS_DIVPD
X86_INS_DIVPS
X86_INS_FDIVR
X86_INS_FIDIVR
X86_INS_FDIVRP
X86_INS_DIVSD
X86_INS_DIVSS
X86_INS_FDIV
X86_INS_FIDIV
X86_INS_FDIVP
X86_INS_DPPD
X86_INS_DPPS
X86_INS_RET
X86_INS_ENCLS
X86_INS_ENCLU
X86_INS_ENTER
X86_INS_EXTRACTPS
X86_INS_EXTRQ
X86_INS_F2XM1
X86_INS_LCALL
X86_INS_LJMP
X86_INS_FBLD
X86_INS_FBSTP
X86_INS_FCOMPP
X86_INS_FDECSTP
X86_INS_FEMMS
X86_INS_FFREE
X86_INS_FICOM
X86_INS_FICOMP
X86_INS_FINCSTP
X86_INS_FLDCW
X86_INS_FLDENV
X86_INS_FLDL2E
X86_INS_FLDL2T
X86_INS_FLDLG2
X86_INS_FLDLN2
X86_INS_FLDPI
X86_INS_FNCLEX
X86_INS_FNINIT
X86_INS_FNOP
X86_INS_FNSTCW
X86_INS_FNSTSW
X86_INS_FPATAN
X86_INS_FPREM
X86_INS_FPREM1
X86_INS_FPTAN
X86_INS_FRNDINT
X86_INS_FRSTOR
X86_INS_FNSAVE
X86_INS_FSCALE
X86_INS_FSETPM
X86_INS_FSINCOS
X86_INS_FNSTENV
X86_INS_FXAM
X86_INS_FXRSTOR
X86_INS_FXRSTOR64
X86_INS_FXSAVE
X86_INS_FXSAVE64
X86_INS_FXTRACT
X86_INS_FYL2X
X86_INS_FYL2XP1
X86_INS_MOVAPD
X86_INS_MOVAPS
X86_INS_ORPD
X86_INS_ORPS
X86_INS_VMOVAPD
X86_INS_VMOVAPS
X86_INS_XORPD
X86_INS_XORPS
X86_INS_GETSEC
X86_INS_HADDPD
X86_INS_HADDPS
X86_INS_HLT
X86_INS_HSUBPD
X86_INS_HSUBPS
X86_INS_IDIV
X86_INS_FILD
X86_INS_IMUL
X86_INS_IN
X86_INS_INC
X86_INS_INSB
X86_INS_INSERTPS
X86_INS_INSERTQ
X86_INS_INSD
X86_INS_INSW
X86_INS_INT
X86_INS_INT1
X86_INS_INT3
X86_INS_INTO
X86_INS_INVD
X86_INS_INVEPT
X86_INS_INVLPG
X86_INS_INVLPGA
X86_INS_INVPCID
X86_INS_INVVPID
X86_INS_IRET
X86_INS_IRETD
X86_INS_IRETQ
X86_INS_FISTTP
X86_INS_FIST
X86_INS_FISTP
X86_INS_UCOMISD
X86_INS_UCOMISS
X86_INS_VCMP
X86_INS_VCOMISD
X86_INS_VCOMISS
X86_INS_VCVTSD2SS
X86_INS_VCVTSI2SD
X86_INS_VCVTSI2SS
X86_INS_VCVTSS2SD
X86_INS_VCVTTSD2SI
X86_INS_VCVTTSD2USI
X86_INS_VCVTTSS2SI
X86_INS_VCVTTSS2USI
X86_INS_VCVTUSI2SD
X86_INS_VCVTUSI2SS
X86_INS_VUCOMISD
X86_INS_VUCOMISS
X86_INS_JAE
X86_INS_JA
X86_INS_JBE
X86_INS_JB
X86_INS_JCXZ
X86_INS_JECXZ
X86_INS_JE
X86_INS_JGE
X86_INS_JG
X86_INS_JLE
X86_INS_JL
X86_INS_JMP
X86_INS_JNE
X86_INS_JNO
X86_INS_JNP
X86_INS_JNS
X86_INS_JO
X86_INS_JP
X86_INS_JRCXZ
X86_INS_JS
X86_INS_KANDB
X86_INS_KANDD
X86_INS_KANDNB
X86_INS_KANDND
X86_INS_KANDNQ
X86_INS_KANDNW
X86_INS_KANDQ
X86_INS_KANDW
X86_INS_KMOVB
X86_INS_KMOVD
X86_INS_KMOVQ
X86_INS_KMOVW
X86_INS_KNOTB
X86_INS_KNOTD
X86_INS_KNOTQ
X86_INS_KNOTW
X86_INS_KORB
X86_INS_KORD
X86_INS_KORQ
X86_INS_KORTESTW
X86_INS_KORW
X86_INS_KSHIFTLW
X86_INS_KSHIFTRW
X86_INS_KUNPCKBW
X86_INS_KXNORB
X86_INS_KXNORD
X86_INS_KXNORQ
X86_INS_KXNORW
X86_INS_KXORB
X86_INS_KXORD
X86_INS_KXORQ
X86_INS_KXORW
X86_INS_LAHF
X86_INS_LAR
X86_INS_LDDQU
X86_INS_LDMXCSR
X86_INS_LDS
X86_INS_FLDZ
X86_INS_FLD1
X86_INS_FLD
X86_INS_LEA
X86_INS_LEAVE
X86_INS_LES
X86_INS_LFENCE
X86_INS_LFS
X86_INS_LGDT
X86_INS_LGS
X86_INS_LIDT
X86_INS_LLDT
X86_INS_LMSW
X86_INS_OR
X86_INS_SUB
X86_INS_XOR
X86_INS_LODSB
X86_INS_LODSD
X86_INS_LODSQ
X86_INS_LODSW
X86_INS_LOOP
X86_INS_LOOPE
X86_INS_LOOPNE
X86_INS_RETF
X86_INS_RETFQ
X86_INS_LSL
X86_INS_LSS
X86_INS_LTR
X86_INS_XADD
X86_INS_LZCNT
X86_INS_MASKMOVDQU
X86_INS_MAXPD
X86_INS_MAXPS
X86_INS_MAXSD
X86_INS_MAXSS
X86_INS_MFENCE
X86_INS_MINPD
X86_INS_MINPS
X86_INS_MINSD
X86_INS_MINSS
X86_INS_CVTPD2PI
X86_INS_CVTPI2PD
X86_INS_CVTPI2PS
X86_INS_CVTPS2PI
X86_INS_CVTTPD2PI
X86_INS_CVTTPS2PI
X86_INS_EMMS
X86_INS_MASKMOVQ
X86_INS_MOVD
X86_INS_MOVDQ2Q
X86_INS_MOVNTQ
X86_INS_MOVQ2DQ
X86_INS_MOVQ
X86_INS_PABSB
X86_INS_PABSD
X86_INS_PABSW
X86_INS_PACKSSDW
X86_INS_PACKSSWB
X86_INS_PACKUSWB
X86_INS_PADDB
X86_INS_PADDD
X86_INS_PADDQ
X86_INS_PADDSB
X86_INS_PADDSW
X86_INS_PADDUSB
X86_INS_PADDUSW
X86_INS_PADDW
X86_INS_PALIGNR
X86_INS_PANDN
X86_INS_PAND
X86_INS_PAVGB
X86_INS_PAVGW
X86_INS_PCMPEQB
X86_INS_PCMPEQD
X86_INS_PCMPEQW
X86_INS_PCMPGTB
X86_INS_PCMPGTD
X86_INS_PCMPGTW
X86_INS_PEXTRW
X86_INS_PHADDSW
X86_INS_PHADDW
X86_INS_PHADDD
X86_INS_PHSUBD
X86_INS_PHSUBSW
X86_INS_PHSUBW
X86_INS_PINSRW
X86_INS_PMADDUBSW
X86_INS_PMADDWD
X86_INS_PMAXSW
X86_INS_PMAXUB
X86_INS_PMINSW
X86_INS_PMINUB
X86_INS_PMOVMSKB
X86_INS_PMULHRSW
X86_INS_PMULHUW
X86_INS_PMULHW
X86_INS_PMULLW
X86_INS_PMULUDQ
X86_INS_POR
X86_INS_PSADBW
X86_INS_PSHUFB
X86_INS_PSHUFW
X86_INS_PSIGNB
X86_INS_PSIGND
X86_INS_PSIGNW
X86_INS_PSLLD
X86_INS_PSLLQ
X86_INS_PSLLW
X86_INS_PSRAD
X86_INS_PSRAW
X86_INS_PSRLD
X86_INS_PSRLQ
X86_INS_PSRLW
X86_INS_PSUBB
X86_INS_PSUBD
X86_INS_PSUBQ
X86_INS_PSUBSB
X86_INS_PSUBSW
X86_INS_PSUBUSB
X86_INS_PSUBUSW
X86_INS_PSUBW
X86_INS_PUNPCKHBW
X86_INS_PUNPCKHDQ
X86_INS_PUNPCKHWD
X86_INS_PUNPCKLBW
X86_INS_PUNPCKLDQ
X86_INS_PUNPCKLWD
X86_INS_PXOR
X86_INS_MONITOR
X86_INS_MONTMUL
X86_INS_MOV
X86_INS_MOVABS
X86_INS_MOVBE
X86_INS_MOVDDUP
X86_INS_MOVDQA
X86_INS_MOVDQU
X86_INS_MOVHLPS
X86_INS_MOVHPD
X86_INS_MOVHPS
X86_INS_MOVLHPS
X86_INS_MOVLPD
X86_INS_MOVLPS
X86_INS_MOVMSKPD
X86_INS_MOVMSKPS
X86_INS_MOVNTDQA
X86_INS_MOVNTDQ
X86_INS_MOVNTI
X86_INS_MOVNTPD
X86_INS_MOVNTPS
X86_INS_MOVNTSD
X86_INS_MOVNTSS
X86_INS_MOVSB
X86_INS_MOVSD
X86_INS_MOVSHDUP
X86_INS_MOVSLDUP
X86_INS_MOVSQ
X86_INS_MOVSS
X86_INS_MOVSW
X86_INS_MOVSX
X86_INS_MOVSXD
X86_INS_MOVUPD
X86_INS_MOVUPS
X86_INS_MOVZX
X86_INS_MPSADBW
X86_INS_MUL
X86_INS_MULPD
X86_INS_MULPS
X86_INS_MULSD
X86_INS_MULSS
X86_INS_MULX
X86_INS_FMUL
X86_INS_FIMUL
X86_INS_FMULP
X86_INS_MWAIT
X86_INS_NEG
X86_INS_NOP
X86_INS_NOT
X86_INS_OUT
X86_INS_OUTSB
X86_INS_OUTSD
X86_INS_OUTSW
X86_INS_PACKUSDW
X86_INS_PAUSE
X86_INS_PAVGUSB
X86_INS_PBLENDVB
X86_INS_PBLENDW
X86_INS_PCLMULQDQ
X86_INS_PCMPEQQ
X86_INS_PCMPESTRI
X86_INS_PCMPESTRM
X86_INS_PCMPGTQ
X86_INS_PCMPISTRI
X86_INS_PCMPISTRM
X86_INS_PDEP
X86_INS_PEXT
X86_INS_PEXTRB
X86_INS_PEXTRD
X86_INS_PEXTRQ
X86_INS_PF2ID
X86_INS_PF2IW
X86_INS_PFACC
X86_INS_PFADD
X86_INS_PFCMPEQ
X86_INS_PFCMPGE
X86_INS_PFCMPGT
X86_INS_PFMAX
X86_INS_PFMIN
X86_INS_PFMUL
X86_INS_PFNACC
X86_INS_PFPNACC
X86_INS_PFRCPIT1
X86_INS_PFRCPIT2
X86_INS_PFRCP
X86_INS_PFRSQIT1
X86_INS_PFRSQRT
X86_INS_PFSUBR
X86_INS_PFSUB
X86_INS_PHMINPOSUW
X86_INS_PI2FD
X86_INS_PI2FW
X86_INS_PINSRB
X86_INS_PINSRD
X86_INS_PINSRQ
X86_INS_PMAXSB
X86_INS_PMAXSD
X86_INS_PMAXUD
X86_INS_PMAXUW
X86_INS_PMINSB
X86_INS_PMINSD
X86_INS_PMINUD
X86_INS_PMINUW
X86_INS_PMOVSXBD
X86_INS_PMOVSXBQ
X86_INS_PMOVSXBW
X86_INS_PMOVSXDQ
X86_INS_PMOVSXWD
X86_INS_PMOVSXWQ
X86_INS_PMOVZXBD
X86_INS_PMOVZXBQ
X86_INS_PMOVZXBW
X86_INS_PMOVZXDQ
X86_INS_PMOVZXWD
X86_INS_PMOVZXWQ
X86_INS_PMULDQ
X86_INS_PMULHRW
X86_INS_PMULLD
X86_INS_POP
X86_INS_POPAW
X86_INS_POPAL
X86_INS_POPCNT
X86_INS_POPF
X86_INS_POPFD
X86_INS_POPFQ
X86_INS_PREFETCH
X86_INS_PREFETCHNTA
X86_INS_PREFETCHT0
X86_INS_PREFETCHT1
X86_INS_PREFETCHT2
X86_INS_PREFETCHW
X86_INS_PSHUFD
X86_INS_PSHUFHW
X86_INS_PSHUFLW
X86_INS_PSLLDQ
X86_INS_PSRLDQ
X86_INS_PSWAPD
X86_INS_PTEST
X86_INS_PUNPCKHQDQ
X86_INS_PUNPCKLQDQ
X86_INS_PUSH
X86_INS_PUSHAW
X86_INS_PUSHAL
X86_INS_PUSHF
X86_INS_PUSHFD
X86_INS_PUSHFQ
X86_INS_RCL
X86_INS_RCPPS
X86_INS_RCPSS
X86_INS_RCR
X86_INS_RDFSBASE
X86_INS_RDGSBASE
X86_INS_RDMSR
X86_INS_RDPMC
X86_INS_RDRAND
X86_INS_RDSEED
X86_INS_RDTSC
X86_INS_RDTSCP
X86_INS_ROL
X86_INS_ROR
X86_INS_RORX
X86_INS_ROUNDPD
X86_INS_ROUNDPS
X86_INS_ROUNDSD
X86_INS_ROUNDSS
X86_INS_RSM
X86_INS_RSQRTPS
X86_INS_RSQRTSS
X86_INS_SAHF
X86_INS_SAL
X86_INS_SALC
X86_INS_SAR
X86_INS_SARX
X86_INS_SBB
X86_INS_SCASB
X86_INS_SCASD
X86_INS_SCASQ
X86_INS_SCASW
X86_INS_SETAE
X86_INS_SETA
X86_INS_SETBE
X86_INS_SETB
X86_INS_SETE
X86_INS_SETGE
X86_INS_SETG
X86_INS_SETLE
X86_INS_SETL
X86_INS_SETNE
X86_INS_SETNO
X86_INS_SETNP
X86_INS_SETNS
X86_INS_SETO
X86_INS_SETP
X86_INS_SETS
X86_INS_SFENCE
X86_INS_SGDT
X86_INS_SHA1MSG1
X86_INS_SHA1MSG2
X86_INS_SHA1NEXTE
X86_INS_SHA1RNDS4
X86_INS_SHA256MSG1
X86_INS_SHA256MSG2
X86_INS_SHA256RNDS2
X86_INS_SHL
X86_INS_SHLD
X86_INS_SHLX
X86_INS_SHR
X86_INS_SHRD
X86_INS_SHRX
X86_INS_SHUFPD
X86_INS_SHUFPS
X86_INS_SIDT
X86_INS_FSIN
X86_INS_SKINIT
X86_INS_SLDT
X86_INS_SMSW
X86_INS_SQRTPD
X86_INS_SQRTPS
X86_INS_SQRTSD
X86_INS_SQRTSS
X86_INS_FSQRT
X86_INS_STAC
X86_INS_STC
X86_INS_STD
X86_INS_STGI
X86_INS_STI
X86_INS_STMXCSR
X86_INS_STOSB
X86_INS_STOSD
X86_INS_STOSQ
X86_INS_STOSW
X86_INS_STR
X86_INS_FST
X86_INS_FSTP
X86_INS_FSTPNCE
X86_INS_SUBPD
X86_INS_SUBPS
X86_INS_FSUBR
X86_INS_FISUBR
X86_INS_FSUBRP
X86_INS_SUBSD
X86_INS_SUBSS
X86_INS_FSUB
X86_INS_FISUB
X86_INS_FSUBP
X86_INS_SWAPGS
X86_INS_SYSCALL
X86_INS_SYSENTER
X86_INS_SYSEXIT
X86_INS_SYSRET
X86_INS_T1MSKC
X86_INS_TEST
X86_INS_UD2
X86_INS_FTST
X86_INS_TZCNT
X86_INS_TZMSK
X86_INS_FUCOMPI
X86_INS_FUCOMI
X86_INS_FUCOMPP
X86_INS_FUCOMP
X86_INS_FUCOM
X86_INS_UD2B
X86_INS_UNPCKHPD
X86_INS_UNPCKHPS
X86_INS_UNPCKLPD
X86_INS_UNPCKLPS
X86_INS_VADDPD
X86_INS_VADDPS
X86_INS_VADDSD
X86_INS_VADDSS
X86_INS_VADDSUBPD
X86_INS_VADDSUBPS
X86_INS_VAESDECLAST
X86_INS_VAESDEC
X86_INS_VAESENCLAST
X86_INS_VAESENC
X86_INS_VAESIMC
X86_INS_VAESKEYGENASSIST
X86_INS_VALIGND
X86_INS_VALIGNQ
X86_INS_VANDNPD
X86_INS_VANDNPS
X86_INS_VANDPD
X86_INS_VANDPS
X86_INS_VBLENDMPD
X86_INS_VBLENDMPS
X86_INS_VBLENDPD
X86_INS_VBLENDPS
X86_INS_VBLENDVPD
X86_INS_VBLENDVPS
X86_INS_VBROADCASTF128
X86_INS_VBROADCASTI128
X86_INS_VBROADCASTI32X4
X86_INS_VBROADCASTI64X4
X86_INS_VBROADCASTSD
X86_INS_VBROADCASTSS
X86_INS_VCMPPD
X86_INS_VCMPPS
X86_INS_VCMPSD
X86_INS_VCMPSS
X86_INS_VCVTDQ2PD
X86_INS_VCVTDQ2PS
X86_INS_VCVTPD2DQX
X86_INS_VCVTPD2DQ
X86_INS_VCVTPD2PSX
X86_INS_VCVTPD2PS
X86_INS_VCVTPD2UDQ
X86_INS_VCVTPH2PS
X86_INS_VCVTPS2DQ
X86_INS_VCVTPS2PD
X86_INS_VCVTPS2PH
X86_INS_VCVTPS2UDQ
X86_INS_VCVTSD2SI
X86_INS_VCVTSD2USI
X86_INS_VCVTSS2SI
X86_INS_VCVTSS2USI
X86_INS_VCVTTPD2DQX
X86_INS_VCVTTPD2DQ
X86_INS_VCVTTPD2UDQ
X86_INS_VCVTTPS2DQ
X86_INS_VCVTTPS2UDQ
X86_INS_VCVTUDQ2PD
X86_INS_VCVTUDQ2PS
X86_INS_VDIVPD
X86_INS_VDIVPS
X86_INS_VDIVSD
X86_INS_VDIVSS
X86_INS_VDPPD
X86_INS_VDPPS
X86_INS_VERR
X86_INS_VERW
X86_INS_VEXTRACTF128
X86_INS_VEXTRACTF32X4
X86_INS_VEXTRACTF64X4
X86_INS_VEXTRACTI128
X86_INS_VEXTRACTI32X4
X86_INS_VEXTRACTI64X4
X86_INS_VEXTRACTPS
X86_INS_VFMADD132PD
X86_INS_VFMADD132PS
X86_INS_VFMADD213PD
X86_INS_VFMADD213PS
X86_INS_VFMADDPD
X86_INS_VFMADD231PD
X86_INS_VFMADDPS
X86_INS_VFMADD231PS
X86_INS_VFMADDSD
X86_INS_VFMADD213SD
X86_INS_VFMADD132SD
X86_INS_VFMADD231SD
X86_INS_VFMADDSS
X86_INS_VFMADD213SS
X86_INS_VFMADD132SS
X86_INS_VFMADD231SS
X86_INS_VFMADDSUB132PD
X86_INS_VFMADDSUB132PS
X86_INS_VFMADDSUB213PD
X86_INS_VFMADDSUB213PS
X86_INS_VFMADDSUBPD
X86_INS_VFMADDSUB231PD
X86_INS_VFMADDSUBPS
X86_INS_VFMADDSUB231PS
X86_INS_VFMSUB132PD
X86_INS_VFMSUB132PS
X86_INS_VFMSUB213PD
X86_INS_VFMSUB213PS
X86_INS_VFMSUBADD132PD
X86_INS_VFMSUBADD132PS
X86_INS_VFMSUBADD213PD
X86_INS_VFMSUBADD213PS
X86_INS_VFMSUBADDPD
X86_INS_VFMSUBADD231PD
X86_INS_VFMSUBADDPS
X86_INS_VFMSUBADD231PS
X86_INS_VFMSUBPD
X86_INS_VFMSUB231PD
X86_INS_VFMSUBPS
X86_INS_VFMSUB231PS
X86_INS_VFMSUBSD
X86_INS_VFMSUB213SD
X86_INS_VFMSUB132SD
X86_INS_VFMSUB231SD
X86_INS_VFMSUBSS
X86_INS_VFMSUB213SS
X86_INS_VFMSUB132SS
X86_INS_VFMSUB231SS
X86_INS_VFNMADD132PD
X86_INS_VFNMADD132PS
X86_INS_VFNMADD213PD
X86_INS_VFNMADD213PS
X86_INS_VFNMADDPD
X86_INS_VFNMADD231PD
X86_INS_VFNMADDPS
X86_INS_VFNMADD231PS
X86_INS_VFNMADDSD
X86_INS_VFNMADD213SD
X86_INS_VFNMADD132SD
X86_INS_VFNMADD231SD
X86_INS_VFNMADDSS
X86_INS_VFNMADD213SS
X86_INS_VFNMADD132SS
X86_INS_VFNMADD231SS
X86_INS_VFNMSUB132PD
X86_INS_VFNMSUB132PS
X86_INS_VFNMSUB213PD
X86_INS_VFNMSUB213PS
X86_INS_VFNMSUBPD
X86_INS_VFNMSUB231PD
X86_INS_VFNMSUBPS
X86_INS_VFNMSUB231PS
X86_INS_VFNMSUBSD
X86_INS_VFNMSUB213SD
X86_INS_VFNMSUB132SD
X86_INS_VFNMSUB231SD
X86_INS_VFNMSUBSS
X86_INS_VFNMSUB213SS
X86_INS_VFNMSUB132SS
X86_INS_VFNMSUB231SS
X86_INS_VFRCZPD
X86_INS_VFRCZPS
X86_INS_VFRCZSD
X86_INS_VFRCZSS
X86_INS_VORPD
X86_INS_VORPS
X86_INS_VXORPD
X86_INS_VXORPS
X86_INS_VGATHERDPD
X86_INS_VGATHERDPS
X86_INS_VGATHERPF0DPD
X86_INS_VGATHERPF0DPS
X86_INS_VGATHERPF0QPD
X86_INS_VGATHERPF0QPS
X86_INS_VGATHERPF1DPD
X86_INS_VGATHERPF1DPS
X86_INS_VGATHERPF1QPD
X86_INS_VGATHERPF1QPS
X86_INS_VGATHERQPD
X86_INS_VGATHERQPS
X86_INS_VHADDPD
X86_INS_VHADDPS
X86_INS_VHSUBPD
X86_INS_VHSUBPS
X86_INS_VINSERTF128
X86_INS_VINSERTF32X4
X86_INS_VINSERTF64X4
X86_INS_VINSERTI128
X86_INS_VINSERTI32X4
X86_INS_VINSERTI64X4
X86_INS_VINSERTPS
X86_INS_VLDDQU
X86_INS_VLDMXCSR
X86_INS_VMASKMOVDQU
X86_INS_VMASKMOVPD
X86_INS_VMASKMOVPS
X86_INS_VMAXPD
X86_INS_VMAXPS
X86_INS_VMAXSD
X86_INS_VMAXSS
X86_INS_VMCALL
X86_INS_VMCLEAR
X86_INS_VMFUNC
X86_INS_VMINPD
X86_INS_VMINPS
X86_INS_VMINSD
X86_INS_VMINSS
X86_INS_VMLAUNCH
X86_INS_VMLOAD
X86_INS_VMMCALL
X86_INS_VMOVQ
X86_INS_VMOVDDUP
X86_INS_VMOVD
X86_INS_VMOVDQA32
X86_INS_VMOVDQA64
X86_INS_VMOVDQA
X86_INS_VMOVDQU16
X86_INS_VMOVDQU32
X86_INS_VMOVDQU64
X86_INS_VMOVDQU8
X86_INS_VMOVDQU
X86_INS_VMOVHLPS
X86_INS_VMOVHPD
X86_INS_VMOVHPS
X86_INS_VMOVLHPS
X86_INS_VMOVLPD
X86_INS_VMOVLPS
X86_INS_VMOVMSKPD
X86_INS_VMOVMSKPS
X86_INS_VMOVNTDQA
X86_INS_VMOVNTDQ
X86_INS_VMOVNTPD
X86_INS_VMOVNTPS
X86_INS_VMOVSD
X86_INS_VMOVSHDUP
X86_INS_VMOVSLDUP
X86_INS_VMOVSS
X86_INS_VMOVUPD
X86_INS_VMOVUPS
X86_INS_VMPSADBW
X86_INS_VMPTRLD
X86_INS_VMPTRST
X86_INS_VMREAD
X86_INS_VMRESUME
X86_INS_VMRUN
X86_INS_VMSAVE
X86_INS_VMULPD
X86_INS_VMULPS
X86_INS_VMULSD
X86_INS_VMULSS
X86_INS_VMWRITE
X86_INS_VMXOFF
X86_INS_VMXON
X86_INS_VPABSB
X86_INS_VPABSD
X86_INS_VPABSQ
X86_INS_VPABSW
X86_INS_VPACKSSDW
X86_INS_VPACKSSWB
X86_INS_VPACKUSDW
X86_INS_VPACKUSWB
X86_INS_VPADDB
X86_INS_VPADDD
X86_INS_VPADDQ
X86_INS_VPADDSB
X86_INS_VPADDSW
X86_INS_VPADDUSB
X86_INS_VPADDUSW
X86_INS_VPADDW
X86_INS_VPALIGNR
X86_INS_VPANDD
X86_INS_VPANDND
X86_INS_VPANDNQ
X86_INS_VPANDN
X86_INS_VPANDQ
X86_INS_VPAND
X86_INS_VPAVGB
X86_INS_VPAVGW
X86_INS_VPBLENDD
X86_INS_VPBLENDMD
X86_INS_VPBLENDMQ
X86_INS_VPBLENDVB
X86_INS_VPBLENDW
X86_INS_VPBROADCASTB
X86_INS_VPBROADCASTD
X86_INS_VPBROADCASTMB2Q
X86_INS_VPBROADCASTMW2D
X86_INS_VPBROADCASTQ
X86_INS_VPBROADCASTW
X86_INS_VPCLMULQDQ
X86_INS_VPCMOV
X86_INS_VPCMP
X86_INS_VPCMPD
X86_INS_VPCMPEQB
X86_INS_VPCMPEQD
X86_INS_VPCMPEQQ
X86_INS_VPCMPEQW
X86_INS_VPCMPESTRI
X86_INS_VPCMPESTRM
X86_INS_VPCMPGTB
X86_INS_VPCMPGTD
X86_INS_VPCMPGTQ
X86_INS_VPCMPGTW
X86_INS_VPCMPISTRI
X86_INS_VPCMPISTRM
X86_INS_VPCMPQ
X86_INS_VPCMPUD
X86_INS_VPCMPUQ
X86_INS_VPCOMB
X86_INS_VPCOMD
X86_INS_VPCOMQ
X86_INS_VPCOMUB
X86_INS_VPCOMUD
X86_INS_VPCOMUQ
X86_INS_VPCOMUW
X86_INS_VPCOMW
X86_INS_VPCONFLICTD
X86_INS_VPCONFLICTQ
X86_INS_VPERM2F128
X86_INS_VPERM2I128
X86_INS_VPERMD
X86_INS_VPERMI2D
X86_INS_VPERMI2PD
X86_INS_VPERMI2PS
X86_INS_VPERMI2Q
X86_INS_VPERMIL2PD
X86_INS_VPERMIL2PS
X86_INS_VPERMILPD
X86_INS_VPERMILPS
X86_INS_VPERMPD
X86_INS_VPERMPS
X86_INS_VPERMQ
X86_INS_VPERMT2D
X86_INS_VPERMT2PD
X86_INS_VPERMT2PS
X86_INS_VPERMT2Q
X86_INS_VPEXTRB
X86_INS_VPEXTRD
X86_INS_VPEXTRQ
X86_INS_VPEXTRW
X86_INS_VPGATHERDD
X86_INS_VPGATHERDQ
X86_INS_VPGATHERQD
X86_INS_VPGATHERQQ
X86_INS_VPHADDBD
X86_INS_VPHADDBQ
X86_INS_VPHADDBW
X86_INS_VPHADDDQ
X86_INS_VPHADDD
X86_INS_VPHADDSW
X86_INS_VPHADDUBD
X86_INS_VPHADDUBQ
X86_INS_VPHADDUBW
X86_INS_VPHADDUDQ
X86_INS_VPHADDUWD
X86_INS_VPHADDUWQ
X86_INS_VPHADDWD
X86_INS_VPHADDWQ
X86_INS_VPHADDW
X86_INS_VPHMINPOSUW
X86_INS_VPHSUBBW
X86_INS_VPHSUBDQ
X86_INS_VPHSUBD
X86_INS_VPHSUBSW
X86_INS_VPHSUBWD
X86_INS_VPHSUBW
X86_INS_VPINSRB
X86_INS_VPINSRD
X86_INS_VPINSRQ
X86_INS_VPINSRW
X86_INS_VPLZCNTD
X86_INS_VPLZCNTQ
X86_INS_VPMACSDD
X86_INS_VPMACSDQH
X86_INS_VPMACSDQL
X86_INS_VPMACSSDD
X86_INS_VPMACSSDQH
X86_INS_VPMACSSDQL
X86_INS_VPMACSSWD
X86_INS_VPMACSSWW
X86_INS_VPMACSWD
X86_INS_VPMACSWW
X86_INS_VPMADCSSWD
X86_INS_VPMADCSWD
X86_INS_VPMADDUBSW
X86_INS_VPMADDWD
X86_INS_VPMASKMOVD
X86_INS_VPMASKMOVQ
X86_INS_VPMAXSB
X86_INS_VPMAXSD
X86_INS_VPMAXSQ
X86_INS_VPMAXSW
X86_INS_VPMAXUB
X86_INS_VPMAXUD
X86_INS_VPMAXUQ
X86_INS_VPMAXUW
X86_INS_VPMINSB
X86_INS_VPMINSD
X86_INS_VPMINSQ
X86_INS_VPMINSW
X86_INS_VPMINUB
X86_INS_VPMINUD
X86_INS_VPMINUQ
X86_INS_VPMINUW
X86_INS_VPMOVDB
X86_INS_VPMOVDW
X86_INS_VPMOVMSKB
X86_INS_VPMOVQB
X86_INS_VPMOVQD
X86_INS_VPMOVQW
X86_INS_VPMOVSDB
X86_INS_VPMOVSDW
X86_INS_VPMOVSQB
X86_INS_VPMOVSQD
X86_INS_VPMOVSQW
X86_INS_VPMOVSXBD
X86_INS_VPMOVSXBQ
X86_INS_VPMOVSXBW
X86_INS_VPMOVSXDQ
X86_INS_VPMOVSXWD
X86_INS_VPMOVSXWQ
X86_INS_VPMOVUSDB
X86_INS_VPMOVUSDW
X86_INS_VPMOVUSQB
X86_INS_VPMOVUSQD
X86_INS_VPMOVUSQW
X86_INS_VPMOVZXBD
X86_INS_VPMOVZXBQ
X86_INS_VPMOVZXBW
X86_INS_VPMOVZXDQ
X86_INS_VPMOVZXWD
X86_INS_VPMOVZXWQ
X86_INS_VPMULDQ
X86_INS_VPMULHRSW
X86_INS_VPMULHUW
X86_INS_VPMULHW
X86_INS_VPMULLD
X86_INS_VPMULLW
X86_INS_VPMULUDQ
X86_INS_VPORD
X86_INS_VPORQ
X86_INS_VPOR
X86_INS_VPPERM
X86_INS_VPROTB
X86_INS_VPROTD
X86_INS_VPROTQ
X86_INS_VPROTW
X86_INS_VPSADBW
X86_INS_VPSCATTERDD
X86_INS_VPSCATTERDQ
X86_INS_VPSCATTERQD
X86_INS_VPSCATTERQQ
X86_INS_VPSHAB
X86_INS_VPSHAD
X86_INS_VPSHAQ
X86_INS_VPSHAW
X86_INS_VPSHLB
X86_INS_VPSHLD
X86_INS_VPSHLQ
X86_INS_VPSHLW
X86_INS_VPSHUFB
X86_INS_VPSHUFD
X86_INS_VPSHUFHW
X86_INS_VPSHUFLW
X86_INS_VPSIGNB
X86_INS_VPSIGND
X86_INS_VPSIGNW
X86_INS_VPSLLDQ
X86_INS_VPSLLD
X86_INS_VPSLLQ
X86_INS_VPSLLVD
X86_INS_VPSLLVQ
X86_INS_VPSLLW
X86_INS_VPSRAD
X86_INS_VPSRAQ
X86_INS_VPSRAVD
X86_INS_VPSRAVQ
X86_INS_VPSRAW
X86_INS_VPSRLDQ
X86_INS_VPSRLD
X86_INS_VPSRLQ
X86_INS_VPSRLVD
X86_INS_VPSRLVQ
X86_INS_VPSRLW
X86_INS_VPSUBB
X86_INS_VPSUBD
X86_INS_VPSUBQ
X86_INS_VPSUBSB
X86_INS_VPSUBSW
X86_INS_VPSUBUSB
X86_INS_VPSUBUSW
X86_INS_VPSUBW
X86_INS_VPTESTMD
X86_INS_VPTESTMQ
X86_INS_VPTESTNMD
X86_INS_VPTESTNMQ
X86_INS_VPTEST
X86_INS_VPUNPCKHBW
X86_INS_VPUNPCKHDQ
X86_INS_VPUNPCKHQDQ
X86_INS_VPUNPCKHWD
X86_INS_VPUNPCKLBW
X86_INS_VPUNPCKLDQ
X86_INS_VPUNPCKLQDQ
X86_INS_VPUNPCKLWD
X86_INS_VPXORD
X86_INS_VPXORQ
X86_INS_VPXOR
X86_INS_VRCP14PD
X86_INS_VRCP14PS
X86_INS_VRCP14SD
X86_INS_VRCP14SS
X86_INS_VRCP28PD
X86_INS_VRCP28PS
X86_INS_VRCP28SD
X86_INS_VRCP28SS
X86_INS_VRCPPS
X86_INS_VRCPSS
X86_INS_VRNDSCALEPD
X86_INS_VRNDSCALEPS
X86_INS_VRNDSCALESD
X86_INS_VRNDSCALESS
X86_INS_VROUNDPD
X86_INS_VROUNDPS
X86_INS_VROUNDSD
X86_INS_VROUNDSS
X86_INS_VRSQRT14PD
X86_INS_VRSQRT14PS
X86_INS_VRSQRT14SD
X86_INS_VRSQRT14SS
X86_INS_VRSQRT28PD
X86_INS_VRSQRT28PS
X86_INS_VRSQRT28SD
X86_INS_VRSQRT28SS
X86_INS_VRSQRTPS
X86_INS_VRSQRTSS
X86_INS_VSCATTERDPD
X86_INS_VSCATTERDPS
X86_INS_VSCATTERPF0DPD
X86_INS_VSCATTERPF0DPS
X86_INS_VSCATTERPF0QPD
X86_INS_VSCATTERPF0QPS
X86_INS_VSCATTERPF1DPD
X86_INS_VSCATTERPF1DPS
X86_INS_VSCATTERPF1QPD
X86_INS_VSCATTERPF1QPS
X86_INS_VSCATTERQPD
X86_INS_VSCATTERQPS
X86_INS_VSHUFPD
X86_INS_VSHUFPS
X86_INS_VSQRTPD
X86_INS_VSQRTPS
X86_INS_VSQRTSD
X86_INS_VSQRTSS
X86_INS_VSTMXCSR
X86_INS_VSUBPD
X86_INS_VSUBPS
X86_INS_VSUBSD
X86_INS_VSUBSS
X86_INS_VTESTPD
X86_INS_VTESTPS
X86_INS_VUNPCKHPD
X86_INS_VUNPCKHPS
X86_INS_VUNPCKLPD
X86_INS_VUNPCKLPS
X86_INS_VZEROALL
X86_INS_VZEROUPPER
X86_INS_WAIT
X86_INS_WBINVD
X86_INS_WRFSBASE
X86_INS_WRGSBASE
X86_INS_WRMSR
X86_INS_XABORT
X86_INS_XACQUIRE
X86_INS_XBEGIN
X86_INS_XCHG
X86_INS_FXCH
X86_INS_XCRYPTCBC
X86_INS_XCRYPTCFB
X86_INS_XCRYPTCTR
X86_INS_XCRYPTECB
X86_INS_XCRYPTOFB
X86_INS_XEND
X86_INS_XGETBV
X86_INS_XLATB
X86_INS_XRELEASE
X86_INS_XRSTOR
X86_INS_XRSTOR64
X86_INS_XSAVE
X86_INS_XSAVE64
X86_INS_XSAVEOPT
X86_INS_XSAVEOPT64
X86_INS_XSETBV
X86_INS_XSHA1
X86_INS_XSHA256
X86_INS_XSTORE
X86_INS_XTEST
X86_INS_ENDING ' mark the end of the list of insn
End Enum
'Group of X86 instructions
Public Enum x86_insn_group
X86_GRP_INVALID = 0 ' = CS_GRP_INVALID
' > Generic groups '
X86_GRP_JUMP 'all jump instructions (conditional+direct+indirect jumps) = CS_GRP_JUMP
X86_GRP_CALL 'all call instructions = CS_GRP_CALL
X86_GRP_RET ' all return instructions = CS_GRP_RET
X86_GRP_INT 'all interrupt instructions (int+syscall) = CS_GRP_INT
X86_GRP_IRET 'all interrupt return instructions = CS_GRP_IRET
' > Architecture-specific groups
X86_GRP_VM = 128 ' all virtualization instructions (VT-x + AMD-V)
X86_GRP_3DNOW
X86_GRP_AES
X86_GRP_ADX
X86_GRP_AVX
X86_GRP_AVX2
X86_GRP_AVX512
X86_GRP_BMI
X86_GRP_BMI2
X86_GRP_CMOV
X86_GRP_F16C
X86_GRP_FMA
X86_GRP_FMA4
X86_GRP_FSGSBASE
X86_GRP_HLE
X86_GRP_MMX
X86_GRP_MODE32
X86_GRP_MODE64
X86_GRP_RTM
X86_GRP_SHA
X86_GRP_SSE1
X86_GRP_SSE2
X86_GRP_SSE3
X86_GRP_SSE41
X86_GRP_SSE42
X86_GRP_SSE4A
X86_GRP_SSSE3
X86_GRP_PCLMUL
X86_GRP_XOP
X86_GRP_CDI
X86_GRP_ERI
X86_GRP_TBM
X86_GRP_16BITMODE
X86_GRP_NOT64BITMODE
X86_GRP_SGX
X86_GRP_DQI
X86_GRP_BWI
X86_GRP_PFI
X86_GRP_VLX
X86_GRP_SMAP
X86_GRP_NOVLX
X86_GRP_ENDING
End Enum
Function x86_sse_cc2str(v As x86_sse_cc) As String
Dim r As String
If v = X86_SSE_CC_INVALID Then r = "X86_SSE_CC_INVALID"
If v = X86_SSE_CC_EQ Then r = "X86_SSE_CC_EQ"
If v = X86_SSE_CC_LT Then r = "X86_SSE_CC_LT"
If v = X86_SSE_CC_LE Then r = "X86_SSE_CC_LE"
If v = X86_SSE_CC_UNORD Then r = "X86_SSE_CC_UNORD"
If v = X86_SSE_CC_NEQ Then r = "X86_SSE_CC_NEQ"
If v = X86_SSE_CC_NLT Then r = "X86_SSE_CC_NLT"
If v = X86_SSE_CC_NLE Then r = "X86_SSE_CC_NLE"
If v = X86_SSE_CC_ORD Then r = "X86_SSE_CC_ORD"
If v = X86_SSE_CC_EQ_UQ Then r = "X86_SSE_CC_EQ_UQ"
If v = X86_SSE_CC_NGE Then r = "X86_SSE_CC_NGE"
If v = X86_SSE_CC_NGT Then r = "X86_SSE_CC_NGT"
If v = X86_SSE_CC_FALSE Then r = "X86_SSE_CC_FALSE"
If v = X86_SSE_CC_NEQ_OQ Then r = "X86_SSE_CC_NEQ_OQ"
If v = X86_SSE_CC_GE Then r = "X86_SSE_CC_GE"
If v = X86_SSE_CC_GT Then r = "X86_SSE_CC_GT"
If v = X86_SSE_CC_TRUE Then r = "X86_SSE_CC_TRUE"
If Len(r) = 0 Then
r = "Unknown: " & Hex(v)
ElseIf DEBUG_DUMP Then
r = r & " (" & Hex(v) & ")"
End If
x86_sse_cc2str = r
End Function
Function x86_avx_cc2str(v As x86_avx_cc) As String
Dim r As String
If v = X86_AVX_CC_INVALID Then r = "X86_AVX_CC_INVALID"
If v = X86_AVX_CC_EQ Then r = "X86_AVX_CC_EQ"
If v = X86_AVX_CC_LT Then r = "X86_AVX_CC_LT"
If v = X86_AVX_CC_LE Then r = "X86_AVX_CC_LE"
If v = X86_AVX_CC_UNORD Then r = "X86_AVX_CC_UNORD"
If v = X86_AVX_CC_NEQ Then r = "X86_AVX_CC_NEQ"
If v = X86_AVX_CC_NLT Then r = "X86_AVX_CC_NLT"
If v = X86_AVX_CC_NLE Then r = "X86_AVX_CC_NLE"
If v = X86_AVX_CC_ORD Then r = "X86_AVX_CC_ORD"
If v = X86_AVX_CC_EQ_UQ Then r = "X86_AVX_CC_EQ_UQ"
If v = X86_AVX_CC_NGE Then r = "X86_AVX_CC_NGE"
If v = X86_AVX_CC_NGT Then r = "X86_AVX_CC_NGT"
If v = X86_AVX_CC_FALSE Then r = "X86_AVX_CC_FALSE"
If v = X86_AVX_CC_NEQ_OQ Then r = "X86_AVX_CC_NEQ_OQ"
If v = X86_AVX_CC_GE Then r = "X86_AVX_CC_GE"
If v = X86_AVX_CC_GT Then r = "X86_AVX_CC_GT"
If v = X86_AVX_CC_TRUE Then r = "X86_AVX_CC_TRUE"
If v = X86_AVX_CC_EQ_OS Then r = "X86_AVX_CC_EQ_OS"
If v = X86_AVX_CC_LT_OQ Then r = "X86_AVX_CC_LT_OQ"
If v = X86_AVX_CC_LE_OQ Then r = "X86_AVX_CC_LE_OQ"
If v = X86_AVX_CC_UNORD_S Then r = "X86_AVX_CC_UNORD_S"
If v = X86_AVX_CC_NEQ_US Then r = "X86_AVX_CC_NEQ_US"
If v = X86_AVX_CC_NLT_UQ Then r = "X86_AVX_CC_NLT_UQ"
If v = X86_AVX_CC_NLE_UQ Then r = "X86_AVX_CC_NLE_UQ"
If v = X86_AVX_CC_ORD_S Then r = "X86_AVX_CC_ORD_S"
If v = X86_AVX_CC_EQ_US Then r = "X86_AVX_CC_EQ_US"
If v = X86_AVX_CC_NGE_UQ Then r = "X86_AVX_CC_NGE_UQ"
If v = X86_AVX_CC_NGT_UQ Then r = "X86_AVX_CC_NGT_UQ"
If v = X86_AVX_CC_FALSE_OS Then r = "X86_AVX_CC_FALSE_OS"
If v = X86_AVX_CC_NEQ_OS Then r = "X86_AVX_CC_NEQ_OS"
If v = X86_AVX_CC_GE_OQ Then r = "X86_AVX_CC_GE_OQ"
If v = X86_AVX_CC_GT_OQ Then r = "X86_AVX_CC_GT_OQ"
If v = X86_AVX_CC_TRUE_US Then r = "X86_AVX_CC_TRUE_US"
If Len(r) = 0 Then
r = "Unknown: " & Hex(v)
ElseIf DEBUG_DUMP Then
r = r & " (" & Hex(v) & ")"
End If
x86_avx_cc2str = r
End Function
Function x86_avx_rm2str(v As x86_avx_rm) As String
Dim r As String
If v = X86_AVX_RM_INVALID Then r = "X86_AVX_RM_INVALID"
If v = X86_AVX_RM_RN Then r = "X86_AVX_RM_RN"
If v = X86_AVX_RM_RD Then r = "X86_AVX_RM_RD"
If v = X86_AVX_RM_RU Then r = "X86_AVX_RM_RU"
If v = X86_AVX_RM_RZ Then r = "X86_AVX_RM_RZ"
If Len(r) = 0 Then
r = "Unknown: " & Hex(v)
ElseIf DEBUG_DUMP Then
r = r & " (" & Hex(v) & ")"
End If
x86_avx_rm2str = r
End Function