EuroAssembler Index Manual Download Source Macros


Sitemap Links Forum Tests Projects

viewdasm.htm
DiiInitialize
Disasm
DisTab
DisTabProc
DisTypeList
ExtendM
ExtendP
ExtendR
ExtendV
FlushDii
GetAccum
GetCounter
GetModRMNr
GetModRMReg
GetOperWidth
GetRegByCL
GetSimdDataWidth
GetStringRegs
Imm
Imm2
Imm2XMM
ImmRel
Invalid
LoadDisplacement
ModifyDefaultWidth
Moffs
PfxLegacyAccept
PfxMEVEXAccept
PfxREXAccept
PfxVEX2Accept
PfxVEX3Accept
PfxXOPAccept
SelectByCL
StoDL

This is an OS-independent module of EuroTool program EuroView which performs disassembly of a code.


         EUROASM CPU=X64, Debug=no
viewdasm PROGRAM FORMAT=COFF,WIDTH=64
         %DROPMACRO *
         INCLUDEHEAD viewmain.htm
         INCLUDE1 cpuext.htm, cpuext64.htm, string64.htm, status32.htm, debug.htm
Format of byte REX
REXWRXB
0100operand width 64 Reg/Opcode extension r3SIB.I extension x3SIB.B or R/M extension b3
Format of prefix XOP
Byte 0Byte 1 Byte 2
10001111 ~r3~x3~b3m4m3m2m1m0 W~v3~v2~v1~v0Lp1p0
Format of prefix VEX2
Byte 0Byte 1
11000101 ~r3~v3~v2~v1~v0Lp1p0
Format of prefix VEX3
Byte 0Byte 1 Byte 2
11000100 ~r3~x3~b3m4m3m2m1m0 W~v3~v2~v1~v0Lp1p0
Format of prefix MVEX
Byte 0Byte 1Byte 2Byte 3
01100010 ~r3~x3~b3~r4m3m2m1m0 W~v3~v2~v1~v00p1p0 ES2S1S0~v4k2k1k0
Format of prefix EVEX
Byte 0Byte 1Byte 2Byte 3
01100010 ~r3~x3~b3~r4m3m2m1m0 W~v3~v2~v1~v01p1p0 zL'Lb~v4k2k1k0
Format of byte ModR/M
76543210
ModReg/Opcode R/M
mod1mod0r2r1 r0b2b1b0
Format of byte SIB
76543210
SS: ScaleI: Index B: Base
S1S0x2x1 x0b2b1b0
Operands encoding in MVEX|EVEX prefix
AVX-512 operandsEVEX / MVEX ModRM byte(V)SIB byte
RXBR'V' modregR/M scaleindexbase
Mod=0|1|2; mem type: Rr, [S * Rx + Rb] r3x3b3r4x4 mmr2r1r0100 S1S0x2x1x0b2b1b0
Mod=3; reg type: Rr, Rb r3b4b3r4 11r2r1r0b2b1b0 not used
↑ DIS
128-bit structure DIS declares recipes for disassembly of one prefix or machine instruction.
For each opcode 0x01..0x0F3XXX there is one member Dii of this structure in the table DisTab.
DIS        STRUC          ; Declaration of disassembly of one prefix or instruction.
.Operation  D 24*BYTE ; Instruction mnemonic in upper case.
.Opcode     D DWORD   ; E.g. 0x0000_00XX, 0x000F_38XX etc.
.Conditions D DWORD   ; stCondMask + stTypeMask, see  DIS.Conditions encoding flags below.
           ENDSTRUC DIS
↑ DII
Structure DII declares memory variables used in disassembly on one instructions.
There is one member Dii of this structure in this program.
DII STRUC          ; Disassembled machine (Intel) instruction.
.Prefix1       D Q ; Pointer to explicitly disassembled machine prefix #1 name. 0x00
.Prefix2       D Q ; Pointer to explicitly disassembled machine prefix #2 name. 0x08
.Prefix3       D Q ; Pointer to explicitly disassembled machine prefix #3 name. 0x10
.Prefix4       D Q ; Pointer to explicitly disassembled machine prefix #4 name. 0x18
.Operand1      D Q ; Pointer to operand 1 as a string.                          0x20
.Operand2      D Q ; Pointer to operand 2 as a string.                          0x28
.Operand3      D Q ; Pointer to operand 3 as a string.                          0x30
.Operand4      D Q ; Pointer to operand 4 as a string.                          0x38
.OperReg       D Q ; Pointer to operational register name from RegOp field. May be GPR or changed. 0x40
.BaseReg       D Q ; Pointer to base register name from R/M field or from SIB/B field.  May be GPR or changed.
.IndexReg      D Q ; Pointer to index register name from SIB/I field.  May be GPR or changed.      0x50
.VvvvReg       D Q ; Pointer to Vvvv register name from (E)VEX field.  May be GPR or changed.      0x58
.Memory        D Q ; Pointer to a memory string from ModR/M in braces, e.g. "[EBX+2*ECX+0x12]",0   0x60
.Operation     D Q ; Pointer to operation name. Upper case, zero terminated.     +0x68
.Disp          D Q ; Displacement value.                                         +0x70
.Imm           D Q ; Immediate value.                                            +0x78
.$VA           D Q ; File address of $ (current section offset)                  +0x80
.Opcode        D D ; Opcode (one,two,three-bytes)                                +0x88
.InstrSize     D D ; Instruction size (1..15)                                    +0x8C
.Prefix        D D ; Prefix flags, see below.                                    +0x90
.Flags         D D ; Miscellaneous status flags, see below.                      +0x94
.Disp8EVEX     D D ; see IidDisp8EVEX                       +0x98
.Disp8MVEX     D D ; see IidDisp8MVEX                       +0x9C
.Status        D D ; Status flags, see below.                                    +0xA0
.Family        D D ; Register families for oper,base,Vvv,index register.         +0xA4
               D D ; reserved                                                    +0xA8
               D 2*B ; reserved                                                  +0xAC
.OperWidth     D B ; Effective operation width (may have been Otoggled or W-ed). +0xAE.
.AddrWidth     D B ; Effective address width (may have been Atoggled).           +0xAF.
.OperNr        D B ; Number of operational register r0..r4  +0xB0.
.BaseNr        D B ; Number of base register  b0..b4        +0xB1.
.VvvvNr        D B ; Number of Vvvv register  v0..v4        +0xB2.
.IndexNr       D B ; Number of index register x0..x4        +0xB3.
               D B ; reserved                               +0xB4
.MaskNr        D B ; Number of key register k0..k7          +0xB5.
.Scale         D B ; 0|'2'|'4'|'8'                          +0xB6.
.MapNr         D B ; 0=base,1=0F, 2=0F38, 3=0F3A, 5=baseMod5, 8=XOP8, 9=XOP9, 10=XOP10
.DispSize      D B ; 0,1,2,4,8 bytes of displacement.       +0xB8.
.ImmSize       D B ; 0,1,2,4,8 bytes of immediate operand.  +0xB9.
.Imm2Size      D B ; 0,1 bytes of secondary imm. operand.   +0xBA
.@VEXtype      D B ; 0..5 see Dii.@VEXtype encoding below   +0xBB
.ModRM         D B ;                                        +0xBC
.SIB           D B ;                                        +0xBD
.DATA          D B ; 0|'B'|'W'|'D'|'Q'|'O'|'T'|'Y'|'Z'.     +0xBE
.DISP          D B ; 0|'B'|'W'|'D'|'Q'.                     +0xBF
.IMM           D B ; 0|'B'|'W'|'D'|'Q'.                     +0xC0
.CODE          D B ; 0|'S'|'L'.                             +0xC1
.SCALE         D B ; 0|'S'|'V'.                             +0xC2
.ADDR          D B ; 0|'A'|'R'.                             +0xC3
.DIST          D B ; 0|'S'|'N'|'F'.                         +0xC4
.MASK          D B ; 0|'0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'.     +0xC5
.OPER          D B ; 0|'0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'.     +0xC6
.ROUND         D B ; 0|'N'|'U'|'D'|'Z'.                     +0xC7
.ZEROING       D B ; 0|'0'|'1'.                             +0xC8
.SAE           D B ; 0|'0'|'1'.                             +0xC9
.BCST          D B ; 0|'0'|'1'.                             +0xCA
.EH            D B ; 0|'0'|'1'.                             +0xCB
.PREFIX        D 4*B ; 0|"EVEX"|"MVEX"|"VEX3"|"VEX2"|"XOP"  +0xCC
    ENDSTRUC DII
; Dii.Flags miscellaneous encoding flags:
flagS0           = 0x0000_0001 ; Bit MVEX.S0 alias EVEX.b
flagS1           = 0x0000_0002 ; Bit MVEX.S1 alias EVEX.L alias XOP|VEX.L.
flagS2           = 0x0000_0004 ; Bit MVEX.S2 alias EVEX.L'
flagProm64       = 0x0000_0010 ; OperWidth is promoted to 64.
flagSIB          = 0x0000_0020 ; SIB byte follows ModR/M.
flagNoBase       = 0x0000_0040 ; ModR/M with no base register.
flagNoIndex      = 0x0000_0080 ; ModR/M with no index register.
flagNoDATAinMod3 = 0x0000_0100 ; Do not display DATA= if Mod=3.
flagImmFar       = 0x0000_0200 ; Immediate operand will be 0xSeg:0xOffs rather than 0xPointer.
flagImmSignExt   = 0x0000_0400 ; Immediate operand will be sign-extended, IMM=D and not IMM=Q.
flagVSIB         = 0x0000_0800 ; Index register is XMM|YMM|ZMM even when SIB.X=4.
flagFWAIT        = 0x0000_1000 ; Flag|prefix 0x9B preceeded certain FPU instructions.
flagOverrideES   = 0x0000_2000 ; Dest.segment in GetStringRegs can be overriden.

; Dii.Status encoding flags:
stXpfx         = 0x0000_0800 ; Presence of prefix *VEX or XOP is queried.
stF2::         = 0x0001_0000 ; EpfxF2
stF3::         = 0x0002_0000 ; EpfxF3
st66::         = 0x0004_0000 ; Epfx66
stNP::         = 0x0008_0000 ; EpfxNP
stRegOp0::     = 0x0080_0000 ; ModR/M is in RegOp=0.
stRegOp1::     = 0x0090_0000 ; ModR/M is in RegOp=1.
stRegOp2::     = 0x00A0_0000 ; ModR/M is in RegOp=2.
stRegOp3::     = 0x00B0_0000 ; ModR/M is in RegOp=3.
stRegOp4::     = 0x00C0_0000 ; ModR/M is in RegOp=4.
stRegOp5::     = 0x00D0_0000 ; ModR/M is in RegOp=5.
stRegOp6::     = 0x00E0_0000 ; ModR/M is in RegOp=6.
stRegOp7::     = 0x00F0_0000 ; ModR/M is in RegOp=7.
stMod0         = 0x0100_0000 ; ModR/M is in Mod=0 (0x00..0x3F).
stMod1         = 0x0200_0000 ; ModR/M is in Mod=1 (0x40..0x7F).
stMod2         = 0x0400_0000 ; ModR/M is in Mod=2 (0x80..0xBF).
stMod3         = 0x0800_0000 ; ModR/M is in Mod=3 (0xC0..0xFF).
stMode64       = 0x2000_0000 ; CPU is in 64-bit mode.
stW            = 0x4000_0000 ; Wide bit is set (REX.W or *VEX.W).

; Dii.Prefix encoding flags:
pfxREX.B::     = 0x0000_0041
pfxREX.X::     = 0x0000_0042
pfxREX.R::     = 0x0000_0044
pfxREX.W::     = 0x0000_0048 ; Identical with Dii.Status:stW
pfxREX         = 0x0000_0040 ; Prefix REX was present. AH,CH,DH,BH are not available.
pfx26          = 0x0000_0100 ; Prefix 26/SEGES  was presented explicitly.
pfx36          = 0x0000_0200 ; Prefix 36/SEGSS  was presented explicitly.
pfx2E          = 0x0000_0400 ; Prefix 2E/SEGCS/SELDOM was presented explicitly.
pfx3E          = 0x0000_0800 ; Prefix 3E/SEGDS/OFTEN was presented explicitly.
pfx67          = 0x0000_1000 ; Prefix 67/ATOGGLE was presented explicitly.
pfx64          = 0x0000_2000 ; Prefix 64/SEGFS  was presented explicitly.
pfx65          = 0x0000_4000 ; Prefix 65/SEGGS  was presented explicitly.
pfxF0          = 0x0000_8000 ; Prefix F0/LOCK   was presented explicitly.
pfxF2          = 0x0001_0000 ; Prefix F2/REPNE was presented explicitly.
pfxF3          = 0x0002_0000 ; Prefix F3/REPE was presented explicitly.
pfx66          = 0x0004_0000 ; Prefix 66/OTOGGLE was presented explicitly.
pfxNP          = 0x0008_0000 ; No op-modifying prefix (66|F2|F3).
pfxF2IsOpcode  = 0x0010_0000 ; Prefix F2 is part of opcode.
pfxF3IsOpcode  = 0x0020_0000 ; Prefix F3 is part of opcode.
pfx66IsOpcode  = 0x0040_0000 ; Prefix 66 is part of opcode, it does not change Dii.OperWidth.
pfxNPIsOpcode  = 0x0080_0000 ; None of prefixes 66,F2,F3 may be present.
pfx66NotUsed   = 0x0100_0000 ; Prefix 66 was not used in encoding. Flush as OTOGGLE.
pfx67NotUsed   = 0x0200_0000 ; Prefix 67 was not used in encoding. Flush as ATOGGLE.
pfxREXNotUsed  = 0x0400_0000 ; Prefix REX was not used in encoding. Flush as DB.
pfxNoMore      = 0x0800_0000 ; REX,XOP,VEX,EVEX was already disassembled. Any following legacy prefix is error.

; DIS.Conditions encoding flags, used in macro
DisTab and in DasmBlock in register EBX:
DisTypeMask    = 0x0000_03FF ; Mask for ordinal of operands type, one of the @DisTypeList member 1..1023.
condMask       = 0xFFFF_FC00 ; Mask for conditions in DIS.Conditions:
condModeLg     = 0x0000_0400 ; Check if Dii.Status:stMode64 is reset.
condMode64     = 0x0000_0800 ; Check if Dii.Status:stMode64 is set.
cond0::        = 0x0000_0000 ; No @VEX prefix was used.
condXOP::      = 0x0000_1000 ; Check if prefix XOP was used for encoding.
condMVEX::     = 0x0000_2000 ; Check if prefix MVEX was used for encoding.
condVEX::      = 0x0000_3000 ; Check if prefix VEX2 was used for encoding.
condEVEX::     = 0x0000_4000 ; Check if prefix EVEX with opcode 0F|0F38|0F3A was used for encoding.
condEVEX5::    = 0x0000_5000 ; Check if prefix EVEX with opcode Map5 was used for encoding.
condEVEX6::    = 0x0000_6000 ; Check if prefix EVEX with opcode Map6 was used for encoding.
condXpfx       = 0x0000_8000 ; Check if prefix XOP|VEX|MVEX|EVEX was used for encoding.
condW0         = 0x0001_0000 ; Check if wide bit Dii.Status:stW is reset.
condW1         = 0x0002_0000 ; Check if wide bit Dii.Status:stW is set.
condMod0       = 0x0004_0000 ; Check if Dii.Status:stMod0|stMod1|stMod2 is set.
condMod3       = 0x0008_0000 ; Check if Dii.Status:stMod3 is set.
condEpfxNP     = 0x0010_0000 ; Check if none of Dii.Prefix:pfx66|pfxF2|pfxF3 is set.
condEpfx66     = 0x0020_0000 ; Check if Dii.Prefix:pfx66 is set.
condEpfxF2     = 0x0040_0000 ; Check if Dii.Prefix:pfxF2 is set.
condEpfxF3     = 0x0080_0000 ; Check if Dii.Prefix:pfxF3 is set.
condRegOp0     = 0x0000_0000 ; Check if ModR/M field RegOp is 0.
condRegOp1     = 0x0100_0000 ; Check if ModR/M field RegOp is 1.
condRegOp2     = 0x0200_0000 ; Check if ModR/M field RegOp is 2.
condRegOp3     = 0x0300_0000 ; Check if ModR/M field RegOp is 3.
condRegOp4     = 0x0400_0000 ; Check if ModR/M field RegOp is 4.
condRegOp5     = 0x0500_0000 ; Check if ModR/M field RegOp is 5.
condRegOp6     = 0x0600_0000 ; Check if ModR/M field RegOp is 6.
condRegOp7     = 0x0700_0000 ; Check if ModR/M field RegOp is 7.
condRegOp      = 0x0800_0000 ; RegOp value 0..7 in bits 24..26 should be checked.
condRM0        = 0x0000_0000 ; Check if ModR/M field RM is 0.
condRM1        = 0x1000_0000 ; Check if ModR/M field RM is 1.
condRM2        = 0x2000_0000 ; Check if ModR/M field RM is 2.
condRM3        = 0x3000_0000 ; Check if ModR/M field RM is 3.
condRM4        = 0x4000_0000 ; Check if ModR/M field RM is 4.
condRM5        = 0x5000_0000 ; Check if ModR/M field RM is 5.
condRM6        = 0x6000_0000 ; Check if ModR/M field RM is 6.
condRM7        = 0x7000_0000 ; Check if ModR/M field RM is 7.
condRM         = 0x8000_0000 ; RM value 0..7 in bits 28..30 should be checked.

; Dii.Family encoding flags. Bytes of Dii.Family specify fields OpReg, R/M, Vvvv, Imm.
familyR::      =  0  ; GPR (default).
familyC::      = 'C' ; Control register CR0..CR8.
familyG::      = 'G' ; Debug register   DR0..DR7.
familyE::      = 'E' ; Test register TR0..TR7.
familyS::      = 'S' ; Segment register ES,DS,CS,SS,FS,GS,SEGR6,SEGR7.
familyF::      = 'F' ; FPU register ST0..ST7.
familyK::      = 'K' ; Keymask register K0..K7.
familyN::      = 'N' ; Bind register BND0..BND3.
familyU::      = 'U' ; Multimedia register MM0..MM7.
familyO::      = 'O' ; SSE register X|Y|ZMM0..31.
familyX::      = 'X' ; SSE register XMM0..XMM31.
familyY::      = 'Y' ; SSE register YMM0..YMM31.
familyZ::      = 'Z' ; SSE register ZMM0..ZMM31.
familyV::      = 'V' ; SIB index is SSE register XMM0..ZMM31.

; Dii.@VEXtype encoding flags:
XpfxXOP        = 1  ; XOP  with opcode map 0Fxx,0F38xx,0F3Axx.
XpfxMVEX       = 2  ; MVEX with opcode map 0Fxx,0F38xx,0F3Axx.
XpfxVEX        = 3  ; VEX2 or VEX3 with opcode map 0Fxx,0F38xx,0F3Axx.
XpfxEVEX       = 4  ; EVEX with opcode map 0Fxx,0F38xx,0F3Axx.
XpfxEVEX5      = 5  ; EVEX with opcode MAP5. Dii.Opcode is 0x0000_00XX.
XpfxEVEX6      = 6  ; EVEX with opcode MAP6. Dii.Opcode is 0x0000_00XX.

; Dii.OperWidth (effective width, based on ArgCodeWidth:: but changeable by OTOGGLE or by REX.W).
OperWidth8     = 0x01
OperWidth16    = 0x02
OperWidth32    = 0x04 ; R32 or single precision FPU.
OperWidth64    = 0x08 ; R64 or double precision FPU.

; Dii.AddrWidth (effective width, based on ArgCodeWidth:: but changeable by ATOGGLE).
AddrWidth16    = 0x02
AddrWidth32    = 0x04
AddrWidth64    = 0x08

; Status.Width (CPU mode) specified by file format in [argument.htm:Status::].
;ArgWidth16     = 0x0010_0000
;ArgWidth32     = 0x0020_0000
;ArgWidth64     = 0x0040_0000

; The General Disp8*N rule (N = size of the memory element actually loaded, not the vector register width):
; Full vector load (no broadcast): N = full vector width in bytes (16, 32, or 64).
; Broadcast {1toX}): N = element size (4 for float32, 8 for float64 or 1..8 for integer).
; Scalar: N = element size (4 or 8 bytes or 1..8 for integer).

; Dii.Disp8EVEX value encodings for EVEX.L'Lb=Oper=01234567:
FVM              = 0x445566FF  ; Full Memory
FV64             = 0x435363FF  ; Full (Q)
FV32             = 0x425262FF  ; Full (D)
FV16             = 0x415161FF  ; Full (W)
HVM              = 0x334455FF  ; Half Memory
HV32             = 0x324252FF  ; Half (D)
HV16             = 0x314151FF  ; Half (W)
QVM              = 0x223344FF  ; Quarter Memory
QV16             = 0x213141FF  ; Quarter (W)
OVM              = 0x112233FF  ; Eighth Memory

; Common Dii.Disp8EVEX and Dii.Disp8MVEXvalue encodings:
T8               = 0x00000000  ; Scalar (B)
T16              = 0x11111111  ; Scalar (W)
T32              = 0x22222222  ; Scalar (D)
T64              = 0x33333333  ; Scalar (Q)
T128             = 0x44444444  ; Scalar (O)
T256             = 0x55555555  ; Scalar (Y)

; Dii.Disp8MVEX value encodings for MVEX.S2S1S0=Oper=01234567:
MFVM              = 0x456F456F  ; Full Memory
MFV64             = 0x4353633F  ; Full (Q)
MFV32             = 0x4252622F  ; Full (D)
MHV32             = 0x4151611F  ; Half (D)
[.rodata]
; Register names and operation names:
RegAddr16:
        DB "BX+SI",0
        DB "BX+DI",0
        DB "BP+SI",0
        DB "BP+DI",0
        DB "SI",0
        DB "DI",0
        DB "BP",0
        DB "BX",0
RegSeg:
RegES:  DB "ES",0
RegCS:  DB "CS",0
RegSS:  DB "SS",0
RegDS:  DB "DS",0
RegFS:  DB "FS",0
RegGS:  DB "GS",0
        DB "SEGR6",0
        DB "SEGR7",0

Reg8:
RegAL:  DB "AL",0
RegCL:  DB "CL",0
        DB "DL",0
        DB "BL",0
        DB "AH",0
        DB "CH",0
        DB "DH",0
        DB "BH",0
Reg8REX:
        DB "AL",0
        DB "CL",0
        DB "DL",0
        DB "BL",0
        DB "SPL",0
        DB "BPL",0
        DB "SIL",0
        DB "DIL",0
        DB "R8B",0
        DB "R9B",0
        DB "R10B",0
        DB "R11B",0
        DB "R12B",0
        DB "R13B",0
        DB "R14B",0
        DB "R15B",0
Reg16:
RegAX:  DB "AX",0
RegCX:  DB "CX",0
RegDX:  DB "DX",0
        DB "BX",0
        DB "SP",0
        DB "BP",0
        DB "SI",0
        DB "DI",0
        DB "R8W",0
        DB "R9W",0
        DB "R10W",0
        DB "R11W",0
        DB "R12W",0
        DB "R13W",0
        DB "R14W",0
        DB "R15W",0
Reg32:
RegEAX: DB "EAX",0
RegECX: DB "ECX",0
        DB "EDX",0
        DB "EBX",0
        DB "ESP",0
        DB "EBP",0
        DB "ESI",0
        DB "EDI",0
        DB "R8D",0
        DB "R9D",0
        DB "R10D",0
        DB "R11D",0
        DB "R12D",0
        DB "R13D",0
        DB "R14D",0
        DB "R15D",0
Reg64:
RegRAX: DB "RAX",0
RegRCX: DB "RCX",0
        DB "RDX",0
        DB "RBX",0
        DB "RSP",0
        DB "RBP",0
        DB "RSI",0
        DB "RDI",0
        DB "R8",0
        DB "R9",0
        DB "R10",0
        DB "R11",0
        DB "R12",0
        DB "R13",0
        DB "R14",0
        DB "R15",0
RegFP:
RegST0: DB "ST0",0
RegST1: DB "ST1",0
        DB "ST2",0
        DB "ST3",0
        DB "ST4",0
        DB "ST5",0
        DB "ST6",0
        DB "ST7",0
RegCR:
        DB "CR0",0
        DB "CR1",0
        DB "CR2",0
        DB "CR3",0
        DB "CR4",0
        DB "CR5",0
        DB "CR6",0
        DB "CR7",0
        DB "CR8",0
        DB "CR9",0
        DB "CR10",0
        DB "CR11",0
        DB "CR12",0
        DB "CR13",0
        DB "CR14",0
        DB "CR15",0
RegDR:
        DB "DR0",0
        DB "DR1",0
        DB "DR2",0
        DB "DR3",0
        DB "DR4",0
        DB "DR5",0
        DB "DR6",0
        DB "DR7",0
        DB "DR8",0
        DB "DR9",0
        DB "DR10",0
        DB "DR11",0
        DB "DR12",0
        DB "DR13",0
        DB "DR14",0
        DB "DR15",0
RegTest:
        DB 'TR0',0
        DB 'TR1',0
        DB 'TR2',0
        DB 'TR3',0
        DB 'TR4',0
        DB 'TR5',0
        DB 'TR6',0
        DB 'TR7',0
RegMM:
        DB "MM0",0
        DB "MM1",0
        DB "MM2",0
        DB "MM3",0
        DB "MM4",0
        DB "MM5",0
        DB "MM6",0
        DB "MM7",0
        DB "MM0",0
        DB "MM1",0
        DB "MM2",0
        DB "MM3",0
        DB "MM4",0
        DB "MM5",0
        DB "MM6",0
        DB "MM7",0
RegXMM:
RegXMM0:DB "XMM0",0
        DB "XMM1",0
        DB "XMM2",0
        DB "XMM3",0
        DB "XMM4",0
        DB "XMM5",0
        DB "XMM6",0
        DB "XMM7",0
        DB "XMM8",0
        DB "XMM9",0
        DB "XMM10",0
        DB "XMM11",0
        DB "XMM12",0
        DB "XMM13",0
        DB "XMM14",0
        DB "XMM15",0
        DB "XMM16",0
        DB "XMM17",0
        DB "XMM18",0
        DB "XMM19",0
        DB "XMM20",0
        DB "XMM21",0
        DB "XMM22",0
        DB "XMM23",0
        DB "XMM24",0
        DB "XMM25",0
        DB "XMM26",0
        DB "XMM27",0
        DB "XMM28",0
        DB "XMM29",0
        DB "XMM30",0
        DB "XMM31",0
RegYMM:
        DB "YMM0",0
        DB "YMM1",0
        DB "YMM2",0
        DB "YMM3",0
        DB "YMM4",0
        DB "YMM5",0
        DB "YMM6",0
        DB "YMM7",0
        DB "YMM8",0
        DB "YMM9",0
        DB "YMM10",0
        DB "YMM11",0
        DB "YMM12",0
        DB "YMM13",0
        DB "YMM14",0
        DB "YMM15",0
        DB "YMM16",0
        DB "YMM17",0
        DB "YMM18",0
        DB "YMM19",0
        DB "YMM20",0
        DB "YMM21",0
        DB "YMM22",0
        DB "YMM23",0
        DB "YMM24",0
        DB "YMM25",0
        DB "YMM26",0
        DB "YMM27",0
        DB "YMM28",0
        DB "YMM29",0
        DB "YMM30",0
        DB "YMM31",0
RegZMM:
        DB "ZMM0",0
        DB "ZMM1",0
        DB "ZMM2",0
        DB "ZMM3",0
        DB "ZMM4",0
        DB "ZMM5",0
        DB "ZMM6",0
        DB "ZMM7",0
        DB "ZMM8",0
        DB "ZMM9",0
        DB "ZMM10",0
        DB "ZMM11",0
        DB "ZMM12",0
        DB "ZMM13",0
        DB "ZMM14",0
        DB "ZMM15",0
        DB "ZMM16",0
        DB "ZMM17",0
        DB "ZMM18",0
        DB "ZMM19",0
        DB "ZMM20",0
        DB "ZMM21",0
        DB "ZMM22",0
        DB "ZMM23",0
        DB "ZMM24",0
        DB "ZMM25",0
        DB "ZMM26",0
        DB "ZMM27",0
        DB "ZMM28",0
        DB "ZMM29",0
        DB "ZMM30",0
        DB "ZMM31",0
RegKey:
        DB "K0",0
        DB "K1",0
        DB "K2",0
        DB "K3",0
        DB "K4",0
        DB "K5",0
        DB "K6",0
        DB "K7",0
RegBind:
        DB "BND0",0
        DB "BND1",0
        DB "BND2",0
        DB "BND3",0
; Operation names for instruction groups:
OperGrpD8:
OperFADD    DB "FADD",0
OperFMUL    DB "FMUL",0
            DB "FCOM",0
            DB "FCOMP",0
OperFSUB    DB "FSUB",0
OperFSUBR   DB "FSUBR",0
OperFDIV    DB "FDIV",0
OperFDIVR   DB "FDIVR",0
            DB 0
            DB "CMPXCHG8B",0
            DB 0
            DB "XRSTORS",0
            DB "XSAVEC",0
            DB "XSAVES",0
            DB "VMPTRLD",0
            DB "VMPTRST",0
            DB 0
            DB "CMPXCHG16B",0
            DB 0
            DB "XRSTORS64",0
            DB "XSAVEC64",0
            DB "XSAVES64",0
            DB 0,0
OperGrpD9:
            DB "FLD",0
            DB 0
OperFST     DB "FST",0
OperFSTP    DB "FSTP",0
            DB "FLDENV",0
            DB "FLDCW",0
            DB "FNSTENV",0
            DB "FNSTCW",0
OperGrpD9E:
            DB "FCHS",0
            DB "FABS",0
            DB 0
            DB 0
            DB "FTST",0
            DB "FXAM",0
            DB 0
            DB 0
            DB "FLD1",0
            DB "FLDL2T",0
            DB "FLDL2E",0
            DB "FLDPI",0
            DB "FLDLG2",0
            DB "FLDLN2",0
            DB "FLDZ",0
            DB 0
            DB "F2XM1",0
            DB "FYL2X",0
            DB "FPTAN",0
            DB "FPATAN",0
            DB "FXTRACT",0
            DB "FPREM1",0
            DB "FDECSTP",0
            DB "FINCSTP",0
            DB "FPREM",0
            DB "FYL2XP1",0
            DB "FSQRT",0
            DB "FSINCOS",0
            DB "FRNDINT",0
            DB "FSCALE",0
            DB "FSIN",0
            DB "FCOS",0
OperGrpDA:
            DB "FIADD",0
            DB "FIMUL",0
            DB "FICOM",0
            DB "FICOMP",0
            DB "FISUB",0
            DB "FISUBR",0
            DB "FIDIV",0
            DB "FIDIVR",0
OperGrpDB:
            DB "FILD",0
            DB "FISTTP",0
            DB "FIST",0
            DB "FISTP",0
            DB 0
            DB "FLD",0
            DB 0
            DB "FSTP",0
OperGrpDBE:
            DB "FNENI",0
            DB "FNDISI",0
            DB "FNCLEX",0
            DB "FNINIT",0
            DB "FNSETPM",0
            DB "FRSTPM",0
            DB 0,0
OperGrpDBEF:    ; Operations preceeded by FWAIT prefix 0x9B.
            DB "FENI",0
            DB "FDISI",0
            DB "FCLEX",0
            DB "FINIT",0
            DB "FSETPM",0
            DB "FRSTPM",0
            DB 0,0
OperGrpDD:
            DB "FLD",0
            DB "FISTTP",0
            DB "FST",0
            DB "FSTP",0
            DB "FRSTOR",0
            DB 0
            DB "FNSAVE",0
OperFNSTSW  DB "FNSTSW",0
OperGrpDF:
            DB "FILD",0
            DB "FISTTP",0
            DB "FIST",0
            DB "FISTP",0
            DB "FBLD",0
            DB "FILD",0
            DB "FBSTP",0
            DB "FISTP",0
OperGrp3DNow:
            DB 0xBF,"PAVGUSB",0
            DB 0x1D,"PF2ID",0
            DB 0x1C,"PF2IW",0
            DB 0xAE,"PFACC",0
            DB 0x9E,"PFADD",0
            DB 0xB0,"PFCMPEQ",0
            DB 0x90,"PFCMPGE",0
            DB 0xA0,"PFCMPGT",0
            DB 0xA4,"PFMAX",0
            DB 0x94,"PFMIN",0
            DB 0xB4,"PFMUL",0
            DB 0x8A,"PFNACC",0
            DB 0x8E,"PFPNACC",0
            DB 0x96,"PFRCP",0
            DB 0x86,"PFRCPV",0
            DB 0xA6,"PFRCPIT1",0
            DB 0xB6,"PFRCPIT2",0
            DB 0xA7,"PFRSQIT1",0
            DB 0x97,"PFRSQRT",0
            DB 0x87,"PFRSQRTV",0
            DB 0x9A,"PFSUB",0
            DB 0xAA,"PFSUBR",0
            DB 0x0D,"PI2FD",0
            DB 0x0C,"PI2FW",0
            DB 0xB7,"PMULHRW",0
            DB 0xBB,"PSWAPD",0
            DB 0,13,10,0
[.bss]
Dii         DS DII
MoffsLine   D 32*BYTE  ; Human-readable moffs operand, e.g. 0x1122334455667788
MemoryLine  D 32*BYTE  ; Human-readable memory expression, e.g. [EBX+4*ESI-0x11223344]
ImmLine     D 32*BYTE  ; Human-readable immedate operand, e.g. 0x11223344
Imm2Line    D 32*BYTE  ; Human-readable second immedate operand, e.g. 0x11
OutputLine  D 128*BYTE ; Human-readable disassembled text, e.g. CMOVNC ESI,[EBX]
Status      EXTERN     ; Defined in "argument.htm".
[.text]
↑ DiiInitialize
Take CPU mode (16,32 or 64) and set default Dii.OperWidth and Dii.AddrWidth.
Documentation
Effective Operand- and Address-Size Attributes, Table 3-3.
Input
RAX=File address of the instruction.
ArgCodeWidth.
Output
Dii.OperWidth, Dii.AddrWidth
Error
-
Clobbers
RAX, RDX
Invokes
Invoked by
Clobbers
RAX
DiiInitialize: PROC
    Clear Dii
    MOV [Dii.$VA],RAX         ; File address of code block.
    MOV EAX,[ArgCodeWidth::]  ; Explicitly specified 16|32|64.
    Dispatch AL,16,32,64
    JMP .90:
.16:MOV [Dii.OperWidth],OperWidth16
    MOV [Dii.AddrWidth],AddrWidth16
    JMP .90:
.32:MOV [Dii.OperWidth],OperWidth32
    MOV [Dii.AddrWidth],AddrWidth32
    JMP .90:
.64:MOV [Dii.OperWidth],OperWidth32
    MOV [Dii.AddrWidth],AddrWidth64
    SetSt [Dii.Status],stMode64
.90:
    RET
  ENDP DiiInitialize

Disasm

Disasm will disassemble one block of code specified by VIEW_INDEX pointed by RBX.
Code block [RBX+VIEW_INDEX.Size] bytes at file address [RBX+VIEW_INDEX.FA] is related to InputPtr.
[RBX+VIEW_INDEX.Rem] is the string "!V".

While [RBX+VIEW_INDEX.Size]>0, this procedure Disasm will keep writing strings with level0-records to the output file, i.e. |file_address:code | Operation operands ; characters for instance |0113:6893000000 | PUSH 0x00000093,DATA=D,IMM-D ; h, and after the disassembly of each instruction it will learn the size of disassembled instruction, add it to [RBX+VIEW_INDEX.FA], subtract it from [RBX+VIEW_INDEX.Size] and repeat while .Size is above 0.

Input
[InputPtr]= pointer to the begining of the input file mapped in memory. FA is related to this beginning.
RBX=pointer to VIEW_INDEX variable whose .Rem contains !V and .FA and .Size specify the code block to disassemble.
Output
R8,RBX not changed.
Called by
ExpandRem
Disasm:: PROC
     MOV R10,RBX                    ; ^VIEW_INDEX
     MOV R8D,[R10+VIEW_INDEX.FA]
     ADD R8,[InputPtr::]
     MOV R9D,[R10+VIEW_INDEX.Size]
     ADD R9,R8                     ; Code block is pointed to between R8..R9.
.Ini:MOV RAX,R8
     SUB RAX,[InputPtr::]
     CALL DiiInitialize:           ; Clear Dii, let Dii.$VA=FA of the code.
.NoI:CMP R8,R9                     ; Not initialized entry. Used when prefix(es) have been just processed and R8 points at Opcode byte.
     JNB .95:                      ; Skip when the entire VIEW_INDEX was disassembled.
     MOVZX EAX,[Dii.MapNr]
     Dispatch AL,00, 01, 02, 03, 05, 06, 07, 08, 09, 10;           -, 0F, 0F38, 0F3A, Map5, Map6, Map7, Map8, Map9, Map10.
     JMP .22:
.08:
.09:
.10:
     MOV AH,[Dii.MapNr]
     JMP .00:
.01: MOV AX,0x000F
     JMP .Nxt:
.02: MOV AX,0x0F38
     JMP .Nxt:
.03: MOV AX,0x0F3A
.Nxt: SHL EAX,8
.00:
.05:
.06:
.07:
     MOV AL,[R8]                   ; Read the prefix or the first byte of instruction code.
     INC R8                        ; R8 points at 2nd byte of instruction code or at ModR/M byte.
     CMP R8,R9
     JNB .95:
     TEST EAX,0x00FF_FF00
     JNZ .22:
     CMP AL,0x0F                   ; Opcode begins with escape 0x0F?
     JNE .22:
     SHL EAX,8                     ; AH=0x0F
     MOV AL,[R8]                   ; The actual opcode byte which follows 0F.
     INC R8                        ; R8 points at 3rd byte or ModR/M byte
     CMP R8,R9
     JNB .95:
     MOV [Dii.MapNr],1             ; 1=0x00000FXX
     CMP AL,0x38
     JNE .20:
     MOV [Dii.MapNr],2             ; 2=0x000F38XX
     SHL EAX,8
     MOV AL,[R8]                   ; The actual opcode byte which follows 0F38.
     INC R8                        ; R8 points to ModR/M byte.
     JMP .22:
.20: CMP AL,0x3A
     JNE .22:
     MOV [Dii.MapNr],3             ; 3=0x000F3AXX
     SHL EAX,8
     MOV AL,[R8]                   ; The actual opcode byte which follows 0F3A.
     INC R8                        ; R8 points to ModR/M byte.
.22: CMP R8,R9
     JNB .95:
     MOV [Dii.Opcode],EAX          ; EAX is modified opcode map:
                 ; 000000XX|00000FXX|000F38XX|000F3AXX where XX is opcode in maps -|0F|0F38|0F3A,
                 ; or EAX is 000005YY|000006YY|000007YY where YY is EVEX opcode in maps 5|6|7,
                 ; or EAX is 000008ZZ|000009ZZ|00000AZZ where ZZ is XOP  opcode in maps 8|9|10.
     LEA RSI,[DisTable-SIZE#DIS]   ; The first Dis line.
.25: ADD RSI,SIZE#DIS              ; Perhaps the condition was not met. Try the next row.
     CMP RSI,DisTableEnd           ; The last Dis line?
     JNB .90:
     MOV DL,[Dii.MapNr]
     CMP DL,8
     JB .28:
     CMP DL,10
     JA .28:
     CMP [Dii.@VEXtype],XpfxXOP
     JNE .25:
     CMP DL,AH
     JNE .25:
.28: CMP EAX,[RSI+DIS.Opcode]
     JNE .25:
     MOV EBX,[RSI+DIS.Conditions]
     JNSt EBX,condMask, .30:        ; Passthru when there is no condition for this instruction.
     ; Some conditions in EBX need to be checked: @VEX, Mode, W, Prefix, Mod, RegOp, RM.
     JNSt EBX,condXpfx,.NX1: ; If condition Xpfx= was not used in DisTab, let it passthru.
     MOV EDX,EBX            ; Prefix is in bits 0x0000_X000
     SHR EDX,4
     AND DH,0000_0111b      ; 0..7 @VEXtype from EBX.
     MOV DL,[Dii.@VEXtype]  ; 0..5 actual prefix type as was specified by previous call of DasmBlock.
     CMP DH,7  ; MEVEX = EVEX|MVEX
     JNE .N7:
     CMP DL,XpfxEVEX
     JE .NX1:
     CMP DL,XpfxEVEX5
     JE .NX1:
     CMP DL,XpfxMVEX
     JE .NX1:
     JMP .25:               ; Otherwise condition failed.
.N7: CMP DH,DL
     JNE .25:                   ; If @VEX <> Dii.@VEXtype, condition failed.
.NX1:JNSt EBX,condMode64,.N64:  ; Otherwise test other conditions.
     JNSt [Dii.Status],stMode64,.25:
.N64:JNSt EBX,condModeLg,.NLG:
     JSt [Dii.Status],stMode64,.25:
.NLG:JNSt EBX,condW0, .NW0:
     JSt [Dii.Status],stW,.25:
.NW0:JNSt EBX,condW1, .NW1:
     JNSt [Dii.Status],stW,.25:
.NW1:JNSt EBX,condEpfx66,.N66:
     JNSt [Dii.Prefix],pfx66,.25:
     SetSt [Dii.Prefix],pfx66IsOpcode
.N66:JNSt EBX,condEpfxF2,.NF2:
     JNSt [Dii.Prefix],pfxF2,.25:
     SetSt [Dii.Prefix],pfxF2IsOpcode
.NF2:JNSt EBX,condEpfxF3,.NF3:
     JNSt [Dii.Prefix],pfxF3,.25:
     SetSt [Dii.Prefix],pfxF3IsOpcode
.NF3:JNSt EBX,condEpfxNP,.NNP:
     JSt [Dii.Prefix],pfx66|pfxF2|pfxF3,.25:
     SetSt [Dii.Prefix],pfxNPIsOpcode
.NNP:; Conditions conMod*, condRegOp*, condRM* expect that potential ModR/M follows at R8.
     MOV DL,[R8]
     SHR DL,6
     JNSt EBX,condMod3,.NM3:
     CMP DL,3
     JNE .25:
.NM3:JNSt EBX,condMod0,.NM0:
     CMP DL,3
     JE .25:
.NM0:TEST EBX,condRegOp
     JZ .NRO:
     MOV DL,[R8]
     AND DL,0011_1000b
     MOV ECX,EBX
     SHR ECX,21
     AND CL,0011_1000b
     CMP CL,DL
     JNE .25:
.NRO:TEST EBX,condRM
     JZ .30:
     MOV DL,[R8]
     AND DL,0000_0111b
     MOV ECX,EBX
     SHR ECX,28
     AND CL,0000_0111b
     CMP CL,DL
     JNE .25:

.30: LEA RDI,[RSI+DIS.Operation]  ; Conditions are met. Perform disassembly with this DisTab line.
     MOV [Dii.Operation],RDI
     PUSH RSI
      CALL DisTabProc::            ; EBX=[ESI+DIS.Conditions].
     POP RSI
     JC .NoI:                     ; CF=1 when DisTabProc processed a prefix. Continue at .20: with unerased Dii.
     MOV EBX,[RSI+DIS.Conditions] ; CF=0. Flush FA:opcode | Dii.PrefixN, Dii.Operation, Dii.OperandN and
     JNSt EBX,condEpfx66,.32:     ;   Dii modifiers (.DATA, DIST etc) to WorkMemory.
     SetSt [Dii.Prefix],pfx66IsOpcode
.32: JNSt EBX,condEpfxF2,.34:
     SetSt [Dii.Prefix],pfxF2IsOpcode
.34: JNSt EBX,condEpfxF3,.36:
     SetSt [Dii.Prefix],pfxF3IsOpcode
.36: MOV RCX,R8                   ; Address of 1st instruction byte in memory.
     SUB RCX,[InputPtr::]
     SUB RCX,[Dii.$VA]
     MOV [Dii.InstrSize],ECX
     LEA RDI,[WorkMemory::]
     MOV AL,'|'
     STOSB
     MOV RAX,[Dii.$VA]
     StoH RDI,Size=R15
     MOV AL,':'
     STOSB
     MOV RSI,[Dii.$VA]
     ADD RSI,[InputPtr::]
     MOV ECX,[Dii.InstrSize]
.38: LODSB
     MOV DL,AL
     CALL StoDL
     LOOP .38:
     LEA RCX,[WorkMemory+37]            ; Fixed end of hexadecimal data.
     ADD RCX,R15                        ; Respect the variable number of address digits in R15.
     SUB RCX,RDI
     MOV AL,' '
     REP STOSB                          ; Padd
     MOV AX,'| '
     STOSW                              ; Terminate the dump column.

     ; When the prefix 66|F2|F3 is part of encoding, erase OTOGGLE,REPNE,REP from Dii.PrefixN.
    JSt [Dii.Prefix],pfx66IsOpcode,.40:
    JSt [Dii.Prefix],pfx66NotUsed,.41:
.40:MOV RAX,"OTOGGLE"
    CALL .RemovePrefixRAX:
.41:JNSt [Dii.Prefix],pfxF2IsOpcode,.43:
    MOV RAX,"REPNE"
    CALL .RemovePrefixRAX:
.43:JNSt [Dii.Prefix],pfxF3IsOpcode,.45:
    MOV RAX,"REP"
    CALL .RemovePrefixRAX:
.45:JSt [Dii.Prefix],pfx67NotUsed,.60:
    MOV RAX,"ATOGGLE"
    CALL .RemovePrefixRAX:
.60:
ob %FOR Prefix1,Prefix2,Prefix3,Prefix4
      MOV RSI,[Dii.%ob]
      TEST RSI
      JZ .4%ob:
      CMPB [RSI],0
      JZ .4%ob:
.1%ob:LODSB
      CMP AL,0
      JE .2%ob:
      STOSB
      JMP .1%ob:
.2%ob:MOV AL,':'
      STOSB
.4%ob:
   %ENDFOR ob

    MOV RSI,[Dii.Operation]
    TEST RSI
    JZ .65:
.62:LODSB
    CMP AL,0
    JE .65:
    STOSB
    JMP .62:
.65:MOV AL,' '
    STOSB
ob %FOR Operand1,Operand2,Operand3,Operand4
      MOV RSI,[Dii.%ob]
      TEST RSI
      JZ .4%ob:
.1%ob:LODSB
      CMP AL,0
      JE .2%ob:
      STOSB
      JMP .1%ob:
.2%ob:MOV AL,','
      STOSB
.4%ob:
   %ENDFOR ob
      JNSt [Dii.Flags],flagNoDATAinMod3,.68:
      JNSt [Dii.Status],stMod3,.68:
      MOV [Dii.DATA],0
.68:
ob  %FOR PREFIX,DATA,DISP,IMM,CODE,SCALE,ADDR,DIST,MASK,OPER,ROUND,ZEROING,SAE,BCST,EH
      MOVZXB ECX,[Dii.%ob]
      JRCXZ .4%ob:
      LEA RSI,[="%ob"]
.1%ob:LODSB
      CMP AL,0
      JE .2%ob:
      STOSB
      JMP .1%ob:
.2%ob:MOV AL,'='
      STOSB
      %IF "%ob" === "PREFIX"
        MOV EAX,[Dii.PREFIX]
.3%ob:  STOSB
        SHR EAX,8
        JNZ .3%ob:
        MOV AX,','
        STOSW
        DEC RDI
      %ENDIF
      %IF "%ob" === "MASK"
        MOV AL,'K'
        STOSB
        MOV AL,CL
        MOV AH,','
        STOSW
      %ENDIF
      %IF "%ob" !=== "PREFIX" && "%ob" !=== "MASK"
        MOV AL,CL
        MOV AH,','
        STOSW
      %ENDIF
.4%ob:
    %ENDFOR ob
      CMPB [RDI-1],','
      JNE .70:
      DEC RDI
.70:  MOV AL,' '
      STOSB
      ; Print a character dump after the instruction, e.g. :66696C6573290A00 | OTOGGLE:IMUL EBP,[SI+0x65],0x000A2973 ; files) 
      LEA RCX,[WorkMemory]
      ADD RCX,84                       ; Char.dump is printed at least as 84-th on the output line.
      CMP RDI,RCX
      JAE .72:
      SUB RCX,RDI
      MOV AL,' '
      REP STOSB
.72:  MOV AX,'; '
      STOSW
      MOV RSI,[Dii.$VA]
      ADD RSI,[InputPtr]
      MOV ECX,[Dii.InstrSize]
.75:  LODSB
      CMP AL,0x20
      JB .78:
      CMP AL,0x80
      JB .80:
.78:  MOV AL,0x20
.80:  STOSB
      LOOP .75:
      MOV AX,0x0A0D
      STOSW
      LEA RSI,[WorkMemory]
      MOV RCX,RDI
      SUB RCX,RSI
      CALL [FileWriteOutputProc::]     ; Write RSI,RCX to OutputFile.
      MOV ECX,[Dii.InstrSize]
      ADD [R10+VIEW_INDEX.FA],ECX
      SUB [R10+VIEW_INDEX.Size],ECX
      JA .Ini:                         ; Initialize Dii, start a new instruction.
      MOVD [R10+VIEW_INDEX.Size],0
      JMP .95:
.90: ; Opcode AL was not recognized in DisTable.
      MOV [Dii.InstrSize],1
      MOV DL,AL
      LEA RDI,[MemoryLine]
      MOV [Dii.Operand1],RDI
      MOV AX,'0x'
      STOSW
      CALL StoDL
      XOR EAX,EAX
      STOSB
      LEA RAX,[=B"DB"]
      MOV [Dii.Operation],RAX
      JMP .36:
.95:  MOV RBX,R10
     RET

.RemovePrefixRAX: PROC
ob %FOR Prefix1,Prefix2,Prefix3,Prefix4
    MOV RCX,[Dii.%ob]
    JRCXZ .x%ob:
    CMP RAX,[RCX]
    JNE .x%ob:
    MOVD [Dii.%ob],0                       ; Remove prefix RAX if used.
.x%ob:
   %ENDFOR ob
    RET
   ENDP .RemovePrefixRAX
  ENDP Disasm::
↑ GetRegByCL
Find accumulator register name and second register name depending on Dii.OperWidth.
Input
CL= 0..15 is ordinal number of GPR.
Output
RDX= is pointer to accumulator AL,AX,EAX,RAX.
RSI= is pointer to the GPR selected by CL.
Clobbers
RAX,RCX
GetRegByCL: PROC
    Dispatch [Dii.OperWidth],OperWidth16,OperWidth32,OperWidth64
    LEA RSI,[Reg8REX]
    JSt [Dii.Prefix],pfxREX,.10:
    LEA RSI,[Reg8]
.10:LEA RDX,[RegAL]
    JMP .80:
.OperWidth16:
    LEA RSI,[Reg16]
    LEA RDX,[RegAX]
    JMP .80:
.OperWidth32:
    LEA RSI,[Reg32]
    LEA RDX,[RegEAX]
    JMP .80:
.OperWidth64:
    LEA RSI,[Reg64]
    LEA RDX,[RegRAX]
.80:CALL SelectByCL
    RET
   ENDP GetRegByCL:
↑ GetModRMNr
Register R8 points to ModR/M byte, this procedure GetModRMNr will extract its fields and put register number to Dii.BaseNr, Dii.OperNr, Dii.IndexNr and set Dii.Status:stMod. Unused numbers are set to -1.
Input
R8= is pointer to ModR/M byte.
Output
R8 is increased by the size of ModR/M, SIB and disp.
Dii.OperNr is set from ModR/M field Reg/Op and from its previous bits r4,r5.
Dii.BaseNr is set from ModR/M field R/M in Mod=3, or from SIB field B, and from its previous bits b4,b5.
Dii.IndexNr is set from SIB field X and from its previous bits x4,x5.
Dii.Scale is set from SIB field SS.
Dii.DispSize is set to 0,1,2,4 from ModR/M fields Mod and R/M.
Clobbers
RAX,RBX,RCX,RDX
GetModRMNr PROC
    MOV AL,[R8]             ; ModRM
    INC R8
    MOV [Dii.ModRM],AL
      ; Compute Dii.BaseNr in case NoSIB.
    MOV CL,0000_0111b
    AND CL,AL
    OR [Dii.BaseNr],CL
    MOV DL,0011_1000b       ; Compute Dii.OperNr
    AND DL,AL               ; Reg/Op
    SHR DL,3
    OR  [Dii.OperNr],DL     ; Field Reg/Op r0,r1,r2.
    MOV CL,AL               ; Compute Dii.Status:stModX
    SHR CL,6
    Dispatch CL,01,02,03
    MOV EDX,stMod0          ; Compute stModX and DispSize.
    JMP .10:
.01:MOV EDX,stMod1
    MOV [Dii.DispSize],1
    JMP .10
.02:MOV EDX,stMod2
    CMP [Dii.AddrWidth],AddrWidth16
    JNE .0D:
    MOV [Dii.DispSize],2
    JMP .10:
.0D:MOV [Dii.DispSize],4
    JMP .10:
.03:MOV EDX,stMod3
.10:SetSt [Dii.Status],EDX
    CMP [Dii.AddrWidth],AddrWidth16
    JNE .15:
    JNSt [Dii.Status],stMod0,.70:
    MOV CL,AL               ; AddrWidth16, Mod0.
    AND CL,0000_0111b
    CMP CL,0000_0110b
    JNE .70:
    MOV [Dii.DispSize],2
    SetSt [Dii.Flags],flagNoBase+flagNoIndex
    JMP .70:
.15:JNSt [Dii.Status],stMod0,.18:
    MOV CL,0000_0111b
    AND CL,AL              ; AdrWidth32|64, Mod0
    CMP CL,00000101b
    JNE .18:
    SetSt [Dii.Flags],flagNoBase+flagNoIndex
    MOV [Dii.DispSize],4
.18:; Test if SIB exists.            ; AddrWidth32|64
    JSt [Dii.Status],stMod3,.NoSIB:
    MOV CL,0000_0111b
    AND CL,AL
    CMP CL,0000_0100b   ; [--][--]
    JNE .NoSIB:
    SetSt [Dii.Flags],flagSIB
    MOV AL,[R8]         ; SIB. Mod0|1|2.
    INC R8
    MOV [Dii.SIB],AL
    RstSt [Dii.Flags],flagNoIndex
    MOV CL,AL           ; Compute Dii.Scale.
    SHR CL,6            ; CL=0,1,2,3
    MOV DL,1
    SHL DL,CL           ; DL=1,2,4,8
    OR  DL,'0'          ; DL='1','2','4','8'
    CMP DL,'1'
    JNE .20:
    SUB DL,DL
.20:MOV [Dii.Scale],DL  ; DL=0,'2','4','8'
    MOV CL,0000_0111b   ; Get SIB.BaseNr
    AND CL,AL
    AND [Dii.BaseNr],1111_1000b
    OR [Dii.BaseNr],CL  ; Overwrite Dii.BaseNr which was written sooner.
    CMP CL,0000_0101b   ; BaseNr=5 (eBP)?
    JNE .40:
    JSt [Dii.Status],stMod0, .30:
    JSt [Dii.Status],stMod2, .35:
    MOV [Dii.DispSize],1
    JMP .40:
.30:SetSt [Dii.Flags],flagNoBase
.35:MOV [Dii.DispSize],4
.40:MOV CL,0011_1000b
    AND CL,[Dii.SIB]
    SHR CL,3
    OR [Dii.IndexNr],CL
    MOV CX,[Dii.IndexNr]
    CMP CL,4             ; IndexNr=4 (eSP)?
    JNE .70:
    JSt [Dii.Flags],flagVSIB,.70:
    SetSt [Dii.Flags],flagNoIndex
    JMP .70:
.NoSIB:
    SetSt [Dii.Flags],flagNoIndex
.70:MOVZX ECX,[Dii.DispSize]   ; 0,1,2,4,8
    JRCXZ .90:
    MOV DL,CL
    XOR EAX,EAX
.80:ROR RAX,8
    MOV AL,[R8]
    INC R8
    LOOP .80:
    ROR RAX,8
    Dispatch DL,0n1,0n2,0n4
    JMP .85:
.0n1:SHR RAX,7*8
     CBW                      ; Sign-extend AL to AX
     JMP .82:
.0n2:SHR RAX,6*8
.82: CWDE                     ; Sign-extend AX to EAX
     JMP .84:
.0n4:SHR RAX,4*8
.84:CDQE                   ; Sign-extend EAX to RAX
.85:MOV [Dii.Disp],RAX
.90:RET
  ENDP GetModRMNr
↑ GetModRMReg
Procedure GetModRM will compute and then convert register numbers
Dii.OperNr, Dii.BaseNr, Dii.IndexNr, Dii.VvvvNr to register names
Doo.OperReg, Dii.BaseReg, Dii.IndexReg, Dii.VvvvReg, respecting Dii.Family.
In modes 0,1,2 it also creates Dii.Memory, respecting Dii.DispSize and Dii.Disp.
Input
R8= points to ModR/M byte in operation code.
Dii.Family
string of register-family letters for Reg/Op, R/M, Vvvv, Imm
Output
R8= points behind ModR/M,SIB,displacement
RAX=pointer to base register name or to memory address in braces (DisTypelist j), e.g. CX or [RBX+4*RSI+0x55] etc.
RBX=pointer to Vvvv register name (DisTypeList v)
RDX=pointer to operation register name (DisTypeList h)
Clobbers
RCX,RSI,RDI
GetModRMReg PROC
    CALL GetModRMNr
    JSt [Dii.Status],stMod3, .90:
    LEA RDI,[MemoryLine]              ; Construct Dii.Memory
    MOV [Dii.Memory],RDI
    MOV AL,'['
    STOSB
    LEA RDX,[RegAddr16]
    CMP [Dii.AddrWidth],AddrWidth16
    JNE .20:
    MOV CL,[Dii.BaseNr]          ; AddrWidth16
    AND CL,0000_0111b
    JNSt [Dii.Status],stMod0,.10:
    CMP CL,0000_0110b            ; BaseNr=6 (disp16, no base, no index)?
    JE .80:
.10:MOV RSI,RDX
    CALL SelectByCL
.15:LODSB
    STOSB
    CMP AL,0
    JNE .15:
    DEC RDI
    JMP .80:
.20:LEA RDX,[Reg32]
    CMP [Dii.AddrWidth],AddrWidth32
    JE .25:
    LEA RDX,[Reg64]
    CMP [Dii.AddrWidth],AddrWidth64
    JNE .80:
.25:MOV CL,[Dii.BaseNr]          ; AddrWidth32|64
    JSt [Dii.Flags],flagNoBase,.40:
    MOV RSI,RDX
    CALL SelectByCL
    MOV [Dii.BaseReg],RSI
.30:LODSB
    STOSB
    CMP AL,0
    JNE .30:
    DEC RDI
.40:JNSt [Dii.Flags],flagVSIB,.46:
    MOV CL,[Dii.Family+3]    ; Index.
    Dispatch CL,'X','Y','Z'
    JMP .80:
.X: LEA RDX,[RegXMM]
    JMP .46:
.Y: LEA RDX,[RegYMM]
    JMP .46:
.Z: LEA RDX,[RegZMM]
.46:MOV CL,[Dii.IndexNr]
    JSt [Dii.Flags],flagNoIndex,.80:
    MOV RSI,RDX
    CALL SelectByCL
    MOV [Dii.IndexReg],RSI
    CMPB [RDI-1],'['
    JE .50:
    MOV AL,'+'
    STOSB
.50:MOV AL,[Dii.Scale]
    CMP AL,0
    JE .60:
    STOSB
    MOV AL,'*'
    STOSB
.60:MOV RSI,[Dii.IndexReg]
.70:LODSB
    STOSB
    CMP AL,0
    JNE .70:
    DEC RDI
.80:SUB AL,AL
    MOV EDX,[Dii.Status]
    AND EDX,stMode64+stMod0
    CMP EDX,stMode64+stMod0
    JNE .85:
    MOV ECX,[Dii.Flags]
    AND ECX,flagNoBase+flagNoIndex
    CMP ECX,flagNoBase+flagNoIndex
    JNE .85:
    MOV AL,'A'
    JSt [Dii.Flags],flagSIB,.85:
    MOV AL,'R'
.85:MOV [Dii.ADDR],AL
    CALL LoadDisplacement
.90: ; Common continuation for all modes and all OperWidths.
    MOV BL,[Dii.OperWidth]   ; OperWidth8|16|32|64
    MOV CL,[Dii.OperNr]      ; 0..15 register ordinal
    MOV DL,[Dii.Family+0]    ; Operreg family: 0 or 'R' for GPR, or 'U', 'O', 'C', 'G', 'S' etc.
    LEA RDI,[Dii.OperReg]    ; or Dii.Basereg or Dii.IndexReg etc.
    CALL .Select:
    MOV CL,[Dii.BaseNr]
    MOV DL,[Dii.Family+1]    ; Basereg family: 0 or 'R' for GPR, or 'U', 'O', 'X', 'Y', 'Z' etc.
    LEA RDI,[Dii.BaseReg]
    CALL .Select:
    MOV CL,[Dii.IndexNr]
    MOV DL,[Dii.Family+3]    ; Indexreg family: 0 or 'R' for GPR, or 'X', 'Y', 'Z'.
    LEA RDI,[Dii.IndexReg]
    CALL .Select:
    MOV CL,[Dii.VvvvNr]
    MOV DL,[Dii.Family+2]    ; Vvvvreg family: 0 or 'R' for GPR, or 'X', 'Y', 'Z'.
    LEA RDI,[Dii.VvvvReg]
    CALL .Select:
    MOV RDX,[Dii.OperReg]
    MOV RAX,[Dii.BaseReg]
    MOV RBX,[Dii.VvvvReg]
    MOV RCX,[Dii.Memory]
    JRCXZ .99:
    MOV RAX,RCX
.99:RET

.Select: PROC ; RDI=pointer where to put target register, BL=Dii.OperWidth,
              ; CL=register Nr, DL=register family or 0=GPR
    CMP DL,0
    JE .S1:
    CMP DL,'O'
    JE .O:
fam %FOR O,U,X,Y,Z,C,G,S,F,K,N,E
     CMP DL,'%fam'
     JE .%fam:
    %ENDFOR fam
.S1:; Not a special family, use GPR.
    CMP BL,OperWidth8
    JNE .S5:
    LEA RSI,[Reg8REX]
    JSt [Dii.Prefix],pfxREX,.@4:
    CMPB [Dii.@VEXtype],0
    JNE .@4:
    LEA RSI,[Reg8]
    JMP .@4:
.@2:AND CL,0000_0011b
.@3:AND CL,0000_0111b
.@4:AND CL,0000_1111b
.@5 AND CL,0001_1111b
    CALL SelectByCL
    MOV [RDI],RSI
.S4:RET
.S5:CMP BL,OperWidth16
    JNE .S6:
    LEA RSI,[Reg16]
    JMP .@4:
.S6:CMP BL,OperWidth32
    JNE .S7:
    LEA RSI,[Reg32]
    JMP .@4:
.S7:CMP BL,OperWidth64
    JNE .S4:
    LEA RSI,[Reg64]
    JMP .@4:
.S: LEA RSI,[RegSeg]
    JMP .@3
.C: LEA RSI,[RegCR]
    JMP .@4:
.G: LEA RSI,[RegDR]
    JMP .@3:
.E: LEA RSI,[RegTest]
    JMP .@3:
.K: LEA RSI,[RegKey]
    JMP .@3:
.N: LEA RSI,[RegBind]
    JMP .@2:
.F: LEA RSI,[RegFP]
    JMP .@3:
.U: LEA RSI,[RegMM]
    JMP .@3:
.O: CMP [Dii.@VEXtype],XpfxMVEX
    JE .Z:
    JSt [Dii.Flags],flagS2,.Z:
    JSt [Dii.Flags],flagS1,.Y:
.X: LEA RSI,[RegXMM]
    JMP .@5:
.Y: LEA RSI,[RegYMM]
    JMP .@5:
.Z: LEA RSI,[RegZMM]
    JMP .@5:
   ENDP .Select:
 ENDP GetModRMReg
↑ LoadDisplacement
Put displacement in the MemoryLine.
Input
RDI= pointer inside MemoryLine.
Dii.DispSize 0|1|2|4|8.
Dii.ImmSize 0|1|2|4|8.
Dii.Disp the displacement.
Dii.ADDR 0|'R'|'A'.
Output
MemoryLine is completed with the displacement and ']'.
LoadDisplacement PROC
    MOV CL,[Dii.DispSize]
    LEA RSI,[Dii.Disp]
    Dispatch CL,01,02,04,08
    JMP .70:                  ; Dii.DispSize=0, do only ']'.
.01:MOV [Dii.DISP],'B'
    LODSB
    CBW                      ; Sign-extend AL to AX
    JMP .03:
.02:MOV [Dii.DISP],'W'
    LODSW
.03:CWDE                     ; Sign-extend AX to EAX
    JMP .06:
.04:MOV [Dii.DISP],'D'
    LODSD
.06:CDQE                     ; Sign-extend EAX to RAX
    JMP .12:
.08:MOV [Dii.DISP],'Q'
    LODSQ
.12:MOV [Dii.Disp],RAX
    CMPD [Dii.PREFIX],'MVEX'
    JNE .16:
    MOV [Dii.DISP],0
.16:CMPB [RDI-1],'['
    JNE .20:                 ; Addressing with registers display with signum, e.g.[RBP+0x08]
    ; Otherwise MemoryLine position is just behind '[', display as unsigned, no '+' signum.
    CMP [Dii.ADDR],'R'
    JNE .50:                 ; Absolute addressing without registers display as unsigned.
    MOV AL,'$'               ; RIP-relative addressing mode (64-bit CPU mode).
    STOSB
    MOV RSI,R8               ; Relative addressing, display as $ with signum.
    SUB RSI,[InputPtr::]
    SUB RSI,[Dii.$VA]
    MOV AL,[Dii.ImmSize]     ;
    ADD AL,[Dii.Imm2Size]
    MOVZX EAX,AL
    ADD RSI,RAX              ; RSI is instruction size (prefixes+opcode+ModRM+SIB+disp+imm+imm2).
    ADD [Dii.Disp],RSI
.20:MOV RDX,[Dii.Disp]
    MOV AL,'+'
    CMP [RDI-1],AL
    JNE .30:
    DEC RDI
.30:TEST RDX
    JNS .40:
    NEG RDX
    MOV [Dii.Disp],RDX
    MOV AL,'-'
.40:STOSB
.50:MOV AX,'0x'
    STOSW
    JNSt [Dii.Status],stMod1,.60:      ; Test if Disp8*N is used:
    MOV EAX,[Dii.Disp8EVEX]
    CMP [Dii.@VEXtype],XpfxEVEX
    JE .55:
    CMP [Dii.@VEXtype],XpfxEVEX5
    JE .55:
    CMP [Dii.@VEXtype],XpfxEVEX6
    JE .55:
    MOV EAX,[Dii.Disp8MVEX]
    CMP [Dii.@VEXtype],XpfxMVEX
    JNE .60:                           ; RCX=Dii.DispSize
    SetSt [Dii.Flags],flagS2           ; Emulate 512-bit registers.
    RstSt [Dii.Flags],flagS1
.55:MOV ECX,[Dii.Flags]                ; Oper=0..7 (flagS2,flagS1,flagS0).
    AND ECX,7
    SHL CL,2                           ; CL=0,4,8,12,16,20,24,28.
    SHL EAX,CL
    SHR EAX,28
    MOV ECX,EAX                        ; CL=1..6 or 0xF.
    CMP CL,0x0F
    JE .59:                            ; Invalid - leave Disp8 as is.
    SHLD [Dii.Disp],CL
    INC [Dii.DispSize]                 ; Change DispSize=1 to DispSize=2, but leave modifier DISP='B'.
.59:MOV CL,[Dii.DispSize]
.60:MOV DL,[RCX+Dii.Disp-1]
    CALL StoDL
    LOOP .60:
.70:CMPB [RDI-1],'+'
    JNE .80:
    DEC RDI
.80:MOV AX,']'
    STOSW
    RET
 ENDP LoadDisplacement
↑ ModifyDefaultWidth
Modify the default width by prefixes OTOGGLE, REX.W, ATOGGLE, if Dii.Status:st66IsOpcode is clear.
Documentation
Effective Operand- and Address-Size Attributes, Table 3-3.
Input
[Dii.Prefix].
Output
Dii.OperWidth, Dii.AddrWidth
Error
-
Clobbers
RAX, RDX
Invokes
Invoked by
ModifyDefaultWidth PROC
    JNSt [Dii.Prefix],pfx67,.30:
    MOV AL,[Dii.AddrWidth]
    MOV AH,AddrWidth16
    CMP AL,AddrWidth32
    JE .20:
    MOV AH,AddrWidth32
.20:MOV [Dii.AddrWidth],AH
.30:CMP [Dii.OperWidth],OperWidth8
    JNE .40:
    SetSt [Dii.Prefix],pfx66NotUsed
    JMP .90:
.40:JNSt [Dii.Status],stMode64,.60:
    JSt [Dii.Status],stW,.50:
    JNSt [Dii.Flags],flagProm64,.60:
.50:MOV [Dii.OperWidth],OperWidth64
.60:JSt [Dii.Prefix],pfx66IsOpcode,.90:
    JSt [Dii.Prefix],pfx66NotUsed,.90:
    JNSt [Dii.Prefix],pfx66,.90:
    CMP [Dii.OperWidth],OperWidth16
    JNE .70:
    MOV [Dii.OperWidth],OperWidth32
    JMP .90:
.70:MOV [Dii.OperWidth],OperWidth16
.90:RET
  ENDP ModifyDefaultWidth
↑ FlushDii
Write the disassembled instruction from the object Dii on standard output and then clear Dii.
Input
Dii specifies the disassembled instruction.
Output
OutputLine will be the string with hexa code and disassembled instruction.
RDI= points at the end of text in OutputLine.
R8= points at the code of the next instruction to disassemble.
Error
Invokes
Invoked by
FlushDii PROC
    Clear OutputLine
    LEA RDI,[OutputLine]             ; Construct disassembled string with the instruction temporary here.
    MOV RSI,[Dii.$VA]
    MOV RAX,RSI
    StoH RDI,Size=6
    MOV AX,': '
    STOSW
    MOV RCX,R8
    SUB RCX,RSI
    JRCXZ .08:
.05:LODSB
    MOV DL,AL
    CALL StoDL
    LOOP .05:
.08:MOV AL,9
    STOSB
    STOSB                             ; Separate the disassembled code with two HT.
    JSt [Dii.Prefix],pfx66IsOpcode,.09:
    JSt [Dii.Prefix],pfx66NotUsed,.11:
.09:LEA RAX,[="OTOGGLE"]
ob %FOR Prefix1,Prefix2,Prefix3,Prefix4
    CMP [Dii.%ob],RAX                           ; Remove OTOGGLE if used.
    JNE .x%ob:
    MOVD [Dii.%ob],0
.x%ob:
   %ENDFOR ob
.11:JSt [Dii.Prefix],pfx67NotUsed,.13:
    LEA RAX,[="ATOGGLE"]
ob %FOR Prefix1,Prefix2,Prefix3,Prefix4
    CMP [Dii.%ob],RAX                           ; Remove ATOGGLE if used.
    JNE .y%ob:
    MOVD [Dii.%ob],0
.y%ob:
   %ENDFOR ob
.13:
.16:JNSt [Dii.Prefix],pfx66IsOpcode,.21:
    LEA RAX,[="OTOGGLE"]
    JMP .28:
.21:JNSt [Dii.Prefix],pfxF2IsOpcode,.22:
    LEA RAX,[="REPNE"]
    JMP .28:
.22:JNSt [Dii.Prefix],pfxF3IsOpcode,.33:
    LEA RAX,[="REP"]
.28:LEA RSI,[Dii.Prefix1]
    MOV ECX,4
.29:CMP RAX,[RSI]
    JNE .31:
    XOR EDX,EDX
    MOV [RSI],RDX
.31:ADD RSI,8
    LOOP .29:
.33:
ob %FOR Prefix1,Prefix2,Prefix3,Prefix4
      MOV RSI,[Dii.%ob]
      TEST RSI
      JZ .4%ob:
      CMPB [RSI],0
      JZ .4%ob:
.1%ob:LODSB
      CMP AL,0
      JE .2%ob:
      STOSB
      JMP .1%ob:
.2%ob:MOV AL,':'
      STOSB
.4%ob:
   %ENDFOR ob
    MOV RSI,[Dii.Operation]
    TEST RSI
    JZ .40:
.30:LODSB
    CMP AL,0
    JE .40:
    STOSB
    JMP .30:
.40:MOV AL,' '
    STOSB
ob %FOR Operand1,Operand2,Operand3,Operand4
      MOV RSI,[Dii.%ob]
      TEST RSI
      JZ .4%ob:
.1%ob:LODSB
      CMP AL,0
      JE .2%ob:
      STOSB
      JMP .1%ob:
.2%ob:MOV AL,','
      STOSB
.4%ob:
   %ENDFOR ob
      JNSt [Dii.Flags],flagNoDATAinMod3,.47:
      JNSt [Dii.Status],stMod3,.47:
      MOV [Dii.DATA],0
.47:
ob  %FOR PREFIX,DATA,DISP,IMM,CODE,SCALE,ADDR,DIST,MASK,OPER,ROUND,ZEROING,SAE,BCST,EH
      MOVZXB ECX,[Dii.%ob]
      JRCXZ .4%ob:
      LEA RSI,[="%ob"]
.1%ob:LODSB
      CMP AL,0
      JE .2%ob:
      STOSB
      JMP .1%ob:
.2%ob:MOV AL,'='
      STOSB
      %IF "%ob" === "PREFIX"
        MOV EAX,[Dii.PREFIX]
.3%ob:  STOSB
        SHR EAX,8
        JNZ .3%ob:
        MOV AX,','
        STOSW
        DEC RDI
      %ENDIF
      %IF "%ob" === "MASK"
        MOV AL,'K'
        STOSB
        MOV AL,CL
        MOV AH,','
        STOSW
      %ENDIF
      %IF "%ob" !=== "PREFIX" && "%ob" !=== "MASK"
        MOV AL,CL
        MOV AH,','
        STOSW
      %ENDIF
.4%ob:
    %ENDFOR ob
    LEA RSI,[OutputLine] ; Write the instruction.
    DEC RDI
    MOV EAX,0x0A0D
    STOSD
    GetLength$ RSI
    CALL [FileWriteOutputProc::]
    RET
 ENDP FlushDii
↑ StoDL
Store one byte from DL to RDI hexadecimally, increase RDI.
Input
DL= byte to store.
RDI= pointer to the buffer where two digits will be stored.
Output
RDI= is increased by two.
AL=clobbered, other GPR unchanged.
Error
-
StoDL:: PROC
    MOV AL,DL
    SHR AL,4
    OR AL,'0'
    CMP AL,'9'
    JNA .50:
    ADD AL,'A'-':'
.50:STOSB
    MOV AL,0x0F
    AND AL,DL
    OR AL,'0'
    CMP AL,'9'
    JNA .70:
    ADD AL,'A'-':'
.70:STOSB
    RET
   ENDP StoDL
↑ Moffs
Procedure Moffs returns pointer to AL,AX,EAX,RAX in RSI. It displays 2,4 or 8 bytes of memory offset operand in brackets to [MoffsetLine], depending on address and operand widths.
Input
R8= pointer to the offset bytes in machine code.
R9= pointer to the end of block of machine code (never read behind R9).
Output
RCX ^MoffsLine filled with Moffs operand in hexa, e. g. [0x11223344].
R8= increased by the size of moffs (2,4,8).
RSI= is pointer to the name of register AL, AX, EAX or RAX.
RAX,RBX,RCX,RDX,RDI clobbered.
Error
-
Invokes
Invoked by
Moffs PROC
    LEA RDI,[MoffsLine]
    MOV EAX,'[0x'
    STOSD
    DEC RDI
    MOV AL,[Dii.AddrWidth]
    XOR ECX,ECX
    Dispatch AL,AddrWidth16,AddrWidth32 ;,AddrWidth64
; .AddrWidth64:
    MOV CL,8
    MOV [Dii.DISP],'Q'
    JMP .20:
.AddrWidth32:
    MOV CL,4
    MOV [Dii.DISP],'D'
    JMP .20:
.AddrWidth16:
    MOV CL,2
    MOV [Dii.DISP],'W'
.20:MOV RBX,R8
    ADD R8,RCX
    CMP R8,R9
    JA  .40:
.30:MOV DL,[RBX+RCX-1]
    CALL StoDL
    LOOP .30:
    MOV AX,']'
    STOSW
.40:MOV AL,[Dii.OperWidth]
    Dispatch AL,OperWidth8,OperWidth16,OperWidth32 ;,OperWidth64
;.OperWidth64:
    LEA RSI,[RegRAX]
    JMP .90:
.OperWidth32:
    LEA RSI,[RegEAX]
    JMP .90:
.OperWidth16:
    LEA RSI,[RegAX]
    JMP .90:
.OperWidth8:
    LEA RSI,[RegAL]
.90:LEA RCX,[MoffsLine]
    RET
  ENDP Moffs
↑ Imm
Procedure Imm creates a string with 1..8 bytes of hexadecimal immediate operand.
If Dii.DISP='F', 16-bit immediate segment is displayed first, then 16-bit or 32-bit offset follows.
Input
Dii.OperWidth specifies if ImmSize is 1,2,4 or 8.
Dii.DIST='F' if Imm is FAR pointer. e. g. 0x1122:0x3344.
Dii.Flags:flagImmSignExt is set when the immediate is QWORD.
R8= pointer to the immediate bytes in machine code.
R9= pointer to the end of block of machine code (never read behind R9).
Output
RCX= points to ASCIIZ immediate operand in hexa, e. g. 0x1122:0x3344.
Dii.IMM is 'B', 'W', 'D' or 'Q'.
R8= is increased by the size of immediate data.
Error
-
Invokes
Invoked by
Imm PROC
     MOV AL,[Dii.OperWidth]
     Dispatch AL,OperWidth8,OperWidth16,OperWidth32,OperWidth64
     JMP .90:
.OperWidth8:
     MOV CL,1
     MOV AH,'B'
     JMP .20:
.OperWidth16:
     MOV CL,2
     MOV AH,'W'
     JNSt [Dii.Flags],flagImmFar,.20:
     MOV CL,2+2
     JMP .20:
.OperWidth32:
     MOV CL,4
     MOV AH,'D'
     JNSt [Dii.Flags],flagImmFar,.20:
     MOV CL,2+4
     JMP .20:
.OperWidth64:
     MOV CL,4
     MOV AH,'D'
     JSt [Dii.Flags],flagImmSignExt,.20:
     MOV CL,8
     MOV AH,'Q'
.20: MOV [Dii.IMM],AH
     MOV [Dii.ImmSize],CL
     MOVZX ECX,CL
     LEA RAX,[R8+RCX-1]
     CMP RAX,R9
     JA .90:
     MOV RSI,R8
     ADD R8,RCX
     LEA RDI,[ImmLine]          ; Temporary space for the display.
     JNSt [Dii.Flags],flagImmSignExt,.40:
     CMP CL,1
     JA .40:
     MOVSXB RAX,[R8-1]
     TEST AL
     JNS .40:
     StoD RDI,Signed=yes
     JMP .80:
.40: MOV AX,'0x'
     STOSW
     CMP [Dii.DIST],'F'
     JNE .60:
     MOV DL,[RSI+RCX-1]
     CALL StoDL
     MOV DL,[RSI+RCX-2]
     CALL StoDL
     MOV EAX,':0x'
     STOSD
     DEC RDI
     SUB ECX,2
     JNA .90:
.60: MOV DL,[RSI+RCX-1]
     CALL StoDL
     LOOP .60:
.80: XOR EAX,EAX
     STOSB
     LEA RCX,[ImmLine]
.90: RET
   ENDP Imm
↑ Imm2
Procedure Imm2 creates a string with 1 byte of hexadecimal secondary immediate operand.
Input

R8= pointer to the secondary immediate byte in machine code.
Output
RCX points to secondary immediate operand in hexa, e. g. 0x11.
R8= increased by the size of immediate data.
Error
-
Clobbers
RAX, RDX, RDI
Invokes
Invoked by
Imm2 PROC
    LEA RDI,[Imm2Line]
    MOV RCX,RDI
    MOV AX,'0x'
    STOSW
    MOV DL,[R8]
    INC R8
    CALL StoDL
    XOR EAX,EAX
    STOSB
    MOV [Dii.IMM],'B'
    RET
   ENDP Imm2
↑ Imm2XMM
Procedure Imm2XMM returns RCX which points to "XMM0".."XMM15" or "YMM0".."YMM15" register name corresponding with the contents of Imm2 field bits 7..4 in XOP-encoded instructions.
Input

R8= pointer to the secondary immediate byte in machine code.
R9= pointer to the end of block of machine code (never read behind R9).
Dii.Flags:flagS1 decides between XMM and YMM.
Output
RCX is pointer to XMM|YMM register name.
Error
-
Invokes
Invoked by
Imm2XMM PROC
     MOV CL,[R8]           ; Imm2
     SHR CL,4
     LEA RSI,[RegYMM]
     JSt [Dii.Flags],flagS1, .I5:
     LEA RSI,[RegXMM]
.I5: CALL SelectByCL
     MOV RCX,RSI
     RET
    ENDP Imm2XMM
↑ ImmRel
Procedures Imm loads 1..8 bytes of immediate operand relative to RIP (Dii.$VA).
For ADDR=Rel see LoadDIsplacement.
Input
Dii.ImmSize= number of immediate bytes 1,2,4.
R8= pointer to the immediate bytes in machine code.
R9= pointer to the end of block of machine code (never read behind R9).
Output
ImmLine set relative to RIP, i. e. to [Dii.$VA]+instruction size , e.g. [$+3]
RCX= pointer to ImmLine.
R8= increased by the size of immediate operand.
Clobbers
RAX,RDX,RSI,RDI
Error
-
Invokes
Invoked by
ImmRel PROC
    MOV RSI,R8
    MOVZX ECX,[Dii.ImmSize]  ; 1|2|4
    LEA R8,[RSI+RCX]
    CMP R8,R9
    JA  .90:
    LEA RDI,[ImmLine]
    MOV AL,'$'
    STOSB
    XOR EAX,EAX
    JRCXZ .20:
    Dispatch CL,01,02,04
.01:LODSB
    CBW
    CWDE
    JMP .20:
.02:LODSW
    CWDE
    JMP .20:
.04:LODSD
.20:CDQE               ; RAX is the signed integer of imm encoded in instruction.
    SUB R8,[InputPtr::]
    LEA RDX,[R8+RAX]
    SUB RDX,[Dii.$VA]
   ;; ADD RDX,RCX
    MOV AL,'+'
    JNS .24:
    MOV AL,'-'
    NEG RDX
.24:MOV [Dii.Imm],RDX
    STOSB
    MOV AX,'0x'
    STOSW
    LEA RSI,[Dii.Imm]
.30:MOV DL,[RSI+RCX-1]
    CALL StoDL
    LOOP .30:
    XOR EAX,EAX
    STOSB
.90:LEA RCX,[ImmLine]
    ADD R8,[InputPtr::]
    RET
   ENDP ImmRel
↑ GetAccum
Return an acumulator register name depending on Dii.OperWidth.
Input
Dii.OperWidth operation width 1,2,4,8.
Output
RAX= pointer to register name AL, AX, EAX, RAX.
Error
-
Clobbers
-
Invokes
Invoked by
GetAccum PROC
    Dispatch [Dii.OperWidth],OperWidth8, OperWidth16, OperWidth32, OperWidth64
.OperWidth8:
    LEA RAX,[RegAL]
    JMP .90:
.OperWidth16:
    LEA RAX,[RegAX]
    JMP .90:
.OperWidth32:
    LEA RAX,[RegEAX]
    JMP .90:
.OperWidth64:
    LEA RAX,[RegRAX]
.90:RET
   ENDP GetAccum
↑ GetCounter
Return a counter register name depending on Dii.AddrWidth.
Input
Dii.AddrWidth address width 2,4,8.
Output
RAX= pointer to register name CX, ECX, RCX.
Error
-
Clobbers
RAX
Invokes
Invoked by
GetCounter PROC
    MOV CL,[Dii.AddrWidth]
    Dispatch CL,AddrWidth32, AddrWidth64
.AddrWidth16::
    LEA RCX,[RegCX]
    RET
.AddrWidth32:
    LEA RCX,[RegECX]
    RET
.AddrWidth64:
    LEA RCX,[RegRCX]
    RET
   ENDP GetCounter
↑ SelectByCL
Return CL-th item from the list at RSI.
Input
RSI=pointer to the 0-th ASCIIZ item.
CL= ordinal number of item 0..7.
Output
ZF=0, RSI= pointer to the selected item.
Error
ZF=1, [RSI]=0
Clobbers
RAX,RCX
SelectByCL PROC
    MOVZX ECX,CL
    JRCXZ .80
.20:LODSB
    CMP AL,0
    JNE .20:
    LOOP .20:
.80:CMPB [RSI],0
    RET
   ENDP SelectByCL
↑ GetSimdDataWidth
Return the width of data by the last two letters of Dii.Instruction mnemonic as a letter 'D', 'Q','O','Y' or 'Z' in AL.
Input
Dii.Operation.
Output
AL= 0 or 'D' or 'Q' or 'O' or 'Y' or 'Z'.
GetSimdDataWidth PROC
    MOV RDI,[Dii.Operation]
    MOV AL,0
    TEST RDI
    JZ .90:
.10:CMPB [RDI],0
    JE .20:
    INC RDI
    JMP .10:
.20:MOV DX,[RDI-2]
    MOV AL,'D'
    CMP DX,'SS'
    JE .90:
    MOV AL,'Q'
    CMP DX,'SD'
    JE .90:
    CMP DX,'PD'
    JE .40:
    CMP DX,'PS'
    MOV AL,0
    JNE .90:
.40:MOV AL,'Y'
    JSt [Dii.Flags],flagS1,.90:
    MOV AL,'Z'
    JSt [Dii.Flags],flagS2,.90:
    MOV AL,'O'
.90:RET
   ENDP GetSimdDataWidth
↑ GetOperWidth
Return an operation width as a letter 'B', 'W','D', 'Q' in AL and as a number 1, 2, 4, 8 in AH from Dii.OperWidth.
Input
Dii.OperWidth.
Output
AL= 'B' or 'W' or 'D' or 'Q'.
Error
-
Invokes
Invoked by
GetOperWidth PROC
    MOV AL,[Dii.OperWidth]
    Dispatch AL,OperWidth8, OperWidth16, OperWidth32, OperWidth64
    XOR EAX,EAX
.OperWidth8:
    MOV AL,'B'
    MOV AH,1
    JMP .90:
.OperWidth16:
    MOV AL,'W'
    MOV AH,2
    JMP .90:
.OperWidth32:
    MOV AL,'D'
    MOV AH,4
    JMP .90:
.OperWidth64:
    MOV AL,'Q'
    MOV AH,8
.90:RET
  ENDP GetOperWidth
↑ GetStringRegs
Return string operation registers.
Input
Dii.OperWidth= specifies the address width.

Dii.Flags:flagEverrideES when the destination string has overridable segment (MASKMOVQ)
Output
RAX= ^MemoryLine - pointer to source address [DS:SI] or [DS:ESI] or [RSI]. Segment register may be overriden.
RCX= ^ImmLine - pointer to destination address [ES:DI] or [ES:EDI] or [RDI].
Error
-
Invokes
Invoked by
GetStringRegs PROC
    MOV EAX,[Dii.Prefix]
    JSt EAX,pfx26,.ES:
    JSt EAX,pfx36,.SS:
    JSt EAX,pfx2E,.CS:
    JSt EAX,pfx64,.FS:
    JSt EAX,pfx65,.GS:
    MOV DL,'D'
    JMP .10:
.ES:MOV DL,'E'
    JMP .10:
.SS:MOV DL,'S'
    JMP .10:
.CS:MOV DL,'C'
    JMP .10:
.FS:MOV DL,'F'
    JMP .10:
.GS:MOV DL,'G'
.10:LEA RDI,[MemoryLine]
    MOV AL,'['
    STOSB
    MOV AL,[Dii.AddrWidth]
    Dispatch AL,AddrWidth32,AddrWidth64
.AddrWidth16::
    MOV AL,DL
    STOSB
    MOV EAX,'S:SI'
    STOSD
    MOV AX,']'
    STOSW
    LEA RSI,[="[ES:DI]"]
    JMP .50:
.AddrWidth32:
    MOV AL,DL
    STOSB
    MOV EAX,'S:ES'
    STOSD
    MOV EAX,'I]'
    STOSD
    LEA RSI,[="[ES:EDI]"]
    JMP .50:
.AddrWidth64:
    MOV EAX,'RSI]'
    STOSD
    XOR EAX,EAX
    STOSB
    LEA RSI,[="[RDI]"]
.50:LEA RDI,[ImmLine]
    MOV RCX,RDI
    LODSB       ; '['
    STOSB
    LODSB       ; 'E' (the 1st letter of segment)
    CMP [Dii.AddrWidth],AddrWidth64
    JE .70:
    JNSt [Dii.Flags],flagOverrideES,.70:
    MOV AL,DL   ; (the 1st letter of overriding segment, perhaps 'D')
.70:STOSB
.80:LODSB
    STOSB
    CMP AL,0
    JNE .80:
    LEA RAX,[MemoryLine]
    RET
  ENDP GetStringRegs
↑ Invalid
Disassemble the byte at Dii.$VA as DB 0xNN. Let R8=Dii.$VA+1.
Input
Dii.$VA is start of code.
Output
R8=Dii.$VA+1
Clobbers
RAX,RDX,RDI
Invalid PROC
     XOR EAX,EAX
     MOV [Dii.Prefix1],RAX
     MOV [Dii.Prefix2],RAX
     MOV [Dii.Prefix3],RAX
     MOV [Dii.Prefix4],RAX
     LEA RDI,[="DB"]
     MOV [Dii.Operation],RDI
     LEA RDI,[MemoryLine]
     MOV [Dii.Operand1],RDI
     MOV AX,'0x'
     STOSW
     MOV R8,[Dii.$VA]
     MOV DL,[R8]
     INC R8
     CALL StoDL

     XOR EAX,EAX
     STOSB
   ;  MOV EAX,0x0A0D
   ;  STOSD
     RET
    ENDP Invalid
↑ ExtendM
Copy fields from instruction prefixes to Dii structure.
ExtendM copies fields m0,m1,m2,m3 to Dii.MapNr
Input
BL= is prefix byte with the required fields.
ExtendM PROC
    MOV AL,0000_1111b
    AND AL,BL
    MOV [Dii.MapNr],AL
    RET
   ENDP ExtendM
↑ ExtendV
Copy fields from instruction prefixes to Dii structure.
ExtendV copies fields v0,v1,v2,v3 to Dii.VvvvNr and bit W to Dii.Status:stW
Input
BL= is prefix byte with the required fields.
ExtendV PROC
    MOV AL,0111_1000b
    AND AL,BL
    XOR AL,0111_1000b
    SHR AL,3
    OR [Dii.VvvvNr],AL
    TEST BL,1000_0000b
    JZ .90:
    SetSt [Dii.Status],stW
.90:RET
   ENDP ExtendV
↑ ExtendP
Copy fields from instruction prefixes to Dii structure.
ExtendP copies fields p0,p1 to Dii.Prefix:pfxXXIsOpcode.
Input
BL= is prefix byte with the required fields.
ExtendP PROC
    MOV AL,0000_0011b
    AND AL,BL
    Dispatch AL,0,1,2
    SetSt [Dii.Prefix],pfxF2IsOpcode
    SetSt [Dii.Prefix],pfxF2
    RET
.0: SetSt [Dii.Prefix],pfxNPIsOpcode
    SetSt [Dii.Prefix],pfxNP
    RET
.1: SetSt [Dii.Prefix],pfx66IsOpcode
    SetSt [Dii.Prefix],pfx66
    RET
.2: SetSt [Dii.Prefix],pfxF3IsOpcode
    SetSt [Dii.Prefix],pfxF3
    RET
   ENDP ExtendP
↑ ExtendR
Copy fields from instruction prefixes to Dii structure.
ExtendR copies fields b3,x3,r3 b3 to Dii.BaseNr, Dii.IndexNr, r3 to Dii.OperNr.
Input
BL= is prefix byte with the required fields.
ExtendR PROC
    TEST BL,0010_0000b         ; EVEX.~b3
    JNZ .10:
    OR [Dii.BaseNr],0000_1000b ; b3
.10:TEST BL,0100_0000b         ; EVEX.~x3 alias EVEX.~b4
    JNZ .20:
    OR [Dii.IndexNr],0000_1000b; x3
    OR [Dii.BaseNr],0001_0000b ; b4
.20:TEST BL,1000_0000b         ; EVEX.~r3
    JNZ .90:
    OR [Dii.OperNr],0000_1000b ; r3
.90:RET
   ENDP ExtendR
↑ AcceptrLegacyPrefix
The byte AL just read from R8 is an explicit prefix 0x26,0x36,0x2E,0x3E,0x64,0x65,0xF0,0xF2,0xF3,0x66,0x67.
Input
RSI is pointer to prefix name, e.g. SEGES.
Output
Dii.Prefix flags is modified, Dii.PrefixN is modified. R8 is unchanged.
PfxLegacyAccept PROC
    JSt [Dii.Prefix],pfxNoMore,.70:
    XOR EAX,EAX
    LEA RDI,[Dii.Prefix1]     ; Find a free prefix slot.
    MOV ECX,4
.20:CMP [RDI],RAX
    JE .80:
    ADD RDI,8
    LOOP .20:
    ; All four slots are occupied. Disassemble as DB.
.70:CALL Invalid:
    JMP FlushDii:
.80:MOV [RDI],RSI
    RET
  ENDP PfxLegacyAccept
↑ PfxREXAccept
The byte DL read in 64-bit mode from R8 is between AL=0x40..0x4F which is REX.
This procedure reads and accepts the prefix. R8 is unchanged.
Input
DL=REX byte
Output
Dii flags are updated.
PfxREXAccept PROC
    MOV [Dii.Prefix],DL
    SetSt [Dii.Prefix],pfxREX+pfxNoMore
    TEST DL,1
    JZ .12:
    OR [Dii.BaseNr], 0000_1000b ; REX.B
.12:TEST DL,2
    JZ .14:
    OR [Dii.IndexNr],0000_1000b ; REX.X
.14:TEST DL,4
    JZ .16:
    OR [Dii.OperNr], 0000_1000b ; REX.R
.16:TEST DL,8
    JZ .90:
    SetSt [Dii.Status],stW
    SetSt [Dii.Prefix],pfx67NotUsed+pfx66NotUsed
.90:RET
   ENDP PfxREXAccept
↑ PfxMEVEXAccept
The byte read in 64-bit mode from R8 is AL=0x62 which might be MVEX or EVEX or EVEX5 or EVEX6.
This procedure reads and accepts the prefix.
Input
R8 points to the Byte1 of the prefix.
Output
R8 is increased by prefix size. It points to the opcode without 0x0F , 0x0F38, 0x0F3A.
PfxMEVEXAccept PROC
      SetSt [Dii.Prefix],pfxNoMore  ; Accept no further prefixes.
      SetSt [Dii.Status],stXpfx
      MOV EBX,[R8]               ; MVEX+1 or EVEX+1 (Byte 1).
      ADD R8,3                   ; BL=MEVEX.Byte1. R8 points at opcode.
      CALL ExtendM               ; -,0F,0F38,0F3A,Map5,Map6 gives Dii.MapNr=0,1,2,3,5,6.
      TEST BL,0001_0000b         ; ~r4
      JNZ .10:
      OR [Dii.OperNr],0001_0000b ; ~r4
.10:  CALL ExtendR               ; ~b3,~x3,~b3
      SHR EBX,8                  ; BL=MEVEX.Byte2
      CALL ExtendP               ; NP,66,F3,F2
      TEST BL,0000_0100b         ; Distinguish EVEX/MVEX.
      JZ .20:
      MOV AL,XpfxEVEX6
      CMP [Dii.MapNr],6
      JE .15:
      MOV AL,XpfxEVEX5
      CMP [Dii.MapNr],5
      JE .15:
      MOV AL,XpfxEVEX
.15:  MOV [Dii.@VEXtype],AL
      MOVD [Dii.PREFIX],'EVEX'
      JMPS .25:
.20:  MOV [Dii.@VEXtype],XpfxMVEX
      MOVD [Dii.PREFIX],'MVEX'
.25:  CALL ExtendV               ; W,~v0..~v3
      SHR EBX,8                  ; BL=MEVEX.Byte3
      MOV AL,0000_0111b          ; k2..k0
      AND AL,BL
      JZ .28:
      MOV [Dii.MaskNr],AL
      OR AL,'0'
      MOV [Dii.MASK],AL
.28:  TEST BL,0000_1000b
      JNZ .30:
      OR [Dii.VvvvNr],0001_0000b ; ~v4
.30:  MOV AL,0111_0000b
      AND AL,BL
      SHR AL,4
      OR AL,'0'
      MOV [Dii.OPER],AL
      TEST BL,0001_0000b
      JZ .40:
      SetSt [Dii.Flags],flagS0
.40:  TEST BL,0010_0000b
      JZ .50:
      SetSt [Dii.Flags],flagS1
.50:  TEST BL,0100_0000b
      JZ .60:
      SetSt [Dii.Flags],flagS2
.60:  MOV AL,'0'
      TEST BL,1000_0000b
      JZ .70:
      MOV AL,'1'
.70:  CMP [Dii.@VEXtype],XpfxMVEX
      JE .80:
      MOV [Dii.ZEROING],AL
      JMPS .90:
.80:  MOV [Dii.EH],AL
.90: RET
   ENDP PfxMEVEXAccept
↑ PfxXOPAccept
The byte read from R8 was AL=0x8F which is XOP.Byte0. R8 points behind it.
This procedure reads and accepts this prefix.
Input
R8 points to the Byte1 of the prefix.
Output
R8 is increased by two. It points to the opcode without 0x0F or 0x0F38, 0x0F3A.
PfxXOPAccept PROC
    SetSt [Dii.Prefix],pfxNoMore  ; Accept no further prefixes.
    SetSt [Dii.Status],stXpfx
    MOVD [Dii.PREFIX],"XOP"
    MOV [Dii.@VEXtype],XpfxXOP
    MOV EBX,[R8]                  ; BL=XOP.Byte1
    ADD R8,2
    CALL ExtendM                  ; map8,map9,map10
    MOV [Dii.MapNr],AL
    CALL ExtendR                  ; ~r3,~x3,~b3
    SHR EBX,8                     ; BL=XOP.Byte2
    CALL ExtendP                  ; NP,66,F3,F2
    TEST BL,0000_0100b            ; XOP.L
    JZ .20:
    SetSt [Dii.Flags],flagS1
.20:CALL ExtendV                  ; W,~v0..3
    RET
  ENDP PfxXOPAccept
↑ PfxVEX3Accept
The byte read in 64-bit mode from R8 is AL=0xC4 which is VEX3.
This procedure reads and accepts the prefix.
Input
R8 points to the Byte1 of the prefix.
Output
R8 is increased by two. It points to the opcode without 0x0F or 0x0F38, 0x0F3A.
PfxVEX3Accept PROC
   CALL PfxXOPAccept
   MOV [Dii.@VEXtype],XpfxVEX
   MOVD [Dii.PREFIX],"VEX3"
   RET
  ENDP PfxVEX3Accept
↑ PfxVEX2Accept
The byte DL read in 64-bit mode from R8 is AL=0xC5 which is VEX2.
This procedure reads and accepts the prefix.
Input
R8 points to the Byte1 of the prefix.
Output
R8 is increased by one. It points to the opcode without 0x0F or 0x0F38, 0x0F3A.
PfxVEX2Accept PROC
    SetSt [Dii.Prefix],pfxNoMore  ; Accept no further prefixes.
    SetSt [Dii.Status],stXpfx
    MOV [Dii.@VEXtype],XpfxVEX
    MOVD [Dii.PREFIX],"VEX2"
    MOV [Dii.MapNr],1             ; VEX2 implies opcode map 0x0FXX.
    MOV BL,[R8]                   ; BL=VEX2.Byte1
    INC R8
    CALL ExtendP                  ; NP,66,F3,F2
    TEST BL,0000_0100b            ; VEX2.L
    JZ .20:
    SetSt [Dii.Flags],flagS1
.20:MOV AL,0111_1000b
    AND AL,BL                     ; ~v0..3
    SHR AL,3
    AND AL,0000_1111b
    XOR AL,0000_1111b
    MOV [Dii.VvvvNr],AL
    TEST BL,1000_0000b
    JNZ .90:
    OR [Dii.OperNr],0000_1000b    ; ~r3
.90:RET
  ENDP PfxVEX2Accept
↑ DisTypeList

Enumeration DisTypeList declares operand type of the disassembled instruction. In fact it defines a small (1..3FFh) ordinal integer for each DisType which will be used in DIS.Conditions
Each member of DisTypeList represents an identifier which describes how is the instruction encoded. Identifier is a combination of 0..4 substrings (one for each instruction operand) separated with underscore _.

The first character of each substring is h|j|v|i|a which tells where is the operand encoded.
The next characters is omitted (for GPR) or it is R|C|G|S|F|K|N|U|O|X|Y|X and this specifies Dii.Family of used register. GPR may be specified by its width (b|w|d|q or with letter e which specifies the width depending on Dii.OperationWidth.

h This operand is specified by Reg/Op field of ModR/M byte + REX.R | *VEX.R.
j This operand is specified by R/M field of ModR/M byte + REX.B | SIB.X | *VEX.B.
v This operand is specified by Vvvv field of *VEX.
i This operand is specified by bits 4..7 of immediate 8-bit operand following ModRM+SIB+disp bytes.
l This operand is a relative immediate against RIP.
a This operand is specified by moffs field. No ModR/M exists.
b 8-bit GPR or memory operand.
w 16-bit GPR or memory operand.
d 32-bit GPR or memory operand.
q 64-bit GPR or memory operand.
e 16 or 32-bit GPR or memory operand, depending on effective Dii.OperWidth.

R General-purpose register 8|16|32|64 bits wide, depending on Dii.OperWidth, if not specified otherwise.
M Memory operand 8|16|32|64 bits wide, depending on Dii.OperWidth.
P Memory operand specifying source segment and register eSI in string instructions.
T Memory operand specifying destination segment and register eDI in string instructions.
C Control register CR0..CR8.
G Debug register DR0..DR7.
S Segment register.
F FPU register ST0..ST7.
K Key-mask register K0..K7.
N Bind register BND0..BND3.
U Multimedia register MM0..MM7.
O SSE register XMM0..XMM31, YMM0..YMM31, ZMM..ZMM31, depending on Dii.Status.
X SSE 128-bit register XMM0..XMM31.
Y SSE 256-bit register YMM0..YMM31.
Z SSE 512-bit register ZMM..ZMM31.
Operand may also be absolute immediate ib|iw|id|iq|ie.
Operand may also be RIP-relative immediate lb|lw|ld|le.
Operand may also be the secondary one-byte immediate i2.
Operand may also be a fixed register: AL,eAX,CL,CX,ECX,RCX,DX,ST0,ST1,XMM0.

After operand substrings, miscellaneous modifiers may follow, separated with at-sign @. The at-sign alone means that the instruction has no operands.
@FV32|@FV64|@HV32|@HV16|@FVM|@T8...@T512|@VSIB etc., see IiDisp8EVEX or IiDisp8MVEX, or
@DATAb disassemble with DATA=B.
@DATAw disassemble with DATA=W.
@DATAd disassemble with DATA=D.
@DATAq disassemble with DATA=Q.
@DATAa disassemble with DATA=B|W|D|Q specified by Dii.OperWidth.
@DATAx disassemble with DATA=X.
@DATAy disassemble with DATA=Y.
@DATAz disassemble with DATA=Z.
@DATAo disassemble with DATA=X|Y|Z specified by Dii.Flags:flagS1|flagS2.
@DISTn disassemble with DIST=N.
@DISTf disassemble with DIST=F.
@other other modifier(s).

Whenever a new operand type is added to the list, e.g. bO_vO_jO@FV64 , the coresponding paragraph/subprocedure named .bO_vO_jO@FV64: must be written in DisTabProc below.

%DisTypeList %SET \
@,\
@1,\
@bswap,\
@DATAa,\
@DATAq,\
@DISTf,\
@DISTn,\
@iret,\
@jcc,\
@jcce,\
@jcxz,\
@opc98,\
@opc99,\
@pfxLg,\
@pfxMEVEX,\
@pfxREX,\
@pfxVEX2,\
@pfxVEX3,\
@pfxXOP,\
@pushapopa,\
@pushpopCS,\
@pushpopDS,\
@pushpopES,\
@pushpopFS,\
@pushpopGS,\
@pushpopSS,\
@retf,\
@retn,\
@vzero,\
@xlat,\
a@DISTf,\
a_AL@CODEs,\
a_eAX@CODEs,\
aAX_ie,\
aAX_ie@CODEs,\
AL_a@CODEs,\
AL_DX,\
AL_ib,\
AL_ib@CODEs,\
AL_Pb,\
AL_Tb,\
dest_hO_jO,\
dest_hU_jU,\
DX_AL,\
DX_eAX,\
DX_Pb,\
DX_Pe,\
eAX@,\
eAX_a@CODEs,\
eAX_DX,\
eAX_ECX,\
eAX_ib@in,\
eAX_Pe,\
eAX_Ropc,\
eAX_Te,\
GPRfromOpc,\
Grp9B,\
GrpD8,\
GrpD9,\
GrpDA,\
GrpDB,\
GrpDC,\
GrpDD,\
GrpDE,\
GrpDF,\
h_j,\
hC_jR,\
hE_jRd,\
hG_jR,\
hK_jK,\
hK_jK_ib,\
hK_jO,\
hK_jO_ib@DATAo@FV16,\
hK_jO_ib@DATAo@FV32,\
hK_jO_ib@DATAo@FV64,\
hK_jO_ib@T16,\
hK_jO_ib@T32,\
hK_jO_ib@T64,\
hK_jR_ib,\
hK_jRd,\
hK_jRq,\
hK_jRq_ib,\
hK_jX_ib@T16,\
hK_jX_ib@T32,\
hK_jX_ib@T64,\
hK_vK_jK,\
hK_vO_jO@FV32,\
hK_vO_jO@FV64,\
hK_vO_jO@FVM,\
hK_vO_jO@MFV32,\
hK_vO_jO@MFVM,\
hK_vO_jO_ib@FV16,\
hK_vO_jO_ib@FV32,\
hK_vO_jO_ib@FV64,\
hK_vO_jO_ib@FVM,\
hK_vO_jO_ib@MFV32,\
hK_vO_jO_ib@MFV64,\
hK_vO_jO_ib@T16,\
hK_vO_jO_ib@T32,\
hK_vO_jO_ib@T64,\
hK_vX_jX_ib@T32,\
hK_vX_jX_ib@T64,\
hN_jN,\
hN_jR,\
hN_jRd,\
hN_jRq,\
hO,\
hO_ib,\
hO_jK,\
hO_jO,\
hO_jO@DATAd,\
hO_jO@DATAd@noREP,\
hO_jO@DATAd@T32,\
hO_jO@DATAo,\
hO_jO@DATAo@FV32,\
hO_jO@DATAo@FV64,\
hO_jO@DATAo@MHV32,\
hO_jO@DATAo@T128,\
hO_jO@DATAq,\
hO_jO@DATAq@FV64,\
hO_jO@DATAq@noREP,\
hO_jO@DATAq@T64,\
hO_jO@DATAw,\
hO_jO@DATAx,\
hO_jO@DATAx@T128,\
hO_jO@DATAy,\
hO_jO@DATAy@T256,\
hO_jO@FV16,\
hO_jO@FV32,\
hO_jO@FV64,\
hO_jO@FVM,\
hO_jO@HV16,\
hO_jO@HV32,\
hO_jO@HVM,\
hO_jO@MFV32,\
hO_jO@MFV64,\
hO_jO@MFVM,\
hO_jO@MHV32,\
hO_jO@OVM,\
hO_jO@pfxIsOpcode,\
hO_jO@QV16,\
hO_jO@QVM,\
hO_jO@T128,\
hO_jO@T16,\
hO_jO@T256,\
hO_jO@T32,\
hO_jO@T64,\
hO_jO@T8,\
hO_jO@VSIB@T32,\
hO_jO@VSIB@T64,\
hO_jO_EAX_XMM0,\
hO_jO_ib,\
hO_jO_ib@DATAw,\
hO_jO_ib@FV16,\
hO_jO_ib@FV32,\
hO_jO_ib@FV64,\
hO_jO_ib@FVM,\
hO_jO_ib@MFV32,\
hO_jO_ib@MFV64,\
hO_jO_vO,\
hO_jO_vO@VSIB,\
hO_jO_XMM0,\
hO_jR,\
hO_jR@DATAd,\
hO_jR@DATAd@T32,\
hO_jR@DATAq,\
hO_jR@DATAq@T64,\
hO_jR@DATAw,\
hO_jR@HVM,\
hO_jR_ib,\
hO_jR_ib@DATAb,\
hO_jR_ib@DATAd,\
hO_jR_ib@DATAq,\
hO_jRb@T8,\
hO_jRd@DATAd,\
hO_jRd@DATAd@T32,\
hO_jRd@T32,\
hO_jRd_ib,\
hO_jRd_ib@DATAb,\
hO_jRd_ib@DATAd,\
hO_jRd_ib@DATAq,\
hO_jRd_ib@DATAw,\
hO_jRq@DATAq,\
hO_jRq@DATAq@T64,\
hO_jRq@T64,\
hO_jRq_ib,\
hO_jRq_ib@DATAq,\
hO_jRw@DATAw@T16,\
hO_jRw@T16,\
hO_jU,\
hO_jU@DATAq,\
hO_jU@DATAq@noREP,\
hO_jX,\
hO_jX@DATAd,\
hO_jX@DATAo,\
hO_jX@DATAq,\
hO_jX@DATAx@T128,\
hO_jX@DATAy@T256,\
hO_jX@OVM,\
hO_jX@QVM,\
hO_jX@T128,\
hO_jX@T16,\
hO_jX@T256,\
hO_jX@T32,\
hO_jX@T64,\
hO_jX@T8,\
hO_jXXY,\
hO_jXXY@HV16,\
hO_jXXY@HV32,\
hO_jXXY@HVM,\
hO_jXXY@OVM,\
hO_jXXY@QVM,\
hO_vK_jO@MFV32,\
hO_vK_jO@MFV64,\
hO_vO_is4_jO,\
hO_vO_jO,\
hO_vO_jO@DATAd,\
hO_vO_jO@DATAd@FV32,\
hO_vO_jO@DATAd@FV64,\
hO_vO_jO@DATAd@T32,\
hO_vO_jO@DATAo,\
hO_vO_jO@DATAo@FV32,\
hO_vO_jO@DATAo@FV64,\
hO_vO_jO@DATAq,\
hO_vO_jO@DATAq@FV32,\
hO_vO_jO@DATAq@FV64,\
hO_vO_jO@DATAq@T64,\
hO_vO_jO@FV16,\
hO_vO_jO@FV32,\
hO_vO_jO@FV64,\
hO_vO_jO@FVM,\
hO_vO_jO@HVM,\
hO_vO_jO@MFV32,\
hO_vO_jO@MFV64,\
hO_vO_jO@QVM,\
hO_vO_jO@T128,\
hO_vO_jO@T16,\
hO_vO_jO@T32,\
hO_vO_jO@T64,\
hO_vO_jO_ib,\
hO_vO_jO_ib@DATAb,\
hO_vO_jO_ib@DATAb@T8,\
hO_vO_jO_ib@DATAd,\
hO_vO_jO_ib@DATAd@FV32,\
hO_vO_jO_ib@DATAd@T32,\
hO_vO_jO_ib@DATAq,\
hO_vO_jO_ib@DATAq@FV64,\
hO_vO_jO_ib@DATAq@T64,\
hO_vO_jO_ib@DATAw,\
hO_vO_jO_ib@DATAw@T16,\
hO_vO_jO_ib@FV32,\
hO_vO_jO_ib@FV64,\
hO_vO_jO_ib@FVM,\
hO_vO_jO_ib@MFV32,\
hO_vO_jO_ib@MFV64,\
hO_vO_jO_ib@T128,\
hO_vO_jO_ib@T16,\
hO_vO_jO_ib@T256,\
hO_vO_jO_ib@T32,\
hO_vO_jO_ib@T64,\
hO_vO_jO_is4,\
hO_vO_jO_XMM0,\
hO_vO_jR,\
hO_vO_jR@DATAd@QVM,\
hO_vO_jR@DATAq@HVM,\
hO_vO_jR@HVM,\
hO_vO_jR@QVM,\
hO_vO_jR_ib@DATAb,\
hO_vO_jR_ib@DATAb@T8,\
hO_vO_jR_ib@DATAd,\
hO_vO_jR_ib@DATAd@T32,\
hO_vO_jR_ib@DATAq,\
hO_vO_jR_ib@DATAq@T64,\
hO_vO_jR_ib@DATAw,\
hO_vO_jR_ib@DATAw@T16,\
hO_vO_jRb_ib@DATAb,\
hO_vO_jRd@DATAd,\
hO_vO_jRd@DATAd@QVM,\
hO_vO_jRd@T16,\
hO_vO_jRd@T32,\
hO_vO_jRd_ib@DATAb,\
hO_vO_jRd_ib@DATAb@T8,\
hO_vO_jRd_ib@DATAd,\
hO_vO_jRd_ib@DATAd@T32,\
hO_vO_jRd_ib@DATAw,\
hO_vO_jRd_ib@DATAw@T16,\
hO_vO_jRd_ib@T16,\
hO_vO_jRd_ib@T32,\
hO_vO_jRd_ib@T8,\
hO_vO_jRq@DATAq,\
hO_vO_jRq@DATAq@HVM,\
hO_vO_jRq@T16,\
hO_vO_jRq@T64,\
hO_vO_jRq_ib,\
hO_vO_jRq_ib@DATAq,\
hO_vO_jRq_ib@DATAq@T64,\
hO_vO_jRq_ib@DATAw,\
hO_vO_jRq_ib@T32,\
hO_vO_jRw_ib@DATAw@T16,\
hO_vO_jX,\
hO_vO_jX@T128,\
hO_vO_jX_ib,\
hO_vO_jX_ib@T128,\
hO_vO_jX_ib@T16,\
hO_vO_jY_ib@T256,\
hR,\
hR_jM,\
hR_jM@64,\
hR_jM@ls,\
hR_jO,\
hR_jO@HVM,\
hR_jO@QVM,\
hR_jO_ib,\
hR_jR,\
hR_jR@DATAa,\
hR_jR@DATAq,\
hR_jR@DATAz,\
hR_jR@hint_nop,\
hR_jR_ib,\
hR_jR_id,\
hR_jR_vR,\
hR_jRb,\
hR_jRb@movx,\
hR_jRM,\
hR_jRM@CODEl,\
hR_jRM_ib@DATAa,\
hR_jRM_ib@DATAb,\
hR_jRM_ie@DATAa@IMMd,\
hR_jRMb,\
hR_jRMw,\
hR_jRw@movx,\
hR_jU_ib,\
hR_vK_jK,\
hR_vR_jR,\
hRb_jRb,\
hRb_jRMb@CODEl,\
hRd_jK,\
hRd_jM,\
hRd_jO,\
hRd_jO@DATAd,\
hRd_jO@DATAd@HVM,\
hRd_jO@DATAd@QVM,\
hRd_jO@HVM,\
hRd_jO@QVM,\
hRd_jO@T16,\
hRd_jO@T32,\
hRd_jO@T64,\
hRd_jO_ib,\
hRd_jO_ib@T16,\
hRd_jR,\
hRd_jR@DATAa,\
hRd_jR@popcnt,\
hRd_jR_ib@DATAd,\
hRd_jR_id,\
hRd_jR_vR,\
hRd_jR_vR@DATAd,\
hRd_jRb,\
hRd_jRb@DATAb,\
hRd_jRd_XMM0,\
hRd_jU,\
hRd_jU_ib,\
hRd_jX,\
hRd_jX@DATAd,\
hRd_jX@DATAd@HVM,\
hRd_jX@DATAd@QVM,\
hRd_jX@HVM,\
hRd_jX@QVM,\
hRd_jX@T16,\
hRd_jX@T32,\
hRd_jX@T64,\
hRd_vR_jR,\
hRdq_jO,\
hRe_jR,\
hRe_jR@DATAz,\
hRq_jK,\
hRq_jO,\
hRq_jO@DATAq,\
hRq_jO@DATAq@HVM,\
hRq_jO@DATAq@OVM,\
hRq_jO@HVM,\
hRq_jO@QVM,\
hRq_jO@T16,\
hRq_jO@T32,\
hRq_jO@T64,\
hRq_jR,\
hRq_jR@DATAd,\
hRq_jR@popcnt,\
hRq_jR_ib@DATAq,\
hRq_jR_id,\
hRq_jR_vR,\
hRq_jR_vR@DATAq,\
hRq_jRb,\
hRq_jX,\
hRq_jX@DATAq,\
hRq_jX@DATAq@HVM,\
hRq_jX@DATAq@QVM,\
hRq_jX@HVM,\
hRq_jX@T16,\
hRq_jX@T32,\
hRq_jX@T64,\
hRq_vK_jK,\
hRq_vR_jR,\
hRwdq_jR,\
hS_jR,\
hS_jRM,\
hU_jO,\
hU_jO@DATAq,\
hU_jR_ib@DATAw,\
hU_jRd@DATAd,\
hU_jRd_ib@DATAw,\
hU_jRq@DATAq,\
hU_jU,\
hU_jU@3DNow,\
hU_jU_ib,\
hU_jU_ib@DATAw,\
hX_jO,\
hX_jRd@DATAd,\
hX_jRq@DATAq,\
hX_jX,\
hX_jX@DATAd,\
hX_jX@DATAd@noREP,\
hX_jX@DATAq,\
hX_jX@DATAq@noREP,\
hX_jX_ib,\
hX_jXY,\
hX_vX_jRd@DATAd,\
hX_vX_jRd@DATAd@QVM,\
hX_vX_jRd@DATAd@T32,\
hX_vX_jRd@T16,\
\\hX_vX_jRd@T32,\
hX_vX_jRq@DATAq,\
hX_vX_jRq@DATAq@HVM,\
hX_vX_jRq@DATAq@T64,\
hX_vX_jRq@T16,\
hX_vX_jRq@T64,\
hX_vX_jX,\
hX_vX_jX@DATAd,\
hX_vX_jX@DATAd@T32,\
hX_vX_jX@DATAq,\
hX_vX_jX@DATAq@T64,\
hX_vX_jX@HVM,\
hX_vX_jX@QVM,\
hX_vX_jX@T16,\
hX_vX_jX@T32,\
hX_vX_jX@T64,\
hX_vX_jX_ib,\
hX_vX_jX_ib@T16,\
hX_vX_jX_ib@T32,\
hX_vX_jX_ib@T64,\
hXXY_jO,\
hXXY_jO@FV64,\
hXXY_jO@MFV64,\
hXY_jO,\
hXY_jO@DATAo,\
hXY_jO@DATAo@FV64,\
hXY_jO@FV64,\
hY_jY_ib,\
hY_vY_jY,\
hY_vY_jY_ib,\
i8,\
i8@1,\
ib,\
ib@DATAb@noDATA,\
ib@DATAw,\
ib_AL,\
ib_eAX,\
ib1,\
ie@DATAa,\
invalid,\
iw@retf,\
iw@retn,\
iw_ib,\
j_h,\
jK_hK,\
jM,\
jM@DATAd,\
jM@DATAo,\
jM@DATAq,\
jM@DATAz,\
jMe@DISTf,\
jN_hN,\
jO@VSIB@DATAd@T32,\
jO@VSIB@DATAq@T64,\
jO@VSIB@T32,\
jO@VSIB@T64,\
jO_hO,\
jO_hO@DATAd,\
jO_hO@DATAd@T32,\
jO_hO@DATAq,\
jO_hO@DATAq@T64,\
jO_hO@FVM,\
jO_hO@HVM,\
jO_hO@MFV32,\
jO_hO@MFV64,\
jO_hO@MFVM,\
jO_hO@OVM,\
jO_hO@QVM,\
jO_hO@T16,\
jO_hO@T32,\
jO_hO@T64,\
jO_hO@T8,\
jO_hO@VSIB@T32,\
jO_hO@VSIB@T64,\
jO_hO_ib,\
jO_hO_ib@DATAd,\
jO_hO_ib@DATAd@T32,\
jO_hO_ib@DATAd@T64,\
jO_hO_ib@FVM,\
jO_hO_ib@HVM,\
jO_hO_ib@T128,\
jO_hO_ib@T256,\
jO_hR@DATAd,\
jO_hR@DATAd@T32,\
jO_hR@DATAq,\
jO_hR@DATAq@T64,\
jO_ib,\
jO_vO_hO,\
jR,\
jR@DATAa,\
jR@DATAa@CODEl,\
jR@DATAaq,\
jR@DATAb,\
jR@DATAq,\
jR@DATAw,\
jR@prom64,\
jR_hC,\
jR_hG,\
jR_hO,\
jR_hO@DATAd,\
jR_hO@DATAd@T32,\
jR_hO@DATAq,\
jR_hO@DATAq@T64,\
jR_hO@DATAw,\
jR_hO@FVM,\
jR_hO_ib,\
jR_hO_ib@DATAa,\
jR_hO_ib@DATAb,\
jR_hO_ib@DATAd,\
jR_hO_ib@DATAd@T32,\
jR_hO_ib@DATAq,\
jR_hO_ib@DATAq@T64,\
jR_hO_ib@T16,\
jR_hO_ib@T32,\
jR_hO_ib@T64,\
jR_hR,\
jR_hR_CL,\
jR_hR_ib,\
jR_hRd,\
jR_hRd@DATAd,\
jR_hRq,\
jR_hRq@DATAq,\
jR_i8,\
jR_ib,\
jR_ib@DATAa,\
jR_ib@DATAa@CODEl,\
jR_ibse@DATAa@CODEl,\
jR_ie,\
jR_ie@DATAa,\
jR_ie@DATAa@CODEl,\
jRb,\
jRb@DATAa,\
jRb@DATAb,\
jRb_hRb,\
jRb_i8,\
jRb_i8@DATAb,\
jRb_i8@DATAb@CODEl,\
jRb_ib,\
jRd,\
jRd_hE,\
jRd_hO@DATAd,\
jRd_hO@DATAd@T32,\
jRd_hO_ib,\
jRd_hO_ib@DATAa,\
jRd_hO_ib@DATAb,\
jRd_hO_ib@DATAb@T8,\
jRd_hO_ib@DATAd,\
jRd_hO_ib@DATAd@T32,\
jRd_hO_ib@DATAd@T64,\
jRd_hO_ib@DATAq@T64,\
jRd_hO_ib@T16,\
jRd_hO_ib@T32,\
jRd_hO_ib@T8,\
jRd_hRd_vRd@DATAd,\
jRd_hU@DATAd,\
jRd_ib,\
jRe_hR,\
jRe_ie,\
jRe_ie@DATAa,\
jRe_ie@DATAa@CODEl,\
jRe_ie@DATAq,\
jRM_hR@CODEl,\
jRM_hS,\
jRMb,\
jRMb@DATAb,\
jRMb_1,\
jRMb_CL,\
jRMb_hRb@CODEl,\
jRMb_ib,\
jRMe@DATAa,\
jRMe@DISTn,\
jRMe_1,\
jRMe_CL,\
jRMe_ib,\
jRMw,\
jRq,\
jRq@DATAq,\
jRq_hO@DATAq,\
jRq_hO@DATAq@T64,\
jRq_hO_ib,\
jRq_hO_ib@DATAq,\
jRq_hO_ib@DATAq@T64,\
jRq_hO_ib@T16,\
jRq_hO_ib@T32,\
jRq_hRq_vRq@DATAq,\
jRq_hU@DATAq,\
jRq_ie@DATAq,\
jRq_ie@DATAq@CODEl,\
jRw_hO@DATAw@T16,\
jRw_hRw,\
jU_hU,\
jU_ib,\
jX_hO@OVM,\
jX_hO@QVM,\
jX_hO_ib,\
jX_hO_ib@T128,\
jXXY_hO@HVM,\
jXXY_hO_ib,\
jXXY_hO_ib@HVM,\
jY_hO_ib@T256,\
lb_eCX,\
le,\
le@x,\
none@DATAa,\
Pb_Tb,\
Pe_Te,\
Rb_ib,\
Re_ie,\
Tb_AL,\
Tb_DX,\
Tb_Pb,\
Te_DX,\
Te_eAX,\
Te_Pe,\
vK_lb@DISTs,\
vK_ld@DISTn,\
vO_jO_ib,\
vO_jO_ib@FV32,\
vO_jO_ib@FV64,\
vO_jO_ib@FVM,\
vO_jO_ib@T128,\
vR_jR,\
vR_jR_id,\
vRd_jR,\
vRd_jR_id,\
vRq_jR,\
vRq_jR_id,\
;

  %i %SETA 1
ot %FOR %DisTypeList
%ot EQU %i
  %i %SETA %i+1
 %ENDFOR ot
↑ DisTab Opcode, Operation, DisType, Conditions=
Macro DisTab declares disassembly of one row in DisTable for one prefix or machine instruction.
It constructs the table DisTab with recipes how to disassemble each opcode.
The macro has three ordinal operands and several keyword operands.
Opcode is one, two or three-byte operation code of machine instruction in hexadecimal notation without hexadecimal decorator, e.g. 0F01
When the condition Xpfx= is none or VEX or MVEX or EVEX, the actual operation code xx may be preceeded by nothing xx or by opcode-map specifier 0Fxx, 0F38xx or 0F3Axx.
When Xpfx=XOP, the actual operation code xx may be preceeded by opcode-map 8, 9 or 10, i.e. 08xx, 09xx or 0Axx.
When Xpfx=EVEX5 or Xpfx=EVEX6, the actual operation code xx is preceeded by nothing and the opcode-map 5 or 6 is encoded in EVEX prefix.
Operation is a string without quotes with the mnemonic name of machine instruction, e.g. PUSH.
DisType is one member from the list %DisTypeList, e.g. hX_jR, which tells DisTabProc how to disassemble each opcode.
Each DisType will be assigned with a small ordinal number 1..0x3FF and put in the LSB of DIS.Conditions doubleword.
For layout of DIS.Conditions flags see DIS.Conditions.
Conditions= may be empty or one of the condition established by previous prefixes or by the potential ModR/M byte which may follow the opcode.
When a condition is omitted, it does not matter. Possible conditions are:
Xpfx=XOP|MVEX|VEX|EVEX|EVEX5|EVEX6 when extended encoding prefix is used, otherwise no *VEX prefix is used.
Epfx=NP|66|F2|F3 if the operation is preceeded by this legacy prefix or the prefix is part of *VEX encoding.
Mode=64|Lg if the instruction runs in 64-bit or in legacy (16|32-bit) mode.
W=0|1 if the instruction has wide (64-bit) operands, specified by REX.W, XOP.W, VEX3.W, MVEX.W or EVEX.W bit.
Mod=0|3 if the ModR/M byte is in this mode (Mod=0 specifies memory operand, Mod=3 specifies a register).
RegOp=0|1|2|3|4|5|6|7 if the ModR/M byte has this very RegOp field.
RM=0|1|2|3|4|5|6|7 if the ModR/M byte has this very R/M field.
Output
The macro creates 128-bit structure DIS
Example
DisTab 0F2F, COMISS, hX_jXMd@DATAd, Epfx=NP DisTab 0F2F, COMISD, hX_jXMq@DATAq, Epfx=66
DisTab %MACRO Opcode, Operation, DisType, Xpfx=, Epfx=, Mode=, W=, Mod=, RegOp=, RM=
%F %SETA 0                        ; %F is a flag accumulator which will be stored to DIS.Conditions
 %IF "%Xpfx" === ""
    %F %SETA %F+condXpfx+cond0
 %ENDIF
 %IF "%Xpfx" !=== ""
    %F %SETA %F+condXpfx+cond%Xpfx
 %ENDIF
 %IF "%Mode" !=== ""
%F %SETA %F+condMode%Mode
 %ENDIF
 %IF "%Epfx" !=== ""
%F %SETA %F+condEpfx%Epfx
 %ENDIF
 %IF "%Mod" !=== ""
%F %SETA %F+condMod%Mod
 %ENDIF
 %IF "%W" !=== ""
%F %SETA %F+condW%W
 %ENDIF
 %IF "%RegOp" !=== ""
%F %SETA %F+condRegOp+condRegOp%RegOp
 %ENDIF
 %IF "%RM" !=== ""
%F %SETA %F+condRM+condRM%RM
 %ENDIF
%NrCh %SETS %Operation
  %NrSp %SETA 24-%NrCh
  DB "%Operation", %NrSp * B(0)
  DD 0x%Opcode
  DD %DisType+%F
%ENDMACRO DisTab
↑ DisTable
A table with DIS record for each prefix or instruction.
[.data]
ALIGN OWORD
DisTable:
; Prefixes:
DisTab 40,INC,GPRfromOpc,Mode=Lg
DisTab 40,,@pfxREX,Mode=64
DisTab 41,INC,GPRfromOpc,Mode=Lg
DisTab 41,,@pfxREX,Mode=64
DisTab 42,INC,GPRfromOpc,Mode=Lg
DisTab 42,,@pfxREX,Mode=64
DisTab 43,INC,GPRfromOpc,Mode=Lg
DisTab 43,,@pfxREX,Mode=64
DisTab 44,INC,GPRfromOpc,Mode=Lg
DisTab 44,,@pfxREX,Mode=64
DisTab 45,INC,GPRfromOpc,Mode=Lg
DisTab 45,,@pfxREX,Mode=64
DisTab 46,INC,GPRfromOpc,Mode=Lg
DisTab 46,,@pfxREX,Mode=64
DisTab 47,INC,GPRfromOpc,Mode=Lg
DisTab 47,,@pfxREX,Mode=64
DisTab 48,DEC,GPRfromOpc,Mode=Lg
DisTab 48,,@pfxREX,Mode=64
DisTab 49,DEC,GPRfromOpc,Mode=Lg
DisTab 49,,@pfxREX,Mode=64
DisTab 4A,DEC,GPRfromOpc,Mode=Lg
DisTab 4A,,@pfxREX,Mode=64
DisTab 4B,DEC,GPRfromOpc,Mode=Lg
DisTab 4B,,@pfxREX,Mode=64
DisTab 4C,DEC,GPRfromOpc,Mode=Lg
DisTab 4C,,@pfxREX,Mode=64
DisTab 4D,DEC,GPRfromOpc,Mode=Lg
DisTab 4D,,@pfxREX,Mode=64
DisTab 4E,DEC,GPRfromOpc,Mode=Lg
DisTab 4E,,@pfxREX,Mode=64
DisTab 4F,DEC,GPRfromOpc,Mode=Lg
DisTab 4F,,@pfxREX,Mode=64
DisTab 62,,@pfxMEVEX,Mode=64
DisTab 62,,@pfxMEVEX,Mode=Lg,Mod=3
DisTab 66,OTOGGLE,@pfxLg
DisTab 67,ATOGGLE,@pfxLg
DisTab 8F,,@pfxXOP,RegOp=1
DisTab 8F,,@pfxXOP,RegOp=5
DisTab 8F,POP,jR@DATAaq,RegOp=0
DisTab C4,,@pfxVEX3,Mode=64
DisTab C4,,@pfxVEX3,Mode=Lg,Mod=3
DisTab C5,,@pfxVEX2,Mode=64
DisTab C5,,@pfxVEX2,Mode=Lg,Mod=3
DisTab 26,SEGES,@pfxLg
DisTab 36,SEGSS,@pfxLg
DisTab 2E,SEGCS,@pfxLg
DisTab 3E,SEGDS,@pfxLg
DisTab 64,SEGFS,@pfxLg
DisTab 65,SEGGS,@pfxLg
DisTab F0,LOCK,@pfxLg
DisTab F2,REPNE,@pfxLg
DisTab F3,REP,@pfxLg

; Instructions in the order found in [IntelSDM2026]
DisTab 37,AAA,@,Mode=Lg
DisTab D5,AAD,i8,Mode=Lg
DisTab D4,AAM,i8,Mode=Lg
DisTab 3F,AAS,@,Mode=Lg
DisTab 14,ADC,AL_ib@CODEs
DisTab 15,ADC,aAX_ie@CODEs
DisTab 80,ADC,jRb_i8@DATAb@CODEl,RegOp=2
DisTab 81,ADC,jR_ie@DATAa@CODEl,RegOp=2
DisTab 83,ADC,jR_ibse@DATAa@CODEl,RegOp=2
DisTab 10,ADC,jRb_hRb
DisTab 11,ADC,jR_hR
DisTab 12,ADC,hRb_jRb
DisTab 13,ADC,hR_jR
DisTab 0F38F6,ADCX,hRd_jR,Epfx=66,W=0
DisTab 0F38F6,ADCX,hRq_jR,Epfx=66,W=1
DisTab 04,ADD,AL_ib@CODEs
DisTab 05,ADD,aAX_ie@CODEs
DisTab 80,ADD,jRb_i8@DATAb@CODEl,RegOp=0
DisTab 81,ADD,jR_ie@DATAa@CODEl,RegOp=0
DisTab 83,ADD,jR_ibse@DATAa@CODEl,RegOp=0
DisTab 00,ADD,jRb_hRb
DisTab 01,ADD,jR_hR
DisTab 02,ADD,hRb_jRb
DisTab 03,ADD,hR_jR
DisTab 0F58,ADDPD,hO_jO,Epfx=66
DisTab 0F58,VADDPD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F58,VADDPD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F58,ADDPS,hO_jO,Epfx=NP
DisTab 0F58,VADDPS,hO_vO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F58,VADDPS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F58,ADDSD,hX_jX,Epfx=F2
DisTab 0F58,VADDSD,hX_vX_jX,Xpfx=VEX,Epfx=F2
DisTab 0F58,VADDSD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F58,ADDSS,hX_jX,Epfx=F3
DisTab 0F58,VADDSS,hX_vX_jX,Xpfx=VEX,Epfx=F3
DisTab 0F58,VADDSS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0FD0,ADDSUBPD,hO_jO,Epfx=66
DisTab 0FD0,VADDSUBPD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FD0,ADDSUBPS,hO_jO,Epfx=F2
DisTab 0FD0,VADDSUBPS,hO_vO_jO,Xpfx=VEX,Epfx=F2
DisTab 0F38F6,ADOX,hRd_jR,Epfx=F3,W=0
DisTab 0F38F6,ADOX,hRq_jR,Epfx=F3,W=1
DisTab 0F38DB,AESIMC,hO_jO,Epfx=66
DisTab 0F38DE,AESDEC,hO_jO,Epfx=66
DisTab 0F38DE,VAESDEC,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F38DE,VAESDEC,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F38DD,AESDEC128KL,hO_jO@pfxIsOpcode,Epfx=F3,Mod=0
DisTab 0F38DF,AESDEC256KL,hO_jO@pfxIsOpcode,Epfx=F3,Mod=0
DisTab 0F38DF,AESDECLAST,hO_jO,Epfx=66
DisTab 0F38DF,VAESDECLAST,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F38DF,VAESDECLAST,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F38D8,AESDECWIDE128KL,jM,Epfx=F3,Mod=0,RegOp=1
DisTab 0F38D8,AESDECWIDE256KL,jM,Epfx=F3,Mod=0,RegOp=3
DisTab 0F38DC,AESENC,hO_jO,Epfx=66
DisTab 0F38DC,VAESENC,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F38DC,VAESENC,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F38DC,AESENC128KL,hO_jO,Epfx=F3,Mod=0
DisTab 0F38DE,AESENC256KL,hO_jO,Epfx=F3,Mod=0
DisTab 0F38DD,AESENCLAST,hO_jO,Epfx=66
DisTab 0F38DD,VAESENCLAST,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F38DD,VAESENCLAST,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F38D8,AESENCWIDE128KL,jM,Epfx=F3,Mod=0,RegOp=0
DisTab 0F38D8,AESENCWIDE256KL,jM,Epfx=F3,Mod=0,RegOp=2
DisTab 0F38DB,AESIMC,hO_jO,Epfx=66
DisTab 0F38DB,VAESIMC,hO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3ADF,AESKEYGENASSIST,hO_jO_ib,Epfx=66
DisTab 0F3ADF,VAESKEYGENASSIST,hO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 24,AND,AL_ib@CODEs
DisTab 25,AND,aAX_ie@CODEs
DisTab 80,AND,jRb_i8@DATAb@CODEl,RegOp=4
DisTab 81,AND,jR_ie@DATAa@CODEl,RegOp=4
DisTab 83,AND,jR_ibse@DATAa@CODEl,RegOp=4
DisTab 20,AND,jRb_hRb
DisTab 21,AND,jR_hR
DisTab 22,AND,hRb_jRb
DisTab 23,AND,hR_jR
DisTab 0F38F2,ANDN,hRd_vR_jR,Xpfx=VEX,W=0
DisTab 0F38F2,ANDN,hRq_vR_jR,Xpfx=VEX,W=1
DisTab 0F55,ANDNPD,hO_jO,Epfx=66
DisTab 0F55,VANDNPD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F55,VANDNPD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F55,ANDNPS,hO_jO,Epfx=NP
DisTab 0F55,VANDNPS,hO_vO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F55,VANDNPS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F54,ANDPD,hO_jO,Epfx=66
DisTab 0F54,VANDPD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F54,VANDPD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F54,ANDPS,hO_jO,Epfx=NP
DisTab 0F54,VANDPS,hO_vO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F54,VANDPS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 63,ARPL,jRw_hRw,Mode=Lg
DisTab 0F38F7,BEXTR,hRd_jR_vR,Xpfx=VEX,Epfx=NP,W=0
DisTab 0F38F7,BEXTR,hRq_jR_vR,Xpfx=VEX,Epfx=NP,W=1
DisTab 0F3A0C,BLENDPS,hO_jO_ib,Epfx=66
DisTab 0F3A0C,VBLENDPS,hO_vO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0F3A0D,BLENDPD,hO_jO_ib,Epfx=66
DisTab 0F3A0D,VBLENDPD,hO_vO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0F3814,BLENDVPS,hO_jO_XMM0,Epfx=66
DisTab 0F3A4A,VBLENDVPS,hO_vO_jO_is4,Xpfx=VEX,W=0
DisTab 0F3815,BLENDVPD,hO_jO_XMM0,Epfx=66
DisTab 0F3A4B,VBLENDVPD,hO_vO_jO_is4,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3A4C,VPBLENDVB,hO_vO_jO_is4,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38F3,BLSI,vRd_jR,Xpfx=VEX,Epfx=NP,RegOp=3,W=0
DisTab 0F38F3,BLSI,vRq_jR,Xpfx=VEX,Epfx=NP,RegOp=3,W=1
DisTab 0F38F3,BLSMSK,vRd_jR,Xpfx=VEX,Epfx=NP,RegOp=2,W=0
DisTab 0F38F3,BLSMSK,vRq_jR,Xpfx=VEX,Epfx=NP,RegOp=2,W=1
DisTab 0F38F3,BLSR,vRd_jR,Xpfx=VEX,Epfx=NP,RegOp=1,W=0
DisTab 0F38F3,BLSR,vRq_jR,Xpfx=VEX,Epfx=NP,RegOp=1,W=1
DisTab 0F1A,BNDCL,hN_jRd,Epfx=F3,Mode=Lg
DisTab 0F1A,BNDCL,hN_jRq,Epfx=F3,Mode=64
DisTab 0F1A,BNDCU,hN_jRd,Epfx=F2,Mode=Lg
DisTab 0F1A,BNDCU,hN_jRq,Epfx=F2,Mode=64
DisTab 0F1B,BNDCN,hN_jRd,Epfx=F2,Mode=Lg
DisTab 0F1B,BNDCN,hN_jRq,Epfx=F2,Mode=64
DisTab 0F1A,BNDLDX,hN_jR,Epfx=NP,Mod=0
DisTab 0F1B,BNDMK,hN_jRd,Epfx=F3,Mode=Lg
DisTab 0F1B,BNDMK,hN_jRq,Epfx=F3,Mode=64
DisTab 0F1A,BNDMOV,hN_jN,Epfx=66
DisTab 0F1B,BNDMOV,jN_hN,Epfx=66
DisTab 0F1B,BNDSTX,jN_hN,Epfx=NP,Mod=0
DisTab 62,BOUND,hR_jM
;DisTab 0FBC,BSF,hR_jR
;DisTab 0FBD,BSR,hR_jR
DisTab 0FC8,BSWAP,@bswap
DisTab 0FC9,BSWAP,@bswap
DisTab 0FCA,BSWAP,@bswap
DisTab 0FCB,BSWAP,@bswap
DisTab 0FCC,BSWAP,@bswap
DisTab 0FCD,BSWAP,@bswap
DisTab 0FCE,BSWAP,@bswap
DisTab 0FCF,BSWAP,@bswap
DisTab 0FA3,BT,jR_hR
DisTab 0FBA,BT,jR_ib,RegOp=4
DisTab 0FBB,BTC,jR_hR
DisTab 0FBA,BTC,jR_ib,RegOp=7
DisTab 0FB3,BTR,jR_hR
DisTab 0FBA,BTR,jR_ib,RegOp=6
DisTab 0FAB,BTS,jR_hR
DisTab 0FBA,BTS,jR_ib,RegOp=5
DisTab 0F38F5,BZHI,hRd_jR_vR,Xpfx=VEX,Epfx=NP,W=0
DisTab 0F38F5,BZHI,hRq_jR_vR,Xpfx=VEX,Epfx=NP,W=1
DisTab E8,CALL,le
DisTab FF,CALL,jRMe@DISTn,RegOp=2
DisTab 9A,CALL,a@DISTf,Mode=Lg
DisTab FF,CALL,jMe@DISTf,Mod=0,RegOp=3
DisTab 98,,@opc98
DisTab 0F01,CLAC,@1,Epfx=NP,Mod=3,RegOp=1,RM=2
DisTab F8,CLC,@
DisTab FC,CLD,@
DisTab 0F1C,CLDEMOTE,jM,Epfx=NP,RegOp=0,Mod=0
DisTab FA,CLI,@
DisTab 0FAE,CLRSSBSY,jM,Epfx=F3,Mod=0,RegOp=6
DisTab 0F06,CLTS,@
DisTab 0F01,CLUI,@1,Epfx=F3,Mod=3,RegOp=5,RM=6
DisTab 0FAE,CLWB,jM,Epfx=66,Mod=0,RegOp=6
DisTab F5,CMC,@
DisTab 0F40,CMOVO,hR_jRM
DisTab 0F41,CMOVNO,hR_jRM
DisTab 0F42,CMOVC,hR_jRM
DisTab 0F43,CMOVNC,hR_jRM
DisTab 0F44,CMOVZ,hR_jRM
DisTab 0F45,CMOVNZ,hR_jRM
DisTab 0F46,CMOVNA,hR_jRM
DisTab 0F47,CMOVA,hR_jRM
DisTab 0F48,CMOVS,hR_jRM
DisTab 0F49,CMOVNS,hR_jRM
DisTab 0F4A,CMOVPE,hR_jRM
DisTab 0F4B,CMOVPO,hR_jRM
DisTab 0F4C,CMOVL,hR_jRM
DisTab 0F4D,CMOVGE,hR_jRM
DisTab 0F4E,CMOVLE,hR_jRM
DisTab 0F4F,CMOVG,hR_jRM
DisTab 3C,CMP,AL_ib@CODEs
DisTab 3D,CMP,aAX_ie@CODEs
DisTab 80,CMP,jRb_i8@DATAb@CODEl,RegOp=7
DisTab 81,CMP,jR_ie@DATAa@CODEl,RegOp=7
DisTab 83,CMP,jR_ibse@DATAa@CODEl,RegOp=7
DisTab 38,CMP,jRb_hRb
DisTab 39,CMP,jR_hR
DisTab 3A,CMP,hRb_jRb
DisTab 3B,CMP,hR_jR
DisTab 0F38E6,CMPBEXADD,jRd_hRd_vRd@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38E6,CMPBEXADD,jRq_hRq_vRq@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F38E2,CMPBXADD,jRd_hRd_vRd@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38E2,CMPBXADD,jRq_hRq_vRq@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F38EE,CMPLEXADD,jRd_hRd_vRd@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38EE,CMPLEXADD,jRq_hRq_vRq@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F38EC,CMPLXADD,jRd_hRd_vRd@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38EC,CMPLXADD,jRq_hRq_vRq@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F38E7,CMPNBEXADD,jRd_hRd_vRd@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38E7,CMPNBEXADD,jRq_hRq_vRq@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F38E3,CMPNBXADD,jRd_hRd_vRd@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38E3,CMPNBXADD,jRq_hRq_vRq@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F38EF,CMPNLEXADD,jRd_hRd_vRd@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38EF,CMPNLEXADD,jRq_hRq_vRq@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F38ED,CMPNLXADD,jRd_hRd_vRd@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38ED,CMPNLXADD,jRq_hRq_vRq@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F38E1,CMPNOXADD,jRd_hRd_vRd@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38E1,CMPNOXADD,jRq_hRq_vRq@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F38EB,CMPNPXADD,jRd_hRd_vRd@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38EB,CMPNPXADD,jRq_hRq_vRq@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F38E9,CMPNSXADD,jRd_hRd_vRd@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38E9,CMPNSXADD,jRq_hRq_vRq@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F38E5,CMPNZXADD,jRd_hRd_vRd@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38E5,CMPNZXADD,jRq_hRq_vRq@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F38E0,CMPOXADD,jRd_hRd_vRd@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38E0,CMPOXADD,jRq_hRq_vRq@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F38EA,CMPPXADD,jRd_hRd_vRd@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38EA,CMPPXADD,jRq_hRq_vRq@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F38E8,CMPBXADD,jRd_hRd_vRd@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38E8,CMPBXADD,jRq_hRq_vRq@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F38E4,CMPZXADD,jRd_hRd_vRd@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38E4,CMPZXADD,jRq_hRq_vRq@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0FC2,CMPPD,hO_jO_ib,Epfx=66
DisTab 0FC2,VCMPPD,hO_vO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0FC2,VCMPPD,hK_vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0FC2,CMPPS,hO_jO_ib,Epfx=NP
DisTab 0FC2,VCMPPS,hO_vO_jO_ib,Xpfx=VEX,Epfx=NP
DisTab 0FC2,VCMPPS,hK_vO_jO_ib@FV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab A6,CMPS,Pb_Tb
DisTab A7,CMPS,Pe_Te
DisTab 0FC2,CMPSD,hX_jX_ib,Epfx=F2
DisTab 0FC2,VCMPSD,hX_vX_jX_ib,Xpfx=VEX,Epfx=F2
DisTab 0FC2,VCMPSD,hK_vX_jX_ib@T64,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0FC2,CMPSS,hX_jX_ib,Epfx=F3
DisTab 0FC2,VCMPSS,hX_vX_jX_ib,Xpfx=VEX,Epfx=F3
DisTab 0FC2,VCMPSS,hK_vX_jX_ib@T32,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0FB0,CMPXCHG,jRb_hRb
DisTab 0FB1,CMPXCHG,jR_hR
DisTab 0FC7,CMPXCHG8B,jM@DATAq,RegOp=1,W=0
DisTab 0FC7,CMPXCHG16B,jM@DATAo,RegOp=1,W=1
DisTab 0F2F,COMISS,hO_jO@DATAd,Epfx=NP
DisTab 0F2F,VCOMISS,hO_jO@DATAd,Xpfx=VEX,Epfx=NP
DisTab 0F2F,VCOMISS,hO_jO@DATAd@T32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F2F,COMISD,hO_jO@DATAq,Epfx=66
DisTab 0F2F,VCOMISD,hO_jO@DATAq,Xpfx=VEX,Epfx=66
DisTab 0F2F,VCOMISD,hO_jO@DATAq@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0FA2,CPUID,@
DisTab 0F38F0,CRC32,hRd_jRb@DATAb,Epfx=F2
DisTab 0F38F1,CRC32,hRd_jR@DATAa,Epfx=F2
DisTab 0FE6,CVTDQ2PD, hO_jO,Epfx=F3
DisTab 0FE6,VCVTDQ2PD,hO_jXXY,Xpfx=VEX,Epfx=F3
DisTab 0FE6,VCVTDQ2PD,hO_jXXY@HV32,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F5B,CVTDQ2PS, hO_jO,Epfx=NP
DisTab 0F5B,VCVTDQ2PS,hO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F5B,VCVTDQ2PS,hO_jO@FV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0FE6,CVTPD2DQ,hO_jO@DATAo,Epfx=F2
DisTab 0FE6,VCVTPD2DQ,hX_jXY,Xpfx=VEX,Epfx=F2
DisTab 0FE6,VCVTPD2DQ,hXY_jO@FV64,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F2D,CVTPD2PI,hU_jO,Epfx=66
DisTab 0F5A,CVTPD2PS,hXXY_jO,Epfx=66
DisTab 0F5A,VCVTPD2PS,hXXY_jO,Xpfx=VEX,Epfx=66
DisTab 0F5A,VCVTPD2PS,hXXY_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F5A,VCVTPD2PS,hO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F2A,CVTPI2PD,hO_jU,Epfx=66
DisTab 0F2A,CVTPI2PS,hO_jU,Epfx=NP
DisTab 0F5B,CVTPS2DQ,hO_jO,Epfx=66
DisTab 0F5B,VCVTPS2DQ,hO_jO,Xpfx=VEX,Epfx=66
DisTab 0F5B,VCVTPS2DQ,hO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F5A,CVTPS2PD,hO_jXXY,Epfx=NP
DisTab 0F5A,VCVTPS2PD,hO_jXXY,Xpfx=VEX,Epfx=NP
DisTab 0F5A,VCVTPS2PD,hO_jXXY@HV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F2D,CVTPS2PI,hU_jO,Epfx=NP
DisTab 0F2D, CVTSD2SI,hRd_jO,Epfx=F2,W=0
DisTab 0F2D, CVTSD2SI,hRq_jX,Epfx=F2,W=1
DisTab 0F2D,VCVTSD2SI,hRd_jX,Xpfx=VEX,Epfx=F2,W=0
DisTab 0F2D,VCVTSD2SI,hRq_jX,Xpfx=VEX,Epfx=F2,W=1
DisTab 0F2D,VCVTSD2SI,hRd_jX@HVM,Xpfx=EVEX,Epfx=F2,W=0
DisTab 0F2D,VCVTSD2SI,hRq_jX@HVM,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F5A, CVTSD2SS,hX_jX,Epfx=F2
DisTab 0F5A,VCVTSD2SS,hX_vX_jX,Xpfx=VEX,Epfx=F2
DisTab 0F5A,VCVTSD2SS,hX_vX_jX@HVM,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F2A, CVTSI2SD,hX_jRd@DATAd,Epfx=F2,W=0
DisTab 0F2A, CVTSI2SD,hX_jRq@DATAq,Epfx=F2,W=1
DisTab 0F2A,VCVTSI2SD,hX_vX_jRd@DATAd,Xpfx=VEX,Epfx=F2,W=0
DisTab 0F2A,VCVTSI2SD,hX_vX_jRq@DATAq,Xpfx=VEX,Epfx=F2,W=1
DisTab 0F2A,VCVTSI2SD,hX_vX_jRd@DATAd@QVM,Xpfx=EVEX,Epfx=F2,W=0
DisTab 0F2A,VCVTSI2SD,hX_vX_jRq@DATAq@HVM,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F2A, CVTSI2SS,hX_jRd@DATAd,Epfx=F3,W=0
DisTab 0F2A, CVTSI2SS,hX_jRq@DATAq,Epfx=F3,W=1
DisTab 0F2A,VCVTSI2SS,hX_vX_jRd@DATAd@QVM,Xpfx=VEX,Epfx=F3,W=0
DisTab 0F2A,VCVTSI2SS,hX_vX_jRq@DATAq@HVM,Xpfx=VEX,Epfx=F3,W=1
DisTab 0F2A,VCVTSI2SS,hX_vX_jRd@DATAd@QVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F2A,VCVTSI2SS,hX_vX_jRq@DATAq@HVM,Xpfx=EVEX,Epfx=F3,W=1
DisTab 0F5A, CVTSS2SD,hX_jX,Epfx=F3
DisTab 0F5A,VCVTSS2SD,hX_vX_jX,Xpfx=VEX,Epfx=F3
DisTab 0F5A,VCVTSS2SD,hX_vX_jX@QVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F2D, CVTSS2SI,hRd_jX@DATAd,Epfx=F3,W=0
DisTab 0F2D, CVTSS2SI,hRq_jX@DATAq,Epfx=F3,W=1
DisTab 0F2D,VCVTSS2SI,hRd_jX@DATAd,Xpfx=VEX,Epfx=F3,W=0
DisTab 0F2D,VCVTSS2SI,hRq_jX@DATAq,Xpfx=VEX,Epfx=F3,W=1
DisTab 0F2D,VCVTSS2SI,hRd_jX@DATAd@QVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F2D,VCVTSS2SI,hRq_jX@DATAq@QVM,Xpfx=EVEX,Epfx=F3,W=1
DisTab 0FE6, CVTTPD2DQ,hO_jO,Epfx=66
DisTab 0FE6,VCVTTPD2DQ,hX_jXY,Xpfx=VEX,Epfx=66
DisTab 0FE6,VCVTTPD2DQ,hXY_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F2C,CVTTPD2PI,hU_jO,Epfx=66
DisTab 0F5B, CVTTPS2DQ,hO_jO,Epfx=F3
DisTab 0F5B,VCVTTPS2DQ,hO_jO,Xpfx=VEX,Epfx=F3
DisTab 0F5B,VCVTTPS2DQ,hO_jO@FV64,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F2C,CVTTPS2PI,hU_jO,Epfx=NP
DisTab 0F2C, CVTTSD2SI,hRd_jX@DATAd,Epfx=F2,W=0
DisTab 0F2C, CVTTSD2SI,hRq_jX@DATAq,Epfx=F2,W=1
DisTab 0F2C,VCVTTSD2SI,hRd_jX@DATAd,Xpfx=VEX,Epfx=F2,W=0
DisTab 0F2C,VCVTTSD2SI,hRq_jX@DATAq,Xpfx=VEX,Epfx=F2,W=1
DisTab 0F2C,VCVTTSD2SI,hRd_jX@DATAd@HVM,Xpfx=EVEX,Epfx=F2,W=0
DisTab 0F2C,VCVTTSD2SI,hRq_jX@DATAq@HVM,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F2C, CVTTSS2SI,hRd_jX@DATAd,Epfx=F3,W=0
DisTab 0F2C, CVTTSS2SI,hRq_jX@DATAq,Epfx=F3,W=1
DisTab 0F2C,VCVTTSS2SI,hRd_jX@DATAd,Xpfx=VEX,Epfx=F3,W=0
DisTab 0F2C,VCVTTSS2SI,hRq_jX@DATAq,Xpfx=VEX,Epfx=F3,W=1
DisTab 0F2C,VCVTTSS2SI,hRd_jX@DATAd@QVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F2C,VCVTTSS2SI,hRq_jX@DATAq@QVM,Xpfx=EVEX,Epfx=F3,W=1
DisTab 99,,@opc99
DisTab 27,DAA,@
DisTab 2F,DAS,@
DisTab FE,DEC,jRb@DATAb,RegOp=1
DisTab FF,DEC,jR@DATAa@CODEl,RegOp=1
DisTab F6,DIV,jRb@DATAb,RegOp=6
DisTab F7,DIV,jRMe@DATAa,RegOp=6,W=0
DisTab F7,DIV,jRq@DATAq,RegOp=6,W=1
DisTab 0F5E,DIVPD,hO_jO@DATAo,Epfx=66
DisTab 0F5E,VDIVPD,hO_vO_jO@DATAo,Xpfx=VEX,Epfx=66
DisTab 0F5E,VDIVPD,hO_vO_jO@DATAo@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F5E,DIVPS,hO_jO@DATAo,Epfx=NP
DisTab 0F5E,VDIVPS,hO_vO_jO@DATAo,Xpfx=VEX,Epfx=NP
DisTab 0F5E,VDIVPS,hO_vO_jO@DATAo@FV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F5E,DIVSD,hX_jX@DATAq,Epfx=F2
DisTab 0F5E,VDIVSD,hX_vX_jX@DATAq,Xpfx=VEX,Epfx=F2
DisTab 0F5E,VDIVSD,hX_vX_jX@DATAq@T64,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F5E,DIVSS,hX_jX@DATAd,Epfx=F3
DisTab 0F5E,VDIVSS,hX_vX_jX@DATAd,Xpfx=VEX,Epfx=F3
DisTab 0F5E,VDIVSS,hX_vX_jX@DATAd@T32,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3A40,DPPS,hX_jX_ib,Epfx=66
DisTab 0F3A40,VDPPS,hO_vO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0F3A41,DPPD,hX_jX_ib,Epfx=66
DisTab 0F3A41,VDPPD,hX_vX_jX_ib,Xpfx=VEX,Epfx=66
DisTab 0F77,EMMS,@
DisTab 0F38FA,ENCODEKEY128,hRd_jRd_XMM0,Epfx=F3,Mod=3
DisTab 0F38FB,ENCODEKEY256,hRd_jRd_XMM0,Epfx=F3,Mod=3
DisTab 0F1E,ENDBR32,@1,Epfx=F3,Mod=3,RegOp=7,RM=3
DisTab 0F1E,ENDBR64,@1,Epfx=F3,Mod=3,RegOp=7,RM=2
DisTab 0F38F8,ENQCMD,hRe_jR@DATAz,Epfx=F2,Mod=0
DisTab 0F38F8,ENQCMDS,hRe_jR@DATAz,Epfx=F3,Mod=0
DisTab C8,ENTER,iw_ib
DisTab 0F01,ERETS,@1,Epfx=F2,Mod=3,RegOp=1,RM=2
DisTab 0F01,ERETU,@1,Epfx=F3,Mod=3,RegOp=1,RM=2
DisTab 0F3A17, EXTRACTPS,jRd_hO_ib@DATAd,Epfx=66
DisTab 0F3A17,VEXTRACTPS,jRd_hO_ib@DATAd,Xpfx=VEX,Epfx=66
DisTab 0F3A17,VEXTRACTPS,jRd_hO_ib@DATAd@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A17,VEXTRACTPS,jRd_hO_ib@DATAd@T64,Xpfx=EVEX,Epfx=66,W=1
; FPU
DisTab 9B,,Grp9B
DisTab D8,,GrpD8
DisTab D9,,GrpD9
DisTab DA,,GrpDA
DisTab DB,,GrpDB
DisTab DC,,GrpDC
DisTab DD,,GrpDD
DisTab DE,,GrpDE
DisTab DF,,GrpDF
DisTab 0FAE,FXRSTOR,jM,Epfx=NP,Mod=0,RegOp=1,W=0
DisTab 0FAE,FXSAVE,jM,Epfx=NP,Mod=0,RegOp=0,W=0
DisTab 0FAE,FXSAVE64,jM,Epfx=NP,Mod=0,RegOp=0,W=1
DisTab 0F3ACF,GF2P8AFFINEINVQB,hO_jO_ib,Epfx=66
DisTab 0F3ACF,VGF2P8AFFINEINVQB,hO_vO_jO_ib,Xpfx=VEX,Epfx=66,W=1
DisTab 0F3ACF,VGF2P8AFFINEINVQB,hO_vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3ACE,GF2P8AFFINEQB,hO_jO_ib,Epfx=66
DisTab 0F3ACE,VGF2P8AFFINEQB,hO_vO_jO_ib,Xpfx=VEX,Epfx=66,W=1
DisTab 0F3ACE,VGF2P8AFFINEQB,hO_vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38CF,GF2P8MULB,hO_jO,Epfx=66,W=0
DisTab 0F38CF,VGF2P8MULB,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38CF,VGF2P8MULB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3C,HADDPD,hO_jO,Epfx=66
DisTab 0F3C,VHADDPD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F7C,HADDPS,hO_jO,Epfx=F2
DisTab 0F7C,VHADDPS,hO_vO_jO,Xpfx=VEX,Epfx=F2
DisTab 0F7C,HADDPD,hO_jO,Epfx=66
DisTab 0F7C,VHADDPD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab F4,HLT,@
DisTab 0F3AF0,HRESET,ib1,Epfx=F3,Mod=3,RegOp=0,RM=0
DisTab 0F7D,HSUBPD,hO_jO,Epfx=66
DisTab 0F7D,VHSUBPD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F7D,HSUBPS,hO_jO,Epfx=F2
DisTab 0F7D,VHSUBPS,hO_vO_jO,Xpfx=VEX,Epfx=F2
DisTab F6,IDIV,jRMb@DATAb,RegOp=7
DisTab F7,IDIV,jRMe@DATAa,RegOp=7,W=0
DisTab F7,IDIV,jRq@DATAq,RegOp=7,W=1
DisTab F6,IMUL,jRMb@DATAb,RegOp=5
DisTab F7,IMUL,jRMe@DATAa,RegOp=5,W=0
DisTab F7,IMUL,jRq@DATAq,RegOp=5,W=1
DisTab 0FAF,IMUL,hR_jR@DATAa,W=0
DisTab 0FAF,IMUL,hR_jR@DATAq,W=1
DisTab 6B,IMUL,hR_jRM_ib@DATAa
DisTab 69,IMUL,hR_jRM_ie@DATAa@IMMd
DisTab E4,IN,AL_ib
DisTab E5,IN,eAX_ib@in
DisTab EC,IN,AL_DX
DisTab ED,IN,eAX_DX
DisTab FE,INC,jRb@DATAb,RegOp=0
DisTab FF,INC,jR@DATAa@CODEl,RegOp=0
DisTab 0FAE,INCSSPD,jRd,Epfx=F3,Mod=3,RegOp=5,W=0
DisTab 0FAE,INCSSPQ,jRq,Epfx=F3,Mod=3,RegOp=5,W=1
DisTab 0F3A21,INSERTPS,hO_jO_ib,Epfx=66
DisTab 0F3A21,VINSERTPS,hO_vO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0F3A21,VINSERTPS,hO_vO_jO_ib@T32,Xpfx=EVEX,Epfx=66
DisTab 6C,INS,Tb_DX
DisTab 6D,INS,Te_DX
DisTab CC,INT3,@
DisTab CD,INT,ib@DATAb@noDATA
DisTab CE,INTO,@,Mode=Lg
DisTab F1,INT1,@
DisTab 0F08,INVD,@
DisTab 0F01,INVLPG,jM,Mod=0,RegOp=7
DisTab 0F3882,INVPCID,hRd_jR,Epfx=66,Mod=0   ; PRIV
DisTab CF,IRET,@iret
DisTab 70,JO,@jcc
DisTab 71,JNO,@jcc
DisTab 72,JC,@jcc
DisTab 73,JNC,@jcc
DisTab 74,JZ,@jcc
DisTab 75,JNZ,@jcc
DisTab 76,JNA,@jcc
DisTab 77,JA,@jcc
DisTab 78,JS,@jcc
DisTab 79,JNS,@jcc
DisTab 7A,JPE,@jcc
DisTab 7B,JPO,@jcc
DisTab 7C,JL,@jcc
DisTab 7D,JGE,@jcc
DisTab 7E,JLE,@jcc
DisTab 7F,JG,@jcc
DisTab E3,,@jcxz
DisTab 0F80,JO,@jcce
DisTab 0F81,JNO,@jcce
DisTab 0F82,JC,@jcce
DisTab 0F83,JNC,@jcce
DisTab 0F84,JZ,@jcce
DisTab 0F85,JNZ,@jcce
DisTab 0F86,JNA,@jcce
DisTab 0F87,JA,@jcce
DisTab 0F88,JS,@jcce
DisTab 0F89,JNS,@jcce
DisTab 0F8A,JPE,@jcce
DisTab 0F8B,JPO,@jcce
DisTab 0F8C,JL,@jcce
DisTab 0F8D,JGE,@jcce
DisTab 0F8E,JLE,@jcce
DisTab 0F8F,JG,@jcce
DisTab EB,JMP,@jcc
DisTab E9,JMP,le
DisTab FF,JMP,jRMe@DISTn,RegOp=4
DisTab EA,JMP,a@DISTf,Mode=Lg
DisTab FF,JMP,jMe@DISTf,Mod=0,RegOp=5

; Instructions SGX, SMX, VMX in the order in [IntelSGX]
DisTab 0F01,ENCLS,@1,Epfx=NP,Mod=3,RegOp=1,RM=7
DisTab 0F01,ENCLU,@1,Epfx=NP,Mod=3,RegOp=2,RM=7
DisTab 0F01,ENCLV,@1,Epfx=NP,Mod=3,RegOp=0,RM=0
DisTab 0F37,GETSEC,@,Epfx=NP
DisTab 0F3880,INVEPT,hRd_jR,Epfx=66,Mod=0
DisTab 0F3881,INVVPID,hRd_jR,Epfx=66,Mod=0
DisTab 0F01,VMCALL,@1,Epfx=NP,Mod=3,RegOp=0,RM=1
DisTab 0FC7,VMCLEAR,jR,Epfx=66,Mod=0,RegOp=6
DisTab 0F01,VMFUNC,@1,Epfx=NP,Mod=3,RegOp=2,RM=4
DisTab 0F01,VMLAUNCH,@1,Epfx=NP,Mod=3,RegOp=0,RM=2
DisTab 0F01,VMRESUME,@1,Epfx=NP,Mod=3,RegOp=0,RM=3
DisTab 0FC7,VMPTRLD,jR,Epfx=NP,Mod=0,RegOp=6
DisTab 0FC7,VMPTRST,jR,Epfx=NP,Mod=0,RegOp=7
DisTab 0F78,VMREAD,jRe_hR,Epfx=NP
DisTab 0F79,VMWRITE,hRe_jR,Epfx=NP
DisTab 0F01,VMXOFF,@1,Epfx=NP,Mod=3,RegOp=0,RM=4
DisTab 0FC7,VMXON,jR,Epfx=F3,Mod=0,RegOp=6
DisTab 0F4A,KADDW,hK_vK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F4A,KADDB,hK_vK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F4A,KADDQ,hK_vK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=1
DisTab 0F4A,KADDD,hK_vK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=1
DisTab 0F42,KANDNW,hK_vK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F42,KANDNB,hK_vK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F42,KANDNQ,hK_vK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=1
DisTab 0F42,KANDND,hK_vK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=1
DisTab 0F41,KANDW,hK_vK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F41,KANDB,hK_vK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F41,KANDQ,hK_vK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=1
DisTab 0F41,KANDD,hK_vK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=1
DisTab 0F90,KMOVW,hK_jK,Xpfx=VEX,Epfx=NP,W=0
DisTab 0F90,KMOVB,hK_jK,Xpfx=VEX,Epfx=66,W=0
DisTab 0F90,KMOVQ,hK_jK,Xpfx=VEX,Epfx=NP,W=1
DisTab 0F90,KMOVD,hK_jK,Xpfx=VEX,Epfx=66,W=1
DisTab 0F91,KMOVW,jK_hK,Xpfx=VEX,Epfx=NP,Mod=0,W=0
DisTab 0F91,KMOVB,jK_hK,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F91,KMOVQ,jK_hK,Xpfx=VEX,Epfx=NP,Mod=0,W=1
DisTab 0F91,KMOVD,jK_hK,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F92,KMOVW,hK_jRd,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F92,KMOVB,hK_jRd,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F92,KMOVQ,hK_jRq,Xpfx=VEX,Epfx=F2,Mod=3,W=1
DisTab 0F92,KMOVD,hK_jRd,Xpfx=VEX,Epfx=F2,Mod=3,W=0
DisTab 0F93,KMOVW,hRd_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F93,KMOVB,hRd_jK,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F93,KMOVQ,hRq_jK,Xpfx=VEX,Epfx=F2,Mod=3,W=1
DisTab 0F93,KMOVD,hRd_jK,Xpfx=VEX,Epfx=F2,Mod=3,W=0
DisTab 0F44,KNOTW,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F44,KNOTB,hK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F44,KNOTQ,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=1
DisTab 0F44,KNOTD,hK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=1
DisTab 0F98,KORTESTW,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F98,KORTESTB,hK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F98,KORTESTQ,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=1
DisTab 0F98,KORTESTD,hK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=1
DisTab 0F45,KORW,hK_vK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F45,KORB,hK_vK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F45,KORQ,hK_vK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=1
DisTab 0F45,KORD,hK_vK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=1
DisTab 0F3A32,KSHIFTLW,hK_jK_ib,Xpfx=VEX,Epfx=66,W=1
DisTab 0F3A32,KSHIFTLB,hK_jK_ib,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3A33,KSHIFTLQ,hK_jK_ib,Xpfx=VEX,Epfx=66,W=1
DisTab 0F3A33,KSHIFTLD,hK_jK_ib,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3A30,KSHIFTRW,hK_jK_ib,Xpfx=VEX,Epfx=66,W=1
DisTab 0F3A30,KSHIFTRB,hK_jK_ib,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3A31,KSHIFTRQ,hK_jK_ib,Xpfx=VEX,Epfx=66,W=1
DisTab 0F3A31,KSHIFTRD,hK_jK_ib,Xpfx=VEX,Epfx=66,W=0
DisTab 0F99,KTESTW,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F99,KTESTB,hK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F99,KTESTQ,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=1
DisTab 0F99,KTESTD,hK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=1
DisTab 0F4B,KUNPCKBW,hK_vK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F4B,KUNPCKWD,hK_vK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F4B,KUNPCKDQ,hK_vK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=1
DisTab 0F46,KXNORW,hK_vK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F46,KXNORB,hK_vK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F46,KXNORQ,hK_vK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=1
DisTab 0F46,KXNORD,hK_vK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=1
DisTab 0F47,KXORW,hK_vK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F47,KXORB,hK_vK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F47,KXORQ,hK_vK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=1
DisTab 0F47,KXORD,hK_vK_jK,Xpfx=VEX,Epfx=66,Mod=3,W=1
DisTab 9F,LAHF,@
DisTab 0F02,LAR,hR_jRMw
DisTab 0FF0,LDDQU,hO_jR,Epfx=F2,Mod=0
DisTab 0FF0,VLDDQU,hO_jR,Xpfx=VEX,Epfx=F2,Mod=0
DisTab 0FAE,LDMXCSR,jM@DATAd,Epfx=NP,Mod=0,RegOp=2
DisTab 0FAE,VLDMXCSR,jM@DATAd,Xpfx=VEX,Epfx=NP,Mod=0,RegOp=2
DisTab C5,LDS,hR_jM@ls,Mod=0
DisTab 0FB2,LSS,hR_jM@ls,Mod=0
DisTab C4,LES,hR_jM@ls,Mod=0
DisTab 0FB4,LFS,hR_jM@ls,Mod=0
DisTab 0FB5,LGS,hR_jM@ls,Mod=0
DisTab 0F3849,LDTILECFG,jM@DATAz,Xpfx=VEX,Epfx=NP,Mode=64,RegOp=0,W=0
DisTab 8D,LEA,hR_jM,Mod=0
DisTab C9,LEAVE,none@DATAa
DisTab 0FAE,LFENCE,@1,Epfx=NP,Mod=3,RegOp=5,RM=0
DisTab 0F01,LGDT,jM,Mod=0,RegOp=2
DisTab 0F01,LIDT,jM,Mod=0,RegOp=3
DisTab 0F00,LKGS,jR@DATAw,Epfx=F2,RegOp=6
DisTab 0F00,LLDT,jR,RegOp=2
DisTab 0F01,LMSW,jR,RegOp=6
DisTab 0F38DC,LOADIWKEY,hO_jO,Epfx=F3,Mod=3
DisTab F0,LOCK,@pfxLg
DisTab AC,LODS,AL_Pb
DisTab AD,LODS,eAX_Pe
DisTab E2,LOOP,lb_eCX
DisTab E1,LOOPE,lb_eCX
DisTab E0,LOOPNE,lb_eCX
DisTab 0F03,LSL,hR_jR
DisTab 0F00,LTR,jR,RegOp=3
DisTab 0FBD,LZCNT,hR_jR,Epfx=F3
DisTab 0FF7, MASKMOVDQU,hX_jX,Epfx=66,Mod=3
DisTab 0FF7,VMASKMOVDQU,hX_jX,Xpfx=VEX,Epfx=66,Mod=3
DisTab 0FF7, MASKMOVQ,hU_jU,Epfx=NP,Mod=3
DisTab 0F5F, MAXPD,hO_jO,Epfx=66
DisTab 0F5F,VMAXPD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F5F,VMAXPD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F5F, MAXPS,hO_jO,Epfx=NP
DisTab 0F5F,VMAXPS,hO_vO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F5F,VMAXPS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F5F, MAXSD,hO_jO,Epfx=F2
DisTab 0F5F,VMAXSD,hO_vO_jO,Xpfx=VEX,Epfx=F2
DisTab 0F5F,VMAXSD,hO_vO_jO@T64,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F5F, MAXSS,hO_jO,Epfx=F3
DisTab 0F5F,VMAXSS,hO_vO_jO,Xpfx=VEX,Epfx=F3
DisTab 0F5F,VMAXSS,hO_vO_jO@T32,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0FAE,MFENCE,@1,Epfx=NP,Mod=3,RegOp=6,RM=0
DisTab 0F5D, MINPD,hO_jO,Epfx=66
DisTab 0F5D,VMINPD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F5D,VMINPD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F5D, MINPS,hO_jO,Epfx=NP
DisTab 0F5D,VMINPS,hO_vO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F5D,VMINPS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F5D, MINSD,hO_jO,Epfx=F2
DisTab 0F5D,VMINSD,hO_vO_jO,Xpfx=VEX,Epfx=F2
DisTab 0F5D,VMINSD,hO_vO_jO@T64,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F5D, MINSS,hO_jO,Epfx=F3
DisTab 0F5D,VMINSS,hO_vO_jO,Xpfx=VEX,Epfx=F3
DisTab 0F5D,VMINSS,hO_vO_jO@T32,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F01,MONITOR,@1,Epfx=NP,Mod=3,RegOp=1,RM=0
DisTab 88,MOV,jRMb_hRb@CODEl
DisTab 89,MOV,jRM_hR@CODEl
DisTab 8A,MOV,hRb_jRMb@CODEl
DisTab 8B,MOV,hR_jRM@CODEl
DisTab 8C,MOV,jRM_hS
DisTab 8E,MOV,hS_jRM
DisTab A0,MOV,AL_a@CODEs
DisTab A1,MOV,eAX_a@CODEs
DisTab A2,MOV,a_AL@CODEs
DisTab A3,MOV,a_eAX@CODEs
DisTab B0,MOV,Rb_ib
DisTab B1,MOV,Rb_ib
DisTab B2,MOV,Rb_ib
DisTab B3,MOV,Rb_ib
DisTab B4,MOV,Rb_ib
DisTab B5,MOV,Rb_ib
DisTab B6,MOV,Rb_ib
DisTab B7,MOV,Rb_ib
DisTab B8,MOV,Re_ie
DisTab B9,MOV,Re_ie
DisTab BA,MOV,Re_ie
DisTab BB,MOV,Re_ie
DisTab BC,MOV,Re_ie
DisTab BD,MOV,Re_ie
DisTab BE,MOV,Re_ie
DisTab BF,MOV,Re_ie
DisTab C6,MOV,jRb_ib,RegOp=0
DisTab C7,MOV,jRe_ie,RegOp=0
DisTab 0F20,MOV,jR_hC,Mod=3
DisTab 0F21,MOV,jR_hG
DisTab 0F22,MOV,hC_jR,Mod=3
DisTab 0F23,MOV,hG_jR
DisTab 0F28, MOVAPD,hO_jO,Epfx=66
DisTab 0F29, MOVAPD,jO_hO,Epfx=66
DisTab 0F28,VMOVAPD,hO_jO,Xpfx=VEX,Epfx=66
DisTab 0F29,VMOVAPD,jO_hO,Xpfx=VEX,Epfx=66
DisTab 0F28,VMOVAPD,hO_jO@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F29,VMOVAPD,jO_hO@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F28, MOVAPS,hO_jO,Xpfx=0,Epfx=NP
DisTab 0F29, MOVAPS,jO_hO,Xpfx=0,Epfx=NP
DisTab 0F28,VMOVAPS,hO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F29,VMOVAPS,jO_hO,Xpfx=VEX,Epfx=NP
DisTab 0F28,VMOVAPS,hO_jO@FVM,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F29,VMOVAPS,jO_hO@FVM,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F38F0,MOVBE,hR_jR,Mod=0
DisTab 0F38F1,MOVBE,jR_hR,Mod=0
DisTab 0F12, MOVDDUP,hO_jO,Epfx=F2
DisTab 0F12,VMOVDDUP,hO_jO,Xpfx=VEX,Epfx=F2
DisTab 0F12,VMOVDDUP,hO_jO@FVM,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F38F8,MOVDIR64B,hRwdq_jR,Epfx=66,Mod=0
DisTab 0F38F9,MOVDIRI,jR_hR,Epfx=NP,Mod=0
DisTab 0F6E,MOVD,hU_jRd@DATAd,Epfx=NP,W=0
DisTab 0F6E,MOVQ,hU_jRq@DATAq,Epfx=NP,W=1
DisTab 0F7E,MOVD,jRd_hU@DATAd,Epfx=NP,W=0
DisTab 0F7E,MOVQ,jRq_hU@DATAq,Epfx=NP,Mode=64,W=1
DisTab 0F6E,MOVD,hO_jRd@DATAd,Epfx=66,W=0
DisTab 0F6E,MOVQ,hO_jRq@DATAq,Epfx=66,Mode=64,W=1
DisTab 0F7E,MOVD,jRd_hO@DATAd,Epfx=66,W=0
DisTab 0F7E,MOVQ,jRq_hO@DATAq,Epfx=66,W=1
DisTab 0F6E,VMOVD,hO_jRd@DATAd,Xpfx=VEX,Epfx=66,W=0
DisTab 0F6E,VMOVQ,hO_jRq@DATAq,Xpfx=VEX,Epfx=66,W=1
DisTab 0F7E,VMOVD,jRd_hO@DATAd,Xpfx=VEX,Epfx=66,W=0
DisTab 0F7E,VMOVQ,jRq_hO@DATAq,Xpfx=VEX,Epfx=66,W=1
DisTab 0F6E,VMOVD,hO_jRd@DATAd@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F6E,VMOVQ,hO_jRq@DATAq@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F7E,VMOVD,jRd_hO@DATAd@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F7E,VMOVQ,jRq_hO@DATAq@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0FD6,MOVDQ2Q,hU_jO@DATAq,Epfx=F2
DisTab 0F6F,MOVDQA,hO_jO,Epfx=66
DisTab 0F7F,MOVDQA,jO_hO,Epfx=66
DisTab 0F6F,VMOVDQA,hO_jO,Xpfx=VEX,Epfx=66
DisTab 0F7F,VMOVDQA,jO_hO,Xpfx=VEX,Epfx=66
DisTab 0F6F,VMOVDQA32,hO_jO@FVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F7F,VMOVDQA32,jO_hO@FVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F6F,VMOVDQA64,hO_jO@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F7F,VMOVDQA64,jO_hO@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F6F, MOVDQU,hO_jO,Epfx=F3
DisTab 0F7F, MOVDQU,jO_hO,Epfx=F3
DisTab 0F6F,VMOVDQU,hO_jO,Xpfx=VEX,Epfx=F3
DisTab 0F7F,VMOVDQU,jO_hO,Xpfx=VEX,Epfx=F3
DisTab 0F6F,VMOVDQU8,hO_jO@FVM,Xpfx=EVEX,Epfx=F2,W=0
DisTab 0F7F,VMOVDQU8,jO_hO@FVM,Xpfx=EVEX,Epfx=F2,W=0
DisTab 0F6F,VMOVDQU16,hO_jO@FVM,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F7F,VMOVDQU16,jO_hO@FVM,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F6F,VMOVDQU32,hO_jO@FVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F7F,VMOVDQU32,jO_hO@FVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F6F,VMOVDQU64,hO_jO@FVM,Xpfx=EVEX,Epfx=F3,W=1
DisTab 0F7F,VMOVDQU64,jO_hO@FVM,Xpfx=EVEX,Epfx=F3,W=1
DisTab 0F12, MOVHLPS,hO_jO,Epfx=NP,Mod=3
DisTab 0F12,VMOVHLPS,hO_vO_jO,Xpfx=VEX,Epfx=NP,Mod=3
DisTab 0F12,VMOVHLPS,hO_vO_jO@T64,Xpfx=EVEX,Epfx=NP,Mod=3,W=0
DisTab 0F16, MOVHPD,hO_jO,Epfx=66,Mod=0
DisTab 0F16,VMOVHPD,hO_vO_jO,Xpfx=VEX,Epfx=66,Mod=0
DisTab 0F16,VMOVHPD,hO_vO_jO@T64,Xpfx=EVEX,Epfx=66,Mod=0,W=1
DisTab 0F17, MOVHPD,jO_hO,Epfx=66,Mod=0
DisTab 0F17,VMOVHPD,jO_hO,Xpfx=VEX,Epfx=66,Mod=0
DisTab 0F17,VMOVHPD,jO_hO@T64,Xpfx=EVEX,Epfx=66,Mod=0,W=1
DisTab 0F16, MOVHPS,hO_jO,Epfx=NP,Mod=0
DisTab 0F16,VMOVHPS,hO_vO_jO,Xpfx=VEX,Epfx=NP,Mod=0,W=0
DisTab 0F16,VMOVHPS,hO_vO_jO@T64,Xpfx=EVEX,Epfx=NP,Mod=0,W=0
DisTab 0F17, MOVHPS,jO_hO,Epfx=NP,Mod=0
DisTab 0F17,VMOVHPS,jO_hO,Xpfx=VEX,Epfx=NP,Mod=0,W=0
DisTab 0F17,VMOVHPS,jO_hO@T64,Xpfx=EVEX,Epfx=NP,Mod=0,W=0
DisTab 0F16, MOVLHPS,hO_jO,Epfx=NP,Mod=3
DisTab 0F16,VMOVLHPS,hO_vO_jO,Xpfx=VEX,Epfx=NP,Mod=3
DisTab 0F16,VMOVLHPS,hO_vO_jO,Xpfx=EVEX,Epfx=NP,Mod=3,W=0
DisTab 0F12, MOVLPD,hO_jO,Epfx=66,Mod=0
DisTab 0F12,VMOVLPD,hO_vO_jO,Xpfx=VEX,Epfx=66,Mod=0
DisTab 0F12,VMOVLPD,hO_vO_jO@T64,Xpfx=EVEX,Epfx=66,Mod=0,W=1
DisTab 0F13, MOVLPD,jO_hO,Epfx=66,Mod=0
DisTab 0F13,VMOVLPD,jO_hO,Xpfx=VEX,Epfx=66,Mod=0
DisTab 0F13,VMOVLPD,jO_hO@T64,Xpfx=EVEX,Epfx=66,Mod=0,W=1
DisTab 0F12, MOVLPS,hO_jO,Epfx=NP,Mod=0
DisTab 0F12,VMOVLPS,hO_vO_jO,Xpfx=VEX,Epfx=NP,Mod=0
DisTab 0F12,VMOVLPS,hO_vO_jO@T64,Xpfx=EVEX,Epfx=NP,Mod=0,W=0
DisTab 0F13, MOVLPS,jO_hO,Epfx=NP,Mod=0
DisTab 0F13,VMOVLPS,jO_hO,Xpfx=VEX,Epfx=NP,Mod=0
DisTab 0F13,VMOVLPS,jO_hO@T64,Xpfx=EVEX,Epfx=NP,Mod=0,W=0
DisTab 0F50,MOVMSKPD,hRdq_jO,Epfx=66,Mod=3
DisTab 0F50,VMOVMSKPD,hRdq_jO,Xpfx=VEX,Epfx=66,Mod=3
DisTab 0F50,MOVMSKPS,hRdq_jO,Epfx=NP,Mod=3
DisTab 0F50,VMOVMSKPS,hRdq_jO,Xpfx=VEX,Epfx=NP,Mod=3
DisTab 0FE7,MOVNTDQ,jR_hO,Epfx=66,Mod=0
DisTab 0FE7,VMOVNTDQ,jR_hO,Xpfx=VEX,Epfx=66,Mod=0
DisTab 0FE7,VMOVNTDQ,jR_hO@FVM,Xpfx=EVEX,Epfx=66,W=0,Mod=0
DisTab 0F382A,MOVNTDQA,hO_jO,Epfx=66,Mod=0
DisTab 0F382A,VMOVNTDQA,hO_jO,Xpfx=VEX,Epfx=66,Mod=0
DisTab 0F382A,VMOVNTDQA,hO_jO@FVM,Xpfx=EVEX,Epfx=66,Mod=0,W=0
DisTab 0FC3,MOVNTI,jR_hRd,Epfx=NP,Mod=0
DisTab 0F2B,MOVNTPD,jO_hO,Epfx=66,Mod=0
DisTab 0F2B,MOVNTSS,jO_hO,Epfx=F3,Mod=0
DisTab 0F2B,MOVNTSD,jO_hO,Epfx=F2,Mod=0
DisTab 0F2B,VMOVNTPD,jO_hO,Xpfx=VEX,Epfx=66,Mod=0
DisTab 0F2B,VMOVNTPD,jO_hO@FVM,Xpfx=EVEX,Epfx=66,Mod=0,W=1
DisTab 0F2B,MOVNTPS,jO_hO,Epfx=NP,Mod=0
DisTab 0F2B,VMOVNTPS,jO_hO,Xpfx=VEX,Epfx=NP,Mod=0
DisTab 0F2B,VMOVNTPS,jO_hO@FVM,Xpfx=EVEX,Epfx=NP,Mod=0,W=0
DisTab 0FE7,MOVNTQ,jU_hU,Epfx=NP,Mod=0
DisTab 0F6F,MOVQ,hU_jU,Epfx=NP
DisTab 0F7F,MOVQ,jU_hU,Epfx=NP
DisTab 0F7E,MOVQ,hO_jO@DATAq@noREP,Epfx=F3
DisTab 0F7E,VMOVQ,hO_jO@DATAq,Xpfx=VEX,Epfx=F3
DisTab 0F7E,VMOVQ,hO_jO@DATAq@T64,Xpfx=EVEX,Epfx=F3,W=1
DisTab 0FD6,MOVQ,jO_hO@DATAq,Epfx=66
DisTab 0FD6,VMOVQ,jO_hO@DATAq,Xpfx=VEX,Epfx=66
DisTab 0FD6,VMOVQ,jO_hO@DATAq@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0FD6,MOVQ2DQ,hO_jU@DATAq@noREP,Epfx=F3,Mod=3
DisTab A4,MOVS,Tb_Pb
DisTab A5,MOVS,Te_Pe
DisTab 0F10, MOVSD,hO_jO@DATAq,Epfx=F2,Mod=3
DisTab 0F10, MOVSD,hO_jO@DATAq,Epfx=F2,Mod=0
DisTab 0F11, MOVSD,jO_hO@DATAq,Epfx=F2
DisTab 0F10,VMOVSD,hO_vO_jO,Xpfx=VEX,Epfx=F2,Mod=3
DisTab 0F10,VMOVSD,hO_jO@DATAq,Xpfx=VEX,Epfx=F2,Mod=0
DisTab 0F11,VMOVSD,jO_vO_hO,Xpfx=VEX,Epfx=F2,Mod=3
DisTab 0F11,VMOVSD,jO_hO@DATAq,Xpfx=VEX,Epfx=F2,Mod=0
DisTab 0F10,VMOVSD,hO_vO_jO,Xpfx=EVEX,Epfx=F2,Mod=3,W=1
DisTab 0F10,VMOVSD,hO_jO@DATAq@T64,Xpfx=EVEX,Epfx=F2,Mod=0,W=1
DisTab 0F11,VMOVSD,jO_vO_hO,Xpfx=EVEX,Epfx=F2,Mod=3,W=1
DisTab 0F11,VMOVSD,jO_hO@DATAq@T64,Xpfx=EVEX,Epfx=F2,Mod=0,W=1
DisTab 0F16, MOVSHDUP,hO_jO,Epfx=F3
DisTab 0F16,VMOVSHDUP,hO_jO,Xpfx=VEX,Epfx=F3
DisTab 0F16,VMOVSHDUP,hO_jO@FVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F12, MOVSLDUP,hO_jO,Epfx=F3
DisTab 0F12,VMOVSLDUP,hO_jO,Xpfx=VEX,Epfx=F3
DisTab 0F12,VMOVSLDUP,hO_jO@FVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F10, MOVSS,hO_jO@DATAd@noREP,Epfx=F3
DisTab 0F10, MOVSS,hO_jO@DATAd,Epfx=F3,Mod=0
DisTab 0F10,VMOVSS,hO_vO_jO,Xpfx=VEX,Epfx=F3,Mod=3
DisTab 0F10,VMOVSS,hO_jO,Xpfx=VEX,Epfx=F3,Mod=0
DisTab 0F11, MOVSS,jO_hO@DATAd,Epfx=F3
DisTab 0F11,VMOVSS,jO_vO_hO,Xpfx=VEX,Epfx=F3,Mod=3
DisTab 0F11,VMOVSS,jO_hO,Xpfx=VEX,Epfx=F3,Mod=0
DisTab 0F10,VMOVSS,hO_vO_jO,Xpfx=EVEX,Epfx=F3,Mod=3,W=0
DisTab 0F10,VMOVSS,hO_jO@DATAd@T32,Xpfx=EVEX,Epfx=F3,Mod=0,W=0
DisTab 0F11,VMOVSS,jO_vO_hO,Xpfx=EVEX,Epfx=F3,Mod=3,W=0
DisTab 0F11,VMOVSS,jO_hO@DATAd@T32,Xpfx=EVEX,Epfx=F3,Mod=0,W=0
DisTab 0FBE,MOVSX,hR_jRb@movx
DisTab 0FBF,MOVSX,hR_jRw@movx
DisTab 63,MOVSXD,hRq_jR@DATAd,Mode=64
DisTab 0F10, MOVUPD,hO_jO,Epfx=66
DisTab 0F11, MOVUPD,jO_hO,Epfx=66
DisTab 0F10,VMOVUPD,hO_jO,Xpfx=VEX,Epfx=66
DisTab 0F11,VMOVUPD,jO_hO,Xpfx=VEX,Epfx=66
DisTab 0F10,VMOVUPD,hO_jO@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F11,VMOVUPD,jO_hO@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F10, MOVUPS,hO_jO,Epfx=NP
DisTab 0F11, MOVUPS,jO_hO,Epfx=NP
DisTab 0F10,VMOVUPS,hO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F11,VMOVUPS,jO_hO,Xpfx=VEX,Epfx=NP
DisTab 0F10,VMOVUPS,hO_jO@FVM,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F11,VMOVUPS,jO_hO@FVM,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0FB6,MOVZX,hR_jRb@movx
DisTab 0FB7,MOVZX,hR_jRw@movx
DisTab 0F3A42,MPSADBW,hO_jO_ib,Epfx=66
DisTab 0F3A42,VMPSADBW,hO_vO_jO_ib,Xpfx=VEX,Epfx=66
DisTab F6,MUL,jRMb@DATAb,RegOp=4
DisTab F7,MUL,jRMe@DATAa,RegOp=4,W=0
DisTab F7,MUL,jRq@DATAq,RegOp=4,W=1
DisTab 0F59, MULPD,hO_jO,Epfx=66
DisTab 0F59,VMULPD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F59,VMULPD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F59, MULPS,hO_jO,Epfx=NP
DisTab 0F59,VMULPS,hO_vO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F59,VMULPS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F59, MULSD,hX_jX@DATAq@noREP,Epfx=F2
DisTab 0F59,VMULSD,hX_vX_jX@DATAq,Xpfx=VEX,Epfx=F2
DisTab 0F59,VMULSD,hX_vX_jX@DATAq@T64,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F59, MULSS,hX_jX@DATAd@noREP,Epfx=F3
DisTab 0F59,VMULSS,hX_vX_jX@DATAd,Xpfx=VEX,Epfx=F3
DisTab 0F59,VMULSS,hX_vX_jX@DATAd@T32,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F38F6,MULX,hR_vR_jR,Xpfx=VEX,Epfx=F2
DisTab 0F01,MWAIT,@1,Mod=3,RegOp=1,RM=1
DisTab F6,NEG,jRb@DATAb,RegOp=3
DisTab F7,NEG,jRMe@DATAa,RegOp=3,W=0
DisTab F7,NEG,jR@DATAq,RegOp=3,W=1
DisTab 90,NOP,@,Epfx=NP
DisTab 0F1F,NOP,jR,Epfx=NP,RegOp=0
DisTab F6,NOT,jRb@DATAb,RegOp=2
DisTab F7,NOT,jRMe@DATAa,RegOp=2,W=0
DisTab F7,NOT,jR@DATAq,RegOp=2,W=1
DisTab 0C,OR,AL_ib@CODEs
DisTab 0D,OR,aAX_ie@CODEs
DisTab 80,OR,jRb_i8@DATAb@CODEl,RegOp=1
DisTab 81,OR,jR_ie@DATAa@CODEl,RegOp=1
DisTab 83,OR,jR_ibse@DATAa@CODEl,RegOp=1
DisTab 08,OR,jRb_hRb
DisTab 09,OR,jR_hR
DisTab 0A,OR,hRb_jRb
DisTab 0B,OR,hR_jR
DisTab 0F56, ORPD,hO_jO,Epfx=66
DisTab 0F56,VORPD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F56,VORPD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F56, ORPS,hO_jO,Epfx=NP
DisTab 0F56,VORPS,hO_vO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F56,VORPS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab E6,OUT,ib_AL
DisTab E7,OUT,ib_eAX
DisTab EE,OUT,DX_AL
DisTab EF,OUT,DX_eAX
DisTab 6E,OUTS,DX_Pb
DisTab 6F,OUTS,DX_Pe
DisTab 0F381C,PABSB,hU_jU,Epfx=NP
DisTab 0F381C,PABSB,hO_jO,Epfx=66
DisTab 0F381D,PABSW,hU_jU,Epfx=NP
DisTab 0F381D,PABSW,hO_jO,Epfx=66
DisTab 0F381E,PABSD,hO_jO,Epfx=66
DisTab 0F381E,PABSD,hU_jU,Epfx=NP
DisTab 0F381E,PABSD,hO_jO,Epfx=66
DisTab 0F381C,VPABSB,hO_jO,Xpfx=VEX,Epfx=66
DisTab 0F381D,VPABSW,hO_jO,Xpfx=VEX,Epfx=66
DisTab 0F381E,VPABSD,hO_jO,Xpfx=VEX,Epfx=66
DisTab 0F381C,VPABSB,hO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F381D,VPABSW,hO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F381E,VPABSD,hO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F381F,VPABSQ,hO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F63,PACKSSWB,hU_jU,Epfx=NP
DisTab 0F63,PACKSSWB,hO_jO,Epfx=66
DisTab 0F6B,PACKSSDW,hU_jU,Epfx=NP
DisTab 0F6B,PACKSSDW,hO_jO,Epfx=66
DisTab 0F63,VPACKSSWB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F6B,VPACKSSDW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F63,VPACKSSWB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F6B,VPACKSSDW,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F382B, PACKUSDW,hO_jO,Epfx=66
DisTab 0F382B,VPACKUSDW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F382B,VPACKUSDW,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F67,PACKUSWB,hU_jU,Epfx=NP
DisTab 0F67,PACKUSWB,hO_jO,Epfx=66
DisTab 0F67,VPACKUSWB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F67,VPACKUSWB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FFC,PADDB,hU_jU,Epfx=NP
DisTab 0FFD,PADDW,hU_jU,Epfx=NP
DisTab 0FFE,PADDD,hU_jU,Epfx=NP
DisTab 0FD4,PADDQ,hU_jU,Epfx=NP
DisTab 0FFC,PADDB,hO_jO,Epfx=66
DisTab 0FFD,PADDW,hO_jO,Epfx=66
DisTab 0FFE,PADDD,hO_jO,Epfx=66
DisTab 0FD4,PADDQ,hO_jO,Epfx=66
DisTab 0FFC,VPADDB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FFD,VPADDW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FFE,VPADDD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FD4,VPADDQ,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FFC,VPADDB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FFD,VPADDW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FFE,VPADDD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0FD4,VPADDQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0FEC,PADDSB,hU_jU,Epfx=NP
DisTab 0FEC,PADDSB,hO_jO,Epfx=66
DisTab 0FED,PADDSW,hU_jU,Epfx=NP
DisTab 0FED,PADDSW,hO_jO,Epfx=66
DisTab 0FEC,VPADDSB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FED,VPADDSW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FEC,VPADDSB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FED,VPADDSW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FDC,PADDUSB,hU_jU,Epfx=NP
DisTab 0FDC,PADDUSB,hO_jO,Epfx=66
DisTab 0FDD,PADDUSW,hU_jU,Epfx=NP
DisTab 0FDD,PADDUSW,hO_jO,Epfx=66
DisTab 0FDC,VPADDUSB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FDD,VPADDUSW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FDC,VPADDUSB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FDD,VPADDUSW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F3A0F, PALIGNR,hU_jU_ib,Epfx=NP
DisTab 0F3A0F, PALIGNR,hO_jO_ib,Epfx=66
DisTab 0F3A0F,VPALIGNR,hO_vO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0F3A0F,VPALIGNR,hO_vO_jO_ib@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FDB,PAND,hU_jU,Epfx=NP
DisTab 0FDB,PAND,hO_jO,Epfx=66
DisTab 0FDB,VPAND,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FDB,VPANDD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0FDB,VPANDQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0FDF,PANDN,hU_jU,Epfx=NP
DisTab 0FDF,PANDN,hO_jO,Epfx=66
DisTab 0FDF,VPANDN,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FDF,VPANDND,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0FDF,VPANDNQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 90,PAUSE,@,Epfx=F3
DisTab 0FE0,PAVGB,hU_jU,Epfx=NP
DisTab 0FE0,PAVGB,hO_jO,Epfx=66
DisTab 0FE3,PAVGW,hU_jU,Epfx=NP
DisTab 0FE3,PAVGW,hO_jO,Epfx=66
DisTab 0FE0,VPAVGB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FE3,VPAVGW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FE0,VPAVGB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FE3,VPAVGW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F3810,PBLENDVB,hO_jO_XMM0,Epfx=66
DisTab 0F3810,VPBLENDVB,hO_vO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0F3A0E,PBLENDW,hO_jO_ib,Epfx=66
DisTab 0F3A0E,VPBLENDW,hO_vO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0F01,PBNDKB,@1,Epfx=NP,Mod=3,RegOp=0,RM=7
DisTab 0F3A44,PCLMULQDQ,hO_jO_ib,Epfx=66
DisTab 0F3A44,VPCLMULQDQ,hO_vO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0F3A44,VPCLMULQDQ,hO_vO_jO_ib,Xpfx=EVEX,Epfx=66
DisTab 0F74,PCMPEQB,hU_jU,Epfx=NP
DisTab 0F74,PCMPEQB,hO_jO,Epfx=66
DisTab 0F75,PCMPEQW,hU_jU,Epfx=NP
DisTab 0F75,PCMPEQW,hO_jO,Epfx=66
DisTab 0F76,PCMPEQD,hU_jU,Epfx=NP
DisTab 0F76,PCMPEQD,hO_jO,Epfx=66
DisTab 0F74,VPCMPEQB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F75,VPCMPEQW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F76,VPCMPEQD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F76,VPCMPEQD,hK_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F74,VPCMPEQB,hK_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F75,VPCMPEQW,hK_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F3829,PCMPEQQ,hO_jO,Epfx=66
DisTab 0F3829,VPCMPEQQ,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3829,VPCMPEQQ,hK_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A61,PCMPESTRI,hO_jO_ib,Epfx=66
DisTab 0F3A61,VPCMPESTRI,hO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0F3A60,PCMPESTRM,hO_jO_ib,Epfx=66
DisTab 0F3A60,VPCMPESTRM,hO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0F64,PCMPGTB,hU_jU,Epfx=NP
DisTab 0F64,PCMPGTB,hO_jO,Epfx=66
DisTab 0F65,PCMPGTW,hU_jU,Epfx=NP
DisTab 0F65,PCMPGTW,hO_jO,Epfx=66
DisTab 0F66,PCMPGTD,hU_jU,Epfx=NP
DisTab 0F66,PCMPGTD,hO_jO,Epfx=66
DisTab 0F64,VPCMPGTB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F65,VPCMPGTW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F66,VPCMPGTD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F66,VPCMPGTD,hK_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F64,VPCMPGTB,hK_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F65,VPCMPGTW,hK_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F3837,PCMPGTQ,hO_jO,Epfx=66
DisTab 0F3837,VPCMPGTQ,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3837,VPCMPGTQ,hK_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A63,PCMPISTRI,hO_jO_ib,Epfx=66
DisTab 0F3A63,VPCMPISTRI,hO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0F3A62,PCMPISTRM,hO_jO_ib,Epfx=66
DisTab 0F3A62,VPCMPISTRM,hO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0F01,PCONFIG,@1,Epfx=NP,Mod=3,RegOp=0,RM=5
DisTab 0F38F5,PDEP,hR_vR_jR,Xpfx=VEX,Epfx=F2      ;;;;;;;;;,Mod=3
DisTab 0F38F5,PEXT,hR_vR_jR,Xpfx=VEX,Epfx=F3        ;;;;;;;;;;;;;;;,Mod=3
DisTab 0F3A14,PEXTRB,jRd_hO_ib@DATAb,Epfx=66
DisTab 0F3A14,VPEXTRB,jRd_hO_ib@DATAb,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3A14,VPEXTRB,jRd_hO_ib@DATAb@T8,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A16,PEXTRD,jRd_hO_ib@DATAd,Epfx=66,W=0
DisTab 0F3A16,VPEXTRD,jRd_hO_ib@DATAd,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3A16,VPEXTRD,jRd_hO_ib@DATAd@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A16,PEXTRQ,jRq_hO_ib@DATAq,Epfx=66,W=1
DisTab 0F3A16,VPEXTRQ,jRq_hO_ib@DATAq,Xpfx=VEX,Epfx=66,W=1
DisTab 0F3A16,VPEXTRQ,jRq_hO_ib@DATAq@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0FC5,PEXTRW,hRd_jU_ib,Epfx=NP,Mod=3
DisTab 0FC5,PEXTRW,hRd_jO_ib,Epfx=66,Mod=3
DisTab 0F3A15,PEXTRW,jRd_hO_ib,Epfx=66,Mod=3
DisTab 0FC5,VPEXTRW,hRd_jO_ib,Xpfx=VEX,Epfx=66,Mod=3
DisTab 0F3A15,VPEXTRW,jRd_hO_ib,Xpfx=VEX,Epfx=66,W=0
DisTab 0FC5,VPEXTRW,hRd_jO_ib@T16,Xpfx=EVEX,Epfx=66,Mod=3
DisTab 0F3A15,VPEXTRW,jRd_hO_ib@T16,Xpfx=EVEX,Epfx=66
DisTab 0F3803,PHADDSW,hU_jU,Epfx=NP
DisTab 0F3803,PHADDSW,hO_jO,Epfx=66
DisTab 0F3803,VPHADDSW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3801,PHADDW,hU_jU,Epfx=NP
DisTab 0F3801,PHADDW,hO_jO,Epfx=66
DisTab 0F3802,PHADDD,hU_jU,Epfx=NP
DisTab 0F3802,PHADDD,hO_jO,Epfx=66
DisTab 0F3801,VPHADDW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3802,VPHADDD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3841,PHMINPOSUW,hO_jO,Epfx=66
DisTab 0F3841,VPHMINPOSUW,hO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3807,PHSUBSW,hU_jU,Epfx=NP
DisTab 0F3807,PHSUBSW,hO_jO,Epfx=66
DisTab 0F3807,VPHSUBSW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3805,PHSUBW,hU_jU,Epfx=NP
DisTab 0F3805,PHSUBW,hO_jO,Epfx=66
DisTab 0F3806,PHSUBD,hU_jU,Epfx=NP
DisTab 0F3806,PHSUBD,hO_jO,Epfx=66
DisTab 0F3805,VPHSUBW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3806,VPHSUBD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3A20,PINSRB,hO_jRd_ib@DATAb,Epfx=66
DisTab 0F3A20,VPINSRB,hO_vO_jRd_ib@DATAb,Xpfx=VEX,Epfx=66
DisTab 0F3A20,VPINSRB,hO_vO_jRd_ib@DATAb@T8,Xpfx=EVEX,Epfx=66
DisTab 0FC4,PINSRW,hU_jRd_ib@DATAw,Epfx=NP
DisTab 0FC4,PINSRW,hO_jRd_ib@DATAw,Epfx=66
DisTab 0FC4,VPINSRW,hO_vO_jRd_ib@DATAw,Xpfx=VEX,Epfx=66,W=0
DisTab 0FC4,VPINSRW,hO_vO_jRd_ib@DATAw@T16,Xpfx=EVEX,Epfx=66
DisTab 0F3A22,PINSRD,hO_jRd_ib@DATAd,Epfx=66,W=0
DisTab 0F3A22,VPINSRD,hO_vO_jRd_ib@DATAd,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3A22,VPINSRD,hO_vO_jRd_ib@DATAd@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A22,PINSRQ,hO_jRq_ib@DATAq,Epfx=66,W=1
DisTab 0F3A22,VPINSRQ,hO_vO_jRq_ib@DATAq,Xpfx=VEX,Epfx=66,W=1
DisTab 0F3A22,VPINSRQ,hO_vO_jRq_ib@DATAq@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3804,PMADDUBSW,hU_jU,Epfx=NP
DisTab 0F3804,PMADDUBSW,hO_jO,Epfx=66
DisTab 0F3804,VPMADDUBSW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3804,VPMADDUBSW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FF5,PMADDWD,hU_jU,Epfx=NP
DisTab 0FF5,PMADDWD,hO_jO,Epfx=66
DisTab 0FF5,VPMADDWD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FF5,VPMADDWD,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FEE,PMAXSW,hU_jU,Epfx=NP
DisTab 0F383C,PMAXSB,hO_jO,Epfx=66
DisTab 0FEE,PMAXSW,hO_jO,Epfx=66
DisTab 0F383D,PMAXSD,hX_jX,Epfx=66
DisTab 0F383C,VPMAXSB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FEE,VPMAXSW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F383D,VPMAXSD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F383C,VPMAXSB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FEE,VPMAXSW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F383D,VPMAXSD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F383D,VPMAXSD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0FDE,PMAXUB,hU_jU,Epfx=NP
DisTab 0FDE,PMAXUB,hO_jO,Epfx=66
DisTab 0F383E,PMAXUW,hO_jO,Epfx=66
DisTab 0FDE,VPMAXUB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F383E,VPMAXUW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FDE,VPMAXUB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F383E,VPMAXUW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F383F,PMAXUD,hO_jO,Epfx=66
DisTab 0F383F,VPMAXUD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F383F,VPMAXUD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F383F,VPMAXUQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0FEA,PMINSW,hU_jU,Epfx=NP
DisTab 0F3838,PMINSB,hO_jO,Epfx=66
DisTab 0FEA,PMINSW,hO_jO,Epfx=66
DisTab 0F3838,VPMINSB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FEA,VPMINSW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3838,VPMINSB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FEA,VPMINSW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F3839,PMINSD,hO_jO,Epfx=66
DisTab 0F3839,VPMINSD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3839,VPMINSD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3839,VPMINSQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0FDA,PMINUB,hU_jU,Epfx=NP
DisTab 0FDA,PMINUB,hO_jO,Epfx=66
DisTab 0F383A,PMINUW,hO_jO,Epfx=66
DisTab 0FDA,VPMINUB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F383A,VPMINUW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FDA,VPMINUB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F383A,VPMINUW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F383B,PMINUD,hO_jO,Epfx=66
DisTab 0F383B,VPMINUD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F383B,VPMINUD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F383B,VPMINUQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0FD7,PMOVMSKB,hRd_jU,Epfx=NP,Mod=3
DisTab 0FD7,PMOVMSKB,hRd_jO,Epfx=NP,Epfx=66,Mod=3
DisTab 0FD7,VPMOVMSKB,hRd_jO,Xpfx=VEX,Epfx=66,Mod=3
DisTab 0F3820,PMOVSXBW,hX_jX,Epfx=66
DisTab 0F3821,PMOVSXBD,hX_jX,Epfx=66
DisTab 0F3822,PMOVSXBQ,hX_jX,Epfx=66
DisTab 0F3823,PMOVSXWD,hX_jX,Epfx=66
DisTab 0F3824,PMOVSXWQ,hX_jX,Epfx=66
DisTab 0F3825,PMOVSXDQ,hX_jX,Epfx=66
DisTab 0F3820,VPMOVSXBW,hO_jXXY,Xpfx=VEX,Epfx=66
DisTab 0F3821,VPMOVSXBD,hO_jXXY,Xpfx=VEX,Epfx=66
DisTab 0F3822,VPMOVSXBQ,hO_jXXY,Xpfx=VEX,Epfx=66
DisTab 0F3823,VPMOVSXWD,hO_jXXY,Xpfx=VEX,Epfx=66
DisTab 0F3824,VPMOVSXWQ,hO_jXXY,Xpfx=VEX,Epfx=66
DisTab 0F3825,VPMOVSXDQ,hO_jXXY,Xpfx=VEX,Epfx=66
DisTab 0F3820,VPMOVSXBW,hO_jXXY@HVM,Xpfx=EVEX,Epfx=66
DisTab 0F3821,VPMOVSXBD,hO_jX@QVM,Xpfx=EVEX,Epfx=66
DisTab 0F3822,VPMOVSXBQ,hO_jX@OVM,Xpfx=EVEX,Epfx=66
DisTab 0F3823,VPMOVSXWD,hO_jXXY@HVM,Xpfx=EVEX,Epfx=66
DisTab 0F3824,VPMOVSXWQ,hO_jX@QVM,Xpfx=EVEX,Epfx=66
DisTab 0F3825,VPMOVSXDQ,hO_jXXY@HVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3830,PMOVZXBW,hX_jX,Epfx=66
DisTab 0F3831,PMOVZXBD,hX_jX,Epfx=66
DisTab 0F3832,PMOVZXBQ,hX_jX,Epfx=66
DisTab 0F3833,PMOVZXWD,hX_jX,Epfx=66
DisTab 0F3834,PMOVZXWQ,hX_jX,Epfx=66
DisTab 0F3835,PMOVZXDQ,hX_jX,Epfx=66
DisTab 0F3830,VPMOVZXBW,hO_jXXY,Xpfx=VEX,Epfx=66
DisTab 0F3831,VPMOVZXBD,hO_jXXY,Xpfx=VEX,Epfx=66
DisTab 0F3832,VPMOVZXBQ,hO_jXXY,Xpfx=VEX,Epfx=66
DisTab 0F3833,VPMOVZXWD,hO_jXXY,Xpfx=VEX,Epfx=66
DisTab 0F3834,VPMOVZXWQ,hO_jXXY,Xpfx=VEX,Epfx=66
DisTab 0F3835,VPMOVZXDQ,hO_jXXY,Xpfx=VEX,Epfx=66
DisTab 0F3830,VPMOVZXBW,hO_jXXY@HVM,Xpfx=EVEX,Epfx=66
DisTab 0F3831,VPMOVZXBD,hO_jX@QVM,Xpfx=EVEX,Epfx=66
DisTab 0F3832,VPMOVZXBQ,hO_jX@OVM,Xpfx=EVEX,Epfx=66
DisTab 0F3833,VPMOVZXWD,hO_jXXY@HVM,Xpfx=EVEX,Epfx=66
DisTab 0F3834,VPMOVZXWQ,hO_jX@QVM,Xpfx=EVEX,Epfx=66
DisTab 0F3835,VPMOVZXDQ,hO_jXXY@HVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3828,PMULDQ,hO_jO,Epfx=66
DisTab 0F3828,VPMULDQ,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3828,VPMULDQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F380B,PMULHRSW,hO_jO,Epfx=66
DisTab 0F380B,PMULHRSW,hU_jU,Epfx=NP
DisTab 0F380B,VPMULHRSW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F380B,VPMULHRSW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FE4,PMULHUW,hU_jU,Epfx=NP
DisTab 0FE4,PMULHUW,hO_jO,Epfx=66
DisTab 0FE4,VPMULHUW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FE4,VPMULHUW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FE5,PMULHW,hU_jU,Epfx=NP
DisTab 0FE5,PMULHW,hO_jO,Epfx=66
DisTab 0FE5,PMULHW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FE5,PMULHW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F3840,PMULLD,hO_jO,Epfx=66
DisTab 0F3840,VPMULLD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3840,VPMULLD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3840,VPMULLQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0FD5,PMULLW,hU_jU,Epfx=NP
DisTab 0FD5,PMULLW,hO_jO,Epfx=66
DisTab 0FD5,VPMULLW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FD5,VPMULLW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FF4,PMULUDQ,hU_jU,Epfx=NP
DisTab 0FF4,PMULUDQ,hO_jO,Epfx=66
DisTab 0FF4,VPMULUDQ,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FF4,VPMULUDQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 58,POP,GPRfromOpc
DisTab 59,POP,GPRfromOpc
DisTab 5A,POP,GPRfromOpc
DisTab 5B,POP,GPRfromOpc
DisTab 5C,POP,GPRfromOpc
DisTab 5D,POP,GPRfromOpc
DisTab 5E,POP,GPRfromOpc
DisTab 5F,POP,GPRfromOpc
DisTab 1F,POP,@pushpopDS,Mode=Lg
DisTab 07,POP,@pushpopES,Mode=Lg
DisTab 17,POP,@pushpopSS,Mode=Lg
DisTab 0FA1,POP,@pushpopFS
DisTab 0FA9,POP,@pushpopGS
DisTab 61,POPA,@pushapopa,Mode=Lg
DisTab 61,,invalid,Mode=64
DisTab 0FB8,POPCNT,hR_jR,Epfx=F3
DisTab 9D,POPF,@pushapopa
DisTab 0FEB,POR,hU_jU,Epfx=NP
DisTab 0FEB,POR,hO_jO,Epfx=66
DisTab 0FEB,VPOR,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FEB,VPORD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0FEB,VPORQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F18,PREFETCHT0,jR,Mod=0,RegOp=1
DisTab 0F18,PREFETCHT1,jR,Mod=0,RegOp=2
DisTab 0F18,PREFETCHT2,jR,Mod=0,RegOp=3
DisTab 0F18,PREFETCHNTA,jR,Mod=0,RegOp=0
DisTab 0F18,PREFETCHIT0,jR,Mod=0,RegOp=7
DisTab 0F18,PREFETCHIT1,jR,Mod=0,RegOp=6
DisTab 0F0D,PREFETCHW,jR,Mod=0,RegOp=1
DisTab 0FF6,PSADBW,hU_jU,Epfx=NP
DisTab 0FF6,PSADBW,hO_jO,Epfx=66
DisTab 0FF6,VPSADBW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FF6,VPSADBW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F3800,PSHUFB,hU_jU,Epfx=NP
DisTab 0F3800,PSHUFB,hO_jO,Epfx=66
DisTab 0F3800,VPSHUFB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3800,VPSHUFB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F70,PSHUFD,hO_jO_ib,Epfx=66
DisTab 0F70,VPSHUFD,hO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0F70,VPSHUFD,hO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F70,PSHUFHW,hO_jO_ib,Epfx=F3
DisTab 0F70,VPSHUFHW,hO_jO_ib,Xpfx=VEX,Epfx=F3
DisTab 0F70,VPSHUFHW,hO_jO_ib@FVM,Xpfx=EVEX,Epfx=F3
DisTab 0F70,PSHUFLW,hO_jO_ib,Epfx=F2
DisTab 0F70,VPSHUFLW,hO_jO_ib,Xpfx=VEX,Epfx=F2
DisTab 0F70,VPSHUFLW,hO_jO_ib@FVM,Xpfx=EVEX,Epfx=F2
DisTab 0F70,PSHUFW,hU_jU_ib,Epfx=NP
DisTab 0F3808,PSIGNB,hU_jU,Epfx=NP
DisTab 0F3808,PSIGNB,hO_jO,Epfx=66
DisTab 0F3809,PSIGNW,hU_jU,Epfx=NP
DisTab 0F3809,PSIGNW,hO_jO,Epfx=66
DisTab 0F380A,PSIGND,hU_jU,Epfx=NP
DisTab 0F380A,PSIGND,hO_jO,Epfx=66
DisTab 0F3808,VPSIGNB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F3809,VPSIGNW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F380A,VPSIGND,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F73,PSLLDQ,jO_ib,Epfx=66,Mod=3,RegOp=7
DisTab 0F73,VPSLLDQ,vO_jO_ib,Xpfx=VEX,Epfx=66,Mod=3,RegOp=7
DisTab 0F73,VPSLLDQ,vO_jO_ib,Xpfx=EVEX,Epfx=66,Mod=3,RegOp=7
DisTab 0FF1,PSLLW,hU_jU,Epfx=NP
DisTab 0FF1,PSLLW,hO_jO,Epfx=66
DisTab 0F71,PSLLW,jU_ib,Epfx=NP,Mod=3,RegOp=6
DisTab 0F71,PSLLW,jO_ib,Epfx=66,Mod=3,RegOp=6
DisTab 0FF2,PSLLD,hU_jU,Epfx=NP
DisTab 0FF2,PSLLD,hO_jO,Epfx=66
DisTab 0F72,PSLLD,jU_ib,Epfx=NP,Mod=3,RegOp=6
DisTab 0F72,PSLLD,jO_ib,Epfx=66,Mod=3,RegOp=6
DisTab 0FF3,PSLLQ,hU_jU,Epfx=NP
DisTab 0FF3,PSLLQ,hO_jO,Epfx=66
DisTab 0F73,PSLLQ,jU_ib,Epfx=NP
DisTab 0F73,PSLLQ,jO_ib,Epfx=66,Mod=3,RegOp=6
DisTab 0FF1,VPSLLW,hO_vO_jX,Xpfx=VEX,Epfx=66
DisTab 0F71,VPSLLW,vO_jO_ib,Xpfx=VEX,Epfx=66,Mod=3,RegOp=6
DisTab 0FF2,VPSLLD,hO_vO_jX,Xpfx=VEX,Epfx=66
DisTab 0F72,VPSLLD,vO_jO_ib,Xpfx=VEX,Epfx=66,Mod=3,RegOp=6
DisTab 0FF3,VPSLLQ,hO_vO_jX,Xpfx=VEX,Epfx=66
DisTab 0F73,VPSLLQ,vO_jO_ib,Xpfx=VEX,Epfx=66,Mod=3,RegOp=6
DisTab 0FF1,VPSLLW,hO_vO_jX@T128,Xpfx=EVEX,Epfx=66
DisTab 0F71,VPSLLW,vO_jO_ib@FVM,Xpfx=EVEX,Epfx=66,RegOp=6
DisTab 0F71,VPSLLW,vO_jO_ib@FVM,Xpfx=MVEX,Epfx=66,RegOp=6
DisTab 0FF2,VPSLLD,hO_vO_jX@T128,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F72,VPSLLD,vO_jO_ib@FVM,Xpfx=EVEX,Epfx=66,RegOp=6,W=0
DisTab 0FF3,VPSLLQ,hO_vO_jX@T128,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F73,VPSLLQ,vO_jO_ib@FVM,Xpfx=EVEX,Epfx=66,RegOp=6,W=1
DisTab 0FE1,PSRAW,hU_jU,Epfx=NP
DisTab 0FE1,PSRAW,hO_jO,Epfx=66
DisTab 0F71,PSRAW,jU_ib,Epfx=NP,Mod=3,RegOp=4
DisTab 0F71,PSRAW,jO_ib,Epfx=66,Mod=3,RegOp=4
DisTab 0FE2,PSRAD,hU_jU,Epfx=NP
DisTab 0FE2,PSRAD,hO_jO,Epfx=66
DisTab 0F72,PSRAD,jU_ib,Epfx=NP,Mod=3,RegOp=4
DisTab 0F72,PSRAD,jO_ib,Epfx=66,Mod=3,RegOp=4
DisTab 0FE1,VPSRAW,hO_vO_jX,Xpfx=VEX,Epfx=66
DisTab 0F71,VPSRAW,vO_jO_ib,Xpfx=VEX,Epfx=66,Mod=3,RegOp=4
DisTab 0FE2,VPSRAD,hO_vO_jX,Xpfx=VEX,Epfx=66
DisTab 0F72,VPSRAD,vO_jO_ib,Xpfx=VEX,Epfx=66,Mod=3,RegOp=4
DisTab 0FE1,VPSRAW,hO_vO_jX@T128,Xpfx=EVEX,Epfx=66
DisTab 0F71,VPSRAW,vO_jO_ib@FVM,Xpfx=EVEX,Epfx=66,RegOp=4
DisTab 0FE2,VPSRAD,hO_vO_jX@T128,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F72,VPSRAD,vO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,RegOp=4,W=0
DisTab 0FE2,VPSRAQ,hO_vO_jX@T128,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F72,VPSRAQ,vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,RegOp=4,W=1
DisTab 0F73,PSRLDQ,jO_ib,Epfx=66,Mod=3,RegOp=3
DisTab 0F73,VPSRLDQ,vO_jO_ib,Xpfx=VEX,Epfx=66,Mod=3,RegOp=3
DisTab 0F73,VPSRLDQ,vO_jO_ib@FVM,Xpfx=EVEX,RegOp=3
DisTab 0FD1,PSRLW,hU_jU,Epfx=NP
DisTab 0FD1,PSRLW,hO_jO,Epfx=66
DisTab 0F71,PSRLW,jU_ib,Epfx=NP,Mod=3,RegOp=2
DisTab 0F71,PSRLW,jO_ib,Epfx=66,Mod=3,RegOp=2
DisTab 0FD2,PSRLD,hU_jU,Epfx=NP
DisTab 0FD2,PSRLD,hO_jO,Epfx=66
DisTab 0F72,PSRLD,jU_ib,Epfx=NP,Mod=3,RegOp=2
DisTab 0F72,PSRLD,jO_ib,Epfx=66,Mod=3,RegOp=2
DisTab 0FD3,PSRLQ,hU_jU,Epfx=NP
DisTab 0FD3,PSRLQ,hO_jO,Epfx=66
DisTab 0F73,PSRLQ,jU_ib,Epfx=NP,Mod=3,RegOp=2
DisTab 0F73,PSRLQ,jO_ib,Epfx=66,Mod=3,RegOp=2
DisTab 0FD1,VPSRLW,hO_vO_jX,Xpfx=VEX,Epfx=66
DisTab 0F71,VPSRLW,vO_jO_ib,Xpfx=VEX,Epfx=66,Mod=3,RegOp=2
DisTab 0FD2,VPSRLD,hO_vO_jX,Xpfx=VEX,Epfx=66
DisTab 0F72,VPSRLD,vO_jO_ib,Xpfx=VEX,Epfx=66,Mod=3,RegOp=2
DisTab 0FD3,VPSRLQ,hO_vO_jX,Xpfx=VEX,Epfx=66
DisTab 0F73,VPSRLQ,vO_jO_ib,Xpfx=VEX,Epfx=66,Mod=3,RegOp=2
DisTab 0FD1,VPSRLW,hO_vO_jX@T128,Xpfx=EVEX,Epfx=66
DisTab 0F71,VPSRLW,vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,RegOp=2
DisTab 0FD2,VPSRLD,hO_vO_jX@T128,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F72,VPSRLD,vO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,RegOp=2,W=0
DisTab 0F72,VPSRLD,vO_jO_ib@FV32,Xpfx=MVEX,Epfx=66,RegOp=2,W=0
DisTab 0FD3,VPSRLQ,hO_vO_jX@T128,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F73,VPSRLQ,vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,RegOp=2,W=1
DisTab 0FF8,PSUBB,hU_jU,Epfx=NP
DisTab 0FF8,PSUBB,hO_jO,Epfx=66
DisTab 0FF9,PSUBW,hU_jU,Epfx=NP
DisTab 0FF9,PSUBW,hO_jO,Epfx=66
DisTab 0FFA,PSUBD,hU_jU,Epfx=NP
DisTab 0FFA,PSUBD,hO_jO,Epfx=66
DisTab 0FF8,VPSUBB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FF9,VPSUBW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FFA,VPSUBD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FF8,VPSUBB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FF9,VPSUBW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FFA,VPSUBD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0FFB,PSUBQ,hU_jU,Epfx=NP
DisTab 0FFB,PSUBQ,hO_jO,Epfx=66
DisTab 0FFB,VPSUBQ,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FFB,VPSUBQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0FE8,PSUBSB,hU_jU,Epfx=NP
DisTab 0FE8,PSUBSB,hO_jO,Epfx=66
DisTab 0FE9,PSUBSW,hU_jU,Epfx=NP
DisTab 0FE9,PSUBSW,hO_jO,Epfx=66
DisTab 0FE8,VPSUBSB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FE9,VPSUBSW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FE8,VPSUBSB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FE9,VPSUBSW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FD8,PSUBUSB,hU_jU,Epfx=NP
DisTab 0FD8,PSUBUSB,hO_jO,Epfx=66
DisTab 0FD9,PSUBUSW,hU_jU,Epfx=NP
DisTab 0FD9,PSUBUSW,hO_jO,Epfx=66
DisTab 0FD8,VPSUBUSB,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FD9,VPSUBUSW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FD8,VPSUBUSB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0FD9,VPSUBUSW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F3817,PTEST,hO_jO,Epfx=66
DisTab 0F3817,VPTEST,hO_jO,Xpfx=VEX,Epfx=66
DisTab 0FAE,PTWRITE,jM@DATAd,Epfx=F3,RegOp=4,W=0
DisTab 0FAE,PTWRITE,jM@DATAq,Epfx=F3,RegOp=4,W=1
DisTab 0F68,PUNPCKHBW,hU_jU,Epfx=NP
DisTab 0F68,PUNPCKHBW,hO_jO,Epfx=66
DisTab 0F69,PUNPCKHWD,hU_jU,Epfx=NP
DisTab 0F69,PUNPCKHWD,hO_jO,Epfx=66
DisTab 0F6A,PUNPCKHDQ,hU_jU,Epfx=NP
DisTab 0F6A,PUNPCKHDQ,hO_jO,Epfx=66
DisTab 0F6D,PUNPCKHQDQ,hO_jO,Epfx=66
DisTab 0F68,VPUNPCKHBW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F69,VPUNPCKHWD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F6A,VPUNPCKHDQ,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F6D,VPUNPCKHQDQ,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F68,VPUNPCKHBW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F69,VPUNPCKHWD,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F6A,VPUNPCKHDQ,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F6D,VPUNPCKHQDQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F60,PUNPCKLBW,hU_jU,Epfx=NP
DisTab 0F60,PUNPCKLBW,hO_jO,Epfx=66
DisTab 0F61,PUNPCKLWD,hU_jU,Epfx=NP
DisTab 0F61,PUNPCKLWD,hO_jO,Epfx=66
DisTab 0F62,PUNPCKLDQ,hU_jU,Epfx=NP
DisTab 0F62,PUNPCKLDQ,hO_jO,Epfx=66
DisTab 0F6C,PUNPCKLQDQ,hO_jO,Epfx=66
DisTab 0F60,VPUNPCKLBW,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F61,VPUNPCKLWD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F62,VPUNPCKLDQ,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F6C,VPUNPCKLQDQ,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F60,VPUNPCKLBW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F61,VPUNPCKLWD,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66
DisTab 0F62,VPUNPCKLDQ,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F6C,VPUNPCKLQDQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab FF,PUSH,jR@DATAaq,RegOp=6
DisTab 50,PUSH,GPRfromOpc
DisTab 51,PUSH,GPRfromOpc
DisTab 52,PUSH,GPRfromOpc
DisTab 53,PUSH,GPRfromOpc
DisTab 54,PUSH,GPRfromOpc
DisTab 55,PUSH,GPRfromOpc
DisTab 56,PUSH,GPRfromOpc
DisTab 57,PUSH,GPRfromOpc
DisTab 6A,PUSH,ib@DATAw
DisTab 68,PUSH,ie@DATAa
DisTab 0E,PUSH,@pushpopCS,Mode=Lg
DisTab 16,PUSH,@pushpopSS,Mode=Lg
DisTab 1E,PUSH,@pushpopDS,Mode=Lg
DisTab 06,PUSH,@pushpopES,Mode=Lg
DisTab 0FA0,PUSH,@pushpopFS
DisTab 0FA8,PUSH,@pushpopGS
DisTab 60,PUSHA,@pushapopa,Mode=Lg
DisTab 9C,PUSHF,@pushapopa
DisTab 0FEF,PXOR,hU_jU,Epfx=NP
DisTab 0FEF,PXOR,hO_jO,Epfx=66
DisTab 0FEF,VPXOR,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0FEF,VPXORD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0FEF,VPXORQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab D0,RCL,jRMb_1,RegOp=2
DisTab D2,RCL,jRMb_CL,RegOp=2
DisTab C0,RCL,jRMb_ib,RegOp=2
DisTab D1,RCL,jRMe_1,RegOp=2
DisTab D3,RCL,jRMe_CL,RegOp=2
DisTab C1,RCL,jRMe_ib,RegOp=2
DisTab D0,RCR,jRMb_1,RegOp=3
DisTab D2,RCR,jRMb_CL,RegOp=3
DisTab C0,RCR,jRMb_ib,RegOp=3
DisTab D1,RCR,jRMe_1,RegOp=3
DisTab D3,RCR,jRMe_CL,RegOp=3
DisTab C1,RCR,jRMe_ib,RegOp=3
DisTab D0,ROL,jRMb_1,RegOp=0
DisTab D2,ROL,jRMb_CL,RegOp=0
DisTab C0,ROL,jRMb_ib,RegOp=0
DisTab D1,ROL,jRMe_1,RegOp=0
DisTab D3,ROL,jRMe_CL,RegOp=0
DisTab C1,ROL,jRMe_ib,RegOp=0
DisTab D0,ROR,jRMb_1,RegOp=1
DisTab D2,ROR,jRMb_CL,RegOp=1
DisTab C0,ROR,jRMb_ib,RegOp=1
DisTab D1,ROR,jRMe_1,RegOp=1
DisTab D3,ROR,jRMe_CL,RegOp=1
DisTab C1,ROR,jRMe_ib,RegOp=1
DisTab 0F53,RCPPS,hO_jO,Epfx=NP
DisTab 0F53,VRCPPS,hO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F53,RCPSS,hO_jO,Epfx=F3
DisTab 0F53,VRCPSS,hO_vO_jO,Xpfx=VEX,Epfx=F3
DisTab 0FAE,RDFSBASE,jR,Epfx=F3,Mode=64,Mod=3,RegOp=0
DisTab 0FAE,RDGSBASE,jR,Epfx=F3,Mode=64,Mod=3,RegOp=1
DisTab 0F32,RDMSR,@,Epfx=NP
DisTab 0F01,RDMSRLIST,@1,Epfx=F2,Mod=3,RegOp=0,RM=6
DisTab 0FC7,RDPID,jR@prom64,Epfx=F3,Mod=3,RegOp=7
DisTab 0F01,RDPKRU,@1,Epfx=NP,Mod=3,RegOp=5,RM=6
DisTab 0F33,RDPMC,@,Epfx=NP
DisTab 0FC7,RDRAND,jR,Epfx=NP,Mod=3,RegOp=6
DisTab 0FC7,RDSEED,jR,Mod=3,RegOp=7
DisTab 0F1E,RDSSPD,jR,Epfx=NP,Mod=3,RegOp=1,W=0
DisTab 0F1E,RDSSPQ,jR,Epfx=NP,Mod=3,RegOp=1,W=1
DisTab 0F31,RDTSC,@,Epfx=NP
DisTab 0F01,RDTSCP,@1,Epfx=NP,Mod=3,RegOp=7,RM=1
DisTab C3,RET,@retn
DisTab CB,RET,@retf
DisTab C2,RET,iw@retn
DisTab CA,RET,iw@retf
DisTab 0F3AF0,RORX,hRd_jR_ib@DATAd,Xpfx=VEX,Epfx=F2,W=0
DisTab 0F3AF0,RORX,hRq_jR_ib@DATAq,Xpfx=VEX,Epfx=F2,W=1
DisTab 0F3A09,ROUNDPD,hO_jO_ib,Epfx=66
DisTab 0F3A09,VROUNDPD,hO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0F3A08,ROUNDPS,hO_jO_ib,Epfx=66
DisTab 0F3A08,VROUNDPS,hO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0F3A0B,ROUNDSD,hO_jO_ib,Epfx=66
DisTab 0F3A0B,VROUNDSD,hO_vO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0F3A0A,ROUNDSS,hO_jO_ib,Epfx=66
DisTab 0F3A0A,VROUNDSS,hO_vO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0FAA,RSM,@
DisTab 0F52,RSQRTPS,hO_jO,Epfx=NP
DisTab 0F52,VRSQRTPS,hO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F52,RSQRTSS,hO_jO,Epfx=F3
DisTab 0F52,VRSQRTSS,hO_vO_jO,Xpfx=VEX,Epfx=F3
DisTab 0F01,RSTORSSP,jM,Epfx=F3,Mod=0,RegOp=5
DisTab 9E,SAHF,@
DisTab D0,SAL,jRMb_1,RegOp=6
DisTab D2,SAL,jRMb_CL,RegOp=6
DisTab C0,SAL,jRMb_ib,RegOp=6
DisTab D1,SAL,jRMe_1,RegOp=6
DisTab D3,SAL,jRMe_CL,RegOp=6
DisTab C1,SAL,jRMe_ib,RegOp=6
DisTab D0,SAR,jRMb_1,RegOp=7
DisTab D2,SAR,jRMb_CL,RegOp=7
DisTab C0,SAR,jRMb_ib,RegOp=7
DisTab D1,SAR,jRMe_1,RegOp=7
DisTab D3,SAR,jRMe_CL,RegOp=7
DisTab C1,SAR,jRMe_ib,RegOp=7
DisTab D0,SHL,jRMb_1,RegOp=4
DisTab D2,SHL,jRMb_CL,RegOp=4
DisTab C0,SHL,jRMb_ib,RegOp=4
DisTab D1,SHL,jRMe_1,RegOp=4
DisTab D3,SHL,jRMe_CL,RegOp=4
DisTab C1,SHL,jRMe_ib,RegOp=4
DisTab D0,SHR,jRMb_1,RegOp=5
DisTab D2,SHR,jRMb_CL,RegOp=5
DisTab C0,SHR,jRMb_ib,RegOp=5
DisTab D1,SHR,jRMe_1,RegOp=5
DisTab D3,SHR,jRMe_CL,RegOp=5
DisTab C1,SHR,jRMe_ib,RegOp=5
DisTab 0F38F7,SARX,hRd_jR_vR@DATAd,Xpfx=VEX,Epfx=F3,W=0
DisTab 0F38F7,SHLX,hRd_jR_vR@DATAd,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38F7,SHRX,hRd_jR_vR@DATAd,Xpfx=VEX,Epfx=F2,W=0
DisTab 0F38F7,SARX,hRq_jR_vR@DATAq,Xpfx=VEX,Epfx=F3,W=1
DisTab 0F38F7,SHLX,hRq_jR_vR@DATAq,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38F7,SHRX,hRq_jR_vR@DATAq,Xpfx=VEX,Epfx=F2,W=1
DisTab 0F01,SAVEPREVSSP,@1,Epfx=F3,Mod=3,RegOp=5,RM=2
DisTab 1C,SBB,AL_ib@CODEs
DisTab 1D,SBB,aAX_ie@CODEs
DisTab 80,SBB,jRb_i8@DATAb@CODEl,RegOp=3
DisTab 81,SBB,jR_ie@DATAa@CODEl,RegOp=3
DisTab 83,SBB,jR_ibse@DATAa@CODEl,RegOp=3
DisTab 18,SBB,jRb_hRb
DisTab 19,SBB,jR_hR
DisTab 1A,SBB,hRb_jRb
DisTab 1B,SBB,hR_jR
DisTab AE,SCAS,AL_Tb
DisTab AF,SCAS,eAX_Te
DisTab 0FC7,SENDUIPI,jRq,Epfx=F3,Mode=64,Mod=3,RegOp=6
DisTab 0F01,SERIALIZE,@1,Epfx=NP,Mod=3,RegOp=5,RM=0
DisTab 0F90,SETO,jRMb,RegOp=0
DisTab 0F91,SETNO,jRMb,RegOp=0
DisTab 0F92,SETC,jRMb,RegOp=0
DisTab 0F93,SETNC,jRMb,RegOp=0
DisTab 0F94,SETZ,jRMb,RegOp=0
DisTab 0F95,SETNZ,jRMb,RegOp=0
DisTab 0F96,SETNA,jRMb,RegOp=0
DisTab 0F97,SETA,jRMb,RegOp=0
DisTab 0F98,SETS,jRMb,RegOp=0
DisTab 0F99,SETNS,jRMb,RegOp=0
DisTab 0F9A,SETPE,jRMb,RegOp=0
DisTab 0F9B,SETPO,jRMb,RegOp=0
DisTab 0F9C,SETL,jRMb,RegOp=0
DisTab 0F9D,SETGE,jRMb,RegOp=0
DisTab 0F9E,SETLE,jRMb,RegOp=0
DisTab 0F9F,SETG,jRMb,RegOp=0
DisTab 0F01,SETSSBSY,@1,Epfx=F3,Mod=3,RegOp=5,RM=0
DisTab 0FAE,SFENCE,@1,Epfx=NP,Mod=3,RegOp=7,RM=0
DisTab 0F38C9,SHA1MSG1,hO_jO,Epfx=NP
DisTab 0F38CA,SHA1MSG2,hO_jO,Epfx=NP
DisTab 0F38C8,SHA1NEXTE,hO_jO,Epfx=NP
DisTab 0F3ACC,SHA1RNDS4,hO_jO_ib,Epfx=NP
DisTab 0F38CC,SHA256MSG1,hO_jO,Epfx=NP
DisTab 0F38CD,SHA256MSG2,hO_jO,Epfx=NP
DisTab 0F38CB,SHA256RNDS2,hO_jO_XMM0,Epfx=NP
DisTab 0FA4,SHLD,jR_hR_ib
DisTab 0FA5,SHLD,jR_hR_CL
DisTab 0FAC,SHRD,jR_hR_ib
DisTab 0FAD,SHRD,jR_hR_CL
DisTab 0FC6,SHUFPD,hO_jO_ib,Epfx=66
DisTab 0FC6,VSHUFPD,hO_vO_jO_ib,Xpfx=VEX,Epfx=66
DisTab 0FC6,VSHUFPD,hO_vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0FC6,SHUFPS,hO_jO_ib,Epfx=NP
DisTab 0FC6,VSHUFPS,hO_vO_jO_ib,Xpfx=VEX,Epfx=NP
DisTab 0FC6,VSHUFPS,hO_vO_jO_ib@FV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F01,SGDT,jM,Mod=0,Epfx=NP,RegOp=0
DisTab 0F01,SIDT,jR,Epfx=NP,Mod=0,RegOp=1
DisTab 0F00,SLDT,jR,RegOp=0
DisTab 0F01,SMSW,jR,RegOp=4
DisTab 0F51,SQRTPD,hO_jO,Epfx=66
DisTab 0F51,VSQRTPD,hO_jO,Xpfx=VEX,Epfx=66
DisTab 0F51,VSQRTPD,hO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F51,SQRTPS,hO_jO,Epfx=NP
DisTab 0F51,VSQRTPS,hO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F51,VSQRTPS,hO_jO@FV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F51,SQRTSD,hX_jX,Epfx=F2
DisTab 0F51,VSQRTSD,hX_vX_jX,Xpfx=VEX,Epfx=F2
DisTab 0F51,VSQRTSD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F51,SQRTSS,hX_jX,Epfx=F3
DisTab 0F51,VSQRTSS,hX_vX_jX,Xpfx=VEX,Epfx=F3
DisTab 0F51,VSQRTSS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F01,STAC,@1,Epfx=NP,Mod=3,RegOp=1,RM=3
DisTab F9,STC,@
DisTab FD,STD,@
DisTab FB,STI,@
DisTab 0FAE,STMXCSR,jM@DATAd,,Epfx=NP,Mod=0,RegOp=3
DisTab 0FAE,VSTMXCSR,jM@DATAd,Xpfx=VEX,Epfx=NP,Mod=0,RegOp=3
DisTab AA,STOS,Tb_AL
DisTab AB,STOS,Te_eAX
DisTab 0F00,STR,jR,RegOp=1                 ; PROT
DisTab 0F3849,STTILECFG,jM@DATAz,Xpfx=VEX,Epfx=66,Mod=0,RegOp=0
DisTab 0F01,STUI,@1,Epfx=F3,Mod=3,RegOp=5,RM=7
DisTab 2C,SUB,AL_ib@CODEs
DisTab 2D,SUB,aAX_ie@CODEs
DisTab 80,SUB,jRb_i8@DATAb@CODEl,RegOp=5
DisTab 81,SUB,jR_ie@DATAa@CODEl,RegOp=5
DisTab 83,SUB,jR_ibse@DATAa@CODEl,RegOp=5
DisTab 28,SUB,jRb_hRb
DisTab 29,SUB,jR_hR
DisTab 2A,SUB,hRb_jRb
DisTab 2B,SUB,hR_jR
DisTab 0F5C,SUBPD,hO_jO,Epfx=66
DisTab 0F5C,VSUBPD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F5C,VSUBPD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F5C,SUBPS,hO_jO,Epfx=NP
DisTab 0F5C,VSUBPS,hO_vO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F5C,VSUBPS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F5C,SUBSD,hX_jX,Epfx=F2
DisTab 0F5C,VSUBSD,hX_vX_jX,Xpfx=VEX,Epfx=F2
DisTab 0F5C,VSUBSD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F5C,SUBSS,hX_jX,Epfx=F3
DisTab 0F5C,VSUBSS,hX_vX_jX,Xpfx=VEX,Epfx=F3
DisTab 0F5C,VSUBSS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F5C,VSUBPS,hO_vO_jO@T32,Xpfx=MVEX,Epfx=NP,W=0
DisTab 0F01,SWAPGS,@1,Epfx=NP,Mode=64,Mod=3,RegOp=7,RM=0       ; PRIV
DisTab 0F05,SYSCALL,@
DisTab 0F34,SYSENTER,@
DisTab 0F35,SYSEXIT,@
DisTab 0F07,SYSRET,@
DisTab 0F386C,TCMMIMFP16PS,hO_jO_vO,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F386C,TCMMRLFP16PS,hO_jO_vO,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F385C,TDPBF16PS,hO_jO_vO,Xpfx=VEX,Epfx=F3,Mod=3,W=0
DisTab 0F385E,TDPBSSD,hO_jO_vO,Xpfx=VEX,Epfx=F2,Mod=3,W=0
DisTab 0F385E,TDPBSUD,hO_jO_vO,Xpfx=VEX,Epfx=F3,Mod=3,W=0
DisTab 0F385E,TDPBUSD,hO_jO_vO,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F385E,TXPBUUD,hO_jO_vO,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F385C,TXPFP16PS,hO_jO_vO,Xpfx=VEX,Epfx=F2,Mod=3,W=0
DisTab A8,TEST,AL_ib@CODEs
DisTab A9,TEST,aAX_ie@CODEs
DisTab F6,TEST,jRb_i8@DATAb@CODEl,RegOp=0
DisTab F6,TEST2,jRb_i8@DATAb@CODEl,RegOp=1
;;DisTab F7,TEST,jRe_ie,RegOp=0
DisTab F7,TEST,jRe_ie@DATAa@CODEl,RegOp=0,W=0
DisTab F7,TEST,jRq_ie@DATAq@CODEl,RegOp=0,W=1
DisTab F7,TEST2,jRe_ie@DATAa@CODEl,RegOp=1,W=0
DisTab F7,TEST2,jRq_ie@DATAq@CODEl,RegOp=1,W=1
DisTab 84,TEST,jRb_hRb
DisTab 85,TEST,jR_hR
DisTab 0F01,TESTUI,@1,Epfx=F3,Mod=3,RegOp=5,RM=5
DisTab 0F384B,TILELOADD,hO_jO,Xpfx=VEX,Epfx=F2,Mode=64,Mod=0,RM=4,W=0
DisTab 0F384B,TILELOADDT1,hO_jO,Xpfx=VEX,Epfx=66,Mode=64,Mod=0,RM=4,W=0
DisTab 0F3849,TILERELEASE,@,Xpfx=VEX,Epfx=NP,Mode=64,Mod=3,RegOp=0,RM=0,W=0
DisTab 0F384B,TILESTORED,jO_hO,Xpfx=VEX,Epfx=F3,Mode=64,Mod=0,RM=4,W=0
DisTab 0F3849,TILEZERO,hO,Xpfx=VEX,Epfx=F2,Mode=64,Mod=3,RM=0,W=0
DisTab 0FAE,TPAUSE,jRd,Epfx=66,Mod=3,RegOp=6
DisTab 0F2E,UCOMISD,hO_jO,Epfx=66
DisTab 0F2E,VUCOMISD,hO_jO,Xpfx=VEX,Epfx=66
DisTab 0F2E,VUCOMISD,hO_jO@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F2E,UCOMISS,hO_jO,Epfx=NP
DisTab 0F2E,VUCOMISS,hO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F2E,VUCOMISS,hO_jO@T32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0FFF,UD0,hRd_jR
DisTab 0FB9,UD1,hRd_jR
DisTab 0F0B,UD2,@
DisTab D6,UDB,@,Mode=64
DisTab D6,SETALC,@   ; alias SALC
DisTab 0F01,UIRET,@1,Epfx=F3,Mode=64,Mod=3,RegOp=5,RM=4
DisTab 0FAE,UMONITOR,jR,Epfx=F3,Mod=3,RegOp=6
DisTab 0FAE,UMWAIT,jRd,Epfx=F2,Mod=3,RegOp=6
DisTab 0F15,UNPCKHPD,hO_jO,Epfx=66
DisTab 0F15,VUNPCKHPD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F15,VUNPCKHPD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F15,UNPCKHPS,hO_jO,Epfx=NP
DisTab 0F15,VUNPCKHPS,hO_vO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F15,VUNPCKHPS,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F14,UNPCKLPD,hO_jO,Epfx=66
DisTab 0F14,VUNPCKLPD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F14,VUNPCKLPD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F14,UNPCKLPS,hO_jO,Epfx=NP
DisTab 0F14,VUNPCKLPS,hO_vO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F14,VUNPCKLPS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F0A,CL1INVMB,@

; Instructions in the order found in [IntelAVX512]
DisTab 58,VADDPH,hO_vO_jO@FV16,Xpfx=EVEX5,Epfx=NP,W=0
DisTab 58,VADDSH,hO_vO_jO@T16,Xpfx=EVEX5,Epfx=F3,W=0
DisTab 0F3A03,VALIGND,hO_vO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A03,VALIGNQ,hO_vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38B1,VBCSTNEBF162PS,hO_jO@DATAw,Xpfx=VEX,Epfx=F3,Mod=0,W=0
DisTab 0F38B1,VBCSTNESH2PS,hO_jO@DATAw,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F3865,VBLENDMPD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3865,VBLENDMPS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3865,VBLENDMPD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F3865,VBLENDMPS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3818,VBROADCASTSS,   hO_jX@DATAd,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F3819,VBROADCASTSD,   hO_jX@DATAq,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F381A,VBROADCASTF128, hO_jX@DATAo,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F3818,VBROADCASTSS,   hO_jX@DATAd,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F3819,VBROADCASTSD,   hO_jX@DATAq,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F3819,VBROADCASTSD,   hO_jX@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3819,VBROADCASTF32X2,hO_jX@T64,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3818,VBROADCASTSS,   hO_jX@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F381A,VBROADCASTF32X4,hO_jX@DATAx@T128,Xpfx=EVEX,Epfx=66,Mod=0,W=0
DisTab 0F381A,VBROADCASTF64X2,hO_jX@DATAx@T128,Xpfx=EVEX,Epfx=66,Mod=0,W=1
DisTab 0F381B,VBROADCASTF32X8,hO_jX@DATAy@T256,Xpfx=EVEX,Epfx=66,Mod=0,W=0
DisTab 0F381B,VBROADCASTF64X4,hO_jX@DATAy@T256,Xpfx=EVEX,Epfx=66,Mod=0,W=1
DisTab 0F3AC2,VCMPPH,hK_vO_jO_ib@FV16,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F3AC2,VCMPSH,hK_vO_jO_ib@T16,Xpfx=EVEX,Epfx=F3,W=0
DisTab 2F,VCOMISH,hO_jO@T16,Xpfx=EVEX5,Epfx=NP,W=0
DisTab 0F388A,VCOMPRESSPD,jO_hO@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F388A,VCOMPRESSPS,jO_hO@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 5B,VCVTDQ2PH,hO_jO@FV32,Xpfx=EVEX5,Epfx=NP,W=0
DisTab 0F3872,VCVTNE2PS2BF16,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=F2,W=0
DisTab 0F38B0,VCVTNEEBF162PS,hO_jO,Xpfx=VEX,Epfx=F3,Mod=0,W=0
DisTab 0F38B0,VCVTNEEPH2PS,hO_jO,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F38F0,VCVTNEOBF162PS,hO_jO,Xpfx=VEX,Epfx=F2,Mod=0,W=0
DisTab 0F38B0,VCVTNEOPH2PS,hO_jO,,Xpfx=VEX,Epfx=NP,Mod=0,W=0
DisTab 0F3872,VCVTNEPS2BF16,hO_jO,Xpfx=VEX,Epfx=F3,W=0
DisTab 0F3872,VCVTNEPS2BF16,hO_jO@FV32,Xpfx=EVEX,Epfx=F3,W=0
DisTab 5A,VCVTPD2PH,hO_jO@FV64,Xpfx=EVEX5,Epfx=66,W=1
DisTab 0F7B,VCVTPD2QQ,hO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F79,VCVTPD2UDQ,hXY_jO@FV64,Xpfx=EVEX,Epfx=NP,W=1
DisTab 0F79,VCVTPD2UQQ,hO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 5B,VCVTPH2DQ,hO_jO@HV16,Xpfx=EVEX5,Epfx=66,W=0
DisTab 5A,VCVTPH2PD,hO_jO@QV16,Xpfx=EVEX5,Epfx=NP,W=0
DisTab 0F3813,VCVTPH2PS,hO_jXXY,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3813,VCVTPH2PS,hO_jXXY@HVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 13,VCVTPH2PSX,hO_jXXY@HV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 7B,VCVTPH2QQ,hO_jO@QV16,Xpfx=EVEX5,Epfx=66,W=0
DisTab 79,VCVTPH2UDQ,hO_jO@HV16,Xpfx=EVEX5,Epfx=NP,W=0
DisTab 79,VCVTPH2UQQ,hO_jO@QV16,Xpfx=EVEX5,Epfx=66,W=0
DisTab 7F,VCVTPH2UW,hO_jO@FV16,Xpfx=EVEX5,Epfx=NP,W=0
DisTab 7D,VCVTPH2W,hO_jO@FV16,Xpfx=EVEX5,Epfx=66,W=0
DisTab 0F3A1D,VCVTPS2PH,jXXY_hO_ib,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3A1D,VCVTPS2PH,jXXY_hO_ib@HVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 1D,VCVTPS2PHX,hO_jO@FV32,Xpfx=EVEX5,Epfx=66,W=0
DisTab 0F7B,VCVTPS2QQ,hO_jXXY@HV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F79,VCVTPS2UDQ,hO_jO@FV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F79,VCVTPS2UQQ,hO_jXXY@HV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0FE6,VCVTQQ2PD,hO_jO@FV64,Xpfx=EVEX,Epfx=F3,W=1
DisTab 5B,VCVTQQ2PH,hO_jO@FV64,Xpfx=EVEX5,Epfx=NP,W=1
DisTab 0F5B,VCVTQQ2PS,hXY_jO@FV64,Xpfx=EVEX,Epfx=NP,W=1
DisTab 5A,VCVTSD2SH,hO_vO_jO@T64,Xpfx=EVEX5,Epfx=F2,W=1
DisTab 0F79,VCVTSD2USI,hRd_jX@T64,Xpfx=EVEX,Epfx=F2,W=0
DisTab 0F79,VCVTSD2USI,hRq_jX@T64,Xpfx=EVEX,Epfx=F2,W=1
DisTab 5A,VCVTSH2SD,hX_vX_jX@T16,Xpfx=EVEX5,Epfx=F3,W=0
DisTab 2D,VCVTSH2SI,hRd_jX@T16,Xpfx=EVEX5,Epfx=F3,W=0
DisTab 2D,VCVTSH2SI,hRq_jX@T16,Xpfx=EVEX5,Epfx=F3,W=1
DisTab 13,VCVTSH2SS,hX_vX_jX@T16,Xpfx=EVEX6,Epfx=NP,W=0
DisTab 79,VCVTSH2USI,hRd_jX@T16,Xpfx=EVEX5,Epfx=F3,W=0
DisTab 79,VCVTSH2USI,hRq_jX@T16,Xpfx=EVEX5,Epfx=F3,W=1
DisTab 2A,VCVTSI2SH,hX_vX_jRd@T16,Xpfx=EVEX5,Epfx=F3,W=0
DisTab 2A,VCVTSI2SH,hX_vX_jRq@T16,Xpfx=EVEX5,Epfx=F3,W=1
DisTab 1D,VCVTSS2SH,hX_vX_jX@T32,Xpfx=EVEX5,Epfx=NP,W=0
DisTab 0F79,VCVTSS2USI,hRd_jX@T32,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F79,VCVTSS2USI,hRq_jX@T32,Xpfx=EVEX,Epfx=F3,W=1
DisTab 0F7A,VCVTPD2QQ,hO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F78,VCVTPD2UDQ,hXY_jO@FV64,Xpfx=EVEX,Epfx=NP,W=1
DisTab 0F78,VCVTTPD2UQQ,hO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 5B,VCVTTPH2DQ,hO_jO@HV16,Xpfx=EVEX5,Epfx=F3,W=0
DisTab 7A,VCVTTPH2QQ,hO_jO@QV16,Xpfx=EVEX5,Epfx=66,W=0
DisTab 78,VCVTTPH2UDQ,hO_jO@HV16,Xpfx=EVEX5,Epfx=NP,W=0
DisTab 78,VCVTTPH2UQQ,hO_jO@QV16,Xpfx=EVEX5,Epfx=66,W=0
DisTab 7C,VCVTTPH2UW,hO_jO@FV16,Xpfx=EVEX5,Epfx=NP,W=0
DisTab 7C,VCVTTPH2W,hO_jO@FV16,Xpfx=EVEX5,Epfx=66,W=0
DisTab 0F7A,VCVTTPS2QQ,hO_jXXY@HV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F78,VCVTTPS2UDQ,hO_jO@HV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F78,VCVTTPS2UQQ,hO_jXXY@HV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F78,VCVTTSD2USI,hRd_jO@T64,Xpfx=EVEX,Epfx=F2,W=0
DisTab 0F78,VCVTTSD2USI,hRq_jO@T64,Xpfx=EVEX,Epfx=F2,W=1
DisTab 2C,VCVTTSH2SI,hRd_jO@T16,Xpfx=EVEX5,Epfx=F3,W=0
DisTab 2C,VCVTTSH2SI,hRq_jO@T16,Xpfx=EVEX5,Epfx=F3,W=1
DisTab 78,VCVTTSH2USI,hRd_jO@T16,Xpfx=EVEX5,Epfx=F3,W=0
DisTab 78,VCVTTSH2USI,hRq_jO@T16,Xpfx=EVEX5,Epfx=F3,W=1
DisTab 0F78,VCVTTSS2USI,hRd_jO@T32,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F78,VCVTTSS2USI,hRq_jO@T32,Xpfx=EVEX,Epfx=F3,W=1
DisTab 0F7A,VCVTUDQ2PD,hO_jXXY@HV32,Xpfx=EVEX,Epfx=F3,W=0
DisTab 7A,VCVTUDQ2PH,hO_jO@FV32,Xpfx=EVEX5,Epfx=F2,W=0
DisTab 0F7A,VCVTUDQ2PS,hO_jO@FV32,Xpfx=EVEX,Epfx=F2,W=0
DisTab 0F7A,VCVTUQQ2PD,hO_jO@FV64,Xpfx=EVEX,Epfx=F3,W=1
DisTab 7A,VCVTUQQ2PH,hO_jO@FV64,Xpfx=EVEX5,Epfx=F2,W=1
DisTab 0F7A,VCVTUQQ2PS,hXY_jO@FV64,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F7B,VCVTUSI2SD,hX_vX_jRd@DATAd@T32,Xpfx=EVEX,Epfx=F2,W=0
DisTab 0F7B,VCVTUSI2SD,hX_vX_jRq@DATAq@T64,Xpfx=EVEX,Epfx=F2,W=1
DisTab 7B,VCVTUSI2SH,hX_vX_jRd@DATAd@T32,Xpfx=EVEX5,Epfx=F3,W=0
DisTab 7B,VCVTUSI2SH,hX_vX_jRq@DATAq@T64,Xpfx=EVEX5,Epfx=F3,W=1
DisTab 0F7B,VCVTUSI2SS,hX_vX_jRd@DATAd@T32,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F7B,VCVTUSI2SS,hX_vX_jRq@DATAq@T64,Xpfx=EVEX,Epfx=F3,W=1
DisTab 7D,VCVTUW2PH,hO_jO@FV16,Xpfx=EVEX5,Epfx=F2,W=0
DisTab 7D,VCVTW2PH,hO_jO@FV16,Xpfx=EVEX5,Epfx=F3,W=0
DisTab 0F3A42,VDBPSADBW,hO_vO_jO_ib@FVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 5E,VDIVPH,hO_vO_jO@FV16,Xpfx=EVEX5,Epfx=NP,W=0
DisTab 5E,VDIVSH,hO_vO_jO@T16,Xpfx=EVEX5,Epfx=F3,W=0
DisTab 0F3852,VDPBF16PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F00,VERR,jR,RegOp=4                  ; PROT
DisTab 0F00,VERW,jR,RegOp=5                  ; PROT
DisTab 0F3888,VEXPANDPD,hO_jO@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3888,VEXPANDPS,hO_jO@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A19,VEXTRACTF128,jX_hO_ib,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3A19,VEXTRACTF32X4,jX_hO_ib@T128,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A19,VEXTRACTF64X2,jX_hO_ib@T128,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A1B,VEXTRACTF32X8,jY_hO_ib@T256,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A1B,VEXTRACTF64X4,jY_hO_ib@T256,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A39,VEXTRACTI128,jX_hO_ib,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3A39,VEXTRACTI32X4,jX_hO_ib@T128,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A39,VEXTRACTI64X2,jX_hO_ib@T128,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A3B,VEXTRACTI32X8,jY_hO_ib@T256,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A3B,VEXTRACTI64X4,jY_hO_ib@T256,Xpfx=EVEX,Epfx=66,W=1
DisTab 56,VFCMADDCPH,hO_vO_jO@FV32,Xpfx=EVEX6,Epfx=F2,W=0
DisTab 56,VFMADDCPH,hO_vO_jO@FV32,Xpfx=EVEX6,Epfx=F3,W=0
DisTab 57,VFCMADDCSH,hO_vO_jO@T32,Xpfx=EVEX6,Epfx=F2,W=0
DisTab 57,VFMADDCSH,hO_vO_jO@T32,Xpfx=EVEX6,Epfx=F3,W=0
DisTab D6,VFCMULCPH,hO_vO_jO@FV32,Xpfx=EVEX6,Epfx=F2,W=0
DisTab D6,VFMULCPH,hO_vO_jO@FV32,Xpfx=EVEX6,Epfx=F3,W=0
DisTab D7,VFCMULCSH,hO_vO_jO@T32,Xpfx=EVEX6,Epfx=F2,W=0
DisTab D7,VFMULCSH,hO_vO_jO@T32,Xpfx=EVEX6,Epfx=F3,W=0
DisTab 0F3A54,VFIXUPIMMPD,hO_vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A54,VFIXUPIMMPS,hO_vO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A55,VFIXUPIMMSD,hO_vO_jO_ib@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A55,VFIXUPIMMSS,hO_vO_jO_ib@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3898,VFMADD132PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38A8,VFMADD213PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38B8,VFMADD231PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F3898,VFMADD132PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38A8,VFMADD213PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38B8,VFMADD231PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 98,VFMADD132PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab A8,VFMADD213PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab B8,VFMADD231PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 9C,VFNMADD132PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab AC,VFNMADD213PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab BC,VFNMADD231PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 0F3898,VFMADD132PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38A8,VFMADD213PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38B8,VFMADD231PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3898,VFMADD132PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38A8,VFMADD213PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38B8,VFMADD231PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3899,VFMADD132SD,hX_vX_jX,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38A9,VFMADD213SD,hX_vX_jX,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38B9,VFMADD231SD,hX_vX_jX,Xpfx=VEX,Epfx=66,W=1
DisTab 0F3899,VFMADD132SD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38A9,VFMADD213SD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38B9,VFMADD231SD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 99,VFMADD132SH,hX_vX_jX@T16,Xpfx=EVEX6,Epfx=66,W=0
DisTab A9,VFMADD213SH,hX_vX_jX@T16,Xpfx=EVEX6,Epfx=66,W=0
DisTab B9,VFMADD231SH,hX_vX_jX@T16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 9D,VFNMADD132SH,hX_vX_jX@T16,Xpfx=EVEX6,Epfx=66,W=0
DisTab AD,VFNMADD213SH,hX_vX_jX@T16,Xpfx=EVEX6,Epfx=66,W=0
DisTab BD,VFNMADD231SH,hX_vX_jX@T16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 0F3899,VFMADD132SS,hX_vX_jX,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38A9,VFMADD213SS,hX_vX_jX,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38B9,VFMADD231SS,hX_vX_jX,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3899,VFMADD132SS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38A9,VFMADD213SS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38B9,VFMADD231SS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3896,VFMADDSUB132PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38A6,VFMADDSUB213PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38B6,VFMADDSUB231PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F3896,VFMADDSUB132PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38A6,VFMADDSUB213PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38B6,VFMADDSUB231PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 96,VFMADDSUB132PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab A6,VFMADDSUB213PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab B6,VFMADDSUB231PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 0F3896,VFMADDSUB132PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38A6,VFMADDSUB213PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38B6,VFMADDSUB231PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3896,VFMADDSUB132PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38A6,VFMADDSUB213PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38B6,VFMADDSUB231PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F389A,VFMSUB132PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38AA,VFMSUB213PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38BA,VFMSUB231PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F389A,VFMSUB132PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38AA,VFMSUB213PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38BA,VFMSUB231PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 9A,VFMSUB132PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab AA,VFMSUB213PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab BA,VFMSUB231PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 9E,VFNMSUB132PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab AE,VFNMSUB213PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab BE,VFNMSUB231PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 0F389A,VFMSUB132PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38AA,VFMSUB213PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38BA,VFMSUB231PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F389A,VFMSUB132PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38AA,VFMSUB213PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38BA,VFMSUB231PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F389B,VFMSUB132SD,hX_vX_jX,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38AB,VFMSUB213SD,hX_vX_jX,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38BB,VFMSUB231SD,hX_vX_jX,Xpfx=VEX,Epfx=66,W=1
DisTab 0F389B,VFMSUB132SD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38AB,VFMSUB213SD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38BB,VFMSUB231SD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 9B,VFMSUB132SH,hX_vX_jX@T16,Xpfx=EVEX6,Epfx=66,W=0
DisTab AB,VFMSUB213SH,hX_vX_jX@T16,Xpfx=EVEX6,Epfx=66,W=0
DisTab BB,VFMSUB231SH,hX_vX_jX@T16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 9F,VFNMSUB132SH,hX_vX_jX@T16,Xpfx=EVEX6,Epfx=66,W=0
DisTab AF,VFNMSUB213SH,hX_vX_jX@T16,Xpfx=EVEX6,Epfx=66,W=0
DisTab BF,VFNMSUB231SH,hX_vX_jX@T16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 0F389B,VFMSUB132SS,hX_vX_jX,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38AB,VFMSUB213SS,hX_vX_jX,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38BB,VFMSUB231SS,hX_vX_jX,Xpfx=VEX,Epfx=66,W=0
DisTab 0F389B,VFMSUB132SS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38AB,VFMSUB213SS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38BB,VFMSUB231SS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3897,VFMSUBADD132PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38A7,VFMSUBADD213PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38B7,VFMSUBADD231PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F3897,VFMSUBADD132PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38A7,VFMSUBADD213PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38B7,VFMSUBADD231PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 97,VFMSUBADD132PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab A7,VFMSUBADD213PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab B7,VFMSUBADD231PH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 0F3897,VFMSUBADD132PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38A7,VFMSUBADD213PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38B7,VFMSUBADD231PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3897,VFMSUBADD132PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38A7,VFMSUBADD213PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38B7,VFMSUBADD231PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F389C,VFNMADD132PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38AC,VFNMADD213PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38BC,VFNMADD231PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F389C,VFNMADD132PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38AC,VFNMADD213PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38BC,VFNMADD231PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F389C,VFNMADD132PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38AC,VFNMADD213PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38BC,VFNMADD231PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F389C,VFNMADD132PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38AC,VFNMADD213PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38BC,VFNMADD231PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F389D,VFNMADD132SD,hX_vX_jX,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38AD,VFNMADD213SD,hX_vX_jX,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38BD,VFNMADD231SD,hX_vX_jX,Xpfx=VEX,Epfx=66,W=1
DisTab 0F389D,VFNMADD132SD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38AD,VFNMADD213SD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38BD,VFNMADD231SD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F389D,VFNMADD132SS,hX_vX_jX,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38AD,VFNMADD213SS,hX_vX_jX,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38BD,VFNMADD231SS,hX_vX_jX,Xpfx=VEX,Epfx=66,W=0
DisTab 0F389D,VFNMADD132SS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38AD,VFNMADD213SS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38BD,VFNMADD231SS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F389E,VFNMSUB132PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38AE,VFNMSUB213PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38BE,VFNMSUB231PD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F389E,VFNMSUB132PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38AE,VFNMSUB213PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38BE,VFNMSUB231PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F389E,VFNMSUB132PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38AE,VFNMSUB213PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38BE,VFNMSUB231PS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F389E,VFNMSUB132PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38AE,VFNMSUB213PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38BE,VFNMSUB231PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F389F,VFNMSUB132SD,hX_vX_jX,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38AF,VFNMSUB213SD,hX_vX_jX,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38BF,VFNMSUB231SD,hX_vX_jX,Xpfx=VEX,Epfx=66,W=1
DisTab 0F389F,VFNMSUB132SD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38AF,VFNMSUB213SD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38BF,VFNMSUB231SD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F389F,VFNMSUB132SS,hX_vX_jX,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38AF,VFNMSUB213SS,hX_vX_jX,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38BF,VFNMSUB231SS,hX_vX_jX,Xpfx=VEX,Epfx=66,W=0
DisTab 0F389F,VFNMSUB132SS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38AF,VFNMSUB213SS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38BF,VFNMSUB231SS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A66,VFPCLASSPD,hK_jO_ib@DATAo@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A66,VFPCLASSPS,hK_jO_ib@DATAo@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A66,VFPCLASSPH,hK_jO_ib@DATAo@FV16,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F3A67,VFPCLASSSD,hK_jX_ib@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A67,VFPCLASSSH,hK_jX_ib@T16,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F3A67,VFPCLASSSS,hK_jX_ib@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3892,VGATHERDPD,hO_jO_vO@VSIB,Xpfx=VEX,Epfx=66,Mod=0,RM=4,W=1
DisTab 0F3893,VGATHERQPD,hO_jO_vO@VSIB,Xpfx=VEX,Epfx=66,Mod=0,RM=4,W=1
DisTab 0F3892,VGATHERDPS,hO_jO@VSIB@T32,Xpfx=EVEX,Epfx=66,Mod=0,RM=4,W=0
DisTab 0F3892,VGATHERDPD,hO_jO@VSIB@T64,Xpfx=EVEX,Epfx=66,Mod=0,RM=4,W=1
DisTab 0F3892,VGATHERDPS,hO_jO_vO@VSIB,Xpfx=VEX,Epfx=66,Mod=0,RM=4,W=0
DisTab 0F3893,VGATHERQPS,hO_jO_vO@VSIB,Xpfx=VEX,Epfx=66,Mod=0,RM=4,W=0
DisTab 0F3893,VGATHERQPS,hO_jO@VSIB@T32,Xpfx=EVEX,Epfx=66,Mod=0,RM=4,W=0
DisTab 0F3893,VGATHERQPD,hO_jO@VSIB@T64,Xpfx=EVEX,Epfx=66,Mod=0,RM=4,W=1
DisTab 0F3842,VGETEXPPD,hO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 42,VGETEXPPH,hO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 0F3842,VGETEXPPS,hO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3843,VGETEXPSD,hO_vO_jO@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 43,VGETEXPSH,hO_vO_jO@T16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 0F3843,VGETEXPSS,hO_vO_jO@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A26,VGETMANTPD,hO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A26,VGETMANTPH,hO_jO_ib@FV16,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F3A26,VGETMANTPS,hO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A27,VGETMANTSD,hX_vX_jX_ib@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A27,VGETMANTSH,hO_vO_jO@T16,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F3A27,VGETMANTSS,hX_vX_jX_ib@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A18,VINSERTF128,hO_vO_jX_ib,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3A18,VINSERTF32X4,hO_vO_jX_ib@T128,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A18,VINSERTF64X2,hO_vO_jX_ib@T128,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A1A,VINSERTF32X8,hO_vO_jY_ib@T256,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A1A,VINSERTF64X4,hO_vO_jY_ib@T256,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A38,VINSERTI128,hO_vO_jX_ib,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3A38,VINSERTI32X4,hO_vO_jX_ib@T128,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A38,VINSERTI64X2,hO_vO_jX_ib@T128,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A3A,VINSERTI32X8,hO_vO_jY_ib@T256,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A3A,VINSERTI64X4,hO_vO_jY_ib@T256,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F382C,VMASKMOVPS,hO_vO_jO,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F382D,VMASKMOVPD,hO_vO_jO,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F382E,VMASKMOVPS,jO_vO_hO,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F382F,VMASKMOVPD,jO_vO_hO,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 5F,VMAXPH,hO_vO_jO@FV16,Xpfx=EVEX5,Epfx=NP,W=0
DisTab 5F,VMAXSH,hO_vO_jO@T16,Xpfx=EVEX5,Epfx=F3,W=0
DisTab 5D,VMINPH,hO_vO_jO@FV16,Xpfx=EVEX5,Epfx=NP,W=0
DisTab 5D,VMINSH,hO_vO_jO@T16,Xpfx=EVEX5,Epfx=F3,W=0
DisTab 10,VMOVSH,hO_jO@T16,Xpfx=EVEX5,Epfx=F3,Mod=0,W=0
DisTab 11,VMOVSH,jO_hO@T16,Xpfx=EVEX5,Epfx=F3,Mod=0,W=0
DisTab 10,VMOVSH,hO_vO_jO,Xpfx=EVEX5,Epfx=F3,Mod=3,W=0
DisTab 11,VMOVSH,jO_vO_hO,Xpfx=EVEX5,Epfx=F3,Mod=3,W=0
DisTab 6E,VMOVW,hO_jRw@DATAw@T16,Xpfx=EVEX5,Epfx=66
DisTab 7E,VMOVW,jRw_hO@DATAw@T16,Xpfx=EVEX5,Epfx=66
DisTab 59,VMULPH,hO_vO_jO@FV16,Xpfx=EVEX5,Epfx=NP,W=0
DisTab 59,VMULSH,hO_vO_jO@T16,Xpfx=EVEX5,Epfx=F3,W=0
DisTab 0F3868,VP2INTERSECTD,hK_vO_jO@FV32,Xpfx=EVEX,Epfx=F2,W=0
DisTab 0F3868,VP2INTERSECTQ,hK_vO_jO@FV64,Xpfx=EVEX,Epfx=F2,W=1
DisTab 0F3A02,VPBLENDD,hO_vO_jO_ib,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3866,VPBLENDMB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3866,VPBLENDMW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3864,VPBLENDMD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3864,VPBLENDMQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3878,VPBROADCASTB,hO_jX,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3878,VPBROADCASTB,hO_jX@T8,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3879,VPBROADCASTW,hO_jX,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3879,VPBROADCASTW,hO_jX@T16,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3858,VPBROADCASTD,hO_jX,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3858,VPBROADCASTD,hO_jX@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3859,VPBROADCASTQ,hO_jX,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3859,VPBROADCASTQ,hO_jX@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3859,VBROADCASTI32X2,hO_jX@T64,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F385A,VBROADCASTI128, hO_jO,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F385A,VBROADCASTI32X4,hO_jO@T128,Xpfx=EVEX,Epfx=66,Mod=0,W=0
DisTab 0F385A,VBROADCASTI64X2,hO_jO@T128,Xpfx=EVEX,Epfx=66,Mod=0,W=1
DisTab 0F385B,VBROADCASTI32X8,hO_jO@T256,Xpfx=EVEX,Epfx=66,Mod=0,W=0
DisTab 0F385B,VBROADCASTI64X4,hO_jO@T256,Xpfx=EVEX,Epfx=66,Mod=0,W=1
DisTab 0F387A,VPBROADCASTB,hO_jRb@T8,Xpfx=EVEX,Epfx=66,Mod=3,W=0
DisTab 0F387B,VPBROADCASTW,hO_jRw@T16,Xpfx=EVEX,Epfx=66,Mod=3,W=0
DisTab 0F387C,VPBROADCASTD,hO_jRd@T32,Xpfx=EVEX,Epfx=66,Mod=3,W=0
DisTab 0F387C,VPBROADCASTQ,hO_jRq@T64,Xpfx=EVEX,Epfx=66,Mod=3,W=1
DisTab 0F382A,VPBROADCASTMB2Q,hO_jK,Xpfx=EVEX,Epfx=F3,Mod=3,W=1
DisTab 0F383A,VPBROADCASTMW2D,hO_jK,Xpfx=EVEX,Epfx=F3,Mod=3,W=0
DisTab 0F3A3F,VPCMPB,hK_vO_jO_ib@FVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A3E,VPCMPUB,hK_vO_jO_ib@FVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A1F,VPCMPD,hK_vO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A1E,VPCMPUD,hK_vO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A1F,VPCMPQ,hK_vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A1E,VPCMPUQ,hK_vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A3F,VPCMPW,hK_vO_jO_ib@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A3E,VPCMPUW,hK_vO_jO_ib@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3863,VPCOMPRESSB,jO_hO@T8,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3863,VPCOMPRESSW,jO_hO@T8,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F388B,VPCOMPRESSD,jO_hO@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F388B,VPCOMPRESSQ,jO_hO@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38C4,VPCONFLICTD,hO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38C4,VPCONFLICTQ,hO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3850,VPDPBSSD,hO_vO_jO,Xpfx=VEX,Epfx=F2,W=0
DisTab 0F3851,VPDPBSSDS,hO_vO_jO,Xpfx=VEX,Epfx=F2,W=0
DisTab 0F3850,VPDPBSUD,hO_vO_jO,Xpfx=VEX,Epfx=F3,W=0
DisTab 0F3851,VPDPBSUDS,hO_vO_jO,Xpfx=VEX,Epfx=F3,W=0
DisTab 0F3850,VPDPBUUD,hO_vO_jO,Xpfx=VEX,Epfx=NP,W=0
DisTab 0F3851,VPDPBUUDS,hO_vO_jO,Xpfx=VEX,Epfx=NP,W=0
DisTab 0F3850,VPDPBUSD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3850,VPDPBUSD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3851,VPDPBUSDS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3851,VPDPBUSDS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3852,VPDPWSSD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3852,VPDPWSSD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3853,VPDPWSSDS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3853,VPDPWSSDS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38D2,VPDPWSUD,hO_vO_jO,Xpfx=VEX,Epfx=F3,W=0
DisTab 0F38D3,VPDPWSUDS,hO_vO_jO,Xpfx=VEX,Epfx=F3,W=0
DisTab 0F38D2,VPDPWUSD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38D3,VPDPWUSDS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38D2,VPDPWUUD,hO_vO_jO,Xpfx=VEX,Epfx=NP,W=0
DisTab 0F38D3,VPDPWUUDS,hO_vO_jO,Xpfx=VEX,Epfx=NP,W=0
DisTab 0F3A06,VPERM2F128,hY_vY_jY_ib,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3A46,VPERM2I128,hY_vY_jY_ib,Xpfx=VEX,Epfx=66,W=0
DisTab 0F388D,VPERMB,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3836,VPERMD,hY_vY_jY,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3836,VPERMD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F388D,VPERMW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3875,VPERMI2B,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3875,VPERMI2W,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3876,VPERMI2D,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3876,VPERMI2Q,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3877,VPERMI2PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3877,VPERMI2PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F380D,VPERMILPD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F380D,VPERMILPD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A05,VPERMILPD,hO_jO_ib,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3A05,VPERMILPD,hO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F380C,VPERMILPS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3A04,VPERMILPS,hO_jO_ib,Xpfx=VEX,Epfx=66,W=0
DisTab 0F380C,VPERMILPS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A04,VPERMILPS,hO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A01,VPERMPD,hO_jO_ib,Xpfx=VEX,Epfx=66,W=1
DisTab 0F3A01,VPERMPD,hO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3816,VPERMPD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3816,VPERMPS,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3816,VPERMPS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A00,VPERMQ,hY_jY_ib,Xpfx=VEX,Epfx=66,W=1
DisTab 0F3A00,VPERMQ,hO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3836,VPERMQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F387D,VPERMT2B,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F387D,VPERMT2W,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F387E,VPERMT2D,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F387E,VPERMT2Q,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F387F,VPERMT2PS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F387F,VPERMT2PD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3862,VPEXPANDB,hO_jO@T8,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3862,VPEXPANDW,hO_jO@T16,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3889,VPEXPANDD,hO_jO@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3889,VPEXPANDQ,hO_jO@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3890,VPGATHERDD,hO_jO@VSIB@T32,Xpfx=EVEX,Epfx=66,Mod=0,RM=4,W=0
DisTab 0F3890,VPGATHERDQ,hO_jO@VSIB@T64,Xpfx=EVEX,Epfx=66,Mod=0,RM=4,W=1
DisTab 0F3890,VPGATHERDD,hO_jO_vO@VSIB,Xpfx=VEX,Epfx=66,Mod=0,RM=4,W=0
DisTab 0F3891,VPGATHERQD,hO_jO_vO@VSIB,Xpfx=VEX,Epfx=66,Mod=0,RM=4,W=0
DisTab 0F3890,VPGATHERDQ,hO_jO_vO@VSIB,Xpfx=VEX,Epfx=66,Mod=0,RM=4,W=1
DisTab 0F3891,VPGATHERQQ,hO_jO_vO@VSIB,Xpfx=VEX,Epfx=66,Mod=0,RM=4,W=1
DisTab 0F3891,VPGATHERQD,hO_jO@VSIB@T32,Xpfx=EVEX,Epfx=66,Mod=0,RM=4,W=0
DisTab 0F3891,VPGATHERQQ,hO_jO@VSIB@T64,Xpfx=EVEX,Epfx=66,Mod=0,RM=4,W=1
DisTab 0F3844,VPLZCNTD,hO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3844,VPLZCNTQ,hO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38B5,VPMADD52HUQ,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38B5,VPMADD52HUQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38B4,VPMADD52LUQ,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F38B4,VPMADD52LUQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F388C,VPMASKMOVD,hO_vO_jO,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F388C,VPMASKMOVQ,hO_vO_jO,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F388E,VPMASKMOVD,jO_vO_hO,Xpfx=VEX,Epfx=66,Mod=0,W=0
DisTab 0F388E,VPMASKMOVQ,jO_vO_hO,Xpfx=VEX,Epfx=66,Mod=0,W=1
DisTab 0F3829,VPMOVB2M,hK_jO,Xpfx=EVEX,Epfx=F3,Mod=3,W=0
DisTab 0F3829,VPMOVW2M,hK_jO,Xpfx=EVEX,Epfx=F3,Mod=3,W=1
DisTab 0F3839,VPMOVD2M,hK_jO,Xpfx=EVEX,Epfx=F3,Mod=3,W=0
DisTab 0F3839,VPMOVQ2M,hK_jO,Xpfx=EVEX,Epfx=F3,Mod=3,W=1
DisTab 0F3831,VPMOVDB,jX_hO@QVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3821,VPMOVSDB,jX_hO@QVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3811,VPMOVUSDB,jX_hO@QVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3833,VPMOVDW,jXXY_hO@HVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3823,VPMOVSDW,jXXY_hO@HVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3813,VPMOVUSDW,jXXY_hO@HVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3828,VPMOVM2B,hO_jK,Xpfx=EVEX,Epfx=F3,Mod=3,W=0
DisTab 0F3828,VPMOVM2W,hO_jK,Xpfx=EVEX,Epfx=F3,Mod=3,W=1
DisTab 0F3838,VPMOVM2D,hO_jK,Xpfx=EVEX,Epfx=F3,Mod=3,W=0
DisTab 0F3838,VPMOVM2Q,hO_jK,Xpfx=EVEX,Epfx=F3,Mod=3,W=1
DisTab 0F3832,VPMOVQB,jX_hO@OVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3822,VPMOVSQB,jX_hO@OVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3812,VPMOVUSQB,jX_hO@OVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3835,VPMOVQD,jXXY_hO@HVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3825,VPMOVSQD,jXXY_hO@HVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3815,VPMOVUSQD,jXXY_hO@HVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3834,VPMOVQW,jX_hO@QVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3824,VPMOVSQW,jX_hO@QVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3814,VPMOVUSQW,jX_hO@QVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3830,VPMOVWB,jXXY_hO@HVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3820,VPMOVSWB,jXXY_hO@HVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3810,VPMOVUSWB,jXXY_hO@HVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3883,VPMULTISHIFTQB,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3854,VPOPCNTB,hO_jO@FVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3854,VPOPCNTW,hO_jO@FVM,Xpfx=EVEX,Epfx=66,W=1
;;DisTab 0F3855,VPOPCNTD,hO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3855,VPOPCNTD,hO_jO@FV64,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3855,VPOPCNTQ,hO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3815,VPROLVD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F72,VPROLD,vO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,RegOp=1,W=0
DisTab 0F3815,VPROLVQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F72,VPROLQ,vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,RegOp=1,W=1
DisTab 0F3814,VPRORVD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F72,VPRORD,vO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,RegOp=0,W=0
DisTab 0F3814,VPRORVQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F72,VPRORQ,vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,RegOp=0,W=1
DisTab 0F38A0,VPSCATTERDD,jO_hO@VSIB@T32,Xpfx=EVEX,Epfx=66,Mod=0,RM=4,W=0
DisTab 0F38A0,VPSCATTERDQ,jO_hO@VSIB@T64,Xpfx=EVEX,Epfx=66,Mod=0,RM=4,W=1
DisTab 0F38A1,VPSCATTERQD,jO_hO@VSIB@T32,Xpfx=EVEX,Epfx=66,Mod=0,RM=4,W=0
DisTab 0F38A1,VPSCATTERQQ,jO_hO@VSIB@T64,Xpfx=EVEX,Epfx=66,Mod=0,RM=4,W=1
DisTab 0F3A70,VPSHLDW,hO_vO_jO_ib@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A71,VPSHLDD,hO_vO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A71,VPSHLDQ,hO_vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3870,VPSHLDVW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3871,VPSHLDVD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3871,VPSHLDVQ,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A72,VPSHRDW,hO_vO_jO_ib@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A73,VPSHRDD,hO_vO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A73,VPSHRDQ,hO_vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3872,VPSHRDVW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3873,VPSHRDVD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3873,VPSHRDVQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38BF,VPSHUFBITQMB,hK_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3847,VPSLLVD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3847,VPSLLVQ,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F3812,VPSLLVW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3847,VPSLLVD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3847,VPSLLVD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3847,VPSLLVQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3847,VPSLLVQ,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F3846,VPSRAVD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3811,VPSRAVW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3846,VPSRAVD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3846,VPSRAVQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3845,VPSRLVD,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3845,VPSRLVQ,hO_vO_jO,Xpfx=VEX,Epfx=66,W=1
DisTab 0F3810,VPSRLVW,hO_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3845,VPSRLVD,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3845,VPSRLVQ,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A25,VPTERNLOGD,hO_vO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A25,VPTERNLOGQ,hO_vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3826,VPTESTMB,hK_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3826,VPTESTMW,hK_vO_jO@FVM,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3827,VPTESTMD,hK_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3827,VPTESTMQ,hK_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3826,VPTESTNMB,hK_vO_jO@FVM,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3826,VPTESTNMW,hK_vO_jO@FVM,Xpfx=EVEX,Epfx=F3,W=1
DisTab 0F3827,VPTESTNMD,hK_vO_jO@FV32,Xpfx=EVEX,Epfx=F3,W=0
DisTab 0F3827,VPTESTNMQ,hK_vO_jO@FV64,Xpfx=EVEX,Epfx=F3,W=1
DisTab 0F3A50,VRANGEPD,hO_vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A50,VRANGEPS,hO_vO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A51,VRANGESD,hX_vX_jX_ib@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A51,VRANGESS,hX_vX_jX_ib@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F384C,VRCP14PD,hO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F384C,VRCP14PS,hO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F384D,VRCP14SD,hO_vO_jO@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F384D,VRCP14SS,hO_vO_jO@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 4C,VRCPPH,hO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 4D,VRCPSH,hO_vO_jO@T16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 0F3A56,VREDUCEPD,hO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A56,VREDUCEPH,hO_jO_ib@FV16,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F3A56,VREDUCEPS,hO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A57,VREDUCESD,hX_vX_jX_ib@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A57,VREDUCESH,hX_vX_jX_ib@T16,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F3A57,VREDUCESS,hX_vX_jX_ib@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A09,VRNDSCALEPD,hO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A08,VRNDSCALEPH,hO_jO_ib@FV16,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F3A08,VRNDSCALEPS,hO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A0B,VRNDSCALESD,hX_vX_jX_ib@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A0A,VRNDSCALESH,hX_vX_jX_ib@T16,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F3A0A,VRNDSCALESS,hX_vX_jX_ib@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F384E,VRSQRT14PD,hO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F384E,VRSQRT14PS,hO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F384F,VRSQRT14SD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F384F,VRSQRT14SS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 4E,VRSQRTPH,hO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 4F,VRSQRTSH,hX_vX_jX@T16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 0F382C,VSCALEFPD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 2C,VSCALEFPH,hO_vO_jO@FV16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 0F382C,VSCALEFPS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F382D,VSCALEFSD,hX_vX_jX@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 2D,VSCALEFSH,hX_vX_jX@T16,Xpfx=EVEX6,Epfx=66,W=0
DisTab 0F382D,VSCALEFSS,hX_vX_jX@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38A2,VSCATTERDPS,jO_hO@VSIB@T32,Xpfx=EVEX,Epfx=66,Mod=0,RM=4,W=0
DisTab 0F38A2,VSCATTERDPD,jO_hO@VSIB@T64,Xpfx=EVEX,Epfx=66,Mod=0,RM=4,W=1
DisTab 0F38A3,VSCATTERQPS,jO_hO@VSIB@T32,Xpfx=EVEX,Epfx=66,Mod=0,RM=4,W=0
DisTab 0F38A3,VSCATTERQPD,jO_hO@VSIB@T64,Xpfx=EVEX,Epfx=66,Mod=0,RM=4,W=1
DisTab 0F38CC,VSHA512MSG1,hO_jO,Xpfx=VEX,Epfx=F2,Mod=3,W=0
DisTab 0F38CD,VSHA512MSG2,hO_jO,Xpfx=VEX,Epfx=F2,Mod=3,W=0
DisTab 0F38CB,VSHA512RNDS2,hO_vO_jO,Xpfx=VEX,Epfx=F2,Mod=3,W=0
DisTab 0F3A23,VSHUFF32X4,hO_vO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A23,VSHUFF64X2,hO_vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F3A43,VSHUFI32X4,hO_vO_jO_ib@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F3A43,VSHUFI64X2,hO_vO_jO_ib@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38DA,VSM3MSG1,hO_vO_jO,Xpfx=VEX,Epfx=NP,W=0
DisTab 0F38DA,VSM3MSG2,hO_vO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F3ADE,VSM3RNDS2,hO_vO_jO_ib,Xpfx=VEX,Epfx=66,W=0
DisTab 0F38DA,VSM4KEY4,hO_vO_jO,Xpfx=VEX,Epfx=F3,W=0
DisTab 0F38DA,VSM4RNDS4,hO_vO_jO,Xpfx=VEX,Epfx=F2,W=0
DisTab 51,VSQRTPH,hO_jO@FV16,Xpfx=EVEX5,Epfx=NP,W=0
DisTab 51,VSQRTSH,hO_vO_jO@T16,Xpfx=EVEX5,Epfx=F3,W=0
DisTab 5C,VSUBPH,hO_vO_jO@FV16,Xpfx=EVEX5,Epfx=NP,W=0
DisTab 5C,VSUBSH,hO_vO_jO@T16,Xpfx=EVEX5,Epfx=F3,W=0
DisTab 0F380E,VTESTPS,hO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 0F380F,VTESTPD,hO_jO,Xpfx=VEX,Epfx=66,W=0
DisTab 2E,VUCOMISH,hO_jO@T16,Xpfx=EVEX5,Epfx=NP,W=0
DisTab 0F77,,@vzero,Xpfx=VEX
DisTab 0F77,,@vzero,Xpfx=VEX
DisTab 0F09,WBINVD,@,Epfx=NP
DisTab 0F09,WBNOINVD,@,Epfx=F3
DisTab 0FAE,WRFSBASE,jR,Epfx=F3,Mod=3,RegOp=2
DisTab 0FAE,WRGSBASE,jR,Epfx=F3,Mod=3,RegOp=3
DisTab 0F30,WRMSR,@,Epfx=NP
DisTab 0F01,WRMSRLIST,@1,Epfx=F3,Mod=3,RegOp=0,RM=6
DisTab 0F01,WRMSRNS,@1,Epfx=NP,Mod=3,RegOp=0,RM=6
DisTab 0F01,WRPKRU,@1,Epfx=NP,Mod=3,RegOp=5,RM=7
DisTab 0F38F6,WRSSD,jR_hRd,Epfx=NP,Mod=0,W=0
DisTab 0F38F6,WRSSQ,jR_hRq,Epfx=NP,Mod=0,W=1
DisTab 0F38F5,WRUSSD,jR_hRd,Epfx=66,Mod=0,W=0
DisTab 0F38F5,WRUSSQ,jR_hRq,Epfx=66,Mod=0,W=1
DisTab C6,XABORT,i8@1,Epfx=NP,Mod=3,RegOp=7,RM=0
DisTab 0FC0,XADD,jRb_hRb
DisTab 0FC1,XADD,jR_hR
DisTab C7,XBEGIN,le@x,Mod=3,RegOp=7,RM=0
DisTab 90,XCHG,eAX_Ropc
DisTab 91,XCHG,eAX_Ropc
DisTab 92,XCHG,eAX_Ropc
DisTab 93,XCHG,eAX_Ropc
DisTab 94,XCHG,eAX_Ropc
DisTab 95,XCHG,eAX_Ropc
DisTab 96,XCHG,eAX_Ropc
DisTab 97,XCHG,eAX_Ropc
DisTab 86,XCHG,hRb_jRb
DisTab 87,XCHG,hR_jR
DisTab 0F01,XEND,@1,Epfx=NP,Mod=3,RegOp=2,RM=5
DisTab 0F01,XGETBV,@1,Epfx=NP,Mod=3,RegOp=2,RM=0
DisTab D7,XLAT,@xlat
DisTab 34,XOR,AL_ib@CODEs
DisTab 35,XOR,aAX_ie@CODEs
DisTab 80,XOR,jRb_i8@DATAb@CODEl,RegOp=6
DisTab 81,XOR,jR_ie,RegOp=6
DisTab 83,XOR,jR_ibse@DATAa@CODEl,RegOp=6
DisTab 30,XOR,jRb_hRb
DisTab 31,XOR,jR_hR
DisTab 32,XOR,hRb_jRb
DisTab 33,XOR,hR_jR
DisTab 0F57,XORPD,hO_jO,Epfx=66
DisTab 0F57,VXORPD,hO_vO_jO,Xpfx=VEX,Epfx=66
DisTab 0F57,VXORPD,hO_vO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F57,XORPS,hO_jO,Epfx=NP
DisTab 0F57,VXORPS,hO_vO_jO,Xpfx=VEX,Epfx=NP
DisTab 0F57,VXORPS,hO_vO_jO@FV32,Xpfx=EVEX,Epfx=NP,W=0
DisTab 0F01,XRESLDTRK,@1,Epfx=F2,Mod=3,RegOp=5,RM=1
DisTab 0FAE,XRSTOR,jR,Epfx=NP,Mod=0,RegOp=5,W=0
DisTab 0FAE,XRSTOR64,jR,Epfx=NP,Mod=0,RegOp=5,W=1
DisTab 0FC7,XRSTORS,jR,Epfx=NP,Mod=0,RegOp=3,W=0
DisTab 0FC7,XRSTORS64,jR,Epfx=NP,Mod=0,RegOp=3,W=1
DisTab 0FAE,XSAVE,jR,Epfx=NP,Mod=0,RegOp=4,W=0
DisTab 0FAE,XSAVE64,jR,Epfx=NP,Mod=0,RegOp=4,W=1
DisTab 0FC7,XSAVEC,jR,Epfx=NP,Mod=0,RegOp=4,W=0
DisTab 0FC7,XSAVEC64,jR,Epfx=NP,Mod=0,RegOp=4,W=1,
DisTab 0FAE,XSAVEOPT,jR,Epfx=NP,Mod=0,RegOp=6,W=0
DisTab 0FAE,XSAVEOPT64,jR,Epfx=NP,Mod=0,RegOp=6,W=1
DisTab 0FC7,XSAVES,jR,Epfx=NP,Mod=0,RegOp=5,W=0,
DisTab 0FC7,XSAVES64,jR,Epfx=NP,Mod=0,RegOp=5,W=1,
DisTab 0F01,XSETBV,@1,Epfx=NP,Mod=3,RegOp=2,RM=1
DisTab 0F01,XSUSLDTRK,@1,Epfx=F2,Mod=3,RegOp=5,RM=0
DisTab 0F01,XTEST,@1,Epfx=NP,Mod=3,RegOp=2,RM=6
DisTab 0F37,GETSEC,@,Epfx=NP
DisTab 0F0D,PREFETCHWT1,jR,Epfx=NP,Mod=0,RegOp=2
DisTab 0F389A,V4FMADDPS,hO_vO_jO@T128,Xpfx=EVEX,Epfx=F2,Mod=0,W=0
DisTab 0F38AA,V4FNMADDPS,hO_vO_jO@T128,Xpfx=EVEX,Epfx=F2,Mod=0,W=0
DisTab 0F389B,V4FMADDSS,hO_vO_jO@T128,Xpfx=EVEX,Epfx=F2,Mod=0,W=0
DisTab 0F38AB,V4FNMADDSS,hO_vO_jO@T128,Xpfx=EVEX,Epfx=F2,Mod=0,W=0
DisTab 0F38C8,VEXP2PD,hO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38C8,VEXP2PS,hO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38C6,VGATHERPF0DPS,jO@VSIB@DATAd@T32,Xpfx=EVEX,Epfx=66,Mod=0,RegOp=1,RM=4,W=0
DisTab 0F38C7,VGATHERPF0QPS,jO@VSIB@DATAd@T32,Xpfx=EVEX,Epfx=66,Mod=0,RegOp=1,RM=4,W=0
DisTab 0F38C6,VGATHERPF0DPD,jO@VSIB@DATAq@T64,Xpfx=EVEX,Epfx=66,Mod=0,RegOp=1,RM=4,W=1
DisTab 0F38C7,VGATHERPF0QPD,jO@VSIB@DATAq@T64,Xpfx=EVEX,Epfx=66,Mod=0,RegOp=1,RM=4,W=1
DisTab 0F38C6,VGATHERPF1DPS,jO@VSIB@DATAd@T32,Xpfx=EVEX,Epfx=66,Mod=0,RegOp=2,RM=4,W=0
DisTab 0F38C7,VGATHERPF1QPS,jO@VSIB@DATAd@T32,Xpfx=EVEX,Epfx=66,Mod=0,RegOp=2,RM=4,W=0
DisTab 0F38C6,VGATHERPF1DPD,jO@VSIB@DATAq@T64,Xpfx=EVEX,Epfx=66,Mod=0,RegOp=2,RM=4,W=1
DisTab 0F38C7,VGATHERPF1QPD,jO@VSIB@DATAq@T64,Xpfx=EVEX,Epfx=66,Mod=0,RegOp=2,RM=4,W=1
DisTab 0F3853,VP4DPWSSDS,hO_vO_jO@T128,Xpfx=EVEX,Epfx=F2,Mod=0,W=0
DisTab 0F3852,VP4DPWSSD,hO_vO_jO@T128,Xpfx=EVEX,Epfx=F2,Mod=0,W=0
DisTab 0F38CA,VRCP28PD,hO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38CB,VRCP28SD,hO_vO_jO@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38CA,VRCP28PS,hO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38CB,VRCP28SS,hO_vO_jO@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38CC,VRSQRT28PD,hO_jO@FV64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38CD,VRSQRT28SD,hO_vO_jO@T64,Xpfx=EVEX,Epfx=66,W=1
DisTab 0F38CC,VRSQRT28PS,hO_jO@FV32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38CD,VRSQRT28SS,hO_vO_jO@T32,Xpfx=EVEX,Epfx=66,W=0
DisTab 0F38C6,VSCATTERPF0DPS,jO@VSIB@DATAd@T32,Xpfx=EVEX,Epfx=66,Mod=0,RegOp=5,RM=4,W=0
DisTab 0F38C7,VSCATTERPF0QPS,jO@VSIB@DATAd@T32,Xpfx=EVEX,Epfx=66,Mod=0,RegOp=5,RM=4,W=0
DisTab 0F38C6,VSCATTERPF0DPD,jO@VSIB@DATAq@T64,Xpfx=EVEX,Epfx=66,Mod=0,RegOp=5,RM=4,W=1
DisTab 0F38C7,VSCATTERPF0QPD,jO@VSIB@DATAq@T64,Xpfx=EVEX,Epfx=66,Mod=0,RegOp=5,RM=4,W=1
DisTab 0F38C6,VSCATTERPF1DPS,jO@VSIB@DATAd@T32,Xpfx=EVEX,Epfx=66,Mod=0,RegOp=6,RM=4,W=0
DisTab 0F38C7,VSCATTERPF1QPS,jO@VSIB@DATAd@T32,Xpfx=EVEX,Epfx=66,Mod=0,RegOp=6,RM=4,W=0
DisTab 0F38C6,VSCATTERPF1DPD,jO@VSIB@DATAq@T64,Xpfx=EVEX,Epfx=66,Mod=0,RegOp=6,RM=4,W=1
DisTab 0F38C7,VSCATTERPF1QPD,jO@VSIB@DATAq@T64,Xpfx=EVEX,Epfx=66,Mod=0,RegOp=6,RM=4,W=1

; Instruction in the order in [AMDVol3]
DisTab 0F01,CLGI,@1,Epfx=NP,Mod=3,RegOp=3,RM=5,W=0  ; AMD,SVM
DisTab 0FAE,INCSSP,jR,Epfx=F3,Mod=3,RegOp=5
DisTab 0F01,INVLPGA,@1,Epfx=NP,Mod=3,RegOp=3,RM=7     ; AMD ,PRIV  INVLPGA rAX,ECX
DisTab 0F01,INVLPGB,@1,Epfx=NP,Mod=3,RegOp=7,RM=6 ; PRIV
DisTab 0F01,PSMASH,@1,Epfx=F3,Mod=3,RegOp=7,RM=7
DisTab 0F01,PVALIDATE,@1,Epfx=F2,Mod=3,RegOp=7,RM=7         ; AMD PRIV
DisTab 0F1E,RDSSP,jR,Epfx=F3,Mod=3,RegOp=1
DisTab 0F01,RMPADJUST,@1,Epfx=F3,Mode=64,Mod=3,RegOp=7,RM=6 ; PRIV
DisTab 0F01,RMPQUERY,@1,Epfx=F3,Mode=64,Mod=3,RegOp=7,RM=5  ; PRIV
DisTab 0F01,RMPREAD,@1,Epfx=F2,Mode=64,Mod=3,RegOp=7,RM=5   ; PRIV
DisTab 0F01,RMPUPDATE,@1,Epfx=F2,Mode=64,Mod=3,RegOp=7,RM=6 ; PRIV
DisTab 0F01,SKINIT,@1,Epfx=NP,Mod=3,RegOp=3,RM=6          ; SVM
DisTab 0F01,STGI,@1,Epfx=NP,Mod=3,RegOp=3,RM=4              ; SVM
DisTab 0F01,TLBSYNC,@1,Epfx=NP,Mod=3,RegOp=7,RM=7           ; PRIV
DisTab 0F01,VMLOAD,@1,Epfx=NP,Mod=3,RegOp=3,RM=2            ; SVM
DisTab 0F01,VMMCALL,@1,Epfx=NP,Mod=3,RegOp=3,RM=1           ; SVM
DisTab 0F01,VMGEXIT,@1,Epfx=F2,Mod=3,RegOp=3,RM=1           ; SVM
DisTab 0F01,VMGEXIT,@1,Epfx=F3,Mod=3,RegOp=3,RM=1           ; SVM
DisTab 0F01,VMRUN,@1,Epfx=NP,Mod=3,RegOp=3,RM=0             ; SVM
DisTab 0F01,VMSAVE,@1,Epfx=NP,Mod=3,RegOp=3,RM=3            ; SVM
DisTab 0F01,MONITORX,@1,Epfx=NP,Mod=3,RegOp=7,RM=2
DisTab 0F01,CLZERO,@1,Epfx=NP,Mod=3,RegOp=7,RM=4
DisTab 0A10,BEXTR,hR_jR_id,Xpfx=XOP,Epfx=NP
DisTab 0901,BLCFILL,vR_jR,Xpfx=XOP,Epfx=NP,RegOp=1
DisTab 0902,BLCI,vR_jR,Xpfx=XOP,Epfx=NP,RegOp=6
DisTab 0901,BLCIC,vR_jR,Xpfx=XOP,Epfx=NP,RegOp=5
DisTab 0902,BLCMSK,vR_jR,Xpfx=XOP,Epfx=NP,RegOp=1
DisTab 0901,BLCS,vR_jR,Xpfx=XOP,Epfx=NP,RegOp=3
DisTab 0901,BLSFILL,vR_jR,Xpfx=XOP,Epfx=NP,RegOp=2
DisTab 0901,BLSIC,vR_jR,Xpfx=XOP,Epfx=NP,RegOp=6
DisTab 0912,LLWPCB,jRd,Xpfx=XOP,Epfx=NP,Mod=3,RegOp=0,W=0         ; LWP
DisTab 0912,LLWPCB,jRq,Xpfx=XOP,Epfx=NP,Mod=3,RegOp=0,W=1,Mode=64 ; LWP
DisTab 0A12,LWPINS,vRd_jR_id,Xpfx=XOP,Epfx=NP,RegOp=0,W=0         ; PROT LWP
DisTab 0A12,LWPINS,vRq_jR_id,Xpfx=XOP,Epfx=NP,RegOp=0,W=1,Mode=64 ; PROT LWP
DisTab 0A12,LWPVAL,vRd_jR_id,Xpfx=XOP,Epfx=NP,RegOp=1,W=0         ; PROT LWP
DisTab 0A12,LWPVAL,vRq_jR_id,Xpfx=XOP,Epfx=NP,RegOp=1,W=1,Mode=64 ; PROT LWP
DisTab 0F01,MCOMMIT,@1,Epfx=F3,Mod=3,RegOp=7,RM=2
DisTab 0F01,MWAITX,@1,Epfx=NP,Mod=3,RegOp=7,RM=3
DisTab 0F0D,PREFETCH,jR,Epfx=NP,Mod=0,RegOp=0
DisTab 0F01,RDPRU,@1,Epfx=NP,Mod=3,RegOp=7,RM=5
DisTab 0912,SLWPCB,jR,Xpfx=XOP,Epfx=NP,Mod=3,RegOp=1
DisTab 0901,T1MSKC,vR_jR,Xpfx=XOP,Epfx=NP,RegOp=7
DisTab 0901,TZMSK,vR_jR,Xpfx=XOP,Epfx=NP,RegOp=4
DisTab 0F38F5,WRUSSD,jR_hRd@DATAd,Epfx=66
DisTab 0F38F5,WRUSSQ,jR_hRq@DATAq,Epfx=66
DisTab 0F0F,,hU_jU@3DNow
DisTab 0F79,EXTRQ,hO_jO,Epfx=66
DisTab 0F79,INSERTQ,hO_jO,Epfx=F2

; Instructions in the order in [AMDGeode]
DisTab 0F39,DMINT,@
DisTab 0F24,MOV,jRd_hE,Mod=3
DisTab 0F26,MOV,hE_jRd,Mod=3
DisTab 0F3A,RDM,@
DisTab 0F7B,RSLDT,jR,Mod=0,RegOp=0
DisTab 0FAA,RSM,@
DisTab 0F7D,RSTS,jR,Mod=0,RegOp=0
DisTab 0F38,SMINT,@
DisTab 0F78,SVDC,hS_jR,Mod=0
DisTab 0F7A,SVLDT,jR,Mod=0
DisTab 0F7C,SVTS,jR,Mod=0,RegOp=0

; Instructions in the order in [IntelMVEX]
DisTab 0F85,JKNZD,vK_ld@DISTn,Xpfx=VEX,Epfx=NP,W=0
DisTab 0F75,JKNZD,vK_lb@DISTs,Xpfx=VEX,Epfx=NP,W=0
DisTab 0F84,JKZD,vK_ld@DISTn,Xpfx=VEX,Epfx=NP,W=0
DisTab 0F74,JKZD,vK_lb@DISTs,Xpfx=VEX,Epfx=NP,W=0
DisTab 0F41,KAND,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F42,KANDN,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F43,KANDNR,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F95,KCONCATH,hRq_vK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F97,KCONCATL,hRq_vK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F3A3E,KEXTRACT,hK_jRq_ib,Xpfx=VEX,Epfx=66,Mod=3,W=0
DisTab 0F48,KMERGE2L1H,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F49,KMERGE2L1L,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F90,KMOV,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F93,KMOV,hRd_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F92,KMOV,hK_jRd,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F44,KNOT,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F45,KOR,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F98,KORTEST,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F46,KXNOR,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F47,KXOR,hK_jK,Xpfx=VEX,Epfx=NP,Mod=3,W=0
DisTab 0F3850,VADDNPD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F3850,VADDNPS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F58,VADDPD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F58,VADDPS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=NP,W=0
DisTab 0F38CC,VADDSETSPS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3A03,VALIGND,hO_vO_jO_ib@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F381A,VBROADCASTF32X4,hO_jX@T128,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F381B,VBROADCASTF64X4,hO_jX@T256,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F385A,VBROADCASTI32X4,hO_jX@T128,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F385B,VBROADCASTI64X4,hO_jX@T256,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F3819,VBROADCASTSD,hO_jX@T64,Xpfx=MVEX,Epfx=66,Mod=0,W=1
DisTab 0F3818,VBROADCASTSS,hO_jX@T64,Xpfx=MVEX,Epfx=66,Mod=0,W=0
DisTab 0FC2,VCMPPD,hK_vO_jO_ib@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0FC2,VCMPPS,hK_vO_jO_ib@MFV32,Xpfx=MVEX,Epfx=NP,W=0
DisTab 0FE6,VCVTDQ2PD,hO_jO@MHV32,Xpfx=MVEX,Epfx=F3,W=0
DisTab 0F3ACB,VCVTFXPNTDQ2PS,hO_jO_ib@MFV32,Xpfx=MVEX,Epfx=NP,W=0
DisTab 0F3AE6,VCVTFXPNTPD2DQ,hO_jO_ib@MFV64,Xpfx=MVEX,Epfx=F2,W=1
DisTab 0F3ACA,VCVTFXPNTPD2UDQ,hO_jO_ib@MFV64,Xpfx=MVEX,Epfx=F2,W=1
DisTab 0F3ACB,VCVTFXPNTPS2DQ,hO_jO_ib@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3ACA,VCVTFXPNTPS2UDQ,hO_jO_ib@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3ACA,VCVTFXPNTUDQ2PS,hO_jO_ib@MFV32,Xpfx=MVEX,Epfx=NP,W=0
DisTab 0F5A,VCVTPS2PD,hO_jO@MHV32,Xpfx=MVEX,Epfx=NP,W=0
DisTab 0F7A,VCVTUDQ2PD,hO_jO@MHV32,Xpfx=MVEX,Epfx=F3,W=0
DisTab 0F38C8,VEXP223PS,hO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3855,VFIXUPNANPD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F3855,VFIXUPNANPS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3898,VFMADD132PD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F3898,VFMADD132PS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F38A8,VFMADD213PD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F38A8,VFMADD213PD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F38B8,VFMADD231PD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F38B8,VFMADD231PS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F38A4,VFMADD233PS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F389A,VFMSUB132PD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F389A,VFMSUB132PS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F38AA,VFMSUB213PD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F38AA,VFMSUB213PS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F38BA,VFMSUB231PD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F38BA,VFMSUB231PS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F389C,VFNMADD132PD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F389C,VFNMADD132PS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F38AC,VFNMADD213PD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F38AC,VFNMADD213PS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F38BC,VFNMADD231PD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F38BC,VFNMADD231PS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F389E,VFNMSUB132PD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F389E,VFNMSUB132PS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F38AE,VFNMSUB213PD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F38AE,VFNMSUB213PS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F38BE,VFNMSUB231PD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F38BE,VFNMSUB231PS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3892,VGATHERDPD,hO_jO@VSIB@T64,Xpfx=MVEX,Epfx=66,Mod=0,RM=4,W=1
DisTab 0F3892,VGATHERDPS,hO_jO@VSIB@T32,Xpfx=MVEX,Epfx=66,Mod=0,RM=4,W=0
DisTab 0F38C6,VGATHERPF0DPS,jO@VSIB@DATAd@T32,Xpfx=MVEX,Epfx=66,Mod=0,RegOp=1,RM=4,W=0
DisTab 0F38C6,VGATHERPF0HINTDPD,jO@VSIB@DATAq@T64,Xpfx=MVEX,Epfx=66,Mod=0,RegOp=0,RM=4,W=1
DisTab 0F38C6,VGATHERPF0HINTDPS,jO@VSIB@DATAd@T32,Xpfx=MVEX,Epfx=66,Mod=0,RegOp=0,RM=4,W=1
DisTab 0F38C6,VGATHERPF1DPS,jO@VSIB@DATAd@T32,Xpfx=MVEX,Epfx=66,Mod=0,RegOp=2,RM=4,W=0
DisTab 0F3842,VGETEXPPD,hO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F3842,VGETEXPPS,hO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3A26,VGETMANTPD,hO_jO_ib@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F3A26,VGETMANTPS,hO_jO_ib@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3851,VGMAXABSPS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3853,VGMAXPD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F3853,VGMAXPS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3852,VGMINPD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F3852,VGMINPS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F38D4,VLOADUNPACKHD,hO_jO@T32,Xpfx=MVEX,Epfx=NP,Mod=0,W=0
DisTab 0F38D4,VLOADUNPACKHQ,hO_jO@T64,Xpfx=MVEX,Epfx=NP,Mod=0,W=1
DisTab 0F38D5,VLOADUNPACKHPD,hO_jO@T64,Xpfx=MVEX,Epfx=NP,Mod=0,W=1
DisTab 0F38D5,VLOADUNPACKHPS,hO_jO@T32,Xpfx=MVEX,Epfx=NP,Mod=0,W=0
DisTab 0F38D0,VLOADUNPACKLD,hO_jO@T32,Xpfx=MVEX,Epfx=NP,Mod=0,W=0
DisTab 0F38D1,VLOADUNPACKLPD,hO_jO@T64,Xpfx=MVEX,Epfx=NP,Mod=0,W=1
DisTab 0F38D1,VLOADUNPACKLPS,hO_jO@T32,Xpfx=MVEX,Epfx=NP,Mod=0,W=0
DisTab 0F38D0,VLOADUNPACKLQ,hO_jO@T64,Xpfx=MVEX,Epfx=NP,Mod=0,W=1
DisTab 0F38C9,VLOG2PS,hO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F28,VMOVAPD,hO_jO@MFVM,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F29,VMOVAPD,jO_hO@MFVM,Xpfx=MVEX,Epfx=66,Mod=0,W=1
DisTab 0F28,VMOVAPS,hO_jO@MFVM,Xpfx=MVEX,Epfx=NP,W=0
DisTab 0F29,VMOVAPS,jO_hO@MFVM,Xpfx=MVEX,Epfx=NP,Mod=0,W=0
DisTab 0F6F,VMOVDQA32,hO_jO@MFVM,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F7F,VMOVDQA32,jO_hO@MFVM,Xpfx=MVEX,Epfx=66,Mod=0,W=0
DisTab 0F6F,VMOVDQA64,hO_jO@MFVM,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F7F,VMOVDQA64,jO_hO@MFVM,Xpfx=MVEX,Epfx=66,Mod=0,W=1
DisTab 0F29,VMOVNRAPD,jO_hO@MFVM,Xpfx=MVEX,Epfx=F3,Mod=0,W=1
DisTab 0F29,VMOVNRAPS,jO_hO@MFVM,Xpfx=MVEX,Epfx=F2,Mod=0,W=0
DisTab 0F29,VMOVNRNGOAPD,jO_hO@MFVM,Xpfx=MVEX,Epfx=F3,Mod=0,W=1
DisTab 0F29,VMOVNRNGOAPS,jO_hO@MFVM,Xpfx=MVEX,Epfx=F2,Mod=0,W=0
DisTab 0F59,VMULPD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F59,VMULPS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=NP,W=0
DisTab 0F38D4,VPACKSTOREHD,jO_hO@MFV32,Xpfx=MVEX,Epfx=66,Mod=0,W=0
DisTab 0F38D5,VPACKSTOREHPD,jO_hO@MFV64,Xpfx=MVEX,Epfx=66,Mod=0,W=1
DisTab 0F38D5,VPACKSTOREHPS,jO_hO@MFV32,Xpfx=MVEX,Epfx=66,Mod=0,W=0
DisTab 0F38D4,VPACKSTOREHQ,jO_hO@MFV64,Xpfx=MVEX,Epfx=66,Mod=0,W=1
DisTab 0F38D0,VPACKSTORELD,jO_hO@MFV32,Xpfx=MVEX,Epfx=66,Mod=0,W=0
DisTab 0F38D1,VPACKSTORELPD,jO_hO@MFV64,Xpfx=MVEX,Epfx=66,Mod=0,W=1
DisTab 0F38D1,VPACKSTORELPS,jO_hO@MFV32,Xpfx=MVEX,Epfx=66,Mod=0,W=0
DisTab 0F38D0,VPACKSTORELQ,jO_hO@MFV64,Xpfx=MVEX,Epfx=66,Mod=0,W=1
DisTab 0F385C,VPADCD,hO_vK_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0FFE,VPADDD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F385D,VPADDSETCD,hO_vK_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F38CD,VPADDSETSD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0FDB,VPANDD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0FDF,VPANDND,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W0
DisTab 0FDF,VPANDNQ,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0FDB,VPANDQ,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F3864,VPBLENDMD,hO_vO_jO@FV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3864,VPBLENDMQ,hO_vO_jO@FV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F3858,VPBROADCASTD,hO_jO@T32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3859,VPBROADCASTQ,hO_jO@T64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F3A1F,VPCMPD,hK_vO_jO_ib@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F76,VPCMPEQD,hK_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F66,VPCMPGTD,hK_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3874,VPCMPLTD,hK_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3A1E,VPCMPUD,hK_vO_jO_ib@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3836,VPERMD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3A07,VPERMF32X4,hO_jO_ib@MFV32,Epfx=66,W=0
DisTab 0F3890,VPGATHERDD,hO_jO@T32,Xpfx=MVEX,Epfx=66,Mod=0,W=0
DisTab 0F3890,VPGATHERDQ,hO_jO@T64,Xpfx=MVEX,Epfx=66,Mod=0,W=1
DisTab 0F38B5,VPMADD231D,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F38B4,VPMADD233D,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F383D,VPMAXSD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F383F,VPMAXUD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3839,VPMINSD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F383B,VPMINUD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3887,VPMULHD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3886,VPMULHUD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3840,VPMULLD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0FEB,VPORD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0FEB,VPORQ,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F385E,VPSBBD,hO_vK_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F386E,VPSBBRD,hO_vK_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F38A0,VPSCATTERDD,jO_hO@VSIB@T32,Xpfx=MVEX,Epfx=66,Mod=0,RM=4,W=0
DisTab 0F38A0,VPSCATTERDQ,jO_hO@VSIB@T64,Xpfx=MVEX,Epfx=66,Mod=0,RM=4,W=1
DisTab 0F70,VPSHUFD,hO_jO_ib@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F72,VPSLLD,vO_jO_ib,Xpfx=MVEX,Epfx=66,Mod=3,W=0
DisTab 0F72,VPSRAD,vO_jO_ib,Xpfx=MVEX,Epfx=66,RegOp=4,W=0
DisTab 0F3846,VPSRAVD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F72,VPSRLD,vO_jO_ib,Xpfx=MVEX,Epfx=66,Mod=3,RegOp=2,W=0
DisTab 0F3845,VPSRLVD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0FFA,VPSUBD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F386C,VPSUBRD,hO_vO_jO@FV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F386F,VPSUBRSETBD,hO_vK_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F385F,VPSUBSETBD,hO_vK_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3827,VPTESTMD,hK_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0FEF,VPXORD,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0FEF,VPXORQ,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F38CA,VRCP23PS,hO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3A52,VRNDFXPNTPD,hO_jO_ib@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F3A52,VRNDFXPNTPS,hO_jO_ib@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F38CB,VRSQRT23PS,hO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F3884,VSCALEPS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F38A2,VSCATTERDPD,jO_hO@VSIB@T64,Xpfx=MVEX,Epfx=66,Mod=0,RM=4,W=1
DisTab 0F38A2,VSCATTERDPS,jO_hO@VSIB@T32,Xpfx=MVEX,Epfx=66,Mod=0,RM=4,W=0
DisTab 0F38C6,VSCATTERPF0DPS,jO@VSIB@T32,Xpfx=MVEX,Epfx=66,Mod=0,RegOp=5,RM=4,W=0
DisTab 0F38C6,VSCATTERPF0HINTDPD,jO@VSIB@T64,Xpfx=MVEX,Epfx=66,Mod=0,RegOp=4,RM=4,W=1
DisTab 0F38C6,VSCATTERPF0HINTDPS,jO@VSIB@T32,Xpfx=MVEX,Epfx=66,Mod=0,RegOp=4,RM=4,W=0
DisTab 0F38C6,VSCATTERPF1DPS,jO@VSIB@T32,Xpfx=MVEX,Epfx=66,Mod=0,RegOp=6,RM=4,W=0
DisTab 0F5C,VSUBPD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F5C,VSUBPS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0F386D,VSUBRPD,hO_vO_jO@MFV64,Xpfx=MVEX,Epfx=66,W=1
DisTab 0F386D,VSUBRPS,hO_vO_jO@MFV32,Xpfx=MVEX,Epfx=66,W=0
DisTab 0FAE,CLEVICT0,jR,Xpfx=VEX,Epfx=F2,Mod=0,RegOp=7
DisTab 0FAE,CLEVICT0,jR,Xpfx=MVEX,Epfx=F2,Mod=0,RegOp=7
DisTab 0FAE,CLEVICT1,jR,Xpfx=VEX,Epfx=F3,Mod=0,RegOp=7
DisTab 0FAE,CLEVICT1,jR,Xpfx=MVEX,Epfx=F3,Mod=0,RegOp=7
DisTab 0FAE,DELAY,jRd,Xpfx=VEX,Epfx=F3,Mod=3,RegOp=6,W=0
DisTab 0FAE,DELAY,jRq,Xpfx=VEX,Epfx=F3,Mod=3,RegOp=6,W=1
DisTab 0FBD,LZCNT,hR_jR,Xpfx=VEX,Epfx=F3,Mod=3
DisTab 0FB8,POPCNT,hR_jR,Xpfx=VEX,Epfx=F3,Mod=3  ; MVEX
DisTab 0FAE,SPFLT,jRd,Xpfx=VEX,Epfx=F2,Mod=3,W=0
DisTab 0FAE,SPFLT,jRq,Xpfx=VEX,Epfx=F2,Mod=3,W=1
DisTab 0FBC,TZCNT,hR_jR,Epfx=F3
DisTab 0FBC,TZCNT,hR_jR,Xpfx=VEX,Epfx=F3,Mod=3
DisTab 0FBC,TZCNTI,hR_jR,Xpfx=VEX,Epfx=F2,Mod=3
DisTab 0F18,VPREFETCH0,jR,Xpfx=VEX,Epfx=NP,Mod=0,RegOp=1
DisTab 0F18,VPREFETCH0,jR,Xpfx=MVEX,Epfx=NP,Mod=0,RegOp=1
DisTab 0F18,VPREFETCH1,jR,Xpfx=VEX,Epfx=NP,Mod=0,RegOp=2
DisTab 0F18,VPREFETCH1,jR,Xpfx=MVEX,Epfx=NP,Mod=0,RegOp=2
DisTab 0F18,VPREFETCH2,jR,Xpfx=VEX,Epfx=NP,Mod=0,RegOp=3
DisTab 0F18,VPREFETCH2,jR,Xpfx=MVEX,Epfx=NP,Mod=0,RegOp=3
DisTab 0F18,VPREFETCHE0,jR,Xpfx=VEX,Epfx=NP,Mod=0,RegOp=5
DisTab 0F18,VPREFETCHE0,jR,Xpfx=MVEX,Epfx=NP,Mod=0,RegOp=5
DisTab 0F18,VPREFETCHE1,jR,Xpfx=VEX,Epfx=NP,Mod=0,RegOp=6
DisTab 0F18,VPREFETCHE1,jR,Xpfx=MVEX,Epfx=NP,Mod=0,RegOp=6
DisTab 0F18,VPREFETCHE2,jR,Xpfx=VEX,Epfx=NP,Mod=0,RegOp=7
DisTab 0F18,VPREFETCHE2,jR,Xpfx=MVEX,Epfx=NP,Mod=0,RegOp=7
DisTab 0F18,VPREFETCHENTA,jR,Xpfx=VEX,Epfx=NP,Mod=0,RegOp=4
DisTab 0F18,VPREFETCHENTA,jR,Xpfx=MVEX,Epfx=NP,Mod=0,RegOp=4
DisTab 0F18,VPREFETCHNTA,jR,Xpfx=VEX,Epfx=NP,Mod=0,RegOp=0
DisTab 0F18,VPREFETCHNTA,jR,Xpfx=MVEX,Epfx=NP,Mod=0,RegOp=0
DisTab 0FAE,FXRSTOR64,jM,Epfx=NP,Mod=0,RegOp=1,W=1

; Other instructions
DisTab 0F3F,ALTINST,@
DisTab 0FA6,MONTMUL,@1,Epfx=F3,Mod=3,RegOp=0,RM=0
DisTab 0FA7,XSTORE,@1,Epfx=F3,Mod=3,RegOp=0,RM=0
DisTab 0FA7,XCRYPTECB,@1,Epfx=F3,Mod=3,RegOp=1,RM=0
DisTab 0FA7,XCRYPTCBC,@1,Epfx=F3,Mod=3,RegOp=2,RM=0
DisTab 0FA7,XCRYPTCTR,@1,Epfx=F3,Mod=3,RegOp=3,RM=0
DisTab 0FA7,XCRYPTCFB,@1,Epfx=F3,Mod=3,RegOp=4,RM=0
DisTab 0FA7,XCRYPTOFB,@1,Epfx=F3,Mod=3,RegOp=5,RM=0
DisTab 0FA6,XSHA1,@1,Epfx=F3,Mod=3,RegOp=1,RM=0
DisTab 0FA6,XSHA256,@1,Epfx=F3,Mod=3,RegOp=2,RM=0
DisTab 0FAE,PCOMMIT,@1,Epfx=66,Mod=3,RegOp=7,RM=0
DisTab 0885,VPMACSSWW,hO_vO_jO_is4,Xpfx=XOP
DisTab 0886,VPMACSSWD,hO_vO_jO_is4,Xpfx=XOP
DisTab 0887,VPMACSSDQL,hO_vO_jO_is4,Xpfx=XOP
DisTab 088E,VPMACSSDD,hO_vO_jO_is4,Xpfx=XOP
DisTab 088F,VPMACSSDQH,hO_vO_jO_is4,Xpfx=XOP
DisTab 0895,VPMACSWW,hO_vO_jO_is4,Xpfx=XOP
DisTab 0896,VPMACSWD,hO_vO_jO_is4,Xpfx=XOP
DisTab 0897,VPMACSDQL,hO_vO_jO_is4,Xpfx=XOP
DisTab 089E,VPMACSDD,hO_vO_jO_is4,Xpfx=XOP
DisTab 089F,VPMACSDQH,hO_vO_jO_is4,Xpfx=XOP
DisTab 08A6,VPMACSWW,hO_vO_jO_is4,Xpfx=XOP
DisTab 08B6,VPMACSWD,hO_vO_jO_is4,Xpfx=XOP
DisTab 08A3,VPPERM,hO_vO_jO_is4,Xpfx=XOP,W=0
DisTab 08A3,VPPERM,hO_vO_is4_jO,Xpfx=XOP,W=1
DisTab 08A2,VPCMOV,hO_vO_jO_is4,Xpfx=XOP,W=0
DisTab 08A2,VPCMOV,hO_vO_is4_jO,Xpfx=XOP,W=1
DisTab 0990,VPROTB,hO_jO_vO,Xpfx=XOP,W=0
DisTab 0990,VPROTB,hO_vO_jO,Xpfx=XOP,W=1
DisTab 08C0,VPROTB,hO_jO_ib,Xpfx=XOP,W=0
DisTab 0991,VPROTW,hO_jO_vO,Xpfx=XOP,W=0
DisTab 0991,VPROTW,hO_vO_jO,Xpfx=XOP,W=1
DisTab 08C1,VPROTW,hO_jO_ib,Xpfx=XOP,W=0
DisTab 0992,VPROTD,hO_jO_vO,Xpfx=XOP,W=0
DisTab 0992,VPROTD,hO_vO_jO,Xpfx=XOP,W=1
DisTab 08C2,VPROTD,hO_jO_ib,Xpfx=XOP,W=0
DisTab 0993,VPROTQ,hO_jO_vO,Xpfx=XOP,W=0
DisTab 0993,VPROTQ,hO_vO_jO,Xpfx=XOP,W=1
DisTab 08C3,VPROTQ,hO_jO_ib,Xpfx=XOP,W=0
DisTab 0994,VPSHLB,hO_jO_vO,Xpfx=XOP,W=0
DisTab 0994,VPSHLB,hO_vO_jO,Xpfx=XOP,W=1
DisTab 0995,VPSHLW,hO_jO_vO,Xpfx=XOP,W=0
DisTab 0995,VPSHLW,hO_vO_jO,Xpfx=XOP,W=1
DisTab 0996,VPSHLD,hO_jO_vO,Xpfx=XOP,W=0
DisTab 0996,VPSHLD,hO_vO_jO,Xpfx=XOP,W=1
DisTab 0997,VPSHLQ,hO_jO_vO,Xpfx=XOP,W=0
DisTab 0997,VPSHLQ,hO_vO_jO,Xpfx=XOP,W=1
DisTab 0998,VPSHAB,hO_jO_vO,Xpfx=XOP,W=0
DisTab 0998,VPSHAB,hO_vO_jO,Xpfx=XOP,W=1
DisTab 0999,VPSHAW,hO_jO_vO,Xpfx=XOP,W=0
DisTab 0999,VPSHAW,hO_vO_jO,Xpfx=XOP,W=1
DisTab 099A,VPSHAD,hO_jO_vO,Xpfx=XOP,W=0
DisTab 099A,VPSHAD,hO_vO_jO,Xpfx=XOP,W=1
DisTab 099B,VPSHAQ,hO_jO_vO,Xpfx=XOP,W=0
DisTab 099B,VPSHAQ,hO_vO_jO,Xpfx=XOP,W=1
DisTab 0980,VFRCZPS,hO_jO,Xpfx=XOP,W=0
DisTab 0981,VFRCZPD,hO_jO,Xpfx=XOP,W=0
DisTab 0982,VFRCZSS,hO_jO,Xpfx=XOP,W=0
DisTab 0983,VFRCZSD,hO_jO,Xpfx=XOP,W=0
DisTab 09C1,VPHADDBW,hO_jO,Xpfx=XOP,W=0
DisTab 09C2,VPHADDBD,hO_jO,Xpfx=XOP,W=0
DisTab 09C3,VPHADDBQ,hO_jO,Xpfx=XOP,W=0
DisTab 09C6,VPHADDWD,hO_jO,Xpfx=XOP,W=0
DisTab 09C7,VPHADDWQ,hO_jO,Xpfx=XOP,W=0
DisTab 09D1,VPHADDUBW,hO_jO,Xpfx=XOP,W=0
DisTab 09D2,VPHADDUBD,hO_jO,Xpfx=XOP,W=0
DisTab 09D3,VPHADDUBQ,hO_jO,Xpfx=XOP,W=0
DisTab 09D6,VPHADDUWD,hO_jO,Xpfx=XOP,W=0
DisTab 09D7,VPHADDUWQ,hO_jO,Xpfx=XOP,W=0
DisTab 09CB,VPHADDDQ,hO_jO,Xpfx=XOP,W=0
DisTab 09DB,VPHADDUDQ,hO_jO,Xpfx=XOP,W=0
DisTab 09E1,VPHSUBBW,hO_jO,Xpfx=XOP,W=0
DisTab 09E2,VPHSUBWD,hO_jO,Xpfx=XOP,W=0
DisTab 09E3,VPHSUBDQ,hO_jO,Xpfx=XOP,W=0
DisTab 08CC,VPCOMB,hO_vO_jO_ib,Xpfx=XOP,W=0
DisTab 08CD,VPCOMW,hO_vO_jO_ib,Xpfx=XOP,W=0
DisTab 08CE,VPCOMD,hO_vO_jO_ib,Xpfx=XOP,W=0
DisTab 08CF,VPCOMQ,hO_vO_jO_ib,Xpfx=XOP,W=0
DisTab 08EC,VPCOMUB,hO_vO_jO_ib,Xpfx=XOP,W=0
DisTab 08ED,VPCOMUW,hO_vO_jO_ib,Xpfx=XOP,W=0
DisTab 08EE,VPCOMUD,hO_vO_jO_ib,Xpfx=XOP,W=0
DisTab 08EF,VPCOMUQ,hO_vO_jO_ib,Xpfx=XOP,W=0
DisTab 0F0E,FEMMS,@
DisTab 0FBC,BSF,hR_jR
DisTab 0FBD,BSR,hR_jR
DisTab 0F01,INVLPG,jR,Epfx=NP,RegOp=7
DisTab 0FAE,CLFLUSH,jM,Epfx=NP,RegOp=7
DisTab 0FAE,CLFLUSHOPT,jM,Epfx=66,RegOp=7
DisTab 0F18,HINT_NOP,hR_jR@hint_nop,Mod=3
DisTab 0F19,HINT_NOP,hR_jR@hint_nop,Mod=3
DisTab 0F1A,HINT_NOP,hR_jR@hint_nop
DisTab 0F1B,HINT_NOP,hR_jR@hint_nop
DisTab 0F1C,HINT_NOP,hR_jR@hint_nop
DisTab 0F1D,HINT_NOP,hR_jR@hint_nop
DisTab 0F1E,HINT_NOP,hR_jR@hint_nop
DisTab 0F1F,HINT_NOP,hR_jR@hint_nop
DisTableEnd:         ; End of table.
[.text]
↑ DisTabProc
Procedure DisTabProc will disassemble one prefix or machine instruction.
It does not call FlushDii, instead it returns CF=0 to tell its parent (Disasm) to call FlushDii and reinitialize Dii, or it returns CF=1, which tells Disasm to not initialize Dii (after prefix) and continue with disassembly of not-prefixed instruction.
Input
Dii is initialized and perhaps some prefixes are incorporated in it.
Dii.Opcode is loaded with the first one, two or three bytes of the disassembled prefix or instruction. It may be
  1. legacy prefix 0x26, 0x2E, 0x36, 0x3E, 0x64, 0x65, 0x66, 0x67, 0xF0, 0xF2, 0xF3
  2. 0x00000040..0x0000004F (REX)
  3. 0x008FXXXX (XOP prefix)
  4. 0x0000C5XX (VEX2 prefix)
  5. 0x00C4XXXX (VEX3 prefix)
  6. 0x62XXXXXX (MVEX ot EVEX prefix)
  7. Three-byte opcode 0x000F38XX
  8. Three-byte opcode 0x000F3AXX
  9. Two-byte opcode 0x00000FXX
  10. One-byte opcode 0x000000XX

R8= points behind this one-byte opcode in disassembled code, perhaps at ModR/M or at the next instruction.
RBX= is DIS.Conditions. Layout of EBX is at DIS.Conditions.
Output
CF=1 Dii.Opcode was a prefix and no more than 4 prefixes are incorporated yet.
R8 is increased by the prefix size. Information from prefix is incorporated to Dii, which will be not flushed nor initialized.
CF=0 Dii.Opcode was not a prefix. R8 is increased by the instruction size including eventual displacement and immediate, so it points to the next instruction.
Dii will be flushed and then reiniatialized.
DisTabProc PROC
     MOV EAX,DisTypeMask                 ; EAX = OpsType ordinal (1..3FFh)
     AND EAX,EBX                         ; EBX = DIS.Conditions
     MOV EDX,[Dii.Opcode]                ; EDX = Dii.Opcode
     MOV RSI,[Dii.Operation]
     AND EAX,DisTypeMask
     Dispatch AX,%DisTypeList

; *********** Helper subprocedures
.NotInstruction:
     DEC R8
     LEA RAX,[="DB"]
     MOV [Dii.Operation],RAX
     LEA RDI,[MemoryLine]
     MOV [Dii.Operand1],RDI
     XOR EAX,EAX
     MOV [Dii.Operand2],RAX
     MOV [Dii.Operand3],RAX
     MOV AX,'0x'
     STOSW
     MOV DL,[R8-1]
     CALL StoDL
     XOR EAX,EAX
     STOSB
     JMP .Flush:

.invalid:  ; The byte at Dii.$VA is invalid. Display as DB and let R8=Dii.$VA+1.
     LEA RDI,[="DB"]
     MOV [Dii.Operation],RDI
     LEA RDI,[MemoryLine]
     MOV [Dii.Operand1],RDI
     MOV AX,'0x'
     STOSW
     MOV R8,[Dii.$VA]
     ADD R8,[InputPtr::]
     MOV DL,[R8]
     INC R8
     CALL StoDL
     XOR EAX,EAX
     STOSB
     JMP .Flush:

.StorePrefixName: PROC
nr  %FOR 1,2,3,4
      LEA RDX,[Dii.Prefix%nr]
      MOV RCX,[RDX]
      JRCXZ .S5:            ; Jump when a free slot is found.
    %ENDFOR nr
    CALL FlushDii           ; When all four prefix names are occupied.
    DEC R8                  ; Return back to the unhandled prefix.
    MOV RAX,R8
    CALL DiiInitialize
    JMP DisTabProc.NoFlush:
.S5:MOV [RDX],RSI
    JMP DisTabProc.NoFlush:
   ENDP .StorePrefixName:

.Moffs PROC
     CALL ModifyDefaultWidth
     CALL Moffs
     LEA RAX,[MoffsLine]
     MOV [Dii.CODE],'S'
     RET
   ENDP .Moffs

; *********** OpcType subprocedures dispatched by %DisTypes

.VSIB: SetSt [Dii.Flags],flagVSIB
       MOV AL,[Dii.VvvvNr]
       AND AL,0001_0000b
       OR [Dii.IndexNr],AL
       MOV ECX,[Dii.Flags]
       SHR ECX,1
       AND ECX,3
       SHL CL,3                  ; CL=0,8,16.
       MOV EDX,'XYZ?'            ; DL='X', DH='Y'.. for 128,256,512 SIMD.
       MOV EBX,'XXY'             ; EDX for Reg/Op register, EBX for index register.
       ; Check for exceptions.
       MOV AL,[R8-1]             ; Opcode (0x90..0x93 or 0xA0..0xA3).
       AND AL,0000_0011b
       Dispatch AL,0x0,0x1,0x2,0x3
       RET
.0x0:  JSt  [Dii.Status],stW,.VSIB5:
       JMP .VSIB3:
.0x1:  JNSt [Dii.Status],stW,.VSIB4:
       JMP .VSIB3:
.0x2:  JSt  [Dii.Status],stW,.VSIB5:
       JMP .VSIB3:
.0x3:  JNSt [Dii.Status],stW,.VSIB4:
.VSIB3:MOV EBX,EDX               ; EBX=EDX='XYZ'
.VSIB4:XCHG EBX,EDX
.VSIB5:SHR EDX,CL
       SHR EBX,CL
       MOV [Dii.Family+0],DL     ; Reg/Op.
       MOV [Dii.Family+3],BL     ; Index.
       RET

.CRCq: CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand2],RAX
       LEA RSI,[Reg64]
       MOV CL,[Dii.OperNr]
       CALL SelectByCL
       MOV [Dii.Operand1],RSI
       JMP .Flush:

.DATAo:CALL GetSimdDataWidth ; Depends on the last 2 characters of instruction mnemo.
       MOV [Dii.DATA],AL
       RET

.DATAx:MOV [Dii.DATA],'O'
       RET
.DATAy:MOV [Dii.DATA],'Y'
       RET
.DATAz:MOV [Dii.DATA],'Z'
       RET
.DATAa:CALL GetOperWidth
       MOV [Dii.DATA],AL
       SetSt [Dii.Flags],flagNoDATAinMod3
       RET
.DATAb:MOV [Dii.DATA],'B'
       SetSt [Dii.Flags],flagNoDATAinMod3
       RET
.DATAw:MOV [Dii.DATA],'W'
       SetSt [Dii.Flags],flagNoDATAinMod3
       RET
.DATAd:MOV [Dii.DATA],'D'
       SetSt [Dii.Flags],flagNoDATAinMod3
       RET
.DATAq:MOV [Dii.DATA],'Q'
       SetSt [Dii.Flags],flagNoDATAinMod3
       RET
.DISTs:MOV [Dii.DIST],'S'
       RET
.DISTn:MOV [Dii.DIST],'N'
       RET
.DISTf:MOV [Dii.DIST],'F'
       RET
.CODEl:MOV [Dii.CODE],'L'
       RET
.CODEs:MOV [Dii.CODE],'S'
       RET
.ERRR: MOV [Dii.Family],'ERRR'
       RET
.KKKK: MOV [Dii.Family],'KKKK'
       RET
.KOOO: MOV [Dii.Family],'KOOO'
       RET
.KRKK: MOV [Dii.Family],'KRKK'
       RET
.KRRR: MOV [Dii.Family],'KRRR'
       RET
.NRRR: MOV [Dii.Family],'NRRR'
       RET
.NNNN: MOV [Dii.Family],'NNNN'
       RET
.OOOO: MOV [Dii.Family],'OOOO'
       RET
.OOKO: MOV [Dii.Family],'OOKO'
       RET
.OKOO: MOV [Dii.Family],'OKOO'
       RET
.OROO: MOV [Dii.Family],'OROO'
       RET
.OXOO: MOV [Dii.Family],'OXOO'
       RET
.OYOO: MOV [Dii.Family],'OYOO'
       RET
.ORRR: MOV [Dii.Family],'ORRR'
       RET
.OUOO: MOV [Dii.Family],'OUOO'
       RET
.ROOO: MOV [Dii.Family],'ROOO'
       RET
.RKKK: MOV [Dii.Family],'RKKK'
       RET
.RUUU: MOV [Dii.Family],'RUUU'
       RET
.SRRR: MOV [Dii.Family],'SRRR'
       RET
.UOOO: MOV [Dii.Family],'UOOO'
       RET
.URRR: MOV [Dii.Family],'URRR'
       RET
.UUUU: MOV [Dii.Family],'UUUU'
       RET
.RXXX: MOV [Dii.Family],'RXXX'
       RET
.XRRR: MOV [Dii.Family],'XRRR'
       RET
.XRXX: MOV [Dii.Family],'XRXX'
       RET
.KXXX: MOV [Dii.Family],'KXXX'
       RET
.XYXX: MOV [Dii.Family],'XYXX'
       RET
.XXXX: MOV [Dii.Family],'XXXX'
       RET
.XXY: MOV AL,'Y'    ; Return AL=X|X|Y, AH=O|Y|Z depending on L,L`
      MOV AH,'Z'
      JSt [Dii.Flags],flagS2,.XXY9:
      MOV AL,'X'
      MOV AH,'Y'
      JSt [Dii.Flags],flagS1,.XXY9:
      MOV AH,'O'
.XXY9:RET

.OperWidth8:
      MOV [Dii.OperWidth],OperWidth8
      RET
.OperWidth16:
      MOV [Dii.OperWidth],OperWidth16
      RET
.OperWidth32:
      MOV [Dii.OperWidth],OperWidth32
      RET
.OperWidth64:
      MOV [Dii.OperWidth],OperWidth64
      RET

tuple %FOR FVM,FV64,FV32,FV16,HVM,HV32,HV16,QV16,QVM,OVM
.%tuple: MOV [Dii.Disp8EVEX],%tuple
         RET
       %ENDFOR tuple
tuple %FOR T8,T16,T32,T64,T128,T256
.%tuple: MOV [Dii.Disp8EVEX],%tuple
         MOV [Dii.Disp8MVEX],%tuple
         MOV [Dii.DISP],0
         RET
      %ENDFOR tuple
tuple %FOR MFVM,MFV64,MFV32,MHV32
.%tuple: MOV [Dii.Disp8MVEX],%tuple
         MOV [Dii.DISP],0
         RET
       %ENDFOR tuple

.h:    CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RDX
       JMP .Flush

.h_i:  CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RDX
       CALL Imm2
       MOV [Dii.Operand2],RCX
       JMP .Flush

.h_j:  CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RDX
       MOV [Dii.Operand2],RAX
       JMP .Flush

.h_j_i:
      CALL ModifyDefaultWidth
      CALL GetModRMReg
      MOV [Dii.Operand1],RDX
      MOV [Dii.Operand2],RAX
      CALL Imm2:
      MOV [Dii.Operand3],RCX
      JMP .Flush
.h_j_ib:    ; PINSR
       CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RDX
       MOV [Dii.Operand2],RAX
       CALL Imm2
       MOV [Dii.Operand3],RCX
       JNSt [Dii.Status],stMod3,.Flush:
       MOV CL,[Dii.BaseNr]
       MOV AL,[Dii.DATA]
       Dispatch AL,'B','W','D'
       LEA RSI,[Reg64]
       JMP .hji5:
.D:    LEA RSI,[Reg32]
       JMP .hji5:
.W:    LEA RSI,[Reg16]
       JMP .hji5:
.B:    LEA RSI,[Reg8REX]
       JSt [Dii.Prefix],pfxREX,.hji5:
       LEA RSI,[Reg8]
.hji5: CALL SelectByCL
       MOV [Dii.Operand2],RSI
       JMP .Flush

.h_j_id:
       CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RDX
       MOV [Dii.Operand2],RAX
       MOV [Dii.ImmSize],4
       MOV [Dii.OperWidth],OperWidth32
       CALL Imm:
       MOV [Dii.Operand3],RCX
       JMP .Flush

.h_j_v:CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RDX
       MOV [Dii.Operand2],RAX
       MOV [Dii.Operand3],RBX
       JMP .Flush:

.h_v_is4_j:
       CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RDX
       MOV [Dii.Operand2],RBX
       MOV [Dii.Operand4],RAX
       CALL Imm2XMM:
       MOV [Dii.Operand3],RCX
       INC R8
       JMP .Flush

.h_v_j:
       CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RDX
       MOV [Dii.Operand2],RBX
       MOV [Dii.Operand3],RAX
       JMP .Flush

.h_v_j_i:
       CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RDX
       MOV [Dii.Operand2],RBX
       MOV [Dii.Operand3],RAX
       CALL Imm2
       MOV [Dii.Operand4],RCX
       JMP .Flush

.h_v_j_ib:
       CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RDX
       MOV [Dii.Operand2],RBX
       MOV [Dii.Operand3],RAX
       CALL Imm2
       MOV [Dii.Operand4],RCX
       JMP .Flush

.ie:
     CALL ModifyDefaultWidth
     CALL GetOperWidth
     MOV [Dii.IMM],AL
     MOV [Dii.ImmSize],AH
     CALL Imm
     MOV AL,[Dii.IMM]
     JNSt [Dii.Status],stMode64,.iX5:
     MOV AL,'Q'
.iX5:MOV [Dii.DATA],AL
     JNSt [Dii.OperWidth],OperWidth16,.iX7:
     MOV [Dii.DATA],'W'
.iX7:LEA RAX,[ImmLine]
     MOV [Dii.Operand1],RAX
     JMP .Flush:
.j:    CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RAX
       JMP .Flush

.j_ib: CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RAX
       CALL Imm2
       MOV [Dii.Operand2],RCX
       JMP .Flush:

.j_h:  CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RAX
       MOV [Dii.Operand2],RDX
       JMP .Flush:

.j_h_i:
       CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RAX
       MOV [Dii.Operand2],RDX
       CALL Imm2
       MOV [Dii.Operand3],RCX
       JMP .Flush:

.j_h_v:CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RAX
       MOV [Dii.Operand2],RDX
       MOV [Dii.Operand3],RBX
       JMP .Flush:

.j_i:  CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RAX
       CALL Imm2
       MOV [Dii.Operand2],RCX
       CALL  .DATAa:
       JMP .Flush:

.j_ibse:CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RAX
       SetSt [Dii.Flags],flagImmSignExt
       CALL GetOperWidth
       MOV [Dii.DATA],AL
       MOV [Dii.OperWidth],OperWidth8
       CALL Imm
       MOV [Dii.Operand2],RCX
       JMP .Flush

.j_ie: CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RAX
       SetSt [Dii.Flags],flagImmSignExt
       CALL Imm
       MOV [Dii.Operand2],RCX
       CALL  .DATAa:
       JMP .Flush

.j_v_h:CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RAX
       MOV [Dii.Operand2],RBX
       MOV [Dii.Operand3],RDX
       JMP .Flush

.v_j:  CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RBX
       MOV [Dii.Operand2],RAX
       JMP .Flush:

.v_j_i:CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RBX
       MOV [Dii.Operand2],RAX
       CALL Imm2:
       MOV [Dii.Operand3],RCX
       JMP .Flush

.v_j_id:
       CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RBX
       MOV [Dii.Operand2],RAX
       CALL .OperWidth32
       CALL Imm:
       MOV [Dii.Operand3],RCX
       JMP .Flush:

.v_lb: MOV CL,[Dii.VvvvNr]
       LEA RSI,[RegKey]
       CALL SelectByCL
       MOV [Dii.Operand1],RSI
       MOV [Dii.ImmSize],1
       CALL ImmRel
       MOV [Dii.Operand2],RCX
       JMP .Flush
.v_ld: MOV CL,[Dii.VvvvNr]
       LEA RSI,[RegKey]
       CALL SelectByCL
       MOV [Dii.Operand1],RSI
       MOV [Dii.ImmSize],4
       CALL ImmRel
       MOV [Dii.Operand2],RCX
       JMP .Flush

; Subprocedures for each member of DisTypeList. They terminate with JMP .Flush: or JMP .NoFlush:

.@1: INC R8
.@:  SetSt [Dii.Prefix],pfx66NotUsed+pfx67NotUsed+pfxREXNotUsed
     JMP .Flush:

.@bswap:
      MOV CL,[Dii.Opcode]
      AND CL,0000_0111b
      JNSt [Dii.Prefix],0x0000_0001, .BSW2
      OR CL,0000_1000b
.BSW2:LEA RSI,[Reg64]
      JSt [Dii.Prefix], 0x0000_0008,.BSW5:
      LEA RSI,[Reg32]
.BSW5:CALL SelectByCL
      MOV [Dii.Operand1],RSI
      JMP .Flush

.@DATAa:
      CALL .DATAa:
      JMP .Flush:
.@DATAq:
      CALL .DATAq:
      JMP .Flush:

.@DISTf:
     CALL .DISTf:
     JMP .Flush
.@DISTn:
     CALL .DISTn:
     JMP .Flush

.@iret:
     CALL ModifyDefaultWidth
     CALL GetOperWidth
     MOV [Dii.DATA],AL
     JMP .Flush:

.@jcc:
      CALL .DISTs:
      MOV [Dii.IMM],'B'
      MOV [Dii.ImmSize],1
      CALL ImmRel:
      MOV [Dii.Operand1],RCX
      JMP .Flush:
.@jcce:SetSt [Dii.Flags],flagImmSignExt
      CALL .DISTn:
      CALL ModifyDefaultWidth
      CALL GetOperWidth
      MOV CL,AL
      CMP [Dii.AddrWidth],AddrWidth64
      JNE .@je5:          ; AL=W|D  AH=2|4
      MOV AL,'Q'
      MOV CL,'D'
      MOV AH,4
.@je5:MOV [Dii.DATA],AL
      MOV [Dii.IMM],CL
      MOV [Dii.ImmSize],AH
      CALL ImmRel:
      MOV [Dii.Operand1],RCX
      JMP .Flush:
.@jcxz:CALL ModifyDefaultWidth
      MOV AL,[Dii.AddrWidth]
      LEA RSI,[="JCXZ"]
      CMP AL,AddrWidth16
      JE .jcxz5:
      LEA RSI,[="JECXZ"]
      CMP AL,AddrWidth32
      JE .jcxz5:
      LEA RSI,[="JRCXZ"]
.jcxz5:MOV [Dii.Operation],RSI
      MOV [Dii.ImmSize],1
      CALL ImmRel
      MOV [Dii.Operand1],RCX
      JMP .Flush:

.@opc98: ; CBW | CWDE | CDQE
     CALL ModifyDefaultWidth
     LEA RSI,[="CBW"]
     CMP [Dii.OperWidth],OperWidth16
     JE .@o5:
     LEA RSI,[="CDQE"]
     JSt [Dii.Status],stW,.@o5:
     LEA RSI,[="CWDE"]
.@o5:MOV [Dii.Operation],RSI
     JMP .Flush:
.@opc99:   ; CWD | DDQ | CQO
     CALL ModifyDefaultWidth
     LEA RSI,[="CWD"]
     CMP [Dii.OperWidth],OperWidth16
     JE .995
     LEA RSI,[="CQO"]
     JSt [Dii.Status],stW,.995:
     LEA RSI,[="CDQ"]
.995:MOV [Dii.Operation],RSI
     JMP .Flush

.@pfxLg: ; Legacy prefixes.
      JSt [Dii.Prefix],pfxNoMore,.invalid:
      Dispatch DL, 0x26, 0x2E, 0x36, 0x3E, 0x64, 0x65, 0x66, 0x67, 0xF0, 0xF2, 0xF3
      JMP .NoFlush:
.0x26:JSt [Dii.Prefix],pfx26,.invalid:
      SetSt [Dii.Prefix],pfx26
      JMP .StorePrefixName
.0x2E:JSt [Dii.Prefix],pfx2E,.invalid:
      SetSt [Dii.Prefix],pfx2E
      JMP .StorePrefixName
.0x36:JSt [Dii.Prefix],pfx36,.invalid:
      SetSt [Dii.Prefix],pfx36
      JMP .StorePrefixName
.0x3E:JSt [Dii.Prefix],pfx3E,.invalid:
      SetSt [Dii.Prefix],pfx3E
      JMP .StorePrefixName
.0x64:JSt [Dii.Prefix],pfx64,.invalid:
      SetSt [Dii.Prefix],pfx64
      JMP .StorePrefixName
.0x65:JSt [Dii.Prefix],pfx65,.invalid:
      SetSt [Dii.Prefix],pfx65
      JMP .StorePrefixName
.0x66:JSt [Dii.Prefix],pfx66,.invalid:
      SetSt [Dii.Prefix],pfx66
      JMP .StorePrefixName
.0x67:JSt [Dii.Prefix],pfx67,.invalid:
      SetSt [Dii.Prefix],pfx67
      JMP .StorePrefixName
.0xF0:JSt [Dii.Prefix],pfxF0,.invalid:
      SetSt [Dii.Prefix],pfxF0
      JMP .StorePrefixName
.0xF2:JSt [Dii.Prefix],pfxF2,.invalid:
      SetSt [Dii.Prefix],pfxF2
      JMP .StorePrefixName
.0xF3:JSt [Dii.Prefix],pfxF3,.invalid:
      SetSt [Dii.Prefix],pfxF3
      JMP .StorePrefixName
.@pfxMEVEX:
     CALL PfxMEVEXAccept
     JMP .NoFlush:
.@pfxREX:
     CALL PfxREXAccept
     JMP .NoFlush:
.@pfxVEX2:
     CALL PfxVEX2Accept
     JMP .NoFlush:
.@pfxVEX3:
     CALL PfxVEX3Accept
     JMP .NoFlush:
.@pfxXOP:
     CALL PfxXOPAccept
     JMP .NoFlush:

.@pushapopa:
      CALL ModifyDefaultWidth
      SetSt [Dii.Prefix],pfx67NotUsed+pfxREXNotUsed
      CALL GetOperWidth
      MOV [Dii.DATA],AL
      JMP .Flush:
.@pushpop0:
      JSt [Dii.Status],stMode64,.invalid:
.@pushpop1:
      CALL ModifyDefaultWidth
      CALL GetOperWidth
      JNSt [Dii.Status],stMode64, .@pushpop4:
      CMP AL,'D'
      JNE .@pushpop4:
      MOV AL,'Q'
.@pushpop4:
      MOV [Dii.DATA],AL
      MOV [Dii.Operand1],RSI
      JMP .Flush
.@pushpopCS: LEA RSI,[RegCS]
      JMP .@pushpop0:
.@pushpopDS: LEA RSI,[RegDS]
      JMP .@pushpop0:
.@pushpopES: LEA RSI,[RegES]
      JMP .@pushpop0:
.@pushpopFS: LEA RSI,[RegFS]
      JMP .@pushpop1:
.@pushpopGS: LEA RSI,[RegGS]
      JMP .@pushpop1:
.@pushpopSS: LEA RSI,[RegSS]
      JMP .@pushpop0:

.@retf:
     CALL .DISTf:
     CALL ModifyDefaultWidth
     CALL GetOperWidth
     MOV [Dii.DATA],AL
     JMP .Flush:

.@retn:      ; RETN
     CALL .DISTn:
     SetSt [Dii.Flags],flagProm64
     CALL ModifyDefaultWidth
     CALL GetOperWidth
     MOV [Dii.DATA],AL
     JMP .Flush:

.@vzero: ; flagS1=0 VZEROUPPER   flagS1=1 VZEROALL
      LEA RSI,[=B"VZEROALL"]
      JSt [Dii.Flags],flagS1, .@v5:
      LEA RSI,[=B"VZEROUPPER"]
.@v5: MOV [Dii.Operation],RSI
      JMP .Flush:

.@xlat:CALL ModifyDefaultWidth
     SetSt [Dii.Prefix],pfx66NotUsed
     MOV CL,[Dii.AddrWidth]
     LEA EAX,[=B"[BX]"]
     CMP CL,AddrWidth16
     JE .xl6:
     LEA EAX,[=B"[RBX]"]
     JSt [Dii.Prefix],pfxREX,.xl6:
     LEA EAX,[=B"[EBX]"]
.xl6:MOV [Dii.Operand1],RAX
     JMP .Flush

.a@DISTf: ; CALL|JMP 16:16|16:32,DIST=F
     SetSt [Dii.Prefix],pfx67NotUsed+pfxREXNotUsed
     CALL ModifyDefaultWidth
     OR [Dii.Flags],flagImmFar
     MOV [Dii.DIST],'F'
     MOV [Dii.ADDR],'A'
     MOV AL,'W'
     CMP [Dii.OperWidth],OperWidth16
     JE .EA2:
     MOV AL,'D'
.EA2:MOV [Dii.IMM],AL
     CALL Imm
     MOV [Dii.Operand1],RCX
     JMP .Flush
.a_AL@CODEs:
     MOV [Dii.OperWidth],OperWidth8
     SetSt [Dii.Prefix],pfx66NotUsed
.a_eAX@CODEs:
     MOV [Dii.CODE],'S'
     CALL .Moffs:
     MOV [Dii.Operand1],RCX
     MOV [Dii.Operand2],RSI
     JMP .Flush
.aAX_ie@CODEs:
     CALL .CODEs:
.aAX_ie:                                    ; AX, i16 | EAX, i32
    CALL ModifyDefaultWidth
    SetSt [Dii.Prefix],pfx67NotUsed
    SetSt [Dii.Flags],flagImmSignExt
    CALL Imm
    CALL GetAccum
    LEA RDX,[ImmLine]
    MOV [Dii.Operand1],RAX
    MOV [Dii.Operand2],RDX
    JMP .Flush
.AL_a@CODEs:
     MOV [Dii.CODE],'S'
     MOV [Dii.OperWidth],OperWidth8
     SetSt [Dii.Prefix],pfx66NotUsed
     JMP .eAX_a@CODEs:
.AL_DX:
    CALL .OperWidth8:
    JMP .eAX_DX:
.AL_ib@CODEs:
    CALL .CODEs:
.AL_ib:                                     ; AL, ib
    CALL .OperWidth8
    SetSt [Dii.Prefix],pfx66NotUsed+pfx67NotUsed+pfxREXNotUsed
    JMP .aAX_ie:
.AL_Pb:    ; LODS
     MOV [Dii.OperWidth],OperWidth8
     SetSt [Dii.Prefix],pfxREXNotUsed
     JMP .eAX_Pe:
.AL_Tb:    ; SCAS
     MOV [Dii.OperWidth],OperWidth8
     SetSt [Dii.Prefix],pfxREXNotUsed
     JMP .eAX_Te:
.dest_hO_jO:  ; MASKMOVDQU
      CALL .OOOO:
.dest5:
      CALL ModifyDefaultWidth
      SetSt [Dii.Flags],flagOverrideES
      CALL GetStringRegs
      MOV [Dii.Operand1],RCX
      CALL GetModRMReg
      MOV [Dii.Operand2],RDX
      MOV [Dii.Operand3],RAX
      JMP .Flush
.dest_hU_jU:  ; MASKMOVQ
      CALL .UUUU:
      JMP .dest5:
.DX_AL:
     SetSt [Dii.Prefix],pfx66NotUsed+pfx67NotUsed+pfxREXNotUsed
     MOV [Dii.OperWidth],OperWidth8
.DX_eAX:
     CALL ModifyDefaultWidth
     SetSt [Dii.Prefix],pfx67NotUsed+pfxREXNotUsed
     CALL GetAccum
     LEA RDX,[RegDX]
     MOV [Dii.Operand1],RDX
     MOV [Dii.Operand2],RAX
     JMP .Flush
.DX_Pb:   ; OUTS
     MOV [Dii.OperWidth],OperWidth8
     ;JMP .DX_Pe:
.DX_Pe:
     SetSt [Dii.Prefix],pfxREXNotUsed
     CALL ModifyDefaultWidth
     CALL GetStringRegs
     LEA RDX,[RegDX]
     MOV [Dii.Operand1],RDX
     MOV [Dii.Operand2],RAX
     CALL GetOperWidth
     MOV [Dii.DATA],AL
     JMP .Flush
.eAX@:
     CALL GetAccum:
     MOV [Dii.Operand1],RAX
     JMP .Flush:
.eAX_a@CODEs:
     MOV [Dii.CODE],'S'
     CALL .Moffs:
     MOV [Dii.Operand1],RSI
     MOV [Dii.Operand2],RCX
     JMP .Flush
.eAX_DX:
    SetSt [Dii.Prefix],pfxREXNotUsed
    CALL ModifyDefaultWidth
    CALL GetAccum
    LEA RCX,[RegDX]
    MOV [Dii.Operand1],RAX
    MOV [Dii.Operand2],ECX
    JMP .Flush
.eAX_ECX:
     CALL GetAccum:
     MOV [Dii.Operand1],RAX
     LEA RCX,[RegECX]
     MOV [Dii.Operand2],RCX
     JMP .Flush:
.eAX_ib@in:
    CALL ModifyDefaultWidth
    CALL Imm2
    CALL GetAccum:
    MOV [Dii.Operand1],RAX
    MOV [Dii.Operand2],RCX
    JMP .Flush
.eAX_Pe:
     CALL ModifyDefaultWidth
     CALL GetAccum
     MOV [Dii.Operand1],RAX
     CALL GetStringRegs
     MOV [Dii.Operand2],RAX
     JMP .Flush
.eAX_Ropc:     ;  XCHG eAX,Reg.    DL=ModRM
     SetSt [Dii.Prefix],pfx67NotUsed
     MOV CL,0000_0111b
     AND CL,DL
     TEST [Dii.BaseNr],0000_1000b
     JZ .bR1:
     OR CL,0000_1000b
.bR1:CMP CL,0
     JNZ .bR2:
     JSt [Dii.Prefix],pfx66|pfx67|pfxREX, .bR2:
     LEA RSI,[="NOP"]
     MOV [Dii.Operation],RSI
     XOR EDX,EDX
     XOR ESI,ESI
     JMP .bR4:
.bR2:CALL ModifyDefaultWidth
     LEA RSI,[Reg16]
     LEA RDX,[RegAX]
     TEST [Dii.OperWidth],OperWidth16
     JNZ .bR3:
     LEA RSI,[Reg64]
     LEA RDX,[RegRAX]
     TEST [Dii.OperWidth],OperWidth64
     JNZ .bR3:
     LEA RSI,[Reg32]
     LEA RDX,[RegEAX]
.bR3:CALL SelectByCL
.bR4:MOV [Dii.Operand1],RDX
     MOV [Dii.Operand2],RSI
     JMP .Flush
.eAX_Te:
     CALL ModifyDefaultWidth
     CALL GetAccum
     MOV [Dii.Operand1],RAX
     CALL GetStringRegs
     MOV [Dii.Operand2],RCX
     JMP .Flush
.GPRfromOpc:    ; INC,DEC,PUSH
    SetSt [Dii.Flags],flagProm64
    CALL ModifyDefaultWidth
    CALL .CODEs:
    MOV CL,0x07
    AND CL,DL
    OR [Dii.BaseNr],CL
    MOV CL,[Dii.BaseNr]
    LEA RSI,[Reg16]
    CMP [Dii.OperWidth],OperWidth16
    JE .G6:
    LEA RSI,[Reg32]
.G6:CALL GetRegByCL
    MOV [Dii.Operand1],RSI
    JMP .Flush:

.Grp9B:
     SetSt [Dii.Prefix],pfx66NotUsed+pfxREXNotUsed
     SetSt [Dii.Flags],flagFWAIT
     MOV AL,[R8]    ; Peek two bytes to find out if prefix can apply.
     CMP AL,0xD9
     JNE .9B2:
     MOV AL,[R8+1]
     AND AL,0011_0000b
     CMP AL,0011_0000b
     JE .NoFlush:
.9B2:CMP AL,0xDD
     JNE .9B4:
     MOV AL,[R8+1]
     AND AL,0011_0000b
     CMP AL,0011_0000b
     JE .NoFlush:
.9B4:MOV AL,[R8]
     CMP AL,0xDB
     JNE .9B5:
     MOV AL,[R8+1]
     CMP AL,0xE0
     JB .FW:
     CMP AL,0xE4
     JA .FW:
     JMP .NoFlush:     ; Keep prefix FWAIT = 0x9B.
.9B5:CMP AL,0xDF
     JNE .FW:
     MOV AL,[R8+1]
     CMP AL,0xE0
     JE .NoFlush:
.FW: LEA RSI,[="FWAIT"]
     MOV [Dii.Operation],RSI
     JMP .Flush:

.GrpD8:  ; GrpD8 ST0,m32
     MOV [Dii.Family+1],familyF
     MOV [Dii.DATA],'D'
     SetSt [Dii.Prefix],pfx66NotUsed
     CALL ModifyDefaultWidth
     CALL GetModRMReg
     MOV [Dii.Operand2],RAX
     LEA RAX,[RegST0]
     MOV [Dii.Operand1],RAX
     MOV CL,0011_1000b
     AND CL,[Dii.ModRM]
     SHR CL,3
     LEA RSI,[OperGrpD8]
     CALL SelectByCL
     MOV [Dii.Operation],RSI
     JMP .Flush

.GrpD9:
     SetSt [Dii.Prefix],pfx66NotUsed
     MOV [Dii.Family+1],familyF
     MOV AL,[R8]            ; Peek ModR/M
     SHR AL,6
     CMP AL,3               ; Mod=3?
     JE .D9p:
     CALL ModifyDefaultWidth; Mod=0|1|2
     CALL GetModRMReg
    ; MOV [Dii.Operand2],RAX
     MOV [Dii.Operand1],RAX
     MOV CL,[Dii.OperNr]     ; RegOp
     AND CL,0000_0111b
     CMP CL,1
     JE .NotInstruction:
     CMP CL,0                ; FLD?
     JE .D9i:
     CMP CL,3                ; FSTP?
     JE .D9i:
     CMP CL,2
     JNE .D9j:
.D9i:MOV [Dii.DATA],'D'
.D9j:CMP CL,5                ; FLDCW?
     JE .D9k:
     CMP CL,7                ; FSTCW?
     JNE .D9l:
.D9k:MOV [Dii.DATA],'W'
.D9l:JNSt [Dii.Flags],flagFWAIT,.D9n:
     CMP CL,6
     JB .D9n:
     JA .D9m:
     LEA RSI,[=B"FSTENV"]
     JMP .D9o:
.D9m:LEA RSI,[=B"FSTCW"]
     JMP .D9o:
.D9n:LEA RSI,[OperGrpD9]
     CALL SelectByCL
.D9o:MOV [Dii.Operation],RSI
     JMP .Flush

.D9p:MOV CL,[R8]              ; Mod=3.
     INC R8
     MOV AL,1111_1000b
     AND AL,CL
     AND CL,7
     CMP AL,0xC0
     JNE .D9r:
     LEA RBX,[="FLD"]
.D9q:MOV [Dii.Operation],RBX
     LEA RSI,[RegFP]
     CALL SelectByCL
     MOV [Dii.Operand2],RSI
     JMP .Flush
.D9r:CMP AL,0xC8
     JNE .D9s:
     LEA RBX,[="FXCH"]
     JMP .D9q:
.D9s:MOV AL,[R8-1]            ; Load ModR/M again.
     CMP AL,0xE0
     JAE .D9t:
     CMP AL,0xD0
     JNE .NotInstruction:
     LEA RBX,[="FNOP"]
     MOV [Dii.Operation],RBX
     MOV [Dii.Operand1],0
     JMP .Flush
.D9t:MOV CL,0x1F
     AND CL,AL
     LEA RSI,[OperGrpD9E]
     CALL SelectByCL
     CMPB [RSI],0
     JE .NotInstruction:
     MOV [Dii.Operation],RSI
     JMP .Flush

.GrpDA:
     SetSt [Dii.Prefix],pfx66NotUsed
     LEA RAX,[RegST0]
     MOV [Dii.Operand1],RAX
     MOV AL,[R8]            ; Preload ModR/M
     SHR AL,6
     CMP AL,3               ; Mod=3?
     JE .DA2:
     CALL ModifyDefaultWidth ; Update Dii.OperWidth and Dii.AddrWidth by prefixes 66,67,REX.W
     CALL GetModRMReg
     MOV [Dii.Operand2],RAX
     MOV [Dii.DATA],'D'
     LEA RSI,[OperGrpDA]
     MOV CL,[Dii.OperNr]
     AND CL,0000_0111b
     CALL SelectByCL
     MOV [Dii.Operation],RSI
     JMP .Flush
.DA2:MOV CL,[R8]              ; Mod=3.
     INC R8
     MOV AL,1111_1000b
     AND AL,CL
     CMP AL,0xC8
     JAE .DA3:
     LEA RBX,[="FCMOVB"]
     JMP .DA6:
.DA3:CMP AL,0xD0
     JAE .DA4:
     LEA RBX,[="FCMOVE"]
     JMP .DA6:
.DA4:CMP AL,0xD8
     JAE .DA5:
     LEA RBX,[="FCMOVBE"]
     JMP .DA6:
.DA5:CMP AL,0xE0
     JAE .DA7:
     LEA RBX,[="FCMOVU"]
.DA6:MOV [Dii.Operation],RBX
     AND CL,7
     LEA RSI,[RegFP]
     CALL SelectByCL
     MOV [Dii.Operand2],RSI
     JMP .Flush
.DA7:CMPB [R8-1],0xE9
     JNE .NotInstruction:
     LEA RSI,[RegST1]
     MOV [Dii.Operand2],RSI
     LEA RSI,[="FUCOMPP"]
     MOV [Dii.Operation],RSI
     JMP .Flush

.GrpDB:  ; ST0,Sti
     SetSt [Dii.Prefix],pfx66NotUsed
     LEA RAX,[RegST0]
     MOV [Dii.Operand1],RAX
     MOV [Dii.Operand2],RAX
     MOV AL,[R8]            ; Preload ModR/M
     SHR AL,6
     CMP AL,3               ; Mod=3?
     JE .DB6:
     CALL ModifyDefaultWidth ; Update Dii.OperWidth and Dii.AddrWidth by prefixes 66,67,REX.W
     CALL GetModRMReg
     MOV CL,[Dii.OperNr]
     AND CL,0000_0111b
     MOV EDX,ECX             ; DL=0..7 (ModR/M RM).
     LEA RSI,[OperGrpDB]
     CALL SelectByCL
     CMPB [RSI],0
     JE .NotInstruction:
     MOV [Dii.Operation],RSI
     MOV ECX,[Dii.Memory]
     MOV [Dii.DATA],'T'
     CMP DL,5
     JNE .DB3:
.DB2:MOV [Dii.Operand2],RCX
     JMP .Flush
.DB3:CMP DL,7
     JNE .DB5:
.DB4:MOV [Dii.Operand1],RCX
     JMP .Flush
.DB5:MOV [Dii.DATA],'D'
     CMP DL,0
     JE .DB2:
     CMP DL,4
     JE .NotInstruction:
     CMP DL,6
     JE .NotInstruction:
     JMP .DB4:
.DB6:MOV CL,0000_0111b         ; Mod=3. R8 points to ModRM.
     AND CL,[R8]
     INC R8
     LEA RSI,[RegFP]
     CALL SelectByCL
     MOV [Dii.Operand2],RSI
     MOV AL,[R8-1]
     AND AL,1111_1000b
     LEA RBX,[="FCMOVNB"]
     CMP AL,0xC0
     JE .DB7:
     LEA RBX,[="FCMOVNE"]
     CMP AL,0xC8
     JE .DB7:
     LEA RBX,[="FCMOVNBE"]
     CMP AL,0xD0
     JE .DB7:
     LEA RBX,[="FCMOVNU"]
     CMP AL,0xD8
     JE .DB7:
     LEA RBX,[="FUCOMI"]
     CMP AL,0xE8
     JE .DB7:
     LEA RBX,[="FCOMI"]
     CMP AL,0xF0
     JNE .DB8:
.DB7:MOV [Dii.Operation],RBX
     JMP .Flush
.DB8:CMP AL,0xF8
     JE .NotInstruction:
     CMP AL,0xE0
     JNE .NotInstruction:
     LEA RSI,[OperGrpDBE:]
     JNSt [Dii.Flags],flagFWAIT,.DB9:
     LEA RSI,[OperGrpDBEF:]
.DB9:MOV CL,[R8-1]
     AND CL,7
     CALL SelectByCL
     CMPB [RSI],0
     JE .NotInstruction:
     MOV [Dii.Operation],RSI
     MOV [Dii.Operand1],0
     MOV [Dii.Operand2],0
     JMP .Flush

.GrpDC: ; GrpD8 ST0,m64fp
     SetSt [Dii.Prefix],pfx66NotUsed
     MOV [Dii.Family+0],familyF
     MOV [Dii.Family+1],familyF
     CALL ModifyDefaultWidth ; Update Dii.OperWidth and Dii.AddrWidth by prefixes 66,67,REX.
     CALL GetModRMReg
     JSt [Dii.Status],stMod3,.DC2:
     MOV [Dii.Operand2],RAX
     MOV [Dii.DATA],'Q'
     MOV CL,[Dii.OperNr]
     AND CL,0000_0111b
     LEA RSI,[OperGrpD8]
     CALL SelectByCL
     MOV [Dii.Operation],RSI
     LEA RAX,[RegST0]
     MOV [Dii.Operand1],RAX
     JMP .Flush
.DC2:           ; Mod=3
     MOV [Dii.Operand1],RAX
     LEA RAX,[RegST0]
     MOV [Dii.Operand2],RAX
     MOV AL,1111_1000b
     AND AL,[Dii.ModRM]
     LEA RSI,[OperFADD]
     CMP AL,0xC0
     JE .DC8:
     LEA RSI,[OperFMUL]
     CMP AL,0xC8
     JE .DC8:
     LEA RSI,[OperFSUBR]
     CMP AL,0xE0
     JE .DC8:
     LEA RSI,[OperFSUB]
     CMP AL,0xE8
     JE .DC8:
     LEA RSI,[OperFDIVR]
     CMP AL,0xF0
     JE .DC8:
     LEA RSI,[OperFDIV]
     CMP AL,0xF8
     JNE .NotInstruction:
.DC8:MOV [Dii.Operation],RSI
     JMP .Flush

.GrpDD:                   ; GrpDD mem
     SetSt [Dii.Prefix],pfx66NotUsed
     CALL ModifyDefaultWidth ; Update Dii.OperWidth and Dii.AddrWidth by prefixes 66,67,REX.W
     CALL GetModRMReg
     JSt [Dii.Status],stMod3,.DD3
     MOV CL,[Dii.OperNr]
     AND CL,0000_0111b
     MOV DL,CL                    ; DL=ModR/M RegOp.
     LEA RSI,[OperGrpDD]
     CALL SelectByCL
     CMPB [RSI],0
     JE .NotInstruction:
     MOV [Dii.Operation],RSI
     MOV RCX,[Dii.Memory]
     MOV [Dii.Operand1],RCX
     Dispatch DL,0n0,0n4,0n6,0n7   ; RegOp /0 /4 /6 /7:  FLD FRSTOR FSAVE FSTSW
     ;;;MOV [Dii.Operand1],RCX
     LEA RSI,[RegST0]
     MOV [Dii.Operand2],RSI
.DD2:MOV [Dii.DATA],'Q'            ; FISTTP,FST,FSTP
     JMP .Flush
.0n0:LEA RSI,[RegST0]
     MOV [Dii.Operand1],RSI        ; FLD
     MOV [Dii.Operand2],RCX
     JMP .DD2:
.0n4:                              ; FRSTOR
     MOV [Dii.Operand1],RCX        ; FNSAVE
     JMP .Flush:
.0n6:MOV [Dii.Operand1],RCX
     JNSt [Dii.Flags],flagFWAIT,.Flush:
     LEA RSI,[=B"FSAVE"]
     MOV [Dii.Operation],RSI
     JMP .Flush:
.0n7:MOV [Dii.Operand1],RCX        ; FNSTSW
     JNSt [Dii.Flags],flagFWAIT,.DDw:
     LEA RSI,[=B"FSTSW"]
     MOV [Dii.Operation],RSI
.DDw:MOV [Dii.DATA],'W'
     JMP .Flush:
.DD3:MOV DL,[Dii.ModRM]            ; Mod=3.
     MOV CL,7
     AND CL,DL
     AND DL,1111_1000b
     LEA RSI,[RegFP]
     CALL SelectByCL
     LEA RCX,[RegST0]
     Dispatch DL,0xC0,0xD0,0xD8,0xE0,0xE8  ; FFREE,FST,FSTP,FUCOM,FUCOMP
     JMP .NotInstruction:
.0xC0:LEA RBX,[="FFREE"]
.DD4:MOV [Dii.Operand1],RSI
.DD5:MOV [Dii.Operation],RBX
     JMP .Flush
.0xD0:LEA RBX,[OperFST]
.DD6:MOV [Dii.Operand2],RCX
     JMP .DD4:
.0xD8:LEA RBX,[OperFSTP]
     JMP .DD6:
.0xE0:LEA RBX,[="FUCOM"]
.DD7:MOV [Dii.Operand1],RCX
     MOV [Dii.Operand2],RSI
     JMP .DD5:
.0xE8:LEA RBX,[="FUCOMP"]
     JMP .DD7:

.GrpDE: ; GrpDE ST0,m16int
     SetSt [Dii.Prefix],pfx66NotUsed
     MOV [Dii.Family+1],familyF
     CALL ModifyDefaultWidth
     CALL GetModRMReg
     JSt [Dii.Status],stMod3, .DE2:
     MOV CL,[Dii.OperNr]
     LEA RSI,[OperGrpDA]
     CALL SelectByCL
     MOV [Dii.Operation],RSI
     LEA RAX,[RegST0]
     MOV [Dii.Operand1],RAX
     MOV RCX,[Dii.Memory]
     MOV [Dii.Operand2],RCX
     MOV [Dii.DATA],'W'
     JMP .Flush
.DE2:                         ; Mod=3
     MOV RSI,[Dii.BaseReg]
     LEA RAX,[RegST0]
     MOV DL,[Dii.ModRM]
     CMP DL,0xD9
     JNE .DE3
     MOV [Dii.Operand1],RAX  ; DED9  FCOMPP ST0,ST1
     MOV [Dii.Operand2],RSI
     LEA RBX,[="FCOMPP"]
     MOV [Dii.Operation],RBX
     JMP .Flush:
.DE3:
     MOV [Dii.Operand1],RSI   ; DEC0..DEFF  F** ST*,ST0
     MOV [Dii.Operand2],RAX
     AND DL,1111_1000b
     CMP DL,0xC0
     LEA RBX,[="FADDP"]
     JE .DE8:
     CMP DL,0xC8
     LEA RBX,[="FMULP"]
     JE .DE8:
     CMP DL,0xE0
     LEA RBX,[="FSUBRP"]
     JE .DE8:
     CMP DL,0xE8
     LEA RBX,[="FSUBP"]
     JE .DE8:
     CMP DL,0xF0
     LEA RBX,[="FDIVRP"]
     JE .DE8:
     CMP DL,0xF8
     LEA RBX,[="FDIVP"]
     JNE .NotInstruction:
.DE8:MOV [Dii.Operation],RBX
     JMP .Flush

.GrpDF:
     SetSt [Dii.Prefix],pfx66NotUsed
     MOV [Dii.Family+1],familyF
     CALL ModifyDefaultWidth ; Update Dii.OperWidth and Dii.AddrWidth by prefixes 66,67,REX.W
     CALL GetModRMReg
     JSt [Dii.Status],stMod3,.DF2:
     MOV CL,[Dii.OperNr]
     AND CL,0000_0111b
     MOV DL,CL
     LEA RSI,[OperGrpDF]
     CALL SelectByCL
     MOV [Dii.Operation],RSI
     MOV RCX,[Dii.Memory]
     LEA RAX,[RegST0]
     MOV [Dii.Operand1],RAX
     MOV [Dii.Operand2],RCX
     MOV [Dii.DATA],'W'
     CMP DL,0
     JE .Flush
     MOV [Dii.Operand1],RCX
     MOV [Dii.Operand2],RAX
     CMP DL,3
     JBE .Flush
     MOV [Dii.DATA],'Q'
     CMP DL,7
     JE .Flush
     MOV [Dii.DATA],'T'
     CMP DL,6
     JE .Flush
     MOV [Dii.Operand1],RAX
     MOV [Dii.Operand2],RCX
     CMP DL,4
     JE .Flush
     MOV [Dii.DATA],'Q'
     JMP .Flush
.DF2:         ; Mod=3.
     LEA RAX,[RegST0]
     MOV RSI,[Dii.BaseReg]
     MOV [Dii.Operand1],RAX
     MOV DL,[Dii.ModRM]
     AND DL,1111_1000b
     Dispatch DL,0XC0,0XE8,0XF0
     CMP [Dii.ModRM],0xE0
     JNE .NotInstruction:
     LEA RBX,[OperFNSTSW]
     JNSt [Dii.Flags],flagFWAIT,.DF3:
     LEA RBX,[=B"FSTSW"]
.DF3:MOV [Dii.Operation],RBX
     LEA RAX,[RegAX]
     MOV [Dii.Operand1],RAX
     JMP .Flush
.0XC0:LEA RBX,[="FFREEP"]
     MOV [Dii.Operand1],RSI
     JMP .DF8:
.0XE8:LEA RBX,[="FUCOMIP"]
     JMP .DF6:
.0XF0:LEA RBX,[="FCOMIP"]
.DF6:MOV [Dii.Operand2],RSI
.DF8:MOV [Dii.Operation],RBX
     JMP .Flush

.hC_jR:
    MOV [Dii.Family],'CR'
    SetSt [Dii.Flags],flagProm64
    CALL .OperWidth32:
    JMP .h_j:
.hE_jRd:
    CALL .OperWidth32:
    CALL .ERRR:
    JMP .h_j:
.hG_jR:
    MOV [Dii.Family],'GR'
    SetSt [Dii.Flags],flagProm64
    CALL .OperWidth32:
    JMP .h_j:
.hK_jK:
    CALL .KKKK:
    JMP .h_j:
.hK_jK_ib:CALL .KKKK:
    JMP .h_j_i:
.hK_jO:CALL .KOOO:
    JMP .h_j:

.hK_jO_ib@DATAo@FV16:
      CALL .DATAo:
       CALL .KOOO:
       CALL .FV16:
       JMP .h_j_i:

.hK_jO_ib@DATAo@FV32:
       CALL .DATAo:
       CALL .KOOO:
       CALL .FV32:
       JMP .h_j_i:

.hK_jO_ib@DATAo@FV64:
     CALL .DATAo:
       CALL .KOOO:
       CALL .FV64:
       JMP .h_j_i:

.hK_jO_ib@T16:
       CALL .KOOO:
       CALL .T16:
       JMP .h_j_i:

.hK_jO_ib@T32:
       CALL .KOOO:
       CALL .T32:
       JMP .h_j_i:

.hK_jO_ib@T64:
       CALL .KOOO:
       CALL .T64:
       JMP .h_j_i:

.hK_jR_ib:
       CALL .KRRR:
       JMP .h_j_ib:

.hK_jRd:
       CALL .KRKK:
       CALL .OperWidth32
       JMP .h_j:
.hK_jRq:
       CALL .KRKK:
       CALL .OperWidth64
       JMP .h_j:

.hK_jRq_ib:
       CALL .OperWidth64:
       CALL .KRRR:
       JMP .h_j_ib:

.hK_jX_ib@T16:
       CALL .KXXX:
       CALL .T16:
       JMP .h_j_i:

.hK_jX_ib@T32:
       CALL .KXXX:
       CALL .T32:
       JMP .h_j_i:

.hK_jX_ib@T64:
       CALL .KXXX:
       CALL .T64:
       JMP .h_j_i:

.hK_vK_jK:
       CALL .KKKK:
       JMP .h_v_j:
.hK_vO_jO@FV32:
       CALL .KOOO:
       CALL .FV32:
       JMP .h_v_j:
.hK_vO_jO@FV64:
       CALL .KOOO:
       CALL .FV64:
       JMP .h_v_j:
.hK_vO_jO@FVM:
       CALL .KOOO:
       CALL .FVM:
       JMP .h_v_j:
.hK_vO_jO@MFV32:
       CALL .KOOO:
       CALL .MFV32:
       JMP .h_v_j:

.hK_vO_jO@MFVM
       CALL .KOOO:
       CALL .MFVM:
       JMP .h_v_j:

.hK_vO_jO_ib@FV16:
       CALL .KOOO:
       CALL .FV16:
       JMP .h_v_j_i:
.hK_vO_jO_ib@FV32:
       CALL .KOOO:
       CALL .FV32:
       JMP .h_v_j_i:
.hK_vO_jO_ib@FV64:
       CALL .KOOO:
       CALL .FV64:
       JMP .h_v_j_i:
.hK_vO_jO_ib@FVM:
       CALL .KOOO:
       CALL .FVM:
       JMP .h_v_j_i:
.hK_vO_jO_ib@MFV32:
       CALL .KOOO:
       CALL .MFV32:
       JMP .h_v_j_i:
.hK_vO_jO_ib@MFV64:
       CALL .KOOO:
       CALL .MFV64:
       JMP .h_v_j_i:
.hK_vO_jO_ib@T16:
       CALL .KOOO:
       CALL .T16:
       JMP .h_v_j_i:
.hK_vO_jO_ib@T32:
       CALL .KOOO:
       CALL .T32:
       JMP .h_v_j_i:
.hK_vO_jO_ib@T64:
       CALL .KOOO:
       CALL .T64:
       JMP .h_v_j_i:

.hK_vX_jX_ib@T32:
       CALL .KXXX:
       CALL .T32:
       JMP .h_v_j_i:

.hK_vX_jX_ib@T64:
       CALL .KXXX:
       CALL .T64:
       JMP .h_v_j_i:

.hN_jN:CALL .NNNN:
       JMP .h_j:
.hN_jR:CALL .NRRR:
       JMP .h_j:
.hN_jRd:CALL .NRRR:
       CALL .OperWidth32
       JMP .h_j:
.hN_jRq:CALL .NRRR:
       CALL .OperWidth64
       JMP .h_j:
.hO:   CALL .OOOO:
       JMP .h:
.hO_ib:CALL .OOOO:
       JMP .h_i:
.hO_jK:CALL .OKOO:
       JMP .h_j:

.hO_jO:CALL .OOOO:
       JMP .h_j:

.hO_jO@DATAd:
       CALL .OOOO:
       CALL .DATAd:
       JMP .h_j:

.hO_jO@DATAd@noREP:
       SetSt [Dii.Prefix],pfxF2IsOpcode+pfxF3IsOpcode

.hO_jO@DATAd@T32:
      CALL .OOOO:
      CALL .DATAd:
      CALL .T32:
      JMP .h_j:
.hO_jO@DATAo:
       CALL .DATAo:
       CALL .OOOO:
       JMP .h_j:
.hO_jO@DATAo@FV32:
       CALL .DATAo:
       CALL .OOOO:
       CALL .FV32:
       JMP .h_j:
.hO_jO@DATAo@FV64:
       CALL .DATAo:
       CALL .OOOO:
       CALL .FV64:
       JMP .h_j:
.hO_jO@DATAo@MHV32:
       CALL .DATAo:
       CALL .OOOO:
       CALL .MHV32:
       JMP .h_j:
.hO_jO@DATAo@T128
      CALL .OOOO:
      CALL .DATAo:
      CALL .T128:
      JMP .h_j:

.hO_jO@DATAq:
       CALL .OOOO:
       CALL .DATAq:
       JMP .h_j:
.hO_jO@DATAq@FV64:
      CALL .OOOO:
      CALL .DATAq:
      CALL .FV64:
      JMP .h_j:

.hO_jO@DATAq@noREP:
       SetSt [Dii.Prefix],pfxF2IsOpcode+pfxF3IsOpcode
       CALL .OOOO:
       CALL .DATAq:
       JMP .h_j:
.hO_jO@DATAq@T64:
       CALL .OOOO:
       CALL .DATAq:
       CALL .T64:
       JMP .h_j:
.hO_jO@DATAw:
       CALL .OOOO:
       CALL  .DATAw:
       JMP .h_j:
.hO_jO@DATAx:
       CALL .OOOO:
       CALL .DATAx:
       JMP .h_j:
.hO_jO@DATAx@T128:
       CALL .OOOO:
       CALL .DATAx:
       CALL .T128:
       JMP .h_j:

.hO_jO@DATAy:
       CALL .OOOO:
       CALL .DATAy:
       JMP .h_j:
.hO_jO@DATAy@T256
      CALL .OOOO:
      CALL .DATAy:
      CALL .T256:
      JMP .h_j:
.hO_jO@FV16:
       CALL .OOOO:
       CALL .FV16:
       JMP .h_j:

.hO_jO@FV32:
       CALL .OOOO:
       CALL .FV32:
       JMP .h_j:
.hO_jO@FV64:
       CALL .OOOO:
       CALL .FV64:
       JMP .h_j:

.hO_jO@FVM:
       CALL .OOOO:
       CALL .FVM:
       JMP .h_j:
.hO_jO@HV16:
       CALL .OOOO:
       CALL .HV16:
       JMP .h_j:
.hO_jO@HV32:
       CALL .OOOO:
       CALL .HV32:
       JMP .h_j:

.hO_jO@HVM:
       CALL .OOOO:
       CALL .HVM:
       JMP .h_j:

.hO_jO@MFV32:
       CALL .OOOO:
       CALL .MFV32:
       JMP .h_j:

.hO_jO@MFV64:
       CALL .OOOO:
       CALL .MFV64:
       JMP .h_j:
.hO_jO@MFVM:
       CALL .OOOO:
       CALL .MFVM:
       JMP .h_j:

.hO_jO@MHV32:
       CALL .OOOO:
       CALL .MHV32:
       JMP .h_j:
.hO_jO@OVM:
       CALL .OOOO:
       CALL .OVM:
       JMP .h_j:
.hO_jO@pfxIsOpcode:
     SetSt [Dii.Prefix],pfx66IsOpcode+pfxF2IsOpcode+pfxF3IsOpcode
     JMP .h_j:

.hO_jO@QV16:
       CALL .OOOO:
       CALL .QV16:
       JMP .h_j:
.hO_jO@QVM:
       CALL .OOOO:
       CALL .QVM:
       JMP .h_j:
.hO_jO@T128:
       CALL .OOOO:
       CALL .T128:
       JMP .h_j:

.hO_jO@T16:
       CALL .OOOO:
       CALL .T16:
       JMP .h_j:
.hO_jO@T256:
       CALL .OOOO:
       CALL .T256:
       JMP .h_j:
.hO_jO@T32:
       CALL .OOOO:
       CALL .T32:
       JMP .h_j:
.hO_jO@T64:
       CALL .OOOO:
       CALL .T64:
       JMP .h_j:
.hO_jO@T8:
       CALL .OOOO:
       CALL .T8:
       JMP .h_j:
.hO_jO@VSIB@T32:
       CALL .T32:
       CALL .VSIB:
       JMP .h_j:
.hO_jO@VSIB@T64:
       CALL .T64:
       CALL .VSIB:
       JMP .h_j:
.hO_jO_EAX_XMM0:
       CALL .OOOO:
       LEA RAX,[RegEAX]
       MOV [Dii.Operand3],RAX
       LEA EAX,[RegXMM0]
       MOV [Dii.Operand4],RAX
       JMP .h_j:
.hO_jO_ib:
       CALL .OOOO:
       JMP .h_j_i:

.hO_jO_ib@DATAw:
     CALL .UUUU:
     CALL  .DATAw:
     JMP .h_j_i:
.hO_jO_ib@FV16:
     CALL .UUUU:
     CALL .FV16:
     JMP .h_j_i:
.hO_jO_ib@FV32:
       CALL .OOOO:
       CALL .FV32:
       JMP .h_j_i:
.hO_jO_ib@FV64:
       CALL .OOOO:
       CALL .FV64:
       JMP .h_j_i:
.hO_jO_ib@FVM:
       CALL .OOOO:
       CALL .FVM:
       JMP .h_j_i:
.hO_jO_ib@MFV32:
     CALL .OOOO:
     CALL .MFV32:
     JMP .h_j_i:
.hO_jO_ib@MFV64:
     CALL .OOOO:
     CALL .MFV64:
     JMP .h_j_i:
.hO_jO_vO:
       CALL .OOOO:
       JMP .h_j_v:
.hO_jO_vO@VSIB:
     CALL .OOOO:
     CALL .VSIB:
     JMP .h_j_v:
.hO_jO_XMM0:
       CALL .OOOO:
       LEA RAX,[RegXMM0]
       MOV [Dii.Operand3],RAX
       JMP .h_j:

.hO_jR:CALL .OROO:
       JMP .h_j:

.hO_jR@DATAd:
       CALL .OROO:
       CALL .DATAd:
       JMP .h_j:
.hO_jR@DATAd@T32:
       CALL .OROO:
       CALL .DATAd:
       CALL .T32:
       JMP .h_j:

.hO_jR@DATAq:
       CALL .OROO:
       CALL .DATAq:
       JMP .h_j:
.hO_jR@DATAq@T64:
       CALL .OROO:
       CALL .DATAq:
       CALL .T64:
       JMP .h_j:

.hO_jR@HVM:
       CALL .OROO:
       CALL .HVM:
       JMP .h_j:
.hO_jR_ib:
       CALL .ORRR:
       JMP .h_j_i:
.hO_jR_ib@DATAb:
       CALL .ORRR:
       CALL  .DATAb:
       JMP .h_j_ib:
.hO_jR_ib@DATAd:
       CALL .ORRR:
       CALL .DATAd:
       JMP .h_j_ib:
.hO_jR_ib@DATAq:
       CALL .ORRR:
       CALL .DATAq:
       JMP .h_j_ib:
.hO_jR@DATAw:
       CALL .OROO:
       CALL  .DATAw:
       JMP .h_j:
.hO_jRb@T8:
       CALL .OperWidth8:
       CALL .ORRR:
       CALL .T8:
       JMP .h_j:
.hO_jRd@DATAd:
       CALL .OperWidth32:
       CALL .ORRR:
       CALL .DATAd:
       JMP .h_j:

.hO_jRd@DATAd@T32:
       CALL .OperWidth32
       CALL .OROO:
       CALL .DATAd:
       CALL .T32:
       JMP .h_j:

.hO_jRd@T32:
       CALL .OperWidth32:
       CALL .ORRR:
       CALL .T32:
       JMP .h_j:
.hO_jRd_ib:
       CALL .OperWidth32:
       CALL .ORRR:
       JMP .h_j_i:

.hO_jRd_ib@DATAb:
       CALL .DATAb:
       CALL .OperWidth32:
       CALL .ORRR:
       JMP .h_j_i:
.hO_jRd_ib@DATAd:
       CALL .DATAd:
       CALL .OperWidth32:
       CALL .ORRR:
       JMP .h_j_i:
.hO_jRd_ib@DATAq:
       CALL .DATAq:
       CALL .OperWidth32:
       CALL .ORRR:
       JMP .h_j_i:
.hO_jRd_ib@DATAw:
       CALL .DATAw:
       CALL .OperWidth32:
       CALL .ORRR:
       JMP .h_j_i:
.hO_jRq@DATAq:
       CALL .ORRR:
       CALL .DATAq:
       JMP .h_j:

.hO_jRq@DATAq@T64:
       CALL .OperWidth64:
       CALL .OROO:
       CALL .DATAq:
       CALL .T64:
       JMP .h_j:
.hO_jRq@T64:
       CALL .OperWidth64:
       CALL .ORRR:
       CALL .T64:
       JMP .h_j:

.hO_jRq_ib:
       CALL .OperWidth64:
       CALL .ORRR:
       JMP .h_j_i:

.hO_jRq_ib@DATAq:
       CALL .DATAq:
       CALL .OperWidth64:
       CALL .ORRR:
       JMP .h_j_i:

.hO_jRw@DATAw@T16:
       CALL .OperWidth16:
       CALL .OROO:
       CALL  .DATAw:
       CALL .T16:
       JMP .h_j:
.hO_jRw@T16:
       CALL .OperWidth16:
       CALL .ORRR:
       CALL .T16:
       JMP .h_j:

.hO_jU:CALL .OUOO:
       JMP .h_j:

.hO_jU@DATAq:
       CALL .OUOO:
       CALL .DATAq:
       JMP .h_j:

.hO_jU@DATAq@noREP:
       SetSt [Dii.Prefix],pfxF2IsOpcode+pfxF3IsOpcode
       CALL .OOKO:
       CALL .MFV32:
       JMP .h_v_j:

.hO_jX:CALL .OXOO:
       JMP .h_j:

.hO_jX@DATAd:
      CALL .DATAd:
      CALL .OXOO:
      JMP .h_j:

.hO_jX@DATAo:
       CALL .OXOO:
       CALL .DATAo:
       JMP .h_j:

.hO_jX@DATAq:
      CALL .DATAq:
      CALL .OXOO:
      JMP .h_j:

.hO_jX@DATAx@T128:
       CALL .OXOO:
       CALL .DATAx:
       CALL .T128:
       JMP .h_j:
.hO_jX@DATAy@T256
      CALL .OXOO:
      CALL .DATAy:
      CALL .T256:
      JMP .h_j:

.hO_jX@OVM:
       CALL .OVM:
       CALL .OXOO:
       JMP .h_j:

.hO_jX@QVM:
       CALL .QVM:
       CALL .OXOO:
       JMP .h_j:

.hO_jX@T128:
    CALL .OXOO:
    CALL .T128:
    JMP .h_j:

.hO_jX@T16:
       CALL .T16:
       CALL .OXOO:
       JMP .h_j:


.hO_jX@T256:
    CALL .OXOO:
    CALL .T256:
    JMP .h_j:

.hO_jX@T32:
      CALL .T32:
      CALL .OXOO:
      JMP .h_j:
.hO_jX@T64:
      CALL .T64:
      CALL .OXOO:
      JMP .h_j:

.hO_jX@T8:
       CALL .T8:
       CALL .OXOO:
       JMP .h_j:

.hO_jXXY:
     CALL .OOOO:
     CALL .XXY:
     MOV [Dii.Family+1],AL
     MOV [Dii.DATA],AH
     JMP .h_j:

.hO_jXXY@HV16:
     CALL .HV16:
     CALL .OOOO:
     CALL .XXY:
     MOV [Dii.Family+1],AL
     JMP .h_j:
.hO_jXXY@HV32:
       CALL .HV32:
       CALL .OOOO:
       CALL .XXY:
       MOV [Dii.Family+1],AL
       MOV [Dii.DATA],AH
       JMP .h_j:

.hO_jXXY@HVM:
     CALL .HVM:
     CALL .OOOO:
     CALL .XXY:
     MOV [Dii.Family+1],AL
     JMP .h_j:

.hO_jXXY@OVM:
       CALL .OVM:
       CALL .OOOO:
       CALL .XXY:
       MOV [Dii.Family+1],AL
       MOV [Dii.DATA],AH
       JMP .h_j:

.hO_jXXY@QVM:
       CALL .QVM:
       CALL .OOOO:
       CALL .XXY:
       MOV [Dii.Family+1],AL
       MOV [Dii.DATA],AH
       JMP .h_j:
.hO_vK_jO@MFV32:
       CALL .OOKO:
       CALL .MFV32:
       JMP .h_v_j:

.hO_vK_jO@MFV64:
       CALL .OOKO:
       CALL .MFV64:
       JMP .h_v_j:
.hO_vO_is4_jO:
       CALL .OOOO:
       JMP .h_v_is4_j:
.hO_vO_jO:
       CALL .OOOO:
       JMP .h_v_j:

.hO_vO_jO@DATAd:
       CALL .OOOO:
       CALL .DATAd:
       JMP .h_v_j:
.hO_vO_jO@DATAd@FV32:
       CALL .OOOO:
       CALL .DATAd:
       CALL .FV32:
       JMP .h_v_j:

.hO_vO_jO@DATAd@FV64:
       CALL .OOOO:
       CALL .DATAd:
       CALL .FV64:
       JMP .h_v_j:
.hO_vO_jO@DATAd@T32:
       CALL .OOOO:
       CALL .DATAd:
       CALL .T32:
       JMP .h_v_j:
.hO_vO_jO@DATAo:
       CALL .OOOO:
       CALL .DATAo:
       JMP .h_v_j:

.hO_vO_jO@DATAo@FV32:
       CALL .OOOO:
       CALL .DATAo:
       CALL .FV32
       JMP .h_v_j:
.hO_vO_jO@DATAo@FV64:
       CALL .OOOO:
       CALL .DATAo:
       CALL .FV64:
       JMP .h_v_j:
.hO_vO_jO@DATAq:
       CALL .OOOO:
       CALL .DATAq:
       JMP .h_v_j:
.hO_vO_jO@DATAq@FV32
       CALL .OOOO:
       CALL .DATAq:
       CALL .FV32:
       JMP .h_v_j:
.hO_vO_jO@DATAq@FV64:
       CALL .OOOO:
       CALL .DATAq:
       CALL .FV64:
       JMP .h_v_j:

.hO_vO_jO@DATAq@T64:
       CALL .OOOO:
       CALL .DATAq:
       CALL .T64:
       JMP .h_v_j:

.hO_vO_jO@FV16:
       CALL .OOOO:
       CALL .FV16:
       JMP .h_v_j:
.hO_vO_jO@FV32:
       CALL .OOOO:
       CALL .FV32:
       JMP .h_v_j:
.hO_vO_jO@FV64:
       CALL .OOOO:
       CALL .FV64:
       JMP .h_v_j:
.hO_vO_jO@FVM:
       CALL .OOOO:
       CALL .FVM:
       JMP .h_v_j:
.hO_vO_jO@HVM:
       CALL .OOOO:
       CALL .HVM:
       JMP .h_v_j:

.hO_vO_jO@MFV32:
       CALL .OOOO:
       CALL .MFV32:
       JMP .h_v_j:
.hO_vO_jO@MFV64:
       CALL .OOOO:
       CALL .MFV64:
       JMP .h_v_j:
.hO_vO_jO@QVM:
       CALL .OOOO:
       CALL .QVM:
       JMP .h_v_j:
.hO_vO_jO@T128:
       CALL .OOOO:
       CALL .T128
       JMP .h_v_j:
.hO_vO_jO@T16:
       CALL .OOOO:
       CALL .T16
       JMP .h_v_j:
.hO_vO_jO@T32:
       CALL .OOOO:
       CALL .T32:
       JMP .h_v_j:
.hO_vO_jO@T64:
       CALL .OOOO:
       CALL .T64:
       JMP .h_v_j:
.hO_vO_jO_ib
      CALL .OOOO:
      JMP .h_v_j_i:
.hO_vO_jO_ib@DATAb:
       CALL .OOOO:
       CALL  .DATAb:
       JMP .h_v_j_i:

.hO_vO_jO_ib@DATAb@T8:
       CALL .OOOO:
       CALL  .DATAb:
       CALL .T8:
       JMP .h_v_j_i:
.hO_vO_jO_ib@DATAd:
       CALL .OOOO:
       CALL .DATAd:
       JMP .h_v_j_i:
.hO_vO_jO_ib@DATAd@FV32:
       CALL .OOOO:
       CALL .DATAd:
       CALL .FV32:
       JMP .h_v_j_i:
.hO_vO_jO_ib@DATAd@T32:
       CALL .OOOO:
       CALL .DATAd:
       CALL .T32:
       JMP .h_v_j_i:
.hO_vO_jO_ib@DATAq:
       CALL .OOOO:
       CALL .DATAq:
       JMP .h_v_j_i:
.hO_vO_jO_ib@DATAq@FV64:
       CALL .OOOO:
       CALL .DATAq:
       CALL .FV64:
       JMP .h_v_j_i:
.hO_vO_jO_ib@DATAq@T64:
       CALL .OOOO:
       CALL .DATAq:
       CALL .T64
       JMP .h_v_j_i:
.hO_vO_jO_ib@DATAw:
     CALL .OOOO:
     CALL  .DATAw:
     JMP .h_v_j_i:
.hO_vO_jO_ib@DATAw@T16:
     CALL .OOOO:
     CALL  .DATAw:
     CALL .T16:
     JMP .h_v_j_i:
.hO_vO_jO_ib@FV32:
       CALL .OOOO:
       CALL .FV32:
       JMP .h_v_j_i:
.hO_vO_jO_ib@FV64:
       CALL .OOOO:
       CALL .FV64:
       JMP .h_v_j_i:

.hO_vO_jO_ib@FVM:
       CALL .OOOO:
       CALL .FVM:
       JMP .h_v_j_i:
.hO_vO_jO_ib@MFV32:
       CALL .OOOO:
       CALL .MFV32:
       JMP .h_v_j_ib:
.hO_vO_jO_ib@MFV64:
       CALL .OOOO:
       CALL .MFV64:
       JMP .h_v_j_ib:
.hO_vO_jO_ib@T128:
       CALL .OOOO:
       CALL .T128:
       JMP .h_v_j_i:
.hO_vO_jO_ib@T16:
     CALL .OOOO:
     CALL .T16:
     JMP .h_v_j_i:
.hO_vO_jO_ib@T256:
       CALL .OOOO:
       CALL .T256:
       JMP .h_v_j_i:
.hO_vO_jO_ib@T32
       CALL .OOOO:
       CALL .T32
       JMP .h_v_j_i:

.hO_vO_jO_ib@T64
       CALL .OOOO:
       CALL .T64
       JMP .h_v_j_i:

.hO_vO_jO_is4:
       CALL .OOOO:
       CALL ModifyDefaultWidth:
       CALL GetModRMReg
       MOV [Dii.Operand1],RDX
       MOV [Dii.Operand2],RBX
       MOV [Dii.Operand3],RAX
       CALL Imm2XMM:
       MOV [Dii.Operand4],RCX
       INC R8
       JMP .Flush:

.hO_vO_jO_XMM0:
       CALL .OOOO:
       LEA RAX,[RegXMM0]
       MOV [Dii.Operand4],RAX
       JMP .h_v_j

.hO_vO_jR:
       CALL .OROO:
       JMP .h_v_j:

.hO_vO_jR@DATAd@QVM:
       CALL .OROO:
       CALL .DATAd:
       CALL .QVM:
       JMP .h_v_j:
.hO_vO_jR@DATAq@HVM:
       CALL .OROO:
       CALL .DATAq:
       CALL .HVM:
       JMP .h_v_j:
.hO_vO_jR@HVM:
       CALL .OROO:
       CALL .HVM:
       JMP .h_v_j:
.hO_vO_jR@QVM:
       CALL .OROO:
       CALL .QVM:
       JMP .h_v_j:
.hO_vO_jR_ib@DATAb:
       CALL .OROO:
       CALL  .DATAb:
       JMP .h_v_j_i:
.hO_vO_jR_ib@DATAb@T8:
       CALL .OROO:
       CALL  .DATAb:
       CALL .T8:
       JMP .h_v_j_i:
.hO_vO_jR_ib@DATAd:
       CALL .OROO:
       CALL .DATAd:
       JMP .h_v_j_i:
.hO_vO_jR_ib@DATAd@T32:
       CALL .OROO:
       CALL .DATAd:
       CALL .T32:
       JMP .h_v_j_i:
.hO_vO_jR_ib@DATAq:
       CALL .OROO:
       CALL .DATAq:
       JMP .h_v_j_i:
.hO_vO_jR_ib@DATAq@T64:
       CALL .OROO:
       CALL .DATAq:
       CALL .T64
       JMP .h_v_j_i:
.hO_vO_jR_ib@DATAw:
       CALL .OROO:
       CALL  .DATAw:
       JMP .h_v_j_i:
.hO_vO_jR_ib@DATAw@T16:
       CALL .OROO:
       CALL  .DATAw:
       CALL .T16
       JMP .h_v_j_i:
.hO_vO_jRb_ib@DATAb:
       CALL .OROO:
       CALL .OperWidth8:
       CALL  .DATAb:
       JMP .h_v_j_i:

.hO_vO_jRd@DATAd:
       CALL .OROO:
       CALL .OperWidth32:
       CALL .DATAd:
       JMP .h_v_j:

.hO_vO_jRd@DATAd@QVM:
       CALL .OROO:
       CALL .OperWidth32:
       CALL .DATAd:
       CALL .QVM:
       JMP .h_v_j
.hO_vO_jRd@T16:
       CALL .OROO:
       CALL .OperWidth32:
       CALL .T16:
       JMP .h_v_j:
.hO_vO_jRd@T32:
       CALL .OROO:
       CALL .OperWidth32:
       CALL .T32:
       JMP .h_v_j:

.hO_vO_jRd_ib@DATAb:
       CALL .DATAb:
       CALL .OperWidth32:
       CALL .OROO:
       JMP .h_v_j_i:

.hO_vO_jRd_ib@DATAb@T8:
       CALL .T8:
       CALL .DATAb:
       CALL .OperWidth32:
       CALL .OROO:
       JMP .h_v_j_i:
.hO_vO_jRd_ib@DATAd
       CALL .OROO:
       CALL .OperWidth32:
       CALL .DATAd:
       JMP .h_v_j_i:

.hO_vO_jRd_ib@DATAd@T32:
       CALL .OROO:
       CALL .OperWidth32:
       CALL .DATAd:
       CALL .T32:
       JMP .h_v_j_i:

.hO_vO_jRd_ib@DATAw:
       CALL .DATAw:
       CALL .OperWidth32:
       CALL .OROO:
       JMP .h_v_j_i:

.hO_vO_jRd_ib@DATAw@T16:
       CALL .T16:
       CALL .DATAw:
       CALL .OperWidth32:
       CALL .OROO:
       JMP .h_v_j_i:

.hO_vO_jRd_ib@T16:
       CALL .OROO:
       CALL .OperWidth32:
       CALL .DATAd:
       CALL .T16:
       JMP .h_v_j:
.hO_vO_jRd_ib@T32:
       CALL .OROO:
       CALL .OperWidth32:
       CALL .DATAd:
       CALL .T32:
       JMP .h_v_j:

.hO_vO_jRd_ib@T8:
       CALL .OROO:
       CALL .OperWidth32:
       CALL .DATAd:
       CALL .T8:
       JMP .h_v_j:
.hO_vO_jRq@DATAq:
       CALL .OROO:
       CALL .OperWidth64:
       CALL .DATAq:
       JMP .h_v_j:
.hO_vO_jRq@DATAq@HVM:
       CALL .OROO:
       CALL .OperWidth64:
       CALL .DATAq:
       CALL .HVM:
       JMP .h_v_j:

.hO_vO_jRq@T16:
       CALL .OROO:
       CALL .OperWidth64:
       CALL .T16:
       JMP .h_v_j:
.hO_vO_jRq@T64:
       CALL .OROO:
       CALL .OperWidth64:
       CALL .T64:
       JMP .h_v_j:
.hO_vO_jRq_ib:
       CALL .OROO:
       CALL .OperWidth64:
       JMP .h_v_j:

.hO_vO_jRq_ib@DATAq
       CALL .OROO:
       CALL .OperWidth64:
       CALL .DATAq:
       JMP .h_v_j_i:
.hO_vO_jRq_ib@DATAq@T64:
       CALL .OROO:
       CALL .OperWidth64:
       CALL .DATAq:
       CALL .T64
       JMP .h_v_j_i:
.hO_vO_jRq_ib@DATAw:
       CALL .OROO:
       CALL .OperWidth64:
       CALL  .DATAw:
       JMP .h_v_j_i:
.hO_vO_jRq_ib@T32:
       CALL .OROO:
       CALL .OperWidth64:
       CALL .DATAd:
       CALL .T32:
       JMP .h_v_j:
.hO_vO_jRw_ib@DATAw@T16:
       CALL .OROO:
       CALL .OperWidth16:
       CALL  .DATAw:
       CALL .T16:
       JMP .h_v_j_i:

.hO_vO_jX:
     CALL .OXOO:
     JMP .h_v_j:
.hO_vO_jX@T128:
     CALL .T128:
     CALL .OXOO:
     JMP .h_v_j:
.hO_vO_jX_ib:
      CALL .OXOO:
      JMP .h_v_j_i:

.hO_vO_jX_ib@T128:
      CALL .T128:
      CALL .OXOO:
      JMP .h_v_j_i:
.hO_vO_jX_ib@T16:
      CALL .T16:
      CALL .OXOO:
      JMP .h_v_j_i:

.hO_vO_jY_ib@T256:
      CALL .T256:
      CALL .OYOO:
      JMP .h_v_j_i:
.hR:  JMP .h:
.hR_jM:JMP .h_j:
.hR_jM@64:
       JNSt [Dii.Status],stMode64,.hR_jM@ls:
       MOV [Dii.OperWidth],OperWidth64
.hR_jM@ls: JMP .h_j:

.hR_jO:CALL .ROOO:
       JMP .h_j:
.hR_jO@HVM:
       CALL .ROOO:
       CALL .HVM
       JMP .h_j:
.hR_jO@QVM:
       CALL .ROOO:
       CALL .QVM:
       JMP .h_j:
.hR_jO_ib:
       CALL .ROOO:
       JMP .h_j_i:
.hR_jR:JMP .h_j:

.hR_jR@DATAa:
      CALL ModifyDefaultWidth
      CALL  .DATAa:
      CALL GetModRMReg
      MOV [Dii.Operand1],RDX
      MOV [Dii.Operand2],RAX
      JMP .Flush:
.hR_jR@DATAq:
      CALL .DATAq:
      JMP .h_j:

.hR_jR@DATAz:
      CALL .DATAz:
      JMP .h_j:

.hR_jR@hint_nop:
      CALL ModifyDefaultWidth
      CALL GetOperWidth
      MOV [Dii.DATA],AL
      CALL GetModRMReg
      MOV [Dii.Operand2],RAX
      MOV EDX,[Dii.Opcode]
      AND DL,7
      MOV DH,DL
      MOV DL,[Dii.ModRM]
      SHL DL,2
      SHR EDX,5
      AND DL,0x3F
      LEA RDI,[Imm2Line]
      MOV RCX,RDI
      MOV AX,'0x'
      STOSW
      CALL StoDL
      MOV [Dii.Operand1],RCX
      JMP .Flush:
.hR_jR_ib:
     JMP .h_j_i:
.hR_jR_id:
     JMP .h_j_id:
.hR_jR_vR:
       JMP .h_j_v:
.hR_jRb:
       CALL GetModRMReg:
       MOV [Dii.Operand1],RDX
       CALL .OperWidth8
       CALL GetModRMReg:
       MOV [Dii.Operand2],RAX
       JMP .Flush:
.hR_jRb@movx:
       CALL ModifyDefaultWidth
       CALL GetModRMReg
       JNSt [Dii.Status],stMod3,.movx6:
       LEA RSI,[Reg8REX]                 ; Mod=3
       JSt [Dii.Prefix],pfxREX,.movx4:
       LEA RSI,[Reg8]
.movx4:MOV CL,[Dii.BaseNr]
       CALL SelectByCL
       JMP .movx8:
.movx6:MOV RSI,[Dii.Memory]              ; Mod=0,1,2
       CALL  .DATAb:
.movx8:MOV RDX,[Dii.OperReg]
       MOV [Dii.Operand1],RDX
       MOV [Dii.Operand2],RSI
       JMP .Flush:

.hR_jRM:
      JMP .h_j:
.hR_jRM@CODEl:
     MOV [Dii.CODE],'L'
      JMP .h_j:
.hR_jRM_ib@DATAa:
     CALL ModifyDefaultWidth
     CALL GetModRMReg
     MOV [Dii.Operand1],RDX
     MOV [Dii.Operand2],RAX
     CALL Imm2
     MOV [Dii.Operand3],RCX
     CALL  .DATAa:
     JMP .Flush:
.hR_jRM_ib@DATAb:
     CALL ModifyDefaultWidth
     CALL GetModRMReg
     CALL Imm2
     MOV [Dii.Operand1],RDX
     MOV [Dii.Operand2],RAX
     MOV [Dii.Operand3],RCX
     CALL  .DATAb:
     JMP .Flush:
.hR_jRM_ie@DATAa@IMMd:
     CALL ModifyDefaultWidth
     CALL GetModRMReg
     MOV [Dii.Operand1],RDX
     MOV [Dii.Operand2],RAX
     CALL  .DATAa:
     SetSt [Dii.Flags],flagImmSignExt
     CALL Imm
     MOV [Dii.Operand3],RCX
     JMP .Flush:
.hR_jRMb:
       CALL .OperWidth8:
       JMP .h_j:
.hR_jRMw:
      SetSt [Dii.Prefix],pfx67NotUsed
      CALL ModifyDefaultWidth
      CALL GetModRMReg
      MOV [Dii.Operand1],RDX
      MOV [Dii.Operand2],RAX
      JSt [Dii.Status],stMod0,.Flush
      LEA RSI,[Reg16]
      MOV CL,[Dii.BaseNr]
      CALL SelectByCL
      MOV [Dii.Operand2],RSI
      MOV [Dii.DATA],0
      JMP .Flush
.hR_jRw@movx:
       CALL ModifyDefaultWidth
       CALL GetModRMReg
       JNSt [Dii.Status],stMod3,.movw6:
       LEA RSI,[Reg16]                 ; Mod=3
       MOV CL,[Dii.BaseNr]
       CALL SelectByCL
       JMP .movw8:
.movw6:MOV RSI,[Dii.Memory]              ; Mod=0,1,2
       CALL  .DATAw:
.movw8:MOV RDX,[Dii.OperReg]
       MOV [Dii.Operand1],RDX
       MOV [Dii.Operand2],RSI
       JMP .Flush:
.hR_jU_ib:
      CALL .RUUU:
      JMP .h_j_i:
.hR_vK_jK:
       CALL .RKKK:
       JMP .h_v_j:
.hR_vR_jR:
       JMP .h_v_j:

.hRb_jRb:
       CALL .OperWidth8:
       JMP .h_j:

.hRb_jRMb@CODEl:
       MOV [Dii.CODE],'L'
       CALL .OperWidth8:
       JMP .h_j:
.hRd_jK:
       CALL .RKKK:
       CALL .OperWidth32:
       JMP .h_j:
.hRd_jM:
       CALL .OperWidth32:
       JMP .h_j:
.hRd_jO:
       CALL .ROOO:
       CALL .OperWidth32
       JMP .h_j:
.hRd_jO@DATAd:
       CALL .ROOO:
       CALL .OperWidth32
       CALL .DATAd:
       JMP .h_j:
.hRd_jO@DATAd@HVM:
       CALL .ROOO:
       CALL .OperWidth32:
       CALL .DATAd:
       CALL .HVM:
       JMP .h_j:
.hRd_jO@DATAd@QVM:
       CALL .ROOO:
       CALL .OperWidth32
       CALL .DATAd:
       CALL .OVM:
       JMP .h_j:
.hRd_jO@HVM:
       CALL .ROOO:
       CALL .OperWidth32
       CALL .HVM
       JMP .h_j:
.hRd_jO@QVM:
       CALL .ROOO:
       CALL .OperWidth32
       CALL .QVM
       JMP .h_j:
.hRd_jO@T16:
       CALL .OperWidth32:
       CALL .ROOO:
       CALL .T16:
       JMP .h_j:

.hRd_jO@T32:
       CALL .OperWidth32:
       CALL .ROOO:
       CALL .T32:
       JMP .h_j:
.hRd_jO@T64:
       CALL .OperWidth32:
       CALL .ROOO:
       CALL .T64:
       JMP .h_j:

.hRd_jO_ib:
       CALL .OperWidth32
       CALL .ROOO:
       JMP .h_j_i:

.hRd_jO_ib@T16:
       CALL .T16:
       CALL .OperWidth32
       CALL .ROOO:
       JMP .h_j_i:

.hRd_jR:
       MOV AL,OperWidth64
       JSt [Dii.Status],stMode64,.hRd7:
       MOV AL,OperWidth32
.hRd7: MOV [Dii.OperWidth],AL
       JMP .h_j:

.hRd_jR@DATAa:
.CRCd: CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand2],RAX
       CALL GetOperWidth
       MOV [Dii.DATA],AL
       LEA RSI,[Reg64]
       JSt [Dii.Status],stW,.CRC5:
       LEA RSI,[Reg32]
.CRC5: MOV CL,[Dii.OperNr]
       CALL SelectByCL
       MOV [Dii.Operand1],RSI
       JMP .Flush:
.hRd_jR@popcnt:
       CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RDX
       MOV [Dii.Operand2],RAX
       JMP .Flush:

.hRd_jR_ib@DATAd:
      CALL .OperWidth32:
      CALL .DATAd:
      JMP .h_j_i:
.hRd_jR_id:
     CALL .OperWidth32:
     JMP .h_j_id:
.hRd_jR_vR:
       CALL .OperWidth32:
      JMP .hRq_jR_vR:

.hRd_jR_vR@DATAd:
      CALL .OperWidth32:
      CALL .DATAd:
      JMP .h_j_v:
.hRd_jRb:
       CALL .OperWidth8:
       CALL  .DATAb:
       JMP .CRCd:
.hRd_jRb@DATAb:
       CALL .OperWidth8:
       JMP .hRd_jR@DATAa:
.hRd_jRd_XMM0:
       CALL .OperWidth32:
       LEA RAX,[RegXMM0]
       MOV [Dii.Operand3],RAX
       JMP .h_j:
.hRd_jU:
      CALL .OperWidth32:
      CALL .RUUU:
      JMP .h_j:
.hRd_jU_ib:
      CALL .OperWidth32:
      CALL .RUUU:
      JMP .h_j_i:
.hRd_jX:
       CALL .RXXX:
       CALL .OperWidth32
       JMP .h_j:
.hRd_jX@DATAd:
       CALL .RXXX:
       CALL .OperWidth32
       CALL .DATAd:
       JMP .h_j:

.hRd_jX@DATAd@HVM:
       CALL .RXXX:
       CALL .OperWidth32:
       CALL .DATAd:
       CALL .HVM:
       JMP .h_j:

.hRd_jX@DATAd@QVM:
       CALL .RXXX:
       CALL .OperWidth32
       CALL .DATAd:
       CALL .OVM:
       JMP .h_j:
.hRd_jX@HVM:
       CALL .RXXX:
       CALL .OperWidth32
       CALL .HVM
       JMP .h_j:
.hRd_jX@QVM:
       CALL .RXXX:
       CALL .OperWidth32
       CALL .QVM
       JMP .h_j:
.hRd_jX@T16:
       CALL .OperWidth32:
       CALL .RXXX:
       CALL .T16:
       JMP .h_j:
.hRd_jX@T32:
       CALL .OperWidth32:
       CALL .RXXX:
       CALL .T32:
       JMP .h_j:
.hRd_jX@T64:
       CALL .OperWidth32:
       CALL .RXXX:
       CALL .T64:
       JMP .h_j:
.hRd_vR_jR:
      CALL .OperWidth32
      JMP .h_v_j:
.hRdq_jO:
      CALL .OperWidth64:
      JSt [Dii.Status],stMode64,.hdq2:
      CALL .OperWidth32
.hdq2:CALL .ROOO:
      JMP .h_j:
.hRe_jR:
      MOV AL,OperWidth64
      JSt [Dii.Status],stMode64, .hRe5:
      MOV AL,OperWidth32
.hRe5:MOV [Dii.OperWidth],AL
      JMP .h_j:
.hRe_jR@DATAz:
      CALL .DATAz:
      JMP .hRe_jR:
.hRq_jK:
       CALL .RKKK:
       CALL .OperWidth64:
       JMP .h_j:
.hRq_jO:
       CALL .ROOO:
       CALL .OperWidth64
       JMP .h_j:
.hRq_jO@DATAq:
       CALL .ROOO:
       CALL .OperWidth64
       CALL .DATAq:
       JMP .h_j:
.hRq_jO@DATAq@HVM:
       CALL .ROOO:
       CALL .OperWidth64
       CALL .DATAq:
       CALL .HVM
       JMP .h_j:
.hRq_jO@DATAq@OVM:
       CALL .ROOO:
       CALL .OperWidth64
       CALL .DATAq:
       CALL .OVM:
       JMP .h_j:

.hRq_jO@HVM:
       CALL .ROOO:
       CALL .OperWidth64
       CALL .HVM
       JMP .h_j:
.hRq_jO@QVM:
       CALL .ROOO:
       CALL .OperWidth64
       CALL .QVM
       JMP .h_j:
.hRq_jO@T16:
       CALL .OperWidth64:
       CALL .ROOO:
       CALL .T16:
       JMP .h_j:
.hRq_jO@T32:
       CALL .OperWidth64:
       CALL .ROOO:
       CALL .T32:
       JMP .h_j:
.hRq_jO@T64:
       CALL .OperWidth64:
       CALL .ROOO:
       CALL .T64:
       JMP .h_j:
.hRq_jR:
      CALL .OperWidth64:
      JMP .h_j:
.hRq_jR@DATAd:
      CALL .OperWidth32:
      CALL .DATAd:
      JMP .h_j:
.hRq_jR@popcnt:
       CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RDX
       MOV [Dii.Operand2],RAX
       JMP .Flush:
.hRq_jR_ib@DATAq:
      CALL .OperWidth64:
      CALL .DATAq:
      JMP .h_j_i:
.hRq_jR_id:
     CALL .OperWidth64:
     JMP .h_j_id:
.hRq_jR_vR:
       CALL .OperWidth64:
       JMP .h_j_v:
.hRq_jR_vR@DATAq:
      CALL .OperWidth64:
      CALL .DATAq:
      JMP .h_j_v:
.hRq_jRb:
       CALL .OperWidth8:
       CALL  .DATAb:
       JMP .CRCq:
.hRq_jX:
       CALL .RXXX:
       CALL .OperWidth64
       JMP .h_j:
.hRq_jX@DATAq:
       CALL .RXXX:
       CALL .OperWidth64
       CALL .DATAq:
       JMP .h_j:
.hRq_jX@DATAq@HVM:
       CALL .RXXX:
       CALL .OperWidth64
       CALL .DATAq:
       CALL .HVM
       JMP .h_j:
.hRq_jX@DATAq@QVM:
       CALL .RXXX:
       CALL .OperWidth64
       CALL .DATAq:
       CALL .QVM:
       JMP .h_j:
.hRq_jX@HVM:
       CALL .RXXX:
       CALL .OperWidth64
       CALL .HVM
       JMP .h_j:
.hRq_jX@T16:
       CALL .OperWidth64:
       CALL .RXXX:
       CALL .T16:
       JMP .h_j:
.hRq_jX@T32:
       CALL .OperWidth64:
       CALL .RXXX:
       CALL .T32:
       JMP .h_j:
.hRq_jX@T64:
       CALL .OperWidth64:
       CALL .RXXX:
       CALL .T64:
       JMP .h_j:
.hRq_vK_jK:
       CALL .OperWidth64
       CALL .RKKK:
       JMP .h_v_j:
.hRq_vR_jR:
      CALL .OperWidth64
      JMP .h_v_j:
.hRwdq_jR:
      JNSt [Dii.Status],stMode64,.wdq2:
      CALL .OperWidth64
.wdq2:JMP .h_j:

.hS_jR:
.hS_jRM:
     CALL .SRRR:
     JMP .h_j:
.hU_jO:
     CALL .UOOO:
     JMP .h_j:
.hU_jO@DATAq:
     CALL .UOOO:
     CALL .DATAq:
     JMP .h_j:
.hU_jR_ib@DATAw:
     CALL .URRR:
     CALL  .DATAw:
     JMP .h_j_i:
.hU_jRd@DATAd:
       CALL .URRR:
       CALL .OperWidth32:
       CALL .DATAd:
       JMP .h_j:
.hU_jRd_ib@DATAw:
       CALL .DATAw:
       CALL .URRR:
       JMP .h_j_i:
.hU_jRq@DATAq:
       CALL .URRR:
       CALL .OperWidth64:
       CALL .DATAq:
       JMP .h_j:
.hU_jU:
     CALL .UUUU:
     JMP .h_j:
.hU_jU@3DNow:
     CALL .UUUU:
     CALL ModifyDefaultWidth
     CALL GetModRMReg
     MOV [Dii.Operand1],RDX
     MOV [Dii.Operand2],RAX
     CALL Imm2
     MOV CL,[R8-1]
     MOV [Dii.DISP],0
     MOV [Dii.IMM],0
     LEA RSI,[OperGrp3DNow]
.3D1:LODSB
     CMP AL,0
     JE .3D9:
     CMP AL,CL
     JE .3D8:
.3D3:LODSB
     CMP AL,0
     JNE .3D3:
     JMP .3D1:
.3D8:MOV [Dii.Operation],RSI
     JMP .Flush:
.3D9:INC [Dii.$VA]
     JMP .invalid:
.hU_jU_ib:
     CALL .UUUU:
     JMP .h_j_i:
.hU_jU_ib@DATAw:
     CALL .UUUU:
     CALL  .DATAw:
     JMP .h_j_i:
.hX_jO:
     MOV [Dii.Family],'XOOO'
     JMP .h_j:

.hX_jRd@DATAd:
       CALL .OperWidth32:
       CALL .XRRR:
       CALL .DATAd:
       JMP .h_j:

.hX_jRq@DATAq:
     ;  CALL .OperWidth64:
       CALL .XRRR:
       CALL .DATAq:
       JMP .h_j:
.hX_jX:
       CALL .XXXX:
       JMP .h_j:
.hX_jX@DATAd:
       CALL .XXXX:
       CALL .DATAd:
       JMP .h_j:
.hX_jX@DATAd@noREP:
       SetSt [Dii.Prefix],pfxF2IsOpcode+pfxF3IsOpcode
       CALL .XXXX:
       CALL .DATAd:
       JMP .h_j:
.hX_jX@DATAq:
       CALL .XXXX:
       CALL .DATAq:
       JMP .h_j:

.hX_jX@DATAq@noREP:
       SetSt [Dii.Prefix],pfxF2IsOpcode+pfxF3IsOpcode
       CALL .XXXX:
       CALL .DATAq:
       JMP .h_j:
.hX_jX_ib:
       CALL .XXXX:
       JMP .h_j_i:

.hX_jXY:
       CALL .XYXX:
       MOV [Dii.DATA],'Y'
       JSt [Dii.Flags],flagS1,.hX_j3:
       CALL .XXXX:
       MOV [Dii.DATA],'O'
.hX_j3:JMP .h_j:

.hX_vX_jRd@DATAd@QVM:
       CALL .XRXX:
       CALL .OperWidth32:
       CALL .DATAd:
       CALL .QVM:
       JMP .h_v_j:
.hX_vX_jRd@DATAd@T32:
       CALL .DATAd:
       CALL .XRXX:
       CALL .T32:
       JMP .h_v_j:
.hX_vX_jRq@DATAq:
       CALL .XRXX:
       CALL .OperWidth64:
       CALL .DATAq:
       JMP .h_v_j:
.hX_vX_jRq@DATAq@HVM:
       CALL .XRXX:
       CALL .OperWidth64:
       CALL .DATAq:
       CALL .HVM:
       JMP .h_v_j:
.hX_vX_jRd@DATAd:
       CALL .XRXX:
       CALL .OperWidth32:
       CALL .DATAd:
       JMP .h_v_j:
.hX_vX_jRd@T16:
       CALL .XRXX:
       CALL .OperWidth32:
       CALL .T16:
       JMP .h_v_j:

.hX_vX_jRq@DATAq@T64:
       CALL .DATAq:
       CALL .OperWidth64:
       CALL .XRXX:
       CALL .T64:
       JMP .h_v_j:
.hX_vX_jRq@T16:
       CALL .XRXX:
       CALL .OperWidth64:
       CALL .T16:
       JMP .h_v_j:
.hX_vX_jRq@T64:
       CALL .OperWidth64:
       CALL .XRXX:
       CALL .T64:
       JMP .h_v_j:
.hX_vX_jX:
       CALL .XXXX:
       JMP .h_v_j:

.hX_vX_jX@DATAd:
       CALL .XXXX:
       CALL .DATAd:
       JMP .h_v_j:
.hX_vX_jX@DATAd@T32:
       CALL .XXXX:
       CALL .DATAd:
       CALL .T32:
       JMP .h_v_j:
.hX_vX_jX@DATAq:
       CALL .XXXX:
       CALL .DATAq:
       JMP .h_v_j:
.hX_vX_jX@DATAq@T64:
       CALL .XXXX:
       CALL .DATAq:
       CALL .T64:
       JMP .h_v_j:
.hX_vX_jX@HVM:
       CALL .XXXX:
       CALL .HVM:
       JMP .h_v_j:
.hX_vX_jX@QVM:
       CALL .XXXX:
       CALL .QVM:
       JMP .h_v_j:
.hX_vX_jX@T16:
       CALL .XXXX:
       CALL .T16
       JMP .h_v_j:
.hX_vX_jX@T32:
       CALL .XXXX:
       CALL .T32:
       JMP .h_v_j:
.hX_vX_jX@T64:
       CALL .XXXX:
       CALL .T64:
       JMP .h_v_j:
.hX_vX_jX_ib
      CALL .XXXX:
      JMP .h_v_j_i:

.hX_vX_jX_ib@T16:
       CALL .T16:
       CALL .XXXX:
       JMP .h_v_j_i:
.hX_vX_jX_ib@T32:
       CALL .T32:
       CALL .XXXX:
       JMP .h_v_j_i:
.hX_vX_jX_ib@T64:
       CALL .T64:
       CALL .XXXX:
       JMP .h_v_j_i:

.hXXY_jO:
     CALL .OOOO:
     CALL .XXY:
     MOV [Dii.Family+0],AL
     MOV [Dii.DATA],AH
     JMP .h_j:
.hXXY_jO@FV64:
     CALL .FV64:
     CALL .DATAo:
     CALL .OOOO:
     CALL .XXY:
     MOV [Dii.Family+0],AL
     MOV [Dii.DATA],AH
     JMP .h_j:
.hXXY_jO@MFV64:
     CALL .MFV64:
     CALL .DATAo:
     CALL .OOOO:
     CALL .XXY:
     MOV [Dii.Family+0],AL
     MOV [Dii.DATA],AH
     JMP .h_j:
.hXY_jO:
       MOV EAX,'YOOO'
       JSt [Dii.Flags],flagS2,.hXY5:
       MOV EAX,'XOOO'
.hXY5: MOV [Dii.Family],EAX
       JMP .h_j:

.hXY_jO@DATAo:
       MOV EAX,'YOOO'
       JSt [Dii.Flags],flagS2,.hXY4:
       MOV EAX,'XOOO'
.hXY4: MOV [Dii.Family],EAX
       CALL .DATAo:
       JMP .h_j:
.hXY_jO@DATAo@FV64:
       CALL .FV64:
       MOV EAX,'YOOO'
       JSt [Dii.Flags],flagS2,.hXY41:
       MOV EAX,'XOOO'
.hXY41:MOV [Dii.Family],EAX
       CALL .DATAo:
       JMP .h_j:

.hXY_jO@FV64:
       CALL .FV64:
       MOV EAX,'YOOO'
       MOV [Dii.DATA],'Z'
       JSt [Dii.Flags],flagS2,.hXY6:
       MOV EAX,'XOOO'
       MOV [Dii.DATA],'Y'
       JSt [Dii.Flags],flagS1,.hXY6:
       MOV EAX,'XOOO'
       MOV [Dii.DATA],'O'
.hXY6: MOV [Dii.Family],EAX
       JMP .h_j:
.hY_jY_ib:
       MOV [Dii.Family],'YYYY'
       JMP .h_j_i:
.hY_vY_jY:
       MOV [Dii.Family],'YYYY'
       JMP .h_v_j:
.hY_vY_jY_ib:
       MOV [Dii.Family],'YYYY'
       JMP .h_v_j_i:

.ib1:INC R8
    CALL Imm2:
    MOV [Dii.Operand1],RCX
    JMP .Flush:
.i8@1:
    INC R8
.i8:CALL .OperWidth8:
    CALL ModifyDefaultWidth
    CALL Imm
    MOV [Dii.Operand1],RCX
    JMP .Flush:
.ib: SetSt [Dii.Flags],flagImmSignExt+flagProm64 ; PUSH ib
     SetSt [Dii.Prefix],pfx67NotUsed
     JMP .ie:
.ib@DATAb@noDATA:
    CALL Imm2
    CALL  .DATAb:
    MOV [Dii.Operand1],RCX
    MOV [Dii.DATA],0
    JMP .Flush:
.ib@DATAw
    CALL Imm2
    CALL  .DATAw:
    MOV [Dii.Operand1],RCX
    JMP .Flush:
.ib_AL:
    MOV [Dii.OperWidth],OperWidth8
.ib_eAX:
    SetSt [Dii.Prefix],pfx67NotUsed+pfxREXNotUsed
    CALL ModifyDefaultWidth
    CALL Imm2
    CALL GetAccum
    MOV [Dii.Operand1],RCX
    MOV [Dii.Operand2],RAX
    JMP .Flush
.ie@DATAa:
     CALL  .DATAa:
     JMP .ie:
.iw@retf:
      CALL .DISTf:
.iw@r:SetSt [Dii.Flags],flagProm64
      CALL ModifyDefaultWidth
      CALL GetOperWidth
      MOV [Dii.DATA],AL
      MOV [Dii.OperWidth],OperWidth16
      RstSt [Dii.Flags],flagImmFar
      CALL Imm
      MOV [Dii.Operand1],RCX
      JMP .Flush:
.iw@retn:
      CALL .DISTn:
      JMP .iw@r:

.iw_ib:
     SetSt [Dii.Prefix],pfx67NotUsed+pfxREXNotUsed
     SetSt [Dii.Flags],flagProm64
     CALL ModifyDefaultWidth
     CALL GetOperWidth
     MOV [Dii.DATA],AL
     CALL .OperWidth16
     CALL Imm
     MOV [Dii.Operand1],RCX
     CALL Imm2
     MOV [Dii.Operand2],RCX
     MOV [Dii.IMM],0
     JMP .Flush
.jK_hK:CALL .KKKK:
       JMP .j_h:
.jM:   JMP .j:
.jM@DATAd:
       CALL .DATAd:
       JMP .j:
.jM@DATAo:
       CALL .DATAo:
       JMP .j:
.jM@DATAq:
       CALL .DATAq:
       JMP .j:
.jM@DATAz:
       CALL .DATAz:
       JMP .j:
.jMe@DISTf:
     MOV [Dii.DIST],'F'
     JMP .j:
.jN_hN:CALL .NNNN:
       JMP .j_h:
.jO@VSIB@DATAd@T32:
       CALL .OOOO:
       CALL .T32:
       CALL .DATAd:
       CALL .VSIB:
       JMP .j:
.jO@VSIB@DATAq@T64:
       CALL .OOOO:
       CALL .T64:
       CALL .DATAq:
       CALL .VSIB:
       JMP .j:
.jO@VSIB@T32:
       CALL .OOOO:
       CALL .T32:
       CALL .VSIB:
       JMP .j:
.jO@VSIB@T64:
       CALL .OOOO:
       CALL .T64:
       CALL .VSIB:
       JMP .j:
.jO_hO:CALL .OOOO:
       JMP .j_h:
.jO_hO@DATAd:
      CALL .OOOO:
      CALL .DATAd:
      JMP .j_h:
.jO_hO@DATAd@T32:
      CALL .OOOO:
      CALL .DATAd:
      CALL .T32:
      JMP .j_h:
.jO_hO@DATAq:
      CALL .OOOO:
      CALL .DATAq:
      JMP .j_h:
.jO_hO@DATAq@T64:
      CALL .OOOO:
      CALL .DATAq:
      CALL .T64:
      JMP .j_h:
.jO_hO@FVM:
      CALL .OOOO:
      CALL .FVM:
      JMP .j_h:
.jO_hO@HVM:
      CALL .OOOO:
      CALL .HVM:
      JMP .j_h:
.jO_hO@MFV32:
       CALL .OOOO:
       CALL .MFV32:
       JMP .j_h:
.jO_hO@MFV64:
       CALL .OOOO:
       CALL .MFV64:
       JMP .j_h:
.jO_hO@MFVM:
       CALL .OOOO:
       CALL .MFVM:
       JMP .j_h:
.jO_hO@OVM:
      CALL .OOOO:
      CALL .OVM:
      JMP .j_h:
.jO_hO@QVM:
      CALL .OOOO:
      CALL .QVM:
      JMP .j_h:
.jO_hO@T16:
       CALL .OOOO:
       CALL .T16:
       JMP .j_h:
.jO_hO@T32:
      CALL .OOOO:
      CALL .T32:
      JMP .j_h:
.jO_hO@T64:
      CALL .OOOO:
      CALL .T64:
      JMP .j_h:
.jO_hO@T8:
       CALL .OOOO:
       CALL .T8:
       JMP .j_h:
.jO_hO@VSIB@T32:
       CALL .T32:
       CALL .VSIB:
       JMP .j_h:
.jO_hO@VSIB@T64:
       CALL .T64:
       CALL .VSIB:
       JMP .j_h:
.jO_hO_ib:
      CALL .OOOO:
      JMP .j_h_i:
.jO_hO_ib@DATAd:
      CALL .OOOO:
      CALL .DATAd:
      JMP .j_h_i:
.jO_hO_ib@DATAd@T32:
      CALL .OOOO:
      CALL .DATAd:
      CALL .T32:
      JMP .j_h_i:
.jO_hO_ib@DATAd@T64:
      CALL .OOOO:
      CALL .DATAd:
      CALL .T64:
      JMP .j_h_i:
.jO_hO_ib@FVM:
      CALL .OOOO:
      CALL .FVM:
      JMP .j_h_i:
.jO_hO_ib@HVM:
      CALL .OOOO:
      CALL .HVM:
      JMP .j_h_i:
.jO_hO_ib@T128:
      CALL .OOOO:
      CALL .T128:
      JMP .j_h_i:
.jO_hO_ib@T256:
      CALL .OOOO:
      CALL .T256:
      JMP .j_h_i:
.jO_hR@DATAd:
      CALL .ROOO:
      CALL .DATAd:
      JMP .j_h:
.jO_hR@DATAd@T32:
      CALL .ROOO:
      CALL .DATAd:
      CALL .T32:
      JMP .j_h:
.jO_hR@DATAq:
      CALL .ROOO:
      CALL .DATAq:
      JMP .j_h:
.jO_hR@DATAq@T64:
      CALL .ROOO:
      CALL .DATAq:
      CALL .T64:
      JMP .j_h:
.jO_ib:CALL .OOOO:
       JMP .j_i:
.jO_vO_hO:
      CALL .OOOO:
      JMP .j_v_h:
.jR:JMP .j:
.jR@DATAa:
      CALL ModifyDefaultWidth
      CALL  .DATAa:
.jR@DATAaq:
      SetSt [Dii.Flags],flagProm64
      CALL ModifyDefaultWidth
      CALL  .DATAa:
      CALL .CODEl:
      CALL GetModRMReg
      MOV [Dii.Operand1],RAX
      JMP .Flush
.jR@DATAa@CODEl:
      CALL .CODEl:
      CALL ModifyDefaultWidth
      CALL .DATAa:
      CALL GetModRMReg
      MOV [Dii.Operand1],RAX
      JMP .Flush:
.jR@DATAb:
      CALL  .DATAb
      JMP .j:
.jR@DATAq:
      CALL .DATAq:
      JMP .j:
.jR@DATAw:
      CALL  .DATAw:
      JMP .j:
.jR@prom64:
      CALL .OperWidth32:
      SetSt [Dii.Flags],flagProm64
      JMP .j:
.jR_hC:
    CALL .OperWidth32:
    MOV [Dii.Family],'CR'
    SetSt [Dii.Flags],flagProm64
    CALL .OperWidth32:
    JMP .j_h:
.jR_hG:
    MOV [Dii.Family],'GR'
    SetSt [Dii.Flags],flagProm64
    CALL .OperWidth32:
    JMP .j_h:
.jR_hO:
      CALL .OROO:
      JMP .j_h:
.jR_hO@DATAd:
      CALL .OROO:
      CALL .DATAd:
      JMP .j_h:
.jR_hO@DATAd@T32:
      CALL .OROO:
      CALL .DATAd:
      CALL .T32:
      JMP .j_h:
.jR_hO@DATAq:
      CALL .OROO:
      CALL .DATAq:
      JMP .j_h:
.jR_hO@DATAq@T64:
      CALL .OROO:
      CALL .DATAq:
      CALL .T64:
      JMP .j_h:
.jR_hO@DATAw:
      CALL .OROO:
      CALL  .DATAw:
      JMP .j_h:
.jR_hO@FVM:
     CALL .FVM:
      CALL .OROO:
      CALL .DATAd:
      JMP .j_h:
.jR_hO_ib:
      CALL .OROO:
      JMP .j_h_i:
.jR_hO_ib@DATAa:
      CALL .OROO:
      CALL  .DATAa:
      JMP .j_h_i:
.jR_hO_ib@DATAb:
      CALL .OROO:
      CALL  .DATAb:
      JMP .j_h_i:
.jR_hO_ib@DATAd:
      CALL .OROO:
      CALL .DATAd:
      JMP .j_h_i:
.jR_hO_ib@DATAd@T32:
      CALL .OROO:
      CALL .DATAd:
      CALL .T32:
      JMP .j_h_i:
.jR_hO_ib@DATAq:
       CALL .OROO:
       CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RAX
       MOV [Dii.Operand2],RDX
       CALL Imm2
       MOV [Dii.Operand3],RCX
       JMP .Flush:
.jR_hO_ib@DATAq@T64:
      CALL .OROO:
      CALL .DATAq:
      CALL .T64:
      JMP .j_h_i:
.jR_hO_ib@T16:
      CALL .OROO:
      CALL .T16:
      JMP .j_h_i:
.jR_hO_ib@T32:
      CALL .OROO:
      CALL .T32:
      JMP .j_h_i:
.jR_hO_ib@T64:
      CALL .OROO:
      CALL .T64:
      JMP .j_h_i:

.jR_hR:JMP .j_h:

.jR_hR_CL:
    LEA RCX,[RegCL]
    MOV [Dii.Operand3],RCX
    JMP .j_h:

.jR_hR_ib:
    JMP .j_h_i:

.jR_hRd:
      CALL .OperWidth32:
      JMP .j_h:

.jR_hRd@DATAd:
    CALL .OperWidth32:
    CALL .DATAd:
    JMP .j_h:

.jR_hRq:
    CALL .OperWidth64:
    JMP .j_h:

.jR_hRq@DATAq:
    CALL .OperWidth64:
    CALL .DATAq:
    JMP .j_h:

.jR_i8:
.jR_ib:
      JMP .j_i:
.jR_ibse@DATAa@CODEl:
    CALL .CODEl:
    JMP .j_ibse:

.jR_ib@DATAa:
    CALL .DATAa:
    JMP .j_i:
.jR_ib@DATAa@CODEl:
    CALL .CODEl:
    CALL .DATAa:
    JMP .j_i:
.jR_ie:
      JMP .j_ie:
.jR_ie@DATAa:
    CALL .DATAa:
    JMP .j_ie:
.jR_ie@DATAa@CODEl:
    CALL .CODEl:
    CALL .DATAa:
    JMP .j_ie:
.jRb: CALL .OperWidth8:
      JMP .j:
.jRb@DATAa:
      CALL  .DATAa:
      JMP .j:
.jRb@DATAb:
      CALL .OperWidth8:
      CALL .DATAb:
      JMP .j:
.jRb_hRb:
      CALL .OperWidth8
      SetSt [Dii.Prefix],pfx66NotUsed
      JMP .j_h:
.jRb_i8:
      CALL .OperWidth8
      JMP .j_i:
.jRb_i8@DATAb:
      CALL .DATAb:
.jRd: CALL .OperWidth32
      JMP .j:
.jRb_i8@DATAb@CODEl:
      CALL .CODEl:
      CALL .DATAb:
      CALL .OperWidth8:
      JMP .j_i:
.jRb_ib:
    MOV [Dii.DATA],'B'
    CALL .OperWidth8:
    JMP .j_ib:
.jRd_hE:
    CALL .OperWidth32:
    CALL .ERRR:
    JMP .j_h:
.jRd_hO@DATAd:
      CALL .OperWidth32:
      CALL .OROO:
      CALL .DATAd:
      JMP .j_h:
.jRd_hO@DATAd@T32:
      CALL .OperWidth32:
      CALL .ORRR:
      CALL .DATAd:
      CALL .T32:
      JMP .j_h:

.jRd_hO_ib@DATAa:
      CALL  .DATAa:
      CALL .OperWidth32
      CALL .OROO:
      JMP .j_h_i:
.jRd_hO_ib:
      CALL .OperWidth32
      CALL .OROO:
      JMP .j_h_i:

.jRd_hO_ib@DATAb:
      CALL .OperWidth32:
      CALL .OROO:
      CALL  .DATAb:
      JMP .j_h_i:

.jRd_hO_ib@DATAb@T8:
      CALL .T8:
      CALL .OperWidth32:
      CALL .OROO:
      CALL  .DATAb:
      JMP .j_h_i:

.jRd_hO_ib@DATAd:
      CALL .OperWidth32:
      CALL .OROO:
      CALL .DATAd:
      JMP .j_h_i:
.jRd_hO_ib@DATAd@T32:
      CALL .OperWidth32:
      CALL .OROO:
      CALL .DATAd:
      CALL .T32:
      JMP .j_h_i:

.jRd_hO_ib@DATAd@T64:
      CALL .OperWidth32:
      CALL .OROO:
      CALL .DATAd:
      CALL .T64:
      JMP .j_h_i:
.jRd_hO_ib@DATAq@T64:
      CALL .OperWidth64:
      CALL .OROO:
      CALL .DATAd:
      CALL .T64:
      JMP .j_h_i:

.jRd_hO_ib@T16:
      CALL .OperWidth32
      CALL .OROO:
      CALL .T16:
      JMP .j_h_i:
.jRd_hO_ib@T32:
      CALL .OperWidth32
      CALL .OROO:
      CALL .T32:
      JMP .j_h_i:
.jRd_hO_ib@T8:
      CALL .OperWidth32
      CALL .OROO:
      CALL .T8:
      JMP .j_h_i:

.jRd_hRd_vRd@DATAd:
      CALL .DATAd:
      CALL .OperWidth32
      JMP .j_h_v:
.jRd_hU@DATAd:
      CALL .URRR:
      CALL .OperWidth32:
      CALL .DATAd:
      JMP .j_h:
.jRd_ib:
      CALL .OperWidth32:
      JMP .j_i:
.jRe_hR:
     MOV AL,OperWidth64
     JSt [Dii.Status],stMode64,.jRe6:
     MOV AL,OperWidth32
.jRe6:MOV [Dii.OperWidth],AL
     JMP .j_h:

.jRe_ie:
     CALL ModifyDefaultWidth
     CALL GetModRMReg
     MOV [Dii.Operand1],RAX
     CALL GetOperWidth
     MOV [Dii.DATA],AL
     SetSt [Dii.Flags],flagImmSignExt
     CALL Imm
     LEA RAX,[ImmLine]
     MOV [Dii.Operand2],RAX
     JMP .Flush

.jRe_ie@DATAa:
     CALL .DATAa:
     JMP .jRe_ie:

.jRe_ie@DATAa@CODEl:
     CALL .CODEl:
     CALL .DATAa:
     JMP .jRe_ie:
.jRe_ie@DATAq:
     CALL .DATAq:
     JMP .jRe_ie:

.jRM_hR@CODEl:
     MOV [Dii.CODE],'L'
      JMP .j_h:
.jRM_hS:
     CALL .SRRR:
     JMP .j_h:
.jRMb:CALL .OperWidth8:
     JMP .j:
.jRMb@DATAb:
      CALL .OperWidth8:
      CALL  .DATAb:
      JMP .j:
.jRMb_1:
      LEA RCX,[="1"]
      MOV [Dii.Operand2],RCX
      CALL .OperWidth8
      CALL .DATAb:
      JMP .j:
.jRMb_CL:
      LEA RCX,[RegCL]
      MOV [Dii.Operand2],RCX
      CALL .OperWidth8:
      CALL .DATAb:
      JMP .j:
.jRMb_hRb@CODEl:
      MOV [Dii.CODE],'L'
      CALL .OperWidth8:
      JMP .j_h:
.jRMb_ib:
      CALL .OperWidth8:
      JMP .j_i:

.jRMe@DATAa:
      CALL ModifyDefaultWidth
      CALL .DATAa:
      CALL GetModRMReg
      MOV [Dii.Operand1],RAX
      JMP .Flush:
.jRMe@DISTn:
     CALL .DISTn:
     SetSt [Dii.Flags],flagProm64
     JMP .j:
.jRMe_1:
      CALL ModifyDefaultWidth
      CALL GetModRMReg
      MOV [Dii.Operand1],RAX
      LEA RCX,[="1"]
      MOV [Dii.Operand2],RCX
      CALL .DATAa:
      JMP .Flush
.jRMe_CL:
      CALL ModifyDefaultWidth
      CALL GetModRMReg
      MOV [Dii.Operand1],RAX
      LEA RCX,[RegCL]
      MOV [Dii.Operand2],RCX
      CALL .DATAa:
      JMP .Flush
.jRMe_ib:
      CALL ModifyDefaultWidth
      CALL GetModRMReg
      MOV [Dii.Operand1],RAX
      CALL Imm2
      MOV [Dii.Operand2],RCX
      CALL .DATAa:
      JMP .Flush
.jRMw:
      CALL .OperWidth16:
      JMP .j:

.jRq: CALL .OperWidth64
      JMP .j:
.jRq@DATAq:
      CALL .OperWidth64:
      CALL .DATAq:
      JMP .j:
.jRq_hO@DATAq:
      CALL .OperWidth64:
      CALL .OROO:
      CALL .DATAq:
      JMP .j_h:
.jRq_hO@DATAq@T64
      CALL .OperWidth64:
      CALL .ORRR:
      CALL .DATAq:
      CALL .T64:
      JMP .j_h:
.jRq_hO_ib:
      CALL .OperWidth64
      CALL .OROO:
      JMP .j_h_i:

.jRq_hO_ib@DATAq:
      CALL .OperWidth64
       CALL .OROO:
       CALL ModifyDefaultWidth
       CALL GetModRMReg
       MOV [Dii.Operand1],RAX
       MOV [Dii.Operand2],RDX
       CALL Imm2
       MOV [Dii.Operand3],RCX
       JMP .Flush:

.jRq_hO_ib@DATAq@T64:
      CALL .T64:
      JMP .jRq_hO_ib@DATAq:
.jRq_hO_ib@T16:
      CALL .OperWidth64
      CALL .OROO:
      CALL .T16:
      JMP .j_h_i:
.jRq_hO_ib@T32:
      CALL .OperWidth64
      CALL .OROO:
      CALL .T32:
      JMP .j_h_i:
.jRq_hRq_vRq@DATAq:
      CALL .DATAq:
      CALL .OperWidth64
      JMP .j_h_v:
.jRq_hU@DATAq:
      CALL .URRR:
      CALL .OperWidth64:
      CALL .DATAq:
      JMP .j_h:
.jRq_ie@DATAq:
     CALL .DATAq:
     JMP .jRe_ie:
.jRq_ie@DATAq@CODEl:
     CALL .CODEl:
     JMP .jRq_ie@DATAq:

.jRw_hO@DATAw@T16:
      CALL .OROO:
      CALL .OperWidth16
      CALL  .DATAw:
      CALL .T16:
      JMP .j_h:
.jRw_hRw:
      CALL .OperWidth16
      JMP .j_h:
.jU_hU:
     CALL .UUUU:
     JMP .j_h:
.jU_ib:
     CALL .UUUU:
     JMP .j_i:
.jX_hO@OVM:
      CALL .OVM:
      CALL .OXOO:
      JMP .j_h:
.jX_hO@QVM:
      CALL .QVM:
      CALL .OXOO:
      JMP .j_h:
.jX_hO_ib:CALL .OXOO:
       JMP .j_h_i:
.jX_hO_ib@T128:
       CALL .T128:
       CALL .OXOO:
       JMP .j_h_i:

.jXXY_hO@HVM:
     CALL .HVM:
     MOV [Dii.Family+0],'O'
     CALL .XXY:
     MOV [Dii.Family+1],AL
     MOV [Dii.DATA],AH
     JMP .j_h:

.jXXY_hO_ib:
     MOV [Dii.Family+0],'O'
     CALL .XXY:
     MOV [Dii.Family+1],AL
     MOV [Dii.DATA],AH
     JMP .j_h_i:
.jXXY_hO_ib@HVM:
     CALL .HVM
     JMP .jXXY_hO_ib:
.jY_hO_ib@T256:
       CALL .T256:
       CALL .OYOO:
       JMP .j_h_i:
.lb_eCX:
     MOV [Dii.ImmSize],1
     MOV [Dii.DIST],'S'
     CALL ImmRel
     MOV [Dii.Operand1],RCX
     CALL ModifyDefaultWidth
     CALL GetCounter
     MOV [Dii.Operand2],RCX
     JMP .Flush
.le: SetSt [Dii.Prefix],pfx67NotUsed+pfxREXNotUsed
     CALL ModifyDefaultWidth
     MOV [Dii.DIST],'N'
     MOV CL,4
     MOV AL,'D'
     MOV AH,'Q'
     JSt [Dii.Status],stMode64,.E85:
     MOV AH,'D'
     CMP [Dii.OperWidth],OperWidth32
     JE .E85:
     MOV CL,2
     MOV AL,'W'
     MOV AH,'W'
.E85:MOV [Dii.ImmSize],CL
     MOV [Dii.IMM],AL
     MOV [Dii.DATA],AH
     CALL ImmRel
     LEA RAX,[ImmLine]
     MOV [Dii.Operand1],RAX
     JMP .Flush
.le@x:    ; XBEGIN
    CALL ModifyDefaultWidth
    CALL GetOperWidth:
    MOV [Dii.ImmSize],AH
    INC R8
    CALL ImmRel:
    MOV [Dii.Operand1],RCX
    JMP .Flush:
.none@DATAa:
     SetSt [Dii.Prefix],pfx67NotUsed+pfxREXNotUsed
     SetSt [Dii.Flags],flagProm64
     CALL ModifyDefaultWidth
     CALL GetOperWidth
     MOV [Dii.DATA],AL
     JMP .Flush:
.Pb_Tb:  ; CMPS
     CALL .OperWidth8
     SetSt [Dii.Prefix],pfxREXNotUsed
.Pe_Te:
     CALL ModifyDefaultWidth
     CALL GetStringRegs
     XCHG RAX,RCX
     JMP .dX5:
.Rb_ib:
     MOV [Dii.OperWidth],OperWidth8
.Re_ie:
     SetSt [Dii.Prefix],pfx67NotUsed
     MOV CL,0000_0111b
     AND CL,DL
     OR [Dii.BaseNr],CL
     MOV CL,[Dii.BaseNr]
     CALL ModifyDefaultWidth
     CALL GetRegByCL
     MOV [Dii.Operand1],RSI
     CALL Imm
     MOV [Dii.Operand2],RCX
     JMP .Flush
.Tb_AL:    ; STOS
     CALL .OperWidth8
     SetSt [Dii.Prefix],pfxREXNotUsed
     JMP .Te_eAX:
.Tb_DX:   ; INS
     CALL .OperWidth8
     SetSt [Dii.Prefix],pfxREXNotUsed
     JMP .Te_DX:
.Tb_Pb:  ; MOVS
     CALL .OperWidth8
     SetSt [Dii.Prefix],pfxREXNotUsed
     JMP .Te_Pe:
.Te_DX:
     CALL ModifyDefaultWidth
     CALL GetStringRegs
     LEA RDX,[RegDX]
     MOV [Dii.Operand1],RCX
     MOV [Dii.Operand2],RDX
     CALL GetOperWidth
     MOV [Dii.DATA],AL
     JMP .Flush
.Te_eAX:
     CALL ModifyDefaultWidth
     CALL GetStringRegs
     CALL GetAccum
     MOV [Dii.Operand1],RCX
     MOV [Dii.Operand2],RAX
     JMP .Flush:
.Te_Pe:
     CALL ModifyDefaultWidth
     CALL GetStringRegs
.dX5:MOV [Dii.Operand1],RCX
     MOV [Dii.Operand2],RAX
     CALL GetOperWidth
     MOV [Dii.DATA],AL
     JMP .Flush:
.vK_lb@DISTs:
      CALL .DISTs:
      JMP .v_lb:
.vK_ld@DISTn:
      CALL .DISTn:
      JMP .v_ld:
.vO_jO_ib:
       CALL .OOOO:
       JMP .v_j_i:
.vO_jO_ib@FV32:
       CALL .OOOO:
       CALL .FV32:
       JMP .v_j_i:
.vO_jO_ib@FV64:
       CALL .OOOO:
       CALL .FV64:
       JMP .v_j_i:

.vO_jO_ib@FVM:
      CALL .FVM:
      CALL .OOOO:
      JMP .v_j_i:

.vO_jO_ib@T128:
      CALL .T128:
      JMP .vO_jO_ib:
.vR_jR:
      JMP .v_j:
.vR_jR_id:
      JMP .v_j_id:
.vRd_jR:
       CALL .OperWidth32
       JMP .v_j:
.vRd_jR_id:
      CALL .OperWidth32:
      JMP .v_j_id:
.vRq_jR:
       CALL .OperWidth64
       JMP .v_j:
.vRq_jR_id:
      CALL .OperWidth64:
      JMP .v_j_id:


.Flush:  ; Dii.Opcode was an instruction (not a prefix). CF=0 tells the parent (Disasm:) to call FlushDii.
     CLC
     JMP .90:
.NoFlush:; Dii.Opcode was a prefix and no more than 4 prefixes are incorporated yet. CF=1.
     STC
.90: RET
  ENDP DisTabProc
%IF %^Debug
 DebugOutput PROC
  StdOutput RSI,Size=RCX
  RET
 ENDP DebugOutput
%ENDIF
ENDPROGRAM viewdasm

▲Back to the top▲