{ ***************************************************** }
{                                                       }
{  Pascal language binding for the Capstone engine      }
{                                                       }
{  Unit Name: Capstone Api Header                       }
{     Author: Lsuper 2024.05.01                         }
{    Purpose: x86.h                                     }
{    License: Mozilla Public License 2.0                }
{                                                       }
{  Copyright (c) 1998-2024 Super Studio                 }
{                                                       }
{ ***************************************************** }

unit Capstone.X86;

{$I Capstone.inc}

interface

const
  /// Sub-flags of EFLAGS
  X86_EFLAGS_MODIFY_AF = (UInt64(1) shl 0);
  X86_EFLAGS_MODIFY_CF = (UInt64(1) shl 1);
  X86_EFLAGS_MODIFY_SF = (UInt64(1) shl 2);
  X86_EFLAGS_MODIFY_ZF = (UInt64(1) shl 3);
  X86_EFLAGS_MODIFY_PF = (UInt64(1) shl 4);
  X86_EFLAGS_MODIFY_OF = (UInt64(1) shl 5);
  X86_EFLAGS_MODIFY_TF = (UInt64(1) shl 6);
  X86_EFLAGS_MODIFY_IF = (UInt64(1) shl 7);
  X86_EFLAGS_MODIFY_DF = (UInt64(1) shl 8);
  X86_EFLAGS_MODIFY_NT = (UInt64(1) shl 9);
  X86_EFLAGS_MODIFY_RF = (UInt64(1) shl 10);
  X86_EFLAGS_PRIOR_OF = (UInt64(1) shl 11);
  X86_EFLAGS_PRIOR_SF = (UInt64(1) shl 12);
  X86_EFLAGS_PRIOR_ZF = (UInt64(1) shl 13);
  X86_EFLAGS_PRIOR_AF = (UInt64(1) shl 14);
  X86_EFLAGS_PRIOR_PF = (UInt64(1) shl 15);
  X86_EFLAGS_PRIOR_CF = (UInt64(1) shl 16);
  X86_EFLAGS_PRIOR_TF = (UInt64(1) shl 17);
  X86_EFLAGS_PRIOR_IF = (UInt64(1) shl 18);
  X86_EFLAGS_PRIOR_DF = (UInt64(1) shl 19);
  X86_EFLAGS_PRIOR_NT = (UInt64(1) shl 20);
  X86_EFLAGS_RESET_OF = (UInt64(1) shl 21);
  X86_EFLAGS_RESET_CF = (UInt64(1) shl 22);
  X86_EFLAGS_RESET_DF = (UInt64(1) shl 23);
  X86_EFLAGS_RESET_IF = (UInt64(1) shl 24);
  X86_EFLAGS_RESET_SF = (UInt64(1) shl 25);
  X86_EFLAGS_RESET_AF = (UInt64(1) shl 26);
  X86_EFLAGS_RESET_TF = (UInt64(1) shl 27);
  X86_EFLAGS_RESET_NT = (UInt64(1) shl 28);
  X86_EFLAGS_RESET_PF = (UInt64(1) shl 29);
  X86_EFLAGS_SET_CF = (UInt64(1) shl 30);
  X86_EFLAGS_SET_DF = (UInt64(1) shl 31);
  X86_EFLAGS_SET_IF = (UInt64(1) shl 32);
  X86_EFLAGS_TEST_OF = (UInt64(1) shl 33);
  X86_EFLAGS_TEST_SF = (UInt64(1) shl 34);
  X86_EFLAGS_TEST_ZF = (UInt64(1) shl 35);
  X86_EFLAGS_TEST_PF = (UInt64(1) shl 36);
  X86_EFLAGS_TEST_CF = (UInt64(1) shl 37);
  X86_EFLAGS_TEST_NT = (UInt64(1) shl 38);
  X86_EFLAGS_TEST_DF = (UInt64(1) shl 39);
  X86_EFLAGS_UNDEFINED_OF = (UInt64(1) shl 40);
  X86_EFLAGS_UNDEFINED_SF = (UInt64(1) shl 41);
  X86_EFLAGS_UNDEFINED_ZF = (UInt64(1) shl 42);
  X86_EFLAGS_UNDEFINED_PF = (UInt64(1) shl 43);
  X86_EFLAGS_UNDEFINED_AF = (UInt64(1) shl 44);
  X86_EFLAGS_UNDEFINED_CF = (UInt64(1) shl 45);
  X86_EFLAGS_RESET_RF = (UInt64(1) shl 46);
  X86_EFLAGS_TEST_RF = (UInt64(1) shl 47);
  X86_EFLAGS_TEST_IF = (UInt64(1) shl 48);
  X86_EFLAGS_TEST_TF = (UInt64(1) shl 49);
  X86_EFLAGS_TEST_AF = (UInt64(1) shl 50);
  X86_EFLAGS_RESET_ZF = (UInt64(1) shl 51);
  X86_EFLAGS_SET_OF = (UInt64(1) shl 52);
  X86_EFLAGS_SET_SF = (UInt64(1) shl 53);
  X86_EFLAGS_SET_ZF = (UInt64(1) shl 54);
  X86_EFLAGS_SET_AF = (UInt64(1) shl 55);
  X86_EFLAGS_SET_PF = (UInt64(1) shl 56);
  X86_EFLAGS_RESET_0F = (UInt64(1) shl 57);
  X86_EFLAGS_RESET_AC = (UInt64(1) shl 58);
  X86_FPU_FLAGS_MODIFY_C0 = (UInt64(1) shl 0);
  X86_FPU_FLAGS_MODIFY_C1 = (UInt64(1) shl 1);
  X86_FPU_FLAGS_MODIFY_C2 = (UInt64(1) shl 2);
  X86_FPU_FLAGS_MODIFY_C3 = (UInt64(1) shl 3);
  X86_FPU_FLAGS_RESET_C0 = (UInt64(1) shl 4);
  X86_FPU_FLAGS_RESET_C1 = (UInt64(1) shl 5);
  X86_FPU_FLAGS_RESET_C2 = (UInt64(1) shl 6);
  X86_FPU_FLAGS_RESET_C3 = (UInt64(1) shl 7);
  X86_FPU_FLAGS_SET_C0 = (UInt64(1) shl 8);
  X86_FPU_FLAGS_SET_C1 = (UInt64(1) shl 9);
  X86_FPU_FLAGS_SET_C2 = (UInt64(1) shl 10);
  X86_FPU_FLAGS_SET_C3 = (UInt64(1) shl 11);
  X86_FPU_FLAGS_UNDEFINED_C0 = (UInt64(1) shl 12);
  X86_FPU_FLAGS_UNDEFINED_C1 = (UInt64(1) shl 13);
  X86_FPU_FLAGS_UNDEFINED_C2 = (UInt64(1) shl 14);
  X86_FPU_FLAGS_UNDEFINED_C3 = (UInt64(1) shl 15);
  X86_FPU_FLAGS_TEST_C0 = (UInt64(1) shl 16);
  X86_FPU_FLAGS_TEST_C1 = (UInt64(1) shl 17);
  X86_FPU_FLAGS_TEST_C2 = (UInt64(1) shl 18);
  X86_FPU_FLAGS_TEST_C3 = (UInt64(1) shl 19);

type
  /// X86 registers
  x86_reg = Integer;
  Px86_reg = ^x86_reg;

const
  X86_REG_INVALID = 0;
  X86_REG_AH = 1;
  X86_REG_AL = 2;
  X86_REG_AX = 3;
  X86_REG_BH = 4;
  X86_REG_BL = 5;
  X86_REG_BP = 6;
  X86_REG_BPL = 7;
  X86_REG_BX = 8;
  X86_REG_CH = 9;
  X86_REG_CL = 10;
  X86_REG_CS = 11;
  X86_REG_CX = 12;
  X86_REG_DH = 13;
  X86_REG_DI = 14;
  X86_REG_DIL = 15;
  X86_REG_DL = 16;
  X86_REG_DS = 17;
  X86_REG_DX = 18;
  X86_REG_EAX = 19;
  X86_REG_EBP = 20;
  X86_REG_EBX = 21;
  X86_REG_ECX = 22;
  X86_REG_EDI = 23;
  X86_REG_EDX = 24;
  X86_REG_EFLAGS = 25;
  X86_REG_EIP = 26;
  X86_REG_EIZ = 27;
  X86_REG_ES = 28;
  X86_REG_ESI = 29;
  X86_REG_ESP = 30;
  X86_REG_FPSW = 31;
  X86_REG_FS = 32;
  X86_REG_GS = 33;
  X86_REG_IP = 34;
  X86_REG_RAX = 35;
  X86_REG_RBP = 36;
  X86_REG_RBX = 37;
  X86_REG_RCX = 38;
  X86_REG_RDI = 39;
  X86_REG_RDX = 40;
  X86_REG_RIP = 41;
  X86_REG_RIZ = 42;
  X86_REG_RSI = 43;
  X86_REG_RSP = 44;
  X86_REG_SI = 45;
  X86_REG_SIL = 46;
  X86_REG_SP = 47;
  X86_REG_SPL = 48;
  X86_REG_SS = 49;
  X86_REG_CR0 = 50;
  X86_REG_CR1 = 51;
  X86_REG_CR2 = 52;
  X86_REG_CR3 = 53;
  X86_REG_CR4 = 54;
  X86_REG_CR5 = 55;
  X86_REG_CR6 = 56;
  X86_REG_CR7 = 57;
  X86_REG_CR8 = 58;
  X86_REG_CR9 = 59;
  X86_REG_CR10 = 60;
  X86_REG_CR11 = 61;
  X86_REG_CR12 = 62;
  X86_REG_CR13 = 63;
  X86_REG_CR14 = 64;
  X86_REG_CR15 = 65;
  X86_REG_DR0 = 66;
  X86_REG_DR1 = 67;
  X86_REG_DR2 = 68;
  X86_REG_DR3 = 69;
  X86_REG_DR4 = 70;
  X86_REG_DR5 = 71;
  X86_REG_DR6 = 72;
  X86_REG_DR7 = 73;
  X86_REG_DR8 = 74;
  X86_REG_DR9 = 75;
  X86_REG_DR10 = 76;
  X86_REG_DR11 = 77;
  X86_REG_DR12 = 78;
  X86_REG_DR13 = 79;
  X86_REG_DR14 = 80;
  X86_REG_DR15 = 81;
  X86_REG_FP0 = 82;
  X86_REG_FP1 = 83;
  X86_REG_FP2 = 84;
  X86_REG_FP3 = 85;
  X86_REG_FP4 = 86;
  X86_REG_FP5 = 87;
  X86_REG_FP6 = 88;
  X86_REG_FP7 = 89;
  X86_REG_K0 = 90;
  X86_REG_K1 = 91;
  X86_REG_K2 = 92;
  X86_REG_K3 = 93;
  X86_REG_K4 = 94;
  X86_REG_K5 = 95;
  X86_REG_K6 = 96;
  X86_REG_K7 = 97;
  X86_REG_MM0 = 98;
  X86_REG_MM1 = 99;
  X86_REG_MM2 = 100;
  X86_REG_MM3 = 101;
  X86_REG_MM4 = 102;
  X86_REG_MM5 = 103;
  X86_REG_MM6 = 104;
  X86_REG_MM7 = 105;
  X86_REG_R8 = 106;
  X86_REG_R9 = 107;
  X86_REG_R10 = 108;
  X86_REG_R11 = 109;
  X86_REG_R12 = 110;
  X86_REG_R13 = 111;
  X86_REG_R14 = 112;
  X86_REG_R15 = 113;
  X86_REG_ST0 = 114;
  X86_REG_ST1 = 115;
  X86_REG_ST2 = 116;
  X86_REG_ST3 = 117;
  X86_REG_ST4 = 118;
  X86_REG_ST5 = 119;
  X86_REG_ST6 = 120;
  X86_REG_ST7 = 121;
  X86_REG_XMM0 = 122;
  X86_REG_XMM1 = 123;
  X86_REG_XMM2 = 124;
  X86_REG_XMM3 = 125;
  X86_REG_XMM4 = 126;
  X86_REG_XMM5 = 127;
  X86_REG_XMM6 = 128;
  X86_REG_XMM7 = 129;
  X86_REG_XMM8 = 130;
  X86_REG_XMM9 = 131;
  X86_REG_XMM10 = 132;
  X86_REG_XMM11 = 133;
  X86_REG_XMM12 = 134;
  X86_REG_XMM13 = 135;
  X86_REG_XMM14 = 136;
  X86_REG_XMM15 = 137;
  X86_REG_XMM16 = 138;
  X86_REG_XMM17 = 139;
  X86_REG_XMM18 = 140;
  X86_REG_XMM19 = 141;
  X86_REG_XMM20 = 142;
  X86_REG_XMM21 = 143;
  X86_REG_XMM22 = 144;
  X86_REG_XMM23 = 145;
  X86_REG_XMM24 = 146;
  X86_REG_XMM25 = 147;
  X86_REG_XMM26 = 148;
  X86_REG_XMM27 = 149;
  X86_REG_XMM28 = 150;
  X86_REG_XMM29 = 151;
  X86_REG_XMM30 = 152;
  X86_REG_XMM31 = 153;
  X86_REG_YMM0 = 154;
  X86_REG_YMM1 = 155;
  X86_REG_YMM2 = 156;
  X86_REG_YMM3 = 157;
  X86_REG_YMM4 = 158;
  X86_REG_YMM5 = 159;
  X86_REG_YMM6 = 160;
  X86_REG_YMM7 = 161;
  X86_REG_YMM8 = 162;
  X86_REG_YMM9 = 163;
  X86_REG_YMM10 = 164;
  X86_REG_YMM11 = 165;
  X86_REG_YMM12 = 166;
  X86_REG_YMM13 = 167;
  X86_REG_YMM14 = 168;
  X86_REG_YMM15 = 169;
  X86_REG_YMM16 = 170;
  X86_REG_YMM17 = 171;
  X86_REG_YMM18 = 172;
  X86_REG_YMM19 = 173;
  X86_REG_YMM20 = 174;
  X86_REG_YMM21 = 175;
  X86_REG_YMM22 = 176;
  X86_REG_YMM23 = 177;
  X86_REG_YMM24 = 178;
  X86_REG_YMM25 = 179;
  X86_REG_YMM26 = 180;
  X86_REG_YMM27 = 181;
  X86_REG_YMM28 = 182;
  X86_REG_YMM29 = 183;
  X86_REG_YMM30 = 184;
  X86_REG_YMM31 = 185;
  X86_REG_ZMM0 = 186;
  X86_REG_ZMM1 = 187;
  X86_REG_ZMM2 = 188;
  X86_REG_ZMM3 = 189;
  X86_REG_ZMM4 = 190;
  X86_REG_ZMM5 = 191;
  X86_REG_ZMM6 = 192;
  X86_REG_ZMM7 = 193;
  X86_REG_ZMM8 = 194;
  X86_REG_ZMM9 = 195;
  X86_REG_ZMM10 = 196;
  X86_REG_ZMM11 = 197;
  X86_REG_ZMM12 = 198;
  X86_REG_ZMM13 = 199;
  X86_REG_ZMM14 = 200;
  X86_REG_ZMM15 = 201;
  X86_REG_ZMM16 = 202;
  X86_REG_ZMM17 = 203;
  X86_REG_ZMM18 = 204;
  X86_REG_ZMM19 = 205;
  X86_REG_ZMM20 = 206;
  X86_REG_ZMM21 = 207;
  X86_REG_ZMM22 = 208;
  X86_REG_ZMM23 = 209;
  X86_REG_ZMM24 = 210;
  X86_REG_ZMM25 = 211;
  X86_REG_ZMM26 = 212;
  X86_REG_ZMM27 = 213;
  X86_REG_ZMM28 = 214;
  X86_REG_ZMM29 = 215;
  X86_REG_ZMM30 = 216;
  X86_REG_ZMM31 = 217;
  X86_REG_R8B = 218;
  X86_REG_R9B = 219;
  X86_REG_R10B = 220;
  X86_REG_R11B = 221;
  X86_REG_R12B = 222;
  X86_REG_R13B = 223;
  X86_REG_R14B = 224;
  X86_REG_R15B = 225;
  X86_REG_R8D = 226;
  X86_REG_R9D = 227;
  X86_REG_R10D = 228;
  X86_REG_R11D = 229;
  X86_REG_R12D = 230;
  X86_REG_R13D = 231;
  X86_REG_R14D = 232;
  X86_REG_R15D = 233;
  X86_REG_R8W = 234;
  X86_REG_R9W = 235;
  X86_REG_R10W = 236;
  X86_REG_R11W = 237;
  X86_REG_R12W = 238;
  X86_REG_R13W = 239;
  X86_REG_R14W = 240;
  X86_REG_R15W = 241;
  X86_REG_BND0 = 242;
  X86_REG_BND1 = 243;
  X86_REG_BND2 = 244;
  X86_REG_BND3 = 245;
  X86_REG_ENDING = 246;

/// Operand type for instruction's operands
type
  x86_op_type = Integer;
  Px86_op_type = ^x86_op_type;

const
  /// = CS_OP_INVALID (Uninitialized).
  X86_OP_INVALID = 0;
  /// = CS_OP_REG (Register operand).
  X86_OP_REG = 1;
  /// = CS_OP_IMM (Immediate operand).
  X86_OP_IMM = 2;
  /// = CS_OP_MEM (Memory operand).
  X86_OP_MEM_ = 3;

/// XOP Code Condition type
type
  x86_xop_cc = Integer;
  Px86_xop_cc = ^x86_xop_cc;

const
  /// Uninitialized.
  X86_XOP_CC_INVALID = 0;
  X86_XOP_CC_LT = 1;
  X86_XOP_CC_LE = 2;
  X86_XOP_CC_GT = 3;
  X86_XOP_CC_GE = 4;
  X86_XOP_CC_EQ = 5;
  X86_XOP_CC_NEQ = 6;
  X86_XOP_CC_FALSE = 7;
  X86_XOP_CC_TRUE = 8;

/// AVX broadcast type
type
  x86_avx_bcast = Integer;
  Px86_avx_bcast = ^x86_avx_bcast;

const
  /// Uninitialized.
  X86_AVX_BCAST_INVALID = 0;
  /// AVX512 broadcast type {1to2}
  X86_AVX_BCAST_2 = 1;
  /// AVX512 broadcast type {1to4}
  X86_AVX_BCAST_4 = 2;
  /// AVX512 broadcast type {1to8}
  X86_AVX_BCAST_8 = 3;
  /// AVX512 broadcast type {1to16}
  X86_AVX_BCAST_16 = 4;

/// SSE Code Condition type
type
  x86_sse_cc = Integer;
  Px86_sse_cc = ^x86_sse_cc;

const
  /// Uninitialized.
  X86_SSE_CC_INVALID = 0;
  X86_SSE_CC_EQ = 1;
  X86_SSE_CC_LT = 2;
  X86_SSE_CC_LE = 3;
  X86_SSE_CC_UNORD = 4;
  X86_SSE_CC_NEQ = 5;
  X86_SSE_CC_NLT = 6;
  X86_SSE_CC_NLE = 7;
  X86_SSE_CC_ORD = 8;

/// AVX Code Condition type
type
  x86_avx_cc = Integer;
  Px86_avx_cc = ^x86_avx_cc;

const
  /// Uninitialized.
  X86_AVX_CC_INVALID = 0;
  X86_AVX_CC_EQ = 1;
  X86_AVX_CC_LT = 2;
  X86_AVX_CC_LE = 3;
  X86_AVX_CC_UNORD = 4;
  X86_AVX_CC_NEQ = 5;
  X86_AVX_CC_NLT = 6;
  X86_AVX_CC_NLE = 7;
  X86_AVX_CC_ORD = 8;
  X86_AVX_CC_EQ_UQ = 9;
  X86_AVX_CC_NGE = 10;
  X86_AVX_CC_NGT = 11;
  X86_AVX_CC_FALSE = 12;
  X86_AVX_CC_NEQ_OQ = 13;
  X86_AVX_CC_GE = 14;
  X86_AVX_CC_GT = 15;
  X86_AVX_CC_TRUE = 16;
  X86_AVX_CC_EQ_OS = 17;
  X86_AVX_CC_LT_OQ = 18;
  X86_AVX_CC_LE_OQ = 19;
  X86_AVX_CC_UNORD_S = 20;
  X86_AVX_CC_NEQ_US = 21;
  X86_AVX_CC_NLT_UQ = 22;
  X86_AVX_CC_NLE_UQ = 23;
  X86_AVX_CC_ORD_S = 24;
  X86_AVX_CC_EQ_US = 25;
  X86_AVX_CC_NGE_UQ = 26;
  X86_AVX_CC_NGT_UQ = 27;
  X86_AVX_CC_FALSE_OS = 28;
  X86_AVX_CC_NEQ_OS = 29;
  X86_AVX_CC_GE_OQ = 30;
  X86_AVX_CC_GT_OQ = 31;
  X86_AVX_CC_TRUE_US = 32;

/// AVX static rounding mode type
type
  x86_avx_rm = Integer;
  Px86_avx_rm = ^x86_avx_rm;

const
  /// Uninitialized.
  X86_AVX_RM_INVALID = 0;
  /// Round to nearest
  X86_AVX_RM_RN = 1;
  /// Round down
  X86_AVX_RM_RD = 2;
  /// Round up
  X86_AVX_RM_RU = 3;
  /// Round toward zero
  X86_AVX_RM_RZ = 4;

/// Instruction prefixes - to be used in cs_x86.prefix[]
type
  x86_prefix = Integer;
  Px86_prefix = ^x86_prefix;

const
  /// lock (cs_x86.prefix[0]
  X86_PREFIX_LOCK = 240;
  /// rep (cs_x86.prefix[0]
  X86_PREFIX_REP = 243;
  /// repe/repz (cs_x86.prefix[0]
  X86_PREFIX_REPE = 243;
  /// repne/repnz (cs_x86.prefix[0]
  X86_PREFIX_REPNE = 242;
  /// segment override CS (cs_x86.prefix[1]
  X86_PREFIX_CS = 46;
  /// segment override SS (cs_x86.prefix[1]
  X86_PREFIX_SS = 54;
  /// segment override DS (cs_x86.prefix[1]
  X86_PREFIX_DS = 62;
  /// segment override ES (cs_x86.prefix[1]
  X86_PREFIX_ES = 38;
  /// segment override FS (cs_x86.prefix[1]
  X86_PREFIX_FS = 100;
  /// segment override GS (cs_x86.prefix[1]
  X86_PREFIX_GS = 101;
  /// operand-size override (cs_x86.prefix[2]
  X86_PREFIX_OPSIZE = 102;
  /// address-size override (cs_x86.prefix[3]
  X86_PREFIX_ADDRSIZE = 103;

/// X86 instructions
type
  x86_insn = Integer;
  Px86_insn = ^x86_insn;

const
  X86_INS_INVALID = 0;
  X86_INS_AAA = 1;
  X86_INS_AAD = 2;
  X86_INS_AAM = 3;
  X86_INS_AAS = 4;
  X86_INS_FABS = 5;
  X86_INS_ADC = 6;
  X86_INS_ADCX = 7;
  X86_INS_ADD = 8;
  X86_INS_ADDPD = 9;
  X86_INS_ADDPS = 10;
  X86_INS_ADDSD = 11;
  X86_INS_ADDSS = 12;
  X86_INS_ADDSUBPD = 13;
  X86_INS_ADDSUBPS = 14;
  X86_INS_FADD = 15;
  X86_INS_FIADD = 16;
  X86_INS_ADOX = 17;
  X86_INS_AESDECLAST = 18;
  X86_INS_AESDEC = 19;
  X86_INS_AESENCLAST = 20;
  X86_INS_AESENC = 21;
  X86_INS_AESIMC = 22;
  X86_INS_AESKEYGENASSIST = 23;
  X86_INS_AND = 24;
  X86_INS_ANDN = 25;
  X86_INS_ANDNPD = 26;
  X86_INS_ANDNPS = 27;
  X86_INS_ANDPD = 28;
  X86_INS_ANDPS = 29;
  X86_INS_ARPL = 30;
  X86_INS_BEXTR = 31;
  X86_INS_BLCFILL = 32;
  X86_INS_BLCI = 33;
  X86_INS_BLCIC = 34;
  X86_INS_BLCMSK = 35;
  X86_INS_BLCS = 36;
  X86_INS_BLENDPD = 37;
  X86_INS_BLENDPS = 38;
  X86_INS_BLENDVPD = 39;
  X86_INS_BLENDVPS = 40;
  X86_INS_BLSFILL = 41;
  X86_INS_BLSI = 42;
  X86_INS_BLSIC = 43;
  X86_INS_BLSMSK = 44;
  X86_INS_BLSR = 45;
  X86_INS_BNDCL = 46;
  X86_INS_BNDCN = 47;
  X86_INS_BNDCU = 48;
  X86_INS_BNDLDX = 49;
  X86_INS_BNDMK = 50;
  X86_INS_BNDMOV = 51;
  X86_INS_BNDSTX = 52;
  X86_INS_BOUND = 53;
  X86_INS_BSF = 54;
  X86_INS_BSR = 55;
  X86_INS_BSWAP = 56;
  X86_INS_BT = 57;
  X86_INS_BTC = 58;
  X86_INS_BTR = 59;
  X86_INS_BTS = 60;
  X86_INS_BZHI = 61;
  X86_INS_CALL = 62;
  X86_INS_CBW = 63;
  X86_INS_CDQ = 64;
  X86_INS_CDQE = 65;
  X86_INS_FCHS = 66;
  X86_INS_CLAC = 67;
  X86_INS_CLC = 68;
  X86_INS_CLD = 69;
  X86_INS_CLDEMOTE = 70;
  X86_INS_CLFLUSH = 71;
  X86_INS_CLFLUSHOPT = 72;
  X86_INS_CLGI = 73;
  X86_INS_CLI = 74;
  X86_INS_CLRSSBSY = 75;
  X86_INS_CLTS = 76;
  X86_INS_CLWB = 77;
  X86_INS_CLZERO = 78;
  X86_INS_CMC = 79;
  X86_INS_CMOVA = 80;
  X86_INS_CMOVAE = 81;
  X86_INS_CMOVB = 82;
  X86_INS_CMOVBE = 83;
  X86_INS_FCMOVBE = 84;
  X86_INS_FCMOVB = 85;
  X86_INS_CMOVE = 86;
  X86_INS_FCMOVE = 87;
  X86_INS_CMOVG = 88;
  X86_INS_CMOVGE = 89;
  X86_INS_CMOVL = 90;
  X86_INS_CMOVLE = 91;
  X86_INS_FCMOVNBE = 92;
  X86_INS_FCMOVNB = 93;
  X86_INS_CMOVNE = 94;
  X86_INS_FCMOVNE = 95;
  X86_INS_CMOVNO = 96;
  X86_INS_CMOVNP = 97;
  X86_INS_FCMOVNU = 98;
  X86_INS_FCMOVNP = 99;
  X86_INS_CMOVNS = 100;
  X86_INS_CMOVO = 101;
  X86_INS_CMOVP = 102;
  X86_INS_FCMOVU = 103;
  X86_INS_CMOVS = 104;
  X86_INS_CMP = 105;
  X86_INS_CMPPD = 106;
  X86_INS_CMPPS = 107;
  X86_INS_CMPSB = 108;
  X86_INS_CMPSD = 109;
  X86_INS_CMPSQ = 110;
  X86_INS_CMPSS = 111;
  X86_INS_CMPSW = 112;
  X86_INS_CMPXCHG16B = 113;
  X86_INS_CMPXCHG = 114;
  X86_INS_CMPXCHG8B = 115;
  X86_INS_COMISD = 116;
  X86_INS_COMISS = 117;
  X86_INS_FCOMP = 118;
  X86_INS_FCOMPI = 119;
  X86_INS_FCOMI = 120;
  X86_INS_FCOM = 121;
  X86_INS_FCOS = 122;
  X86_INS_CPUID = 123;
  X86_INS_CQO = 124;
  X86_INS_CRC32 = 125;
  X86_INS_CVTDQ2PD = 126;
  X86_INS_CVTDQ2PS = 127;
  X86_INS_CVTPD2DQ = 128;
  X86_INS_CVTPD2PS = 129;
  X86_INS_CVTPS2DQ = 130;
  X86_INS_CVTPS2PD = 131;
  X86_INS_CVTSD2SI = 132;
  X86_INS_CVTSD2SS = 133;
  X86_INS_CVTSI2SD = 134;
  X86_INS_CVTSI2SS = 135;
  X86_INS_CVTSS2SD = 136;
  X86_INS_CVTSS2SI = 137;
  X86_INS_CVTTPD2DQ = 138;
  X86_INS_CVTTPS2DQ = 139;
  X86_INS_CVTTSD2SI = 140;
  X86_INS_CVTTSS2SI = 141;
  X86_INS_CWD = 142;
  X86_INS_CWDE = 143;
  X86_INS_DAA = 144;
  X86_INS_DAS = 145;
  X86_INS_DATA16 = 146;
  X86_INS_DEC = 147;
  X86_INS_DIV = 148;
  X86_INS_DIVPD = 149;
  X86_INS_DIVPS = 150;
  X86_INS_FDIVR = 151;
  X86_INS_FIDIVR = 152;
  X86_INS_FDIVRP = 153;
  X86_INS_DIVSD = 154;
  X86_INS_DIVSS = 155;
  X86_INS_FDIV = 156;
  X86_INS_FIDIV = 157;
  X86_INS_FDIVP = 158;
  X86_INS_DPPD = 159;
  X86_INS_DPPS = 160;
  X86_INS_ENCLS = 161;
  X86_INS_ENCLU = 162;
  X86_INS_ENCLV = 163;
  X86_INS_ENDBR32 = 164;
  X86_INS_ENDBR64 = 165;
  X86_INS_ENTER = 166;
  X86_INS_EXTRACTPS = 167;
  X86_INS_EXTRQ = 168;
  X86_INS_F2XM1 = 169;
  X86_INS_LCALL = 170;
  X86_INS_LJMP = 171;
  X86_INS_JMP = 172;
  X86_INS_FBLD = 173;
  X86_INS_FBSTP = 174;
  X86_INS_FCOMPP = 175;
  X86_INS_FDECSTP = 176;
  X86_INS_FDISI8087_NOP = 177;
  X86_INS_FEMMS = 178;
  X86_INS_FENI8087_NOP = 179;
  X86_INS_FFREE = 180;
  X86_INS_FFREEP = 181;
  X86_INS_FICOM = 182;
  X86_INS_FICOMP = 183;
  X86_INS_FINCSTP = 184;
  X86_INS_FLDCW = 185;
  X86_INS_FLDENV = 186;
  X86_INS_FLDL2E = 187;
  X86_INS_FLDL2T = 188;
  X86_INS_FLDLG2 = 189;
  X86_INS_FLDLN2 = 190;
  X86_INS_FLDPI = 191;
  X86_INS_FNCLEX = 192;
  X86_INS_FNINIT = 193;
  X86_INS_FNOP = 194;
  X86_INS_FNSTCW = 195;
  X86_INS_FNSTSW = 196;
  X86_INS_FPATAN = 197;
  X86_INS_FSTPNCE = 198;
  X86_INS_FPREM = 199;
  X86_INS_FPREM1 = 200;
  X86_INS_FPTAN = 201;
  X86_INS_FRNDINT = 202;
  X86_INS_FRSTOR = 203;
  X86_INS_FNSAVE = 204;
  X86_INS_FSCALE = 205;
  X86_INS_FSETPM = 206;
  X86_INS_FSINCOS = 207;
  X86_INS_FNSTENV = 208;
  X86_INS_FXAM = 209;
  X86_INS_FXRSTOR = 210;
  X86_INS_FXRSTOR64 = 211;
  X86_INS_FXSAVE = 212;
  X86_INS_FXSAVE64 = 213;
  X86_INS_FXTRACT = 214;
  X86_INS_FYL2X = 215;
  X86_INS_FYL2XP1 = 216;
  X86_INS_GETSEC = 217;
  X86_INS_GF2P8AFFINEINVQB = 218;
  X86_INS_GF2P8AFFINEQB = 219;
  X86_INS_GF2P8MULB = 220;
  X86_INS_HADDPD = 221;
  X86_INS_HADDPS = 222;
  X86_INS_HLT = 223;
  X86_INS_HSUBPD = 224;
  X86_INS_HSUBPS = 225;
  X86_INS_IDIV = 226;
  X86_INS_FILD = 227;
  X86_INS_IMUL = 228;
  X86_INS_IN = 229;
  X86_INS_INC = 230;
  X86_INS_INCSSPD = 231;
  X86_INS_INCSSPQ = 232;
  X86_INS_INSB = 233;
  X86_INS_INSERTPS = 234;
  X86_INS_INSERTQ = 235;
  X86_INS_INSD = 236;
  X86_INS_INSW = 237;
  X86_INS_INT = 238;
  X86_INS_INT1 = 239;
  X86_INS_INT3 = 240;
  X86_INS_INTO = 241;
  X86_INS_INVD = 242;
  X86_INS_INVEPT = 243;
  X86_INS_INVLPG = 244;
  X86_INS_INVLPGA = 245;
  X86_INS_INVPCID = 246;
  X86_INS_INVVPID = 247;
  X86_INS_IRET = 248;
  X86_INS_IRETD = 249;
  X86_INS_IRETQ = 250;
  X86_INS_FISTTP = 251;
  X86_INS_FIST = 252;
  X86_INS_FISTP = 253;
  X86_INS_JAE = 254;
  X86_INS_JA = 255;
  X86_INS_JBE = 256;
  X86_INS_JB = 257;
  X86_INS_JCXZ = 258;
  X86_INS_JECXZ = 259;
  X86_INS_JE = 260;
  X86_INS_JGE = 261;
  X86_INS_JG = 262;
  X86_INS_JLE = 263;
  X86_INS_JL = 264;
  X86_INS_JNE = 265;
  X86_INS_JNO = 266;
  X86_INS_JNP = 267;
  X86_INS_JNS = 268;
  X86_INS_JO = 269;
  X86_INS_JP = 270;
  X86_INS_JRCXZ = 271;
  X86_INS_JS = 272;
  X86_INS_KADDB = 273;
  X86_INS_KADDD = 274;
  X86_INS_KADDQ = 275;
  X86_INS_KADDW = 276;
  X86_INS_KANDB = 277;
  X86_INS_KANDD = 278;
  X86_INS_KANDNB = 279;
  X86_INS_KANDND = 280;
  X86_INS_KANDNQ = 281;
  X86_INS_KANDNW = 282;
  X86_INS_KANDQ = 283;
  X86_INS_KANDW = 284;
  X86_INS_KMOVB = 285;
  X86_INS_KMOVD = 286;
  X86_INS_KMOVQ = 287;
  X86_INS_KMOVW = 288;
  X86_INS_KNOTB = 289;
  X86_INS_KNOTD = 290;
  X86_INS_KNOTQ = 291;
  X86_INS_KNOTW = 292;
  X86_INS_KORB = 293;
  X86_INS_KORD = 294;
  X86_INS_KORQ = 295;
  X86_INS_KORTESTB = 296;
  X86_INS_KORTESTD = 297;
  X86_INS_KORTESTQ = 298;
  X86_INS_KORTESTW = 299;
  X86_INS_KORW = 300;
  X86_INS_KSHIFTLB = 301;
  X86_INS_KSHIFTLD = 302;
  X86_INS_KSHIFTLQ = 303;
  X86_INS_KSHIFTLW = 304;
  X86_INS_KSHIFTRB = 305;
  X86_INS_KSHIFTRD = 306;
  X86_INS_KSHIFTRQ = 307;
  X86_INS_KSHIFTRW = 308;
  X86_INS_KTESTB = 309;
  X86_INS_KTESTD = 310;
  X86_INS_KTESTQ = 311;
  X86_INS_KTESTW = 312;
  X86_INS_KUNPCKBW = 313;
  X86_INS_KUNPCKDQ = 314;
  X86_INS_KUNPCKWD = 315;
  X86_INS_KXNORB = 316;
  X86_INS_KXNORD = 317;
  X86_INS_KXNORQ = 318;
  X86_INS_KXNORW = 319;
  X86_INS_KXORB = 320;
  X86_INS_KXORD = 321;
  X86_INS_KXORQ = 322;
  X86_INS_KXORW = 323;
  X86_INS_LAHF = 324;
  X86_INS_LAR = 325;
  X86_INS_LDDQU = 326;
  X86_INS_LDMXCSR = 327;
  X86_INS_LDS = 328;
  X86_INS_FLDZ = 329;
  X86_INS_FLD1 = 330;
  X86_INS_FLD = 331;
  X86_INS_LEA = 332;
  X86_INS_LEAVE = 333;
  X86_INS_LES = 334;
  X86_INS_LFENCE = 335;
  X86_INS_LFS = 336;
  X86_INS_LGDT = 337;
  X86_INS_LGS = 338;
  X86_INS_LIDT = 339;
  X86_INS_LLDT = 340;
  X86_INS_LLWPCB = 341;
  X86_INS_LMSW = 342;
  X86_INS_LOCK = 343;
  X86_INS_LODSB = 344;
  X86_INS_LODSD = 345;
  X86_INS_LODSQ = 346;
  X86_INS_LODSW = 347;
  X86_INS_LOOP = 348;
  X86_INS_LOOPE = 349;
  X86_INS_LOOPNE = 350;
  X86_INS_RETF = 351;
  X86_INS_RETFQ = 352;
  X86_INS_LSL = 353;
  X86_INS_LSS = 354;
  X86_INS_LTR = 355;
  X86_INS_LWPINS = 356;
  X86_INS_LWPVAL = 357;
  X86_INS_LZCNT = 358;
  X86_INS_MASKMOVDQU = 359;
  X86_INS_MAXPD = 360;
  X86_INS_MAXPS = 361;
  X86_INS_MAXSD = 362;
  X86_INS_MAXSS = 363;
  X86_INS_MFENCE = 364;
  X86_INS_MINPD = 365;
  X86_INS_MINPS = 366;
  X86_INS_MINSD = 367;
  X86_INS_MINSS = 368;
  X86_INS_CVTPD2PI = 369;
  X86_INS_CVTPI2PD = 370;
  X86_INS_CVTPI2PS = 371;
  X86_INS_CVTPS2PI = 372;
  X86_INS_CVTTPD2PI = 373;
  X86_INS_CVTTPS2PI = 374;
  X86_INS_EMMS = 375;
  X86_INS_MASKMOVQ = 376;
  X86_INS_MOVD = 377;
  X86_INS_MOVQ = 378;
  X86_INS_MOVDQ2Q = 379;
  X86_INS_MOVNTQ = 380;
  X86_INS_MOVQ2DQ = 381;
  X86_INS_PABSB = 382;
  X86_INS_PABSD = 383;
  X86_INS_PABSW = 384;
  X86_INS_PACKSSDW = 385;
  X86_INS_PACKSSWB = 386;
  X86_INS_PACKUSWB = 387;
  X86_INS_PADDB = 388;
  X86_INS_PADDD = 389;
  X86_INS_PADDQ = 390;
  X86_INS_PADDSB = 391;
  X86_INS_PADDSW = 392;
  X86_INS_PADDUSB = 393;
  X86_INS_PADDUSW = 394;
  X86_INS_PADDW = 395;
  X86_INS_PALIGNR = 396;
  X86_INS_PANDN = 397;
  X86_INS_PAND = 398;
  X86_INS_PAVGB = 399;
  X86_INS_PAVGW = 400;
  X86_INS_PCMPEQB = 401;
  X86_INS_PCMPEQD = 402;
  X86_INS_PCMPEQW = 403;
  X86_INS_PCMPGTB = 404;
  X86_INS_PCMPGTD = 405;
  X86_INS_PCMPGTW = 406;
  X86_INS_PEXTRW = 407;
  X86_INS_PHADDD = 408;
  X86_INS_PHADDSW = 409;
  X86_INS_PHADDW = 410;
  X86_INS_PHSUBD = 411;
  X86_INS_PHSUBSW = 412;
  X86_INS_PHSUBW = 413;
  X86_INS_PINSRW = 414;
  X86_INS_PMADDUBSW = 415;
  X86_INS_PMADDWD = 416;
  X86_INS_PMAXSW = 417;
  X86_INS_PMAXUB = 418;
  X86_INS_PMINSW = 419;
  X86_INS_PMINUB = 420;
  X86_INS_PMOVMSKB = 421;
  X86_INS_PMULHRSW = 422;
  X86_INS_PMULHUW = 423;
  X86_INS_PMULHW = 424;
  X86_INS_PMULLW = 425;
  X86_INS_PMULUDQ = 426;
  X86_INS_POR = 427;
  X86_INS_PSADBW = 428;
  X86_INS_PSHUFB = 429;
  X86_INS_PSHUFW = 430;
  X86_INS_PSIGNB = 431;
  X86_INS_PSIGND = 432;
  X86_INS_PSIGNW = 433;
  X86_INS_PSLLD = 434;
  X86_INS_PSLLQ = 435;
  X86_INS_PSLLW = 436;
  X86_INS_PSRAD = 437;
  X86_INS_PSRAW = 438;
  X86_INS_PSRLD = 439;
  X86_INS_PSRLQ = 440;
  X86_INS_PSRLW = 441;
  X86_INS_PSUBB = 442;
  X86_INS_PSUBD = 443;
  X86_INS_PSUBQ = 444;
  X86_INS_PSUBSB = 445;
  X86_INS_PSUBSW = 446;
  X86_INS_PSUBUSB = 447;
  X86_INS_PSUBUSW = 448;
  X86_INS_PSUBW = 449;
  X86_INS_PUNPCKHBW = 450;
  X86_INS_PUNPCKHDQ = 451;
  X86_INS_PUNPCKHWD = 452;
  X86_INS_PUNPCKLBW = 453;
  X86_INS_PUNPCKLDQ = 454;
  X86_INS_PUNPCKLWD = 455;
  X86_INS_PXOR = 456;
  X86_INS_MONITORX = 457;
  X86_INS_MONITOR = 458;
  X86_INS_MONTMUL = 459;
  X86_INS_MOV = 460;
  X86_INS_MOVABS = 461;
  X86_INS_MOVAPD = 462;
  X86_INS_MOVAPS = 463;
  X86_INS_MOVBE = 464;
  X86_INS_MOVDDUP = 465;
  X86_INS_MOVDIR64B = 466;
  X86_INS_MOVDIRI = 467;
  X86_INS_MOVDQA = 468;
  X86_INS_MOVDQU = 469;
  X86_INS_MOVHLPS = 470;
  X86_INS_MOVHPD = 471;
  X86_INS_MOVHPS = 472;
  X86_INS_MOVLHPS = 473;
  X86_INS_MOVLPD = 474;
  X86_INS_MOVLPS = 475;
  X86_INS_MOVMSKPD = 476;
  X86_INS_MOVMSKPS = 477;
  X86_INS_MOVNTDQA = 478;
  X86_INS_MOVNTDQ = 479;
  X86_INS_MOVNTI = 480;
  X86_INS_MOVNTPD = 481;
  X86_INS_MOVNTPS = 482;
  X86_INS_MOVNTSD = 483;
  X86_INS_MOVNTSS = 484;
  X86_INS_MOVSB = 485;
  X86_INS_MOVSD = 486;
  X86_INS_MOVSHDUP = 487;
  X86_INS_MOVSLDUP = 488;
  X86_INS_MOVSQ = 489;
  X86_INS_MOVSS = 490;
  X86_INS_MOVSW = 491;
  X86_INS_MOVSX = 492;
  X86_INS_MOVSXD = 493;
  X86_INS_MOVUPD = 494;
  X86_INS_MOVUPS = 495;
  X86_INS_MOVZX = 496;
  X86_INS_MPSADBW = 497;
  X86_INS_MUL = 498;
  X86_INS_MULPD = 499;
  X86_INS_MULPS = 500;
  X86_INS_MULSD = 501;
  X86_INS_MULSS = 502;
  X86_INS_MULX = 503;
  X86_INS_FMUL = 504;
  X86_INS_FIMUL = 505;
  X86_INS_FMULP = 506;
  X86_INS_MWAITX = 507;
  X86_INS_MWAIT = 508;
  X86_INS_NEG = 509;
  X86_INS_NOP = 510;
  X86_INS_NOT = 511;
  X86_INS_OR = 512;
  X86_INS_ORPD = 513;
  X86_INS_ORPS = 514;
  X86_INS_OUT = 515;
  X86_INS_OUTSB = 516;
  X86_INS_OUTSD = 517;
  X86_INS_OUTSW = 518;
  X86_INS_PACKUSDW = 519;
  X86_INS_PAUSE = 520;
  X86_INS_PAVGUSB = 521;
  X86_INS_PBLENDVB = 522;
  X86_INS_PBLENDW = 523;
  X86_INS_PCLMULQDQ = 524;
  X86_INS_PCMPEQQ = 525;
  X86_INS_PCMPESTRI = 526;
  X86_INS_PCMPESTRM = 527;
  X86_INS_PCMPGTQ = 528;
  X86_INS_PCMPISTRI = 529;
  X86_INS_PCMPISTRM = 530;
  X86_INS_PCONFIG = 531;
  X86_INS_PDEP = 532;
  X86_INS_PEXT = 533;
  X86_INS_PEXTRB = 534;
  X86_INS_PEXTRD = 535;
  X86_INS_PEXTRQ = 536;
  X86_INS_PF2ID = 537;
  X86_INS_PF2IW = 538;
  X86_INS_PFACC = 539;
  X86_INS_PFADD = 540;
  X86_INS_PFCMPEQ = 541;
  X86_INS_PFCMPGE = 542;
  X86_INS_PFCMPGT = 543;
  X86_INS_PFMAX = 544;
  X86_INS_PFMIN = 545;
  X86_INS_PFMUL = 546;
  X86_INS_PFNACC = 547;
  X86_INS_PFPNACC = 548;
  X86_INS_PFRCPIT1 = 549;
  X86_INS_PFRCPIT2 = 550;
  X86_INS_PFRCP = 551;
  X86_INS_PFRSQIT1 = 552;
  X86_INS_PFRSQRT = 553;
  X86_INS_PFSUBR = 554;
  X86_INS_PFSUB = 555;
  X86_INS_PHMINPOSUW = 556;
  X86_INS_PI2FD = 557;
  X86_INS_PI2FW = 558;
  X86_INS_PINSRB = 559;
  X86_INS_PINSRD = 560;
  X86_INS_PINSRQ = 561;
  X86_INS_PMAXSB = 562;
  X86_INS_PMAXSD = 563;
  X86_INS_PMAXUD = 564;
  X86_INS_PMAXUW = 565;
  X86_INS_PMINSB = 566;
  X86_INS_PMINSD = 567;
  X86_INS_PMINUD = 568;
  X86_INS_PMINUW = 569;
  X86_INS_PMOVSXBD = 570;
  X86_INS_PMOVSXBQ = 571;
  X86_INS_PMOVSXBW = 572;
  X86_INS_PMOVSXDQ = 573;
  X86_INS_PMOVSXWD = 574;
  X86_INS_PMOVSXWQ = 575;
  X86_INS_PMOVZXBD = 576;
  X86_INS_PMOVZXBQ = 577;
  X86_INS_PMOVZXBW = 578;
  X86_INS_PMOVZXDQ = 579;
  X86_INS_PMOVZXWD = 580;
  X86_INS_PMOVZXWQ = 581;
  X86_INS_PMULDQ = 582;
  X86_INS_PMULHRW = 583;
  X86_INS_PMULLD = 584;
  X86_INS_POP = 585;
  X86_INS_POPAW = 586;
  X86_INS_POPAL = 587;
  X86_INS_POPCNT = 588;
  X86_INS_POPF = 589;
  X86_INS_POPFD = 590;
  X86_INS_POPFQ = 591;
  X86_INS_PREFETCH = 592;
  X86_INS_PREFETCHNTA = 593;
  X86_INS_PREFETCHT0 = 594;
  X86_INS_PREFETCHT1 = 595;
  X86_INS_PREFETCHT2 = 596;
  X86_INS_PREFETCHW = 597;
  X86_INS_PREFETCHWT1 = 598;
  X86_INS_PSHUFD = 599;
  X86_INS_PSHUFHW = 600;
  X86_INS_PSHUFLW = 601;
  X86_INS_PSLLDQ = 602;
  X86_INS_PSRLDQ = 603;
  X86_INS_PSWAPD = 604;
  X86_INS_PTEST = 605;
  X86_INS_PTWRITE = 606;
  X86_INS_PUNPCKHQDQ = 607;
  X86_INS_PUNPCKLQDQ = 608;
  X86_INS_PUSH = 609;
  X86_INS_PUSHAW = 610;
  X86_INS_PUSHAL = 611;
  X86_INS_PUSHF = 612;
  X86_INS_PUSHFD = 613;
  X86_INS_PUSHFQ = 614;
  X86_INS_RCL = 615;
  X86_INS_RCPPS = 616;
  X86_INS_RCPSS = 617;
  X86_INS_RCR = 618;
  X86_INS_RDFSBASE = 619;
  X86_INS_RDGSBASE = 620;
  X86_INS_RDMSR = 621;
  X86_INS_RDPID = 622;
  X86_INS_RDPKRU = 623;
  X86_INS_RDPMC = 624;
  X86_INS_RDRAND = 625;
  X86_INS_RDSEED = 626;
  X86_INS_RDSSPD = 627;
  X86_INS_RDSSPQ = 628;
  X86_INS_RDTSC = 629;
  X86_INS_RDTSCP = 630;
  X86_INS_REPNE = 631;
  X86_INS_REP = 632;
  X86_INS_RET = 633;
  X86_INS_REX64 = 634;
  X86_INS_ROL = 635;
  X86_INS_ROR = 636;
  X86_INS_RORX = 637;
  X86_INS_ROUNDPD = 638;
  X86_INS_ROUNDPS = 639;
  X86_INS_ROUNDSD = 640;
  X86_INS_ROUNDSS = 641;
  X86_INS_RSM = 642;
  X86_INS_RSQRTPS = 643;
  X86_INS_RSQRTSS = 644;
  X86_INS_RSTORSSP = 645;
  X86_INS_SAHF = 646;
  X86_INS_SAL = 647;
  X86_INS_SALC = 648;
  X86_INS_SAR = 649;
  X86_INS_SARX = 650;
  X86_INS_SAVEPREVSSP = 651;
  X86_INS_SBB = 652;
  X86_INS_SCASB = 653;
  X86_INS_SCASD = 654;
  X86_INS_SCASQ = 655;
  X86_INS_SCASW = 656;
  X86_INS_SETAE = 657;
  X86_INS_SETA = 658;
  X86_INS_SETBE = 659;
  X86_INS_SETB = 660;
  X86_INS_SETE = 661;
  X86_INS_SETGE = 662;
  X86_INS_SETG = 663;
  X86_INS_SETLE = 664;
  X86_INS_SETL = 665;
  X86_INS_SETNE = 666;
  X86_INS_SETNO = 667;
  X86_INS_SETNP = 668;
  X86_INS_SETNS = 669;
  X86_INS_SETO = 670;
  X86_INS_SETP = 671;
  X86_INS_SETSSBSY = 672;
  X86_INS_SETS = 673;
  X86_INS_SFENCE = 674;
  X86_INS_SGDT = 675;
  X86_INS_SHA1MSG1 = 676;
  X86_INS_SHA1MSG2 = 677;
  X86_INS_SHA1NEXTE = 678;
  X86_INS_SHA1RNDS4 = 679;
  X86_INS_SHA256MSG1 = 680;
  X86_INS_SHA256MSG2 = 681;
  X86_INS_SHA256RNDS2 = 682;
  X86_INS_SHL = 683;
  X86_INS_SHLD = 684;
  X86_INS_SHLX = 685;
  X86_INS_SHR = 686;
  X86_INS_SHRD = 687;
  X86_INS_SHRX = 688;
  X86_INS_SHUFPD = 689;
  X86_INS_SHUFPS = 690;
  X86_INS_SIDT = 691;
  X86_INS_FSIN = 692;
  X86_INS_SKINIT = 693;
  X86_INS_SLDT = 694;
  X86_INS_SLWPCB = 695;
  X86_INS_SMSW = 696;
  X86_INS_SQRTPD = 697;
  X86_INS_SQRTPS = 698;
  X86_INS_SQRTSD = 699;
  X86_INS_SQRTSS = 700;
  X86_INS_FSQRT = 701;
  X86_INS_STAC = 702;
  X86_INS_STC = 703;
  X86_INS_STD = 704;
  X86_INS_STGI = 705;
  X86_INS_STI = 706;
  X86_INS_STMXCSR = 707;
  X86_INS_STOSB = 708;
  X86_INS_STOSD = 709;
  X86_INS_STOSQ = 710;
  X86_INS_STOSW = 711;
  X86_INS_STR = 712;
  X86_INS_FST = 713;
  X86_INS_FSTP = 714;
  X86_INS_SUB = 715;
  X86_INS_SUBPD = 716;
  X86_INS_SUBPS = 717;
  X86_INS_FSUBR = 718;
  X86_INS_FISUBR = 719;
  X86_INS_FSUBRP = 720;
  X86_INS_SUBSD = 721;
  X86_INS_SUBSS = 722;
  X86_INS_FSUB = 723;
  X86_INS_FISUB = 724;
  X86_INS_FSUBP = 725;
  X86_INS_SWAPGS = 726;
  X86_INS_SYSCALL = 727;
  X86_INS_SYSENTER = 728;
  X86_INS_SYSEXIT = 729;
  X86_INS_SYSEXITQ = 730;
  X86_INS_SYSRET = 731;
  X86_INS_SYSRETQ = 732;
  X86_INS_T1MSKC = 733;
  X86_INS_TEST = 734;
  X86_INS_TPAUSE = 735;
  X86_INS_FTST = 736;
  X86_INS_TZCNT = 737;
  X86_INS_TZMSK = 738;
  X86_INS_UCOMISD = 739;
  X86_INS_UCOMISS = 740;
  X86_INS_FUCOMPI = 741;
  X86_INS_FUCOMI = 742;
  X86_INS_FUCOMPP = 743;
  X86_INS_FUCOMP = 744;
  X86_INS_FUCOM = 745;
  X86_INS_UD0 = 746;
  X86_INS_UD1 = 747;
  X86_INS_UD2 = 748;
  X86_INS_UMONITOR = 749;
  X86_INS_UMWAIT = 750;
  X86_INS_UNPCKHPD = 751;
  X86_INS_UNPCKHPS = 752;
  X86_INS_UNPCKLPD = 753;
  X86_INS_UNPCKLPS = 754;
  X86_INS_V4FMADDPS = 755;
  X86_INS_V4FMADDSS = 756;
  X86_INS_V4FNMADDPS = 757;
  X86_INS_V4FNMADDSS = 758;
  X86_INS_VADDPD = 759;
  X86_INS_VADDPS = 760;
  X86_INS_VADDSD = 761;
  X86_INS_VADDSS = 762;
  X86_INS_VADDSUBPD = 763;
  X86_INS_VADDSUBPS = 764;
  X86_INS_VAESDECLAST = 765;
  X86_INS_VAESDEC = 766;
  X86_INS_VAESENCLAST = 767;
  X86_INS_VAESENC = 768;
  X86_INS_VAESIMC = 769;
  X86_INS_VAESKEYGENASSIST = 770;
  X86_INS_VALIGND = 771;
  X86_INS_VALIGNQ = 772;
  X86_INS_VANDNPD = 773;
  X86_INS_VANDNPS = 774;
  X86_INS_VANDPD = 775;
  X86_INS_VANDPS = 776;
  X86_INS_VBLENDMPD = 777;
  X86_INS_VBLENDMPS = 778;
  X86_INS_VBLENDPD = 779;
  X86_INS_VBLENDPS = 780;
  X86_INS_VBLENDVPD = 781;
  X86_INS_VBLENDVPS = 782;
  X86_INS_VBROADCASTF128 = 783;
  X86_INS_VBROADCASTF32X2 = 784;
  X86_INS_VBROADCASTF32X4 = 785;
  X86_INS_VBROADCASTF32X8 = 786;
  X86_INS_VBROADCASTF64X2 = 787;
  X86_INS_VBROADCASTF64X4 = 788;
  X86_INS_VBROADCASTI128 = 789;
  X86_INS_VBROADCASTI32X2 = 790;
  X86_INS_VBROADCASTI32X4 = 791;
  X86_INS_VBROADCASTI32X8 = 792;
  X86_INS_VBROADCASTI64X2 = 793;
  X86_INS_VBROADCASTI64X4 = 794;
  X86_INS_VBROADCASTSD = 795;
  X86_INS_VBROADCASTSS = 796;
  X86_INS_VCMP = 797;
  X86_INS_VCMPPD = 798;
  X86_INS_VCMPPS = 799;
  X86_INS_VCMPSD = 800;
  X86_INS_VCMPSS = 801;
  X86_INS_VCOMISD = 802;
  X86_INS_VCOMISS = 803;
  X86_INS_VCOMPRESSPD = 804;
  X86_INS_VCOMPRESSPS = 805;
  X86_INS_VCVTDQ2PD = 806;
  X86_INS_VCVTDQ2PS = 807;
  X86_INS_VCVTPD2DQ = 808;
  X86_INS_VCVTPD2PS = 809;
  X86_INS_VCVTPD2QQ = 810;
  X86_INS_VCVTPD2UDQ = 811;
  X86_INS_VCVTPD2UQQ = 812;
  X86_INS_VCVTPH2PS = 813;
  X86_INS_VCVTPS2DQ = 814;
  X86_INS_VCVTPS2PD = 815;
  X86_INS_VCVTPS2PH = 816;
  X86_INS_VCVTPS2QQ = 817;
  X86_INS_VCVTPS2UDQ = 818;
  X86_INS_VCVTPS2UQQ = 819;
  X86_INS_VCVTQQ2PD = 820;
  X86_INS_VCVTQQ2PS = 821;
  X86_INS_VCVTSD2SI = 822;
  X86_INS_VCVTSD2SS = 823;
  X86_INS_VCVTSD2USI = 824;
  X86_INS_VCVTSI2SD = 825;
  X86_INS_VCVTSI2SS = 826;
  X86_INS_VCVTSS2SD = 827;
  X86_INS_VCVTSS2SI = 828;
  X86_INS_VCVTSS2USI = 829;
  X86_INS_VCVTTPD2DQ = 830;
  X86_INS_VCVTTPD2QQ = 831;
  X86_INS_VCVTTPD2UDQ = 832;
  X86_INS_VCVTTPD2UQQ = 833;
  X86_INS_VCVTTPS2DQ = 834;
  X86_INS_VCVTTPS2QQ = 835;
  X86_INS_VCVTTPS2UDQ = 836;
  X86_INS_VCVTTPS2UQQ = 837;
  X86_INS_VCVTTSD2SI = 838;
  X86_INS_VCVTTSD2USI = 839;
  X86_INS_VCVTTSS2SI = 840;
  X86_INS_VCVTTSS2USI = 841;
  X86_INS_VCVTUDQ2PD = 842;
  X86_INS_VCVTUDQ2PS = 843;
  X86_INS_VCVTUQQ2PD = 844;
  X86_INS_VCVTUQQ2PS = 845;
  X86_INS_VCVTUSI2SD = 846;
  X86_INS_VCVTUSI2SS = 847;
  X86_INS_VDBPSADBW = 848;
  X86_INS_VDIVPD = 849;
  X86_INS_VDIVPS = 850;
  X86_INS_VDIVSD = 851;
  X86_INS_VDIVSS = 852;
  X86_INS_VDPPD = 853;
  X86_INS_VDPPS = 854;
  X86_INS_VERR = 855;
  X86_INS_VERW = 856;
  X86_INS_VEXP2PD = 857;
  X86_INS_VEXP2PS = 858;
  X86_INS_VEXPANDPD = 859;
  X86_INS_VEXPANDPS = 860;
  X86_INS_VEXTRACTF128 = 861;
  X86_INS_VEXTRACTF32X4 = 862;
  X86_INS_VEXTRACTF32X8 = 863;
  X86_INS_VEXTRACTF64X2 = 864;
  X86_INS_VEXTRACTF64X4 = 865;
  X86_INS_VEXTRACTI128 = 866;
  X86_INS_VEXTRACTI32X4 = 867;
  X86_INS_VEXTRACTI32X8 = 868;
  X86_INS_VEXTRACTI64X2 = 869;
  X86_INS_VEXTRACTI64X4 = 870;
  X86_INS_VEXTRACTPS = 871;
  X86_INS_VFIXUPIMMPD = 872;
  X86_INS_VFIXUPIMMPS = 873;
  X86_INS_VFIXUPIMMSD = 874;
  X86_INS_VFIXUPIMMSS = 875;
  X86_INS_VFMADD132PD = 876;
  X86_INS_VFMADD132PS = 877;
  X86_INS_VFMADD132SD = 878;
  X86_INS_VFMADD132SS = 879;
  X86_INS_VFMADD213PD = 880;
  X86_INS_VFMADD213PS = 881;
  X86_INS_VFMADD213SD = 882;
  X86_INS_VFMADD213SS = 883;
  X86_INS_VFMADD231PD = 884;
  X86_INS_VFMADD231PS = 885;
  X86_INS_VFMADD231SD = 886;
  X86_INS_VFMADD231SS = 887;
  X86_INS_VFMADDPD = 888;
  X86_INS_VFMADDPS = 889;
  X86_INS_VFMADDSD = 890;
  X86_INS_VFMADDSS = 891;
  X86_INS_VFMADDSUB132PD = 892;
  X86_INS_VFMADDSUB132PS = 893;
  X86_INS_VFMADDSUB213PD = 894;
  X86_INS_VFMADDSUB213PS = 895;
  X86_INS_VFMADDSUB231PD = 896;
  X86_INS_VFMADDSUB231PS = 897;
  X86_INS_VFMADDSUBPD = 898;
  X86_INS_VFMADDSUBPS = 899;
  X86_INS_VFMSUB132PD = 900;
  X86_INS_VFMSUB132PS = 901;
  X86_INS_VFMSUB132SD = 902;
  X86_INS_VFMSUB132SS = 903;
  X86_INS_VFMSUB213PD = 904;
  X86_INS_VFMSUB213PS = 905;
  X86_INS_VFMSUB213SD = 906;
  X86_INS_VFMSUB213SS = 907;
  X86_INS_VFMSUB231PD = 908;
  X86_INS_VFMSUB231PS = 909;
  X86_INS_VFMSUB231SD = 910;
  X86_INS_VFMSUB231SS = 911;
  X86_INS_VFMSUBADD132PD = 912;
  X86_INS_VFMSUBADD132PS = 913;
  X86_INS_VFMSUBADD213PD = 914;
  X86_INS_VFMSUBADD213PS = 915;
  X86_INS_VFMSUBADD231PD = 916;
  X86_INS_VFMSUBADD231PS = 917;
  X86_INS_VFMSUBADDPD = 918;
  X86_INS_VFMSUBADDPS = 919;
  X86_INS_VFMSUBPD = 920;
  X86_INS_VFMSUBPS = 921;
  X86_INS_VFMSUBSD = 922;
  X86_INS_VFMSUBSS = 923;
  X86_INS_VFNMADD132PD = 924;
  X86_INS_VFNMADD132PS = 925;
  X86_INS_VFNMADD132SD = 926;
  X86_INS_VFNMADD132SS = 927;
  X86_INS_VFNMADD213PD = 928;
  X86_INS_VFNMADD213PS = 929;
  X86_INS_VFNMADD213SD = 930;
  X86_INS_VFNMADD213SS = 931;
  X86_INS_VFNMADD231PD = 932;
  X86_INS_VFNMADD231PS = 933;
  X86_INS_VFNMADD231SD = 934;
  X86_INS_VFNMADD231SS = 935;
  X86_INS_VFNMADDPD = 936;
  X86_INS_VFNMADDPS = 937;
  X86_INS_VFNMADDSD = 938;
  X86_INS_VFNMADDSS = 939;
  X86_INS_VFNMSUB132PD = 940;
  X86_INS_VFNMSUB132PS = 941;
  X86_INS_VFNMSUB132SD = 942;
  X86_INS_VFNMSUB132SS = 943;
  X86_INS_VFNMSUB213PD = 944;
  X86_INS_VFNMSUB213PS = 945;
  X86_INS_VFNMSUB213SD = 946;
  X86_INS_VFNMSUB213SS = 947;
  X86_INS_VFNMSUB231PD = 948;
  X86_INS_VFNMSUB231PS = 949;
  X86_INS_VFNMSUB231SD = 950;
  X86_INS_VFNMSUB231SS = 951;
  X86_INS_VFNMSUBPD = 952;
  X86_INS_VFNMSUBPS = 953;
  X86_INS_VFNMSUBSD = 954;
  X86_INS_VFNMSUBSS = 955;
  X86_INS_VFPCLASSPD = 956;
  X86_INS_VFPCLASSPS = 957;
  X86_INS_VFPCLASSSD = 958;
  X86_INS_VFPCLASSSS = 959;
  X86_INS_VFRCZPD = 960;
  X86_INS_VFRCZPS = 961;
  X86_INS_VFRCZSD = 962;
  X86_INS_VFRCZSS = 963;
  X86_INS_VGATHERDPD = 964;
  X86_INS_VGATHERDPS = 965;
  X86_INS_VGATHERPF0DPD = 966;
  X86_INS_VGATHERPF0DPS = 967;
  X86_INS_VGATHERPF0QPD = 968;
  X86_INS_VGATHERPF0QPS = 969;
  X86_INS_VGATHERPF1DPD = 970;
  X86_INS_VGATHERPF1DPS = 971;
  X86_INS_VGATHERPF1QPD = 972;
  X86_INS_VGATHERPF1QPS = 973;
  X86_INS_VGATHERQPD = 974;
  X86_INS_VGATHERQPS = 975;
  X86_INS_VGETEXPPD = 976;
  X86_INS_VGETEXPPS = 977;
  X86_INS_VGETEXPSD = 978;
  X86_INS_VGETEXPSS = 979;
  X86_INS_VGETMANTPD = 980;
  X86_INS_VGETMANTPS = 981;
  X86_INS_VGETMANTSD = 982;
  X86_INS_VGETMANTSS = 983;
  X86_INS_VGF2P8AFFINEINVQB = 984;
  X86_INS_VGF2P8AFFINEQB = 985;
  X86_INS_VGF2P8MULB = 986;
  X86_INS_VHADDPD = 987;
  X86_INS_VHADDPS = 988;
  X86_INS_VHSUBPD = 989;
  X86_INS_VHSUBPS = 990;
  X86_INS_VINSERTF128 = 991;
  X86_INS_VINSERTF32X4 = 992;
  X86_INS_VINSERTF32X8 = 993;
  X86_INS_VINSERTF64X2 = 994;
  X86_INS_VINSERTF64X4 = 995;
  X86_INS_VINSERTI128 = 996;
  X86_INS_VINSERTI32X4 = 997;
  X86_INS_VINSERTI32X8 = 998;
  X86_INS_VINSERTI64X2 = 999;
  X86_INS_VINSERTI64X4 = 1000;
  X86_INS_VINSERTPS = 1001;
  X86_INS_VLDDQU = 1002;
  X86_INS_VLDMXCSR = 1003;
  X86_INS_VMASKMOVDQU = 1004;
  X86_INS_VMASKMOVPD = 1005;
  X86_INS_VMASKMOVPS = 1006;
  X86_INS_VMAXPD = 1007;
  X86_INS_VMAXPS = 1008;
  X86_INS_VMAXSD = 1009;
  X86_INS_VMAXSS = 1010;
  X86_INS_VMCALL = 1011;
  X86_INS_VMCLEAR = 1012;
  X86_INS_VMFUNC = 1013;
  X86_INS_VMINPD = 1014;
  X86_INS_VMINPS = 1015;
  X86_INS_VMINSD = 1016;
  X86_INS_VMINSS = 1017;
  X86_INS_VMLAUNCH = 1018;
  X86_INS_VMLOAD = 1019;
  X86_INS_VMMCALL = 1020;
  X86_INS_VMOVQ = 1021;
  X86_INS_VMOVAPD = 1022;
  X86_INS_VMOVAPS = 1023;
  X86_INS_VMOVDDUP = 1024;
  X86_INS_VMOVD = 1025;
  X86_INS_VMOVDQA32 = 1026;
  X86_INS_VMOVDQA64 = 1027;
  X86_INS_VMOVDQA = 1028;
  X86_INS_VMOVDQU16 = 1029;
  X86_INS_VMOVDQU32 = 1030;
  X86_INS_VMOVDQU64 = 1031;
  X86_INS_VMOVDQU8 = 1032;
  X86_INS_VMOVDQU = 1033;
  X86_INS_VMOVHLPS = 1034;
  X86_INS_VMOVHPD = 1035;
  X86_INS_VMOVHPS = 1036;
  X86_INS_VMOVLHPS = 1037;
  X86_INS_VMOVLPD = 1038;
  X86_INS_VMOVLPS = 1039;
  X86_INS_VMOVMSKPD = 1040;
  X86_INS_VMOVMSKPS = 1041;
  X86_INS_VMOVNTDQA = 1042;
  X86_INS_VMOVNTDQ = 1043;
  X86_INS_VMOVNTPD = 1044;
  X86_INS_VMOVNTPS = 1045;
  X86_INS_VMOVSD = 1046;
  X86_INS_VMOVSHDUP = 1047;
  X86_INS_VMOVSLDUP = 1048;
  X86_INS_VMOVSS = 1049;
  X86_INS_VMOVUPD = 1050;
  X86_INS_VMOVUPS = 1051;
  X86_INS_VMPSADBW = 1052;
  X86_INS_VMPTRLD = 1053;
  X86_INS_VMPTRST = 1054;
  X86_INS_VMREAD = 1055;
  X86_INS_VMRESUME = 1056;
  X86_INS_VMRUN = 1057;
  X86_INS_VMSAVE = 1058;
  X86_INS_VMULPD = 1059;
  X86_INS_VMULPS = 1060;
  X86_INS_VMULSD = 1061;
  X86_INS_VMULSS = 1062;
  X86_INS_VMWRITE = 1063;
  X86_INS_VMXOFF = 1064;
  X86_INS_VMXON = 1065;
  X86_INS_VORPD = 1066;
  X86_INS_VORPS = 1067;
  X86_INS_VP4DPWSSDS = 1068;
  X86_INS_VP4DPWSSD = 1069;
  X86_INS_VPABSB = 1070;
  X86_INS_VPABSD = 1071;
  X86_INS_VPABSQ = 1072;
  X86_INS_VPABSW = 1073;
  X86_INS_VPACKSSDW = 1074;
  X86_INS_VPACKSSWB = 1075;
  X86_INS_VPACKUSDW = 1076;
  X86_INS_VPACKUSWB = 1077;
  X86_INS_VPADDB = 1078;
  X86_INS_VPADDD = 1079;
  X86_INS_VPADDQ = 1080;
  X86_INS_VPADDSB = 1081;
  X86_INS_VPADDSW = 1082;
  X86_INS_VPADDUSB = 1083;
  X86_INS_VPADDUSW = 1084;
  X86_INS_VPADDW = 1085;
  X86_INS_VPALIGNR = 1086;
  X86_INS_VPANDD = 1087;
  X86_INS_VPANDND = 1088;
  X86_INS_VPANDNQ = 1089;
  X86_INS_VPANDN = 1090;
  X86_INS_VPANDQ = 1091;
  X86_INS_VPAND = 1092;
  X86_INS_VPAVGB = 1093;
  X86_INS_VPAVGW = 1094;
  X86_INS_VPBLENDD = 1095;
  X86_INS_VPBLENDMB = 1096;
  X86_INS_VPBLENDMD = 1097;
  X86_INS_VPBLENDMQ = 1098;
  X86_INS_VPBLENDMW = 1099;
  X86_INS_VPBLENDVB = 1100;
  X86_INS_VPBLENDW = 1101;
  X86_INS_VPBROADCASTB = 1102;
  X86_INS_VPBROADCASTD = 1103;
  X86_INS_VPBROADCASTMB2Q = 1104;
  X86_INS_VPBROADCASTMW2D = 1105;
  X86_INS_VPBROADCASTQ = 1106;
  X86_INS_VPBROADCASTW = 1107;
  X86_INS_VPCLMULQDQ = 1108;
  X86_INS_VPCMOV = 1109;
  X86_INS_VPCMP = 1110;
  X86_INS_VPCMPB = 1111;
  X86_INS_VPCMPD = 1112;
  X86_INS_VPCMPEQB = 1113;
  X86_INS_VPCMPEQD = 1114;
  X86_INS_VPCMPEQQ = 1115;
  X86_INS_VPCMPEQW = 1116;
  X86_INS_VPCMPESTRI = 1117;
  X86_INS_VPCMPESTRM = 1118;
  X86_INS_VPCMPGTB = 1119;
  X86_INS_VPCMPGTD = 1120;
  X86_INS_VPCMPGTQ = 1121;
  X86_INS_VPCMPGTW = 1122;
  X86_INS_VPCMPISTRI = 1123;
  X86_INS_VPCMPISTRM = 1124;
  X86_INS_VPCMPQ = 1125;
  X86_INS_VPCMPUB = 1126;
  X86_INS_VPCMPUD = 1127;
  X86_INS_VPCMPUQ = 1128;
  X86_INS_VPCMPUW = 1129;
  X86_INS_VPCMPW = 1130;
  X86_INS_VPCOM = 1131;
  X86_INS_VPCOMB = 1132;
  X86_INS_VPCOMD = 1133;
  X86_INS_VPCOMPRESSB = 1134;
  X86_INS_VPCOMPRESSD = 1135;
  X86_INS_VPCOMPRESSQ = 1136;
  X86_INS_VPCOMPRESSW = 1137;
  X86_INS_VPCOMQ = 1138;
  X86_INS_VPCOMUB = 1139;
  X86_INS_VPCOMUD = 1140;
  X86_INS_VPCOMUQ = 1141;
  X86_INS_VPCOMUW = 1142;
  X86_INS_VPCOMW = 1143;
  X86_INS_VPCONFLICTD = 1144;
  X86_INS_VPCONFLICTQ = 1145;
  X86_INS_VPDPBUSDS = 1146;
  X86_INS_VPDPBUSD = 1147;
  X86_INS_VPDPWSSDS = 1148;
  X86_INS_VPDPWSSD = 1149;
  X86_INS_VPERM2F128 = 1150;
  X86_INS_VPERM2I128 = 1151;
  X86_INS_VPERMB = 1152;
  X86_INS_VPERMD = 1153;
  X86_INS_VPERMI2B = 1154;
  X86_INS_VPERMI2D = 1155;
  X86_INS_VPERMI2PD = 1156;
  X86_INS_VPERMI2PS = 1157;
  X86_INS_VPERMI2Q = 1158;
  X86_INS_VPERMI2W = 1159;
  X86_INS_VPERMIL2PD = 1160;
  X86_INS_VPERMILPD = 1161;
  X86_INS_VPERMIL2PS = 1162;
  X86_INS_VPERMILPS = 1163;
  X86_INS_VPERMPD = 1164;
  X86_INS_VPERMPS = 1165;
  X86_INS_VPERMQ = 1166;
  X86_INS_VPERMT2B = 1167;
  X86_INS_VPERMT2D = 1168;
  X86_INS_VPERMT2PD = 1169;
  X86_INS_VPERMT2PS = 1170;
  X86_INS_VPERMT2Q = 1171;
  X86_INS_VPERMT2W = 1172;
  X86_INS_VPERMW = 1173;
  X86_INS_VPEXPANDB = 1174;
  X86_INS_VPEXPANDD = 1175;
  X86_INS_VPEXPANDQ = 1176;
  X86_INS_VPEXPANDW = 1177;
  X86_INS_VPEXTRB = 1178;
  X86_INS_VPEXTRD = 1179;
  X86_INS_VPEXTRQ = 1180;
  X86_INS_VPEXTRW = 1181;
  X86_INS_VPGATHERDD = 1182;
  X86_INS_VPGATHERDQ = 1183;
  X86_INS_VPGATHERQD = 1184;
  X86_INS_VPGATHERQQ = 1185;
  X86_INS_VPHADDBD = 1186;
  X86_INS_VPHADDBQ = 1187;
  X86_INS_VPHADDBW = 1188;
  X86_INS_VPHADDDQ = 1189;
  X86_INS_VPHADDD = 1190;
  X86_INS_VPHADDSW = 1191;
  X86_INS_VPHADDUBD = 1192;
  X86_INS_VPHADDUBQ = 1193;
  X86_INS_VPHADDUBW = 1194;
  X86_INS_VPHADDUDQ = 1195;
  X86_INS_VPHADDUWD = 1196;
  X86_INS_VPHADDUWQ = 1197;
  X86_INS_VPHADDWD = 1198;
  X86_INS_VPHADDWQ = 1199;
  X86_INS_VPHADDW = 1200;
  X86_INS_VPHMINPOSUW = 1201;
  X86_INS_VPHSUBBW = 1202;
  X86_INS_VPHSUBDQ = 1203;
  X86_INS_VPHSUBD = 1204;
  X86_INS_VPHSUBSW = 1205;
  X86_INS_VPHSUBWD = 1206;
  X86_INS_VPHSUBW = 1207;
  X86_INS_VPINSRB = 1208;
  X86_INS_VPINSRD = 1209;
  X86_INS_VPINSRQ = 1210;
  X86_INS_VPINSRW = 1211;
  X86_INS_VPLZCNTD = 1212;
  X86_INS_VPLZCNTQ = 1213;
  X86_INS_VPMACSDD = 1214;
  X86_INS_VPMACSDQH = 1215;
  X86_INS_VPMACSDQL = 1216;
  X86_INS_VPMACSSDD = 1217;
  X86_INS_VPMACSSDQH = 1218;
  X86_INS_VPMACSSDQL = 1219;
  X86_INS_VPMACSSWD = 1220;
  X86_INS_VPMACSSWW = 1221;
  X86_INS_VPMACSWD = 1222;
  X86_INS_VPMACSWW = 1223;
  X86_INS_VPMADCSSWD = 1224;
  X86_INS_VPMADCSWD = 1225;
  X86_INS_VPMADD52HUQ = 1226;
  X86_INS_VPMADD52LUQ = 1227;
  X86_INS_VPMADDUBSW = 1228;
  X86_INS_VPMADDWD = 1229;
  X86_INS_VPMASKMOVD = 1230;
  X86_INS_VPMASKMOVQ = 1231;
  X86_INS_VPMAXSB = 1232;
  X86_INS_VPMAXSD = 1233;
  X86_INS_VPMAXSQ = 1234;
  X86_INS_VPMAXSW = 1235;
  X86_INS_VPMAXUB = 1236;
  X86_INS_VPMAXUD = 1237;
  X86_INS_VPMAXUQ = 1238;
  X86_INS_VPMAXUW = 1239;
  X86_INS_VPMINSB = 1240;
  X86_INS_VPMINSD = 1241;
  X86_INS_VPMINSQ = 1242;
  X86_INS_VPMINSW = 1243;
  X86_INS_VPMINUB = 1244;
  X86_INS_VPMINUD = 1245;
  X86_INS_VPMINUQ = 1246;
  X86_INS_VPMINUW = 1247;
  X86_INS_VPMOVB2M = 1248;
  X86_INS_VPMOVD2M = 1249;
  X86_INS_VPMOVDB = 1250;
  X86_INS_VPMOVDW = 1251;
  X86_INS_VPMOVM2B = 1252;
  X86_INS_VPMOVM2D = 1253;
  X86_INS_VPMOVM2Q = 1254;
  X86_INS_VPMOVM2W = 1255;
  X86_INS_VPMOVMSKB = 1256;
  X86_INS_VPMOVQ2M = 1257;
  X86_INS_VPMOVQB = 1258;
  X86_INS_VPMOVQD = 1259;
  X86_INS_VPMOVQW = 1260;
  X86_INS_VPMOVSDB = 1261;
  X86_INS_VPMOVSDW = 1262;
  X86_INS_VPMOVSQB = 1263;
  X86_INS_VPMOVSQD = 1264;
  X86_INS_VPMOVSQW = 1265;
  X86_INS_VPMOVSWB = 1266;
  X86_INS_VPMOVSXBD = 1267;
  X86_INS_VPMOVSXBQ = 1268;
  X86_INS_VPMOVSXBW = 1269;
  X86_INS_VPMOVSXDQ = 1270;
  X86_INS_VPMOVSXWD = 1271;
  X86_INS_VPMOVSXWQ = 1272;
  X86_INS_VPMOVUSDB = 1273;
  X86_INS_VPMOVUSDW = 1274;
  X86_INS_VPMOVUSQB = 1275;
  X86_INS_VPMOVUSQD = 1276;
  X86_INS_VPMOVUSQW = 1277;
  X86_INS_VPMOVUSWB = 1278;
  X86_INS_VPMOVW2M = 1279;
  X86_INS_VPMOVWB = 1280;
  X86_INS_VPMOVZXBD = 1281;
  X86_INS_VPMOVZXBQ = 1282;
  X86_INS_VPMOVZXBW = 1283;
  X86_INS_VPMOVZXDQ = 1284;
  X86_INS_VPMOVZXWD = 1285;
  X86_INS_VPMOVZXWQ = 1286;
  X86_INS_VPMULDQ = 1287;
  X86_INS_VPMULHRSW = 1288;
  X86_INS_VPMULHUW = 1289;
  X86_INS_VPMULHW = 1290;
  X86_INS_VPMULLD = 1291;
  X86_INS_VPMULLQ = 1292;
  X86_INS_VPMULLW = 1293;
  X86_INS_VPMULTISHIFTQB = 1294;
  X86_INS_VPMULUDQ = 1295;
  X86_INS_VPOPCNTB = 1296;
  X86_INS_VPOPCNTD = 1297;
  X86_INS_VPOPCNTQ = 1298;
  X86_INS_VPOPCNTW = 1299;
  X86_INS_VPORD = 1300;
  X86_INS_VPORQ = 1301;
  X86_INS_VPOR = 1302;
  X86_INS_VPPERM = 1303;
  X86_INS_VPROLD = 1304;
  X86_INS_VPROLQ = 1305;
  X86_INS_VPROLVD = 1306;
  X86_INS_VPROLVQ = 1307;
  X86_INS_VPRORD = 1308;
  X86_INS_VPRORQ = 1309;
  X86_INS_VPRORVD = 1310;
  X86_INS_VPRORVQ = 1311;
  X86_INS_VPROTB = 1312;
  X86_INS_VPROTD = 1313;
  X86_INS_VPROTQ = 1314;
  X86_INS_VPROTW = 1315;
  X86_INS_VPSADBW = 1316;
  X86_INS_VPSCATTERDD = 1317;
  X86_INS_VPSCATTERDQ = 1318;
  X86_INS_VPSCATTERQD = 1319;
  X86_INS_VPSCATTERQQ = 1320;
  X86_INS_VPSHAB = 1321;
  X86_INS_VPSHAD = 1322;
  X86_INS_VPSHAQ = 1323;
  X86_INS_VPSHAW = 1324;
  X86_INS_VPSHLB = 1325;
  X86_INS_VPSHLDD = 1326;
  X86_INS_VPSHLDQ = 1327;
  X86_INS_VPSHLDVD = 1328;
  X86_INS_VPSHLDVQ = 1329;
  X86_INS_VPSHLDVW = 1330;
  X86_INS_VPSHLDW = 1331;
  X86_INS_VPSHLD = 1332;
  X86_INS_VPSHLQ = 1333;
  X86_INS_VPSHLW = 1334;
  X86_INS_VPSHRDD = 1335;
  X86_INS_VPSHRDQ = 1336;
  X86_INS_VPSHRDVD = 1337;
  X86_INS_VPSHRDVQ = 1338;
  X86_INS_VPSHRDVW = 1339;
  X86_INS_VPSHRDW = 1340;
  X86_INS_VPSHUFBITQMB = 1341;
  X86_INS_VPSHUFB = 1342;
  X86_INS_VPSHUFD = 1343;
  X86_INS_VPSHUFHW = 1344;
  X86_INS_VPSHUFLW = 1345;
  X86_INS_VPSIGNB = 1346;
  X86_INS_VPSIGND = 1347;
  X86_INS_VPSIGNW = 1348;
  X86_INS_VPSLLDQ = 1349;
  X86_INS_VPSLLD = 1350;
  X86_INS_VPSLLQ = 1351;
  X86_INS_VPSLLVD = 1352;
  X86_INS_VPSLLVQ = 1353;
  X86_INS_VPSLLVW = 1354;
  X86_INS_VPSLLW = 1355;
  X86_INS_VPSRAD = 1356;
  X86_INS_VPSRAQ = 1357;
  X86_INS_VPSRAVD = 1358;
  X86_INS_VPSRAVQ = 1359;
  X86_INS_VPSRAVW = 1360;
  X86_INS_VPSRAW = 1361;
  X86_INS_VPSRLDQ = 1362;
  X86_INS_VPSRLD = 1363;
  X86_INS_VPSRLQ = 1364;
  X86_INS_VPSRLVD = 1365;
  X86_INS_VPSRLVQ = 1366;
  X86_INS_VPSRLVW = 1367;
  X86_INS_VPSRLW = 1368;
  X86_INS_VPSUBB = 1369;
  X86_INS_VPSUBD = 1370;
  X86_INS_VPSUBQ = 1371;
  X86_INS_VPSUBSB = 1372;
  X86_INS_VPSUBSW = 1373;
  X86_INS_VPSUBUSB = 1374;
  X86_INS_VPSUBUSW = 1375;
  X86_INS_VPSUBW = 1376;
  X86_INS_VPTERNLOGD = 1377;
  X86_INS_VPTERNLOGQ = 1378;
  X86_INS_VPTESTMB = 1379;
  X86_INS_VPTESTMD = 1380;
  X86_INS_VPTESTMQ = 1381;
  X86_INS_VPTESTMW = 1382;
  X86_INS_VPTESTNMB = 1383;
  X86_INS_VPTESTNMD = 1384;
  X86_INS_VPTESTNMQ = 1385;
  X86_INS_VPTESTNMW = 1386;
  X86_INS_VPTEST = 1387;
  X86_INS_VPUNPCKHBW = 1388;
  X86_INS_VPUNPCKHDQ = 1389;
  X86_INS_VPUNPCKHQDQ = 1390;
  X86_INS_VPUNPCKHWD = 1391;
  X86_INS_VPUNPCKLBW = 1392;
  X86_INS_VPUNPCKLDQ = 1393;
  X86_INS_VPUNPCKLQDQ = 1394;
  X86_INS_VPUNPCKLWD = 1395;
  X86_INS_VPXORD = 1396;
  X86_INS_VPXORQ = 1397;
  X86_INS_VPXOR = 1398;
  X86_INS_VRANGEPD = 1399;
  X86_INS_VRANGEPS = 1400;
  X86_INS_VRANGESD = 1401;
  X86_INS_VRANGESS = 1402;
  X86_INS_VRCP14PD = 1403;
  X86_INS_VRCP14PS = 1404;
  X86_INS_VRCP14SD = 1405;
  X86_INS_VRCP14SS = 1406;
  X86_INS_VRCP28PD = 1407;
  X86_INS_VRCP28PS = 1408;
  X86_INS_VRCP28SD = 1409;
  X86_INS_VRCP28SS = 1410;
  X86_INS_VRCPPS = 1411;
  X86_INS_VRCPSS = 1412;
  X86_INS_VREDUCEPD = 1413;
  X86_INS_VREDUCEPS = 1414;
  X86_INS_VREDUCESD = 1415;
  X86_INS_VREDUCESS = 1416;
  X86_INS_VRNDSCALEPD = 1417;
  X86_INS_VRNDSCALEPS = 1418;
  X86_INS_VRNDSCALESD = 1419;
  X86_INS_VRNDSCALESS = 1420;
  X86_INS_VROUNDPD = 1421;
  X86_INS_VROUNDPS = 1422;
  X86_INS_VROUNDSD = 1423;
  X86_INS_VROUNDSS = 1424;
  X86_INS_VRSQRT14PD = 1425;
  X86_INS_VRSQRT14PS = 1426;
  X86_INS_VRSQRT14SD = 1427;
  X86_INS_VRSQRT14SS = 1428;
  X86_INS_VRSQRT28PD = 1429;
  X86_INS_VRSQRT28PS = 1430;
  X86_INS_VRSQRT28SD = 1431;
  X86_INS_VRSQRT28SS = 1432;
  X86_INS_VRSQRTPS = 1433;
  X86_INS_VRSQRTSS = 1434;
  X86_INS_VSCALEFPD = 1435;
  X86_INS_VSCALEFPS = 1436;
  X86_INS_VSCALEFSD = 1437;
  X86_INS_VSCALEFSS = 1438;
  X86_INS_VSCATTERDPD = 1439;
  X86_INS_VSCATTERDPS = 1440;
  X86_INS_VSCATTERPF0DPD = 1441;
  X86_INS_VSCATTERPF0DPS = 1442;
  X86_INS_VSCATTERPF0QPD = 1443;
  X86_INS_VSCATTERPF0QPS = 1444;
  X86_INS_VSCATTERPF1DPD = 1445;
  X86_INS_VSCATTERPF1DPS = 1446;
  X86_INS_VSCATTERPF1QPD = 1447;
  X86_INS_VSCATTERPF1QPS = 1448;
  X86_INS_VSCATTERQPD = 1449;
  X86_INS_VSCATTERQPS = 1450;
  X86_INS_VSHUFF32X4 = 1451;
  X86_INS_VSHUFF64X2 = 1452;
  X86_INS_VSHUFI32X4 = 1453;
  X86_INS_VSHUFI64X2 = 1454;
  X86_INS_VSHUFPD = 1455;
  X86_INS_VSHUFPS = 1456;
  X86_INS_VSQRTPD = 1457;
  X86_INS_VSQRTPS = 1458;
  X86_INS_VSQRTSD = 1459;
  X86_INS_VSQRTSS = 1460;
  X86_INS_VSTMXCSR = 1461;
  X86_INS_VSUBPD = 1462;
  X86_INS_VSUBPS = 1463;
  X86_INS_VSUBSD = 1464;
  X86_INS_VSUBSS = 1465;
  X86_INS_VTESTPD = 1466;
  X86_INS_VTESTPS = 1467;
  X86_INS_VUCOMISD = 1468;
  X86_INS_VUCOMISS = 1469;
  X86_INS_VUNPCKHPD = 1470;
  X86_INS_VUNPCKHPS = 1471;
  X86_INS_VUNPCKLPD = 1472;
  X86_INS_VUNPCKLPS = 1473;
  X86_INS_VXORPD = 1474;
  X86_INS_VXORPS = 1475;
  X86_INS_VZEROALL = 1476;
  X86_INS_VZEROUPPER = 1477;
  X86_INS_WAIT = 1478;
  X86_INS_WBINVD = 1479;
  X86_INS_WBNOINVD = 1480;
  X86_INS_WRFSBASE = 1481;
  X86_INS_WRGSBASE = 1482;
  X86_INS_WRMSR = 1483;
  X86_INS_WRPKRU = 1484;
  X86_INS_WRSSD = 1485;
  X86_INS_WRSSQ = 1486;
  X86_INS_WRUSSD = 1487;
  X86_INS_WRUSSQ = 1488;
  X86_INS_XABORT = 1489;
  X86_INS_XACQUIRE = 1490;
  X86_INS_XADD = 1491;
  X86_INS_XBEGIN = 1492;
  X86_INS_XCHG = 1493;
  X86_INS_FXCH = 1494;
  X86_INS_XCRYPTCBC = 1495;
  X86_INS_XCRYPTCFB = 1496;
  X86_INS_XCRYPTCTR = 1497;
  X86_INS_XCRYPTECB = 1498;
  X86_INS_XCRYPTOFB = 1499;
  X86_INS_XEND = 1500;
  X86_INS_XGETBV = 1501;
  X86_INS_XLATB = 1502;
  X86_INS_XOR = 1503;
  X86_INS_XORPD = 1504;
  X86_INS_XORPS = 1505;
  X86_INS_XRELEASE = 1506;
  X86_INS_XRSTOR = 1507;
  X86_INS_XRSTOR64 = 1508;
  X86_INS_XRSTORS = 1509;
  X86_INS_XRSTORS64 = 1510;
  X86_INS_XSAVE = 1511;
  X86_INS_XSAVE64 = 1512;
  X86_INS_XSAVEC = 1513;
  X86_INS_XSAVEC64 = 1514;
  X86_INS_XSAVEOPT = 1515;
  X86_INS_XSAVEOPT64 = 1516;
  X86_INS_XSAVES = 1517;
  X86_INS_XSAVES64 = 1518;
  X86_INS_XSETBV = 1519;
  X86_INS_XSHA1 = 1520;
  X86_INS_XSHA256 = 1521;
  X86_INS_XSTORE = 1522;
  X86_INS_XTEST = 1523;
  X86_INS_ENDING = 1524;

/// Group of X86 instructions
type
  x86_insn_group = Integer;
  Px86_insn_group = ^x86_insn_group;

const
  /// = CS_GRP_INVALID
  X86_GRP_INVALID = 0;
  /// = CS_GRP_JUMP
  X86_GRP_JUMP = 1;
  /// = CS_GRP_CALL
  X86_GRP_CALL = 2;
  /// = CS_GRP_RET
  X86_GRP_RET = 3;
  /// = CS_GRP_INT
  X86_GRP_INT = 4;
  /// = CS_GRP_IRET
  X86_GRP_IRET = 5;
  /// = CS_GRP_PRIVILEGE
  X86_GRP_PRIVILEGE = 6;
  /// = CS_GRP_BRANCH_RELATIVE
  X86_GRP_BRANCH_RELATIVE = 7;
  /// all virtualization instructions (VT-x + AMD-V)
  X86_GRP_VM = 128;
  X86_GRP_3DNOW = 129;
  X86_GRP_AES = 130;
  X86_GRP_ADX = 131;
  X86_GRP_AVX = 132;
  X86_GRP_AVX2 = 133;
  X86_GRP_AVX512 = 134;
  X86_GRP_BMI = 135;
  X86_GRP_BMI2 = 136;
  X86_GRP_CMOV = 137;
  X86_GRP_F16C = 138;
  X86_GRP_FMA = 139;
  X86_GRP_FMA4 = 140;
  X86_GRP_FSGSBASE = 141;
  X86_GRP_HLE = 142;
  X86_GRP_MMX = 143;
  X86_GRP_MODE32 = 144;
  X86_GRP_MODE64 = 145;
  X86_GRP_RTM = 146;
  X86_GRP_SHA = 147;
  X86_GRP_SSE1 = 148;
  X86_GRP_SSE2 = 149;
  X86_GRP_SSE3 = 150;
  X86_GRP_SSE41 = 151;
  X86_GRP_SSE42 = 152;
  X86_GRP_SSE4A = 153;
  X86_GRP_SSSE3 = 154;
  X86_GRP_PCLMUL = 155;
  X86_GRP_XOP = 156;
  X86_GRP_CDI = 157;
  X86_GRP_ERI = 158;
  X86_GRP_TBM = 159;
  X86_GRP_16BITMODE = 160;
  X86_GRP_NOT64BITMODE = 161;
  X86_GRP_SGX = 162;
  X86_GRP_DQI = 163;
  X86_GRP_BWI = 164;
  X86_GRP_PFI = 165;
  X86_GRP_VLX = 166;
  X86_GRP_SMAP = 167;
  X86_GRP_NOVLX = 168;
  X86_GRP_FPU = 169;
  X86_GRP_ENDING = 170;

type
  // Forward declarations
  Px86_op_mem = ^x86_op_mem;
  Pcs_x86_op = ^cs_x86_op;
  Pcs_x86_encoding = ^cs_x86_encoding;
  Pcs_x86 = ^cs_x86;

  /// Instruction's operand referring to memory
  /// This is associated with X86_OP_MEM operand type above
  x86_op_mem = record
    /// segment register (or X86_REG_INVALID if irrelevant)
    segment: x86_reg;
    /// base register (or X86_REG_INVALID if irrelevant)
    base: x86_reg;
    /// index register (or X86_REG_INVALID if irrelevant)
    index: x86_reg;
    /// scale for index register
    scale: Integer;
    /// displacement value
    disp: Int64;
  end;

  cs_x86_op_detail = record
    case Integer of
      0: (/// register value for REG operand
    reg: x86_reg);
      1: (/// immediate value for IMM operand
    imm: Int64);
      2: (/// base/index/scale/disp value for MEM operand
    mem: x86_op_mem);
  end;

  /// Instruction operand
  cs_x86_op = record
    /// operand type
    type_: x86_op_type;
    /// union op detail
    detail: cs_x86_op_detail;
    /// size of this operand (in bytes).
    size: UInt8;
    /// How is this operand accessed? (READ, WRITE or READ|WRITE)
    /// This field is combined of cs_ac_type.
    /// NOTE: this field is irrelevant if engine is compiled in DIET mode.
    access: UInt8;
    /// AVX broadcast type, or 0 if irrelevant
    avx_bcast: x86_avx_bcast;
    /// AVX zero opmask {z}
    avx_zero_opmask: Boolean;
  end;

  cs_x86_encoding = record
    /// ModR/M offset, or 0 when irrelevant
    modrm_offset: UInt8;
    /// Displacement offset, or 0 when irrelevant.
    disp_offset: UInt8;
    disp_size: UInt8;
    /// Immediate offset, or 0 when irrelevant.
    imm_offset: UInt8;
    imm_size: UInt8;
  end;

  cs_x86_flag = record
    case Integer of
      0: (/// EFLAGS updated by this instruction.
    /// This can be formed from OR combination of X86_EFLAGS_* symbols in x86.h
    eflags: UInt64);
      1: (/// FPU_FLAGS updated by this instruction.
    /// This can be formed from OR combination of X86_FPU_FLAGS_* symbols in x86.h
    fpu_flags: UInt64);
  end;

  /// Instruction structure
  cs_x86 = record
    /// Instruction prefix, which can be up to 4 bytes.
    /// A prefix byte gets value 0 when irrelevant.
    /// prefix[0] indicates REP/REPNE/LOCK prefix (See X86_PREFIX_REP/REPNE/LOCK above)
    /// prefix[1] indicates segment override (irrelevant for x86_64):
    /// See X86_PREFIX_CS/SS/DS/ES/FS/GS above.
    /// prefix[2] indicates operand-size override (X86_PREFIX_OPSIZE)
    /// prefix[3] indicates address-size override (X86_PREFIX_ADDRSIZE)
    prefix: array[0..3] of UInt8;
    /// Instruction opcode, which can be from 1 to 4 bytes in size.
    /// This contains VEX opcode as well.
    /// An trailing opcode byte gets value 0 when irrelevant.
    opcode: array[0..3] of UInt8;
    /// REX prefix: only a non-zero value is relevant for x86_64
    rex: UInt8;
    /// Address size, which can be overridden with above prefix[5].
    addr_size: UInt8;
    /// ModR/M byte
    modrm: UInt8;
    /// SIB value, or 0 when irrelevant.
    sib: UInt8;
    /// Displacement value, valid if encoding.disp_offset != 0
    disp: Int64;
    /// SIB index register, or X86_REG_INVALID when irrelevant.
    sib_index: x86_reg;
    /// SIB scale, only applicable if sib_index is valid.
    sib_scale: Int8;
    /// SIB base register, or X86_REG_INVALID when irrelevant.
    sib_base: x86_reg;
    /// XOP Code Condition
    xop_cc: x86_xop_cc;
    /// SSE Code Condition
    sse_cc: x86_sse_cc;
    /// AVX Code Condition
    avx_cc: x86_avx_cc;
    /// AVX Suppress all Exception
    avx_sae: Boolean;
    /// AVX static rounding mode
    avx_rm: x86_avx_rm;
    /// Union detail
    flag: cs_x86_flag;
    /// Number of operands of this instruction,
    /// or 0 when instruction has no operand.
    op_count: UInt8;
    /// operands for this instruction.
    operands: array[0..7] of cs_x86_op;
    /// encoding information
    encoding: cs_x86_encoding;
  end;

implementation

end.
