dep: Add Zydis

This commit is contained in:
Stenzek
2023-05-22 19:36:26 +10:00
parent 39e62ae948
commit c561400a47
77 changed files with 53849 additions and 0 deletions

View File

@ -0,0 +1,78 @@
#ifndef ZYDIS_MINIMAL_MODE
static const ZydisDefinitionAccessedFlags ACCESSED_FLAGS[] =
{
{ { 0x0, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0xF, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x6, 0x0, 0x0, 0x9 } },
{ { 0x0, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x2, 0x0, 0x0, 0xD } },
{ { 0x0, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0xF } },
{ { 0x0, 0x0, 0x40000, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x0, 0x0, 0x40000, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x1000, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x800, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x800, 0x800, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x400, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x1400, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x0, 0x400, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x0, 0x0, 0x400, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x1000, 0x80200, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x0, 0x30200, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x21800, 0x64300, 0x10000, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x21000, 0xE4200, 0x10100, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x80, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x880, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x40, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x40, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x2, 0x0, 0x0, 0xD } },
{ { 0x8C0, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x40, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x4, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x4, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x2, 0x0, 0x0, 0xD } },
{ { 0x0, 0x8D4, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x1, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x1, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x2, 0x0, 0x0, 0xD } },
{ { 0x41, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x41, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x2, 0x0, 0x0, 0xD } },
{ { 0xD5, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x3F5FD5, 0x0, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x1, 0x1, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x1, 0x1, 0x0, 0x0, 0x800 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x11, 0xD5, 0x0, 0x0, 0x800 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x1, 0x8D5, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x1, 0x8C5, 0x0, 0x0, 0x10 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x1, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x1, 0x0, 0x0, 0x800 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x41, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x440, 0x8D5, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0xD5, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x8D5, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x400, 0x8D5, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x25000, 0x3F5FD5, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x21000, 0x3D5FD5, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x121000, 0x2C5FD5, 0x10000, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x3F5FD5, 0x0, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x3C5FD5, 0x10000, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x3C5FD5, 0x30000, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x45, 0x890, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x45, 0x890, 0x0, 0x0 }, { 0x0, 0x2, 0x0, 0x0, 0x0 } },
{ { 0x0, 0xC5, 0x0, 0x0, 0x810 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x8C1, 0x14, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x41, 0x894, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x1, 0x8D4, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x10, 0x11, 0x0, 0x0, 0x8C4 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x1, 0x0, 0x0, 0x894 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0xC1, 0x800, 0x0, 0x14 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x41, 0x0, 0x0, 0x894 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x81, 0x840, 0x0, 0x14 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x801, 0x0, 0x0, 0xD4 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x0, 0x1, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0xC4, 0x801, 0x0, 0x10 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x40, 0x895, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x0, 0x8D5, 0x0, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0xC0, 0x801, 0x0, 0x14 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x40, 0x801, 0x0, 0x94 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x0, 0x0, 0x1, 0x0 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0xC4, 0x0, 0x0, 0x811 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x40, 0x0, 0x0, 0x895 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } },
{ { 0x0, 0x0, 0x0, 0x0, 0x8D5 }, { 0x0, 0x0, 0x0, 0x0, 0x0 } }
};
#endif

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,92 @@
static const char* STR_ISAEXT[] =
{
"INVALID",
"ADOX_ADCX",
"AES",
"AMD3DNOW",
"AMD3DNOW_PREFETCH",
"AMD_INVLPGB",
"AMX_BF16",
"AMX_INT8",
"AMX_TILE",
"AVX",
"AVX2",
"AVX2GATHER",
"AVX512EVEX",
"AVX512VEX",
"AVXAES",
"AVX_VNNI",
"BASE",
"BMI1",
"BMI2",
"CET",
"CLDEMOTE",
"CLFLUSHOPT",
"CLFSH",
"CLWB",
"CLZERO",
"ENQCMD",
"F16C",
"FMA",
"FMA4",
"GFNI",
"HRESET",
"INVPCID",
"KEYLOCKER",
"KEYLOCKER_WIDE",
"KNC",
"KNCE",
"KNCV",
"LONGMODE",
"LZCNT",
"MCOMMIT",
"MMX",
"MONITOR",
"MONITORX",
"MOVBE",
"MOVDIR",
"MPX",
"PADLOCK",
"PAUSE",
"PCLMULQDQ",
"PCONFIG",
"PKU",
"PREFETCHWT1",
"PT",
"RDPID",
"RDPRU",
"RDRAND",
"RDSEED",
"RDTSCP",
"RDWRFSGS",
"RTM",
"SERIALIZE",
"SGX",
"SGX_ENCLV",
"SHA",
"SMAP",
"SMX",
"SNP",
"SSE",
"SSE2",
"SSE3",
"SSE4",
"SSE4A",
"SSSE3",
"SVM",
"TBM",
"TDX",
"TSX_LDTRK",
"UINTR",
"VAES",
"VMFUNC",
"VPCLMULQDQ",
"VTX",
"WAITPKG",
"X87",
"XOP",
"XSAVE",
"XSAVEC",
"XSAVEOPT",
"XSAVES"
};

View File

@ -0,0 +1,186 @@
static const char* STR_ISASET[] =
{
"INVALID",
"ADOX_ADCX",
"AES",
"AMD",
"AMD3DNOW",
"AMD_INVLPGB",
"AMX_BF16",
"AMX_INT8",
"AMX_TILE",
"AVX",
"AVX2",
"AVX2GATHER",
"AVX512BW_128",
"AVX512BW_128N",
"AVX512BW_256",
"AVX512BW_512",
"AVX512BW_KOP",
"AVX512CD_128",
"AVX512CD_256",
"AVX512CD_512",
"AVX512DQ_128",
"AVX512DQ_128N",
"AVX512DQ_256",
"AVX512DQ_512",
"AVX512DQ_KOP",
"AVX512DQ_SCALAR",
"AVX512ER_512",
"AVX512ER_SCALAR",
"AVX512F_128",
"AVX512F_128N",
"AVX512F_256",
"AVX512F_512",
"AVX512F_KOP",
"AVX512F_SCALAR",
"AVX512PF_512",
"AVX512_4FMAPS_512",
"AVX512_4FMAPS_SCALAR",
"AVX512_4VNNIW_512",
"AVX512_BF16_128",
"AVX512_BF16_256",
"AVX512_BF16_512",
"AVX512_BITALG_128",
"AVX512_BITALG_256",
"AVX512_BITALG_512",
"AVX512_FP16_128",
"AVX512_FP16_128N",
"AVX512_FP16_256",
"AVX512_FP16_512",
"AVX512_FP16_SCALAR",
"AVX512_GFNI_128",
"AVX512_GFNI_256",
"AVX512_GFNI_512",
"AVX512_IFMA_128",
"AVX512_IFMA_256",
"AVX512_IFMA_512",
"AVX512_VAES_128",
"AVX512_VAES_256",
"AVX512_VAES_512",
"AVX512_VBMI2_128",
"AVX512_VBMI2_256",
"AVX512_VBMI2_512",
"AVX512_VBMI_128",
"AVX512_VBMI_256",
"AVX512_VBMI_512",
"AVX512_VNNI_128",
"AVX512_VNNI_256",
"AVX512_VNNI_512",
"AVX512_VP2INTERSECT_128",
"AVX512_VP2INTERSECT_256",
"AVX512_VP2INTERSECT_512",
"AVX512_VPCLMULQDQ_128",
"AVX512_VPCLMULQDQ_256",
"AVX512_VPCLMULQDQ_512",
"AVX512_VPOPCNTDQ_128",
"AVX512_VPOPCNTDQ_256",
"AVX512_VPOPCNTDQ_512",
"AVXAES",
"AVX_GFNI",
"AVX_VNNI",
"BMI1",
"BMI2",
"CET",
"CLDEMOTE",
"CLFLUSHOPT",
"CLFSH",
"CLWB",
"CLZERO",
"CMOV",
"CMPXCHG16B",
"ENQCMD",
"F16C",
"FAT_NOP",
"FCMOV",
"FMA",
"FMA4",
"FXSAVE",
"FXSAVE64",
"GFNI",
"HRESET",
"I186",
"I286PROTECTED",
"I286REAL",
"I386",
"I486",
"I486REAL",
"I86",
"INVPCID",
"KEYLOCKER",
"KEYLOCKER_WIDE",
"KNCE",
"KNCJKBR",
"KNCSTREAM",
"KNCV",
"KNC_MISC",
"KNC_PF_HINT",
"LAHF",
"LONGMODE",
"LWP",
"LZCNT",
"MCOMMIT",
"MONITOR",
"MONITORX",
"MOVBE",
"MOVDIR",
"MPX",
"PADLOCK_ACE",
"PADLOCK_PHE",
"PADLOCK_PMM",
"PADLOCK_RNG",
"PAUSE",
"PCLMULQDQ",
"PCONFIG",
"PENTIUMMMX",
"PENTIUMREAL",
"PKU",
"POPCNT",
"PPRO",
"PREFETCHWT1",
"PREFETCH_NOP",
"PT",
"RDPID",
"RDPMC",
"RDPRU",
"RDRAND",
"RDSEED",
"RDTSCP",
"RDWRFSGS",
"RTM",
"SERIALIZE",
"SGX",
"SGX_ENCLV",
"SHA",
"SMAP",
"SMX",
"SNP",
"SSE",
"SSE2",
"SSE2MMX",
"SSE3",
"SSE3X87",
"SSE4",
"SSE42",
"SSE4A",
"SSEMXCSR",
"SSE_PREFETCH",
"SSSE3",
"SSSE3MMX",
"SVM",
"TBM",
"TDX",
"TSX_LDTRK",
"UINTR",
"VAES",
"VMFUNC",
"VPCLMULQDQ",
"VTX",
"WAITPKG",
"X87",
"XOP",
"XSAVE",
"XSAVEC",
"XSAVEOPT",
"XSAVES"
};

View File

@ -0,0 +1,112 @@
static const char* STR_INSTRUCTIONCATEGORY[] =
{
"INVALID",
"ADOX_ADCX",
"AES",
"AMD3DNOW",
"AMX_TILE",
"AVX",
"AVX2",
"AVX2GATHER",
"AVX512",
"AVX512_4FMAPS",
"AVX512_4VNNIW",
"AVX512_BITALG",
"AVX512_VBMI",
"AVX512_VP2INTERSECT",
"BINARY",
"BITBYTE",
"BLEND",
"BMI1",
"BMI2",
"BROADCAST",
"CALL",
"CET",
"CLDEMOTE",
"CLFLUSHOPT",
"CLWB",
"CLZERO",
"CMOV",
"COMPRESS",
"COND_BR",
"CONFLICT",
"CONVERT",
"DATAXFER",
"DECIMAL",
"ENQCMD",
"EXPAND",
"FCMOV",
"FLAGOP",
"FMA4",
"FP16",
"GATHER",
"GFNI",
"HRESET",
"IFMA",
"INTERRUPT",
"IO",
"IOSTRINGOP",
"KEYLOCKER",
"KEYLOCKER_WIDE",
"KMASK",
"KNC",
"KNCMASK",
"KNCSCALAR",
"LEGACY",
"LOGICAL",
"LOGICAL_FP",
"LZCNT",
"MISC",
"MMX",
"MOVDIR",
"MPX",
"NOP",
"PADLOCK",
"PCLMULQDQ",
"PCONFIG",
"PKU",
"POP",
"PREFETCH",
"PREFETCHWT1",
"PT",
"PUSH",
"RDPID",
"RDPRU",
"RDRAND",
"RDSEED",
"RDWRFSGS",
"RET",
"ROTATE",
"SCATTER",
"SEGOP",
"SEMAPHORE",
"SERIALIZE",
"SETCC",
"SGX",
"SHA",
"SHIFT",
"SMAP",
"SSE",
"STRINGOP",
"STTNI",
"SYSCALL",
"SYSRET",
"SYSTEM",
"TBM",
"TSX_LDTRK",
"UFMA",
"UINTR",
"UNCOND_BR",
"VAES",
"VBMI2",
"VEX",
"VFMA",
"VPCLMULQDQ",
"VTX",
"WAITPKG",
"WIDENOP",
"X87_ALU",
"XOP",
"XSAVE",
"XSAVEOPT"
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,289 @@
static const ZydisShortString STR_REGISTERS[] =
{
ZYDIS_MAKE_SHORTSTRING("none"),
// General purpose registers 8-bit
ZYDIS_MAKE_SHORTSTRING("al"),
ZYDIS_MAKE_SHORTSTRING("cl"),
ZYDIS_MAKE_SHORTSTRING("dl"),
ZYDIS_MAKE_SHORTSTRING("bl"),
ZYDIS_MAKE_SHORTSTRING("ah"),
ZYDIS_MAKE_SHORTSTRING("ch"),
ZYDIS_MAKE_SHORTSTRING("dh"),
ZYDIS_MAKE_SHORTSTRING("bh"),
ZYDIS_MAKE_SHORTSTRING("spl"),
ZYDIS_MAKE_SHORTSTRING("bpl"),
ZYDIS_MAKE_SHORTSTRING("sil"),
ZYDIS_MAKE_SHORTSTRING("dil"),
ZYDIS_MAKE_SHORTSTRING("r8b"),
ZYDIS_MAKE_SHORTSTRING("r9b"),
ZYDIS_MAKE_SHORTSTRING("r10b"),
ZYDIS_MAKE_SHORTSTRING("r11b"),
ZYDIS_MAKE_SHORTSTRING("r12b"),
ZYDIS_MAKE_SHORTSTRING("r13b"),
ZYDIS_MAKE_SHORTSTRING("r14b"),
ZYDIS_MAKE_SHORTSTRING("r15b"),
// General purpose registers 16-bit
ZYDIS_MAKE_SHORTSTRING("ax"),
ZYDIS_MAKE_SHORTSTRING("cx"),
ZYDIS_MAKE_SHORTSTRING("dx"),
ZYDIS_MAKE_SHORTSTRING("bx"),
ZYDIS_MAKE_SHORTSTRING("sp"),
ZYDIS_MAKE_SHORTSTRING("bp"),
ZYDIS_MAKE_SHORTSTRING("si"),
ZYDIS_MAKE_SHORTSTRING("di"),
ZYDIS_MAKE_SHORTSTRING("r8w"),
ZYDIS_MAKE_SHORTSTRING("r9w"),
ZYDIS_MAKE_SHORTSTRING("r10w"),
ZYDIS_MAKE_SHORTSTRING("r11w"),
ZYDIS_MAKE_SHORTSTRING("r12w"),
ZYDIS_MAKE_SHORTSTRING("r13w"),
ZYDIS_MAKE_SHORTSTRING("r14w"),
ZYDIS_MAKE_SHORTSTRING("r15w"),
// General purpose registers 32-bit
ZYDIS_MAKE_SHORTSTRING("eax"),
ZYDIS_MAKE_SHORTSTRING("ecx"),
ZYDIS_MAKE_SHORTSTRING("edx"),
ZYDIS_MAKE_SHORTSTRING("ebx"),
ZYDIS_MAKE_SHORTSTRING("esp"),
ZYDIS_MAKE_SHORTSTRING("ebp"),
ZYDIS_MAKE_SHORTSTRING("esi"),
ZYDIS_MAKE_SHORTSTRING("edi"),
ZYDIS_MAKE_SHORTSTRING("r8d"),
ZYDIS_MAKE_SHORTSTRING("r9d"),
ZYDIS_MAKE_SHORTSTRING("r10d"),
ZYDIS_MAKE_SHORTSTRING("r11d"),
ZYDIS_MAKE_SHORTSTRING("r12d"),
ZYDIS_MAKE_SHORTSTRING("r13d"),
ZYDIS_MAKE_SHORTSTRING("r14d"),
ZYDIS_MAKE_SHORTSTRING("r15d"),
// General purpose registers 64-bit
ZYDIS_MAKE_SHORTSTRING("rax"),
ZYDIS_MAKE_SHORTSTRING("rcx"),
ZYDIS_MAKE_SHORTSTRING("rdx"),
ZYDIS_MAKE_SHORTSTRING("rbx"),
ZYDIS_MAKE_SHORTSTRING("rsp"),
ZYDIS_MAKE_SHORTSTRING("rbp"),
ZYDIS_MAKE_SHORTSTRING("rsi"),
ZYDIS_MAKE_SHORTSTRING("rdi"),
ZYDIS_MAKE_SHORTSTRING("r8"),
ZYDIS_MAKE_SHORTSTRING("r9"),
ZYDIS_MAKE_SHORTSTRING("r10"),
ZYDIS_MAKE_SHORTSTRING("r11"),
ZYDIS_MAKE_SHORTSTRING("r12"),
ZYDIS_MAKE_SHORTSTRING("r13"),
ZYDIS_MAKE_SHORTSTRING("r14"),
ZYDIS_MAKE_SHORTSTRING("r15"),
// Floating point legacy registers
ZYDIS_MAKE_SHORTSTRING("st0"),
ZYDIS_MAKE_SHORTSTRING("st1"),
ZYDIS_MAKE_SHORTSTRING("st2"),
ZYDIS_MAKE_SHORTSTRING("st3"),
ZYDIS_MAKE_SHORTSTRING("st4"),
ZYDIS_MAKE_SHORTSTRING("st5"),
ZYDIS_MAKE_SHORTSTRING("st6"),
ZYDIS_MAKE_SHORTSTRING("st7"),
ZYDIS_MAKE_SHORTSTRING("x87control"),
ZYDIS_MAKE_SHORTSTRING("x87status"),
ZYDIS_MAKE_SHORTSTRING("x87tag"),
// Floating point multimedia registers
ZYDIS_MAKE_SHORTSTRING("mm0"),
ZYDIS_MAKE_SHORTSTRING("mm1"),
ZYDIS_MAKE_SHORTSTRING("mm2"),
ZYDIS_MAKE_SHORTSTRING("mm3"),
ZYDIS_MAKE_SHORTSTRING("mm4"),
ZYDIS_MAKE_SHORTSTRING("mm5"),
ZYDIS_MAKE_SHORTSTRING("mm6"),
ZYDIS_MAKE_SHORTSTRING("mm7"),
// Floating point vector registers 128-bit
ZYDIS_MAKE_SHORTSTRING("xmm0"),
ZYDIS_MAKE_SHORTSTRING("xmm1"),
ZYDIS_MAKE_SHORTSTRING("xmm2"),
ZYDIS_MAKE_SHORTSTRING("xmm3"),
ZYDIS_MAKE_SHORTSTRING("xmm4"),
ZYDIS_MAKE_SHORTSTRING("xmm5"),
ZYDIS_MAKE_SHORTSTRING("xmm6"),
ZYDIS_MAKE_SHORTSTRING("xmm7"),
ZYDIS_MAKE_SHORTSTRING("xmm8"),
ZYDIS_MAKE_SHORTSTRING("xmm9"),
ZYDIS_MAKE_SHORTSTRING("xmm10"),
ZYDIS_MAKE_SHORTSTRING("xmm11"),
ZYDIS_MAKE_SHORTSTRING("xmm12"),
ZYDIS_MAKE_SHORTSTRING("xmm13"),
ZYDIS_MAKE_SHORTSTRING("xmm14"),
ZYDIS_MAKE_SHORTSTRING("xmm15"),
ZYDIS_MAKE_SHORTSTRING("xmm16"),
ZYDIS_MAKE_SHORTSTRING("xmm17"),
ZYDIS_MAKE_SHORTSTRING("xmm18"),
ZYDIS_MAKE_SHORTSTRING("xmm19"),
ZYDIS_MAKE_SHORTSTRING("xmm20"),
ZYDIS_MAKE_SHORTSTRING("xmm21"),
ZYDIS_MAKE_SHORTSTRING("xmm22"),
ZYDIS_MAKE_SHORTSTRING("xmm23"),
ZYDIS_MAKE_SHORTSTRING("xmm24"),
ZYDIS_MAKE_SHORTSTRING("xmm25"),
ZYDIS_MAKE_SHORTSTRING("xmm26"),
ZYDIS_MAKE_SHORTSTRING("xmm27"),
ZYDIS_MAKE_SHORTSTRING("xmm28"),
ZYDIS_MAKE_SHORTSTRING("xmm29"),
ZYDIS_MAKE_SHORTSTRING("xmm30"),
ZYDIS_MAKE_SHORTSTRING("xmm31"),
// Floating point vector registers 256-bit
ZYDIS_MAKE_SHORTSTRING("ymm0"),
ZYDIS_MAKE_SHORTSTRING("ymm1"),
ZYDIS_MAKE_SHORTSTRING("ymm2"),
ZYDIS_MAKE_SHORTSTRING("ymm3"),
ZYDIS_MAKE_SHORTSTRING("ymm4"),
ZYDIS_MAKE_SHORTSTRING("ymm5"),
ZYDIS_MAKE_SHORTSTRING("ymm6"),
ZYDIS_MAKE_SHORTSTRING("ymm7"),
ZYDIS_MAKE_SHORTSTRING("ymm8"),
ZYDIS_MAKE_SHORTSTRING("ymm9"),
ZYDIS_MAKE_SHORTSTRING("ymm10"),
ZYDIS_MAKE_SHORTSTRING("ymm11"),
ZYDIS_MAKE_SHORTSTRING("ymm12"),
ZYDIS_MAKE_SHORTSTRING("ymm13"),
ZYDIS_MAKE_SHORTSTRING("ymm14"),
ZYDIS_MAKE_SHORTSTRING("ymm15"),
ZYDIS_MAKE_SHORTSTRING("ymm16"),
ZYDIS_MAKE_SHORTSTRING("ymm17"),
ZYDIS_MAKE_SHORTSTRING("ymm18"),
ZYDIS_MAKE_SHORTSTRING("ymm19"),
ZYDIS_MAKE_SHORTSTRING("ymm20"),
ZYDIS_MAKE_SHORTSTRING("ymm21"),
ZYDIS_MAKE_SHORTSTRING("ymm22"),
ZYDIS_MAKE_SHORTSTRING("ymm23"),
ZYDIS_MAKE_SHORTSTRING("ymm24"),
ZYDIS_MAKE_SHORTSTRING("ymm25"),
ZYDIS_MAKE_SHORTSTRING("ymm26"),
ZYDIS_MAKE_SHORTSTRING("ymm27"),
ZYDIS_MAKE_SHORTSTRING("ymm28"),
ZYDIS_MAKE_SHORTSTRING("ymm29"),
ZYDIS_MAKE_SHORTSTRING("ymm30"),
ZYDIS_MAKE_SHORTSTRING("ymm31"),
// Floating point vector registers 512-bit
ZYDIS_MAKE_SHORTSTRING("zmm0"),
ZYDIS_MAKE_SHORTSTRING("zmm1"),
ZYDIS_MAKE_SHORTSTRING("zmm2"),
ZYDIS_MAKE_SHORTSTRING("zmm3"),
ZYDIS_MAKE_SHORTSTRING("zmm4"),
ZYDIS_MAKE_SHORTSTRING("zmm5"),
ZYDIS_MAKE_SHORTSTRING("zmm6"),
ZYDIS_MAKE_SHORTSTRING("zmm7"),
ZYDIS_MAKE_SHORTSTRING("zmm8"),
ZYDIS_MAKE_SHORTSTRING("zmm9"),
ZYDIS_MAKE_SHORTSTRING("zmm10"),
ZYDIS_MAKE_SHORTSTRING("zmm11"),
ZYDIS_MAKE_SHORTSTRING("zmm12"),
ZYDIS_MAKE_SHORTSTRING("zmm13"),
ZYDIS_MAKE_SHORTSTRING("zmm14"),
ZYDIS_MAKE_SHORTSTRING("zmm15"),
ZYDIS_MAKE_SHORTSTRING("zmm16"),
ZYDIS_MAKE_SHORTSTRING("zmm17"),
ZYDIS_MAKE_SHORTSTRING("zmm18"),
ZYDIS_MAKE_SHORTSTRING("zmm19"),
ZYDIS_MAKE_SHORTSTRING("zmm20"),
ZYDIS_MAKE_SHORTSTRING("zmm21"),
ZYDIS_MAKE_SHORTSTRING("zmm22"),
ZYDIS_MAKE_SHORTSTRING("zmm23"),
ZYDIS_MAKE_SHORTSTRING("zmm24"),
ZYDIS_MAKE_SHORTSTRING("zmm25"),
ZYDIS_MAKE_SHORTSTRING("zmm26"),
ZYDIS_MAKE_SHORTSTRING("zmm27"),
ZYDIS_MAKE_SHORTSTRING("zmm28"),
ZYDIS_MAKE_SHORTSTRING("zmm29"),
ZYDIS_MAKE_SHORTSTRING("zmm30"),
ZYDIS_MAKE_SHORTSTRING("zmm31"),
// Matrix registers
ZYDIS_MAKE_SHORTSTRING("tmm0"),
ZYDIS_MAKE_SHORTSTRING("tmm1"),
ZYDIS_MAKE_SHORTSTRING("tmm2"),
ZYDIS_MAKE_SHORTSTRING("tmm3"),
ZYDIS_MAKE_SHORTSTRING("tmm4"),
ZYDIS_MAKE_SHORTSTRING("tmm5"),
ZYDIS_MAKE_SHORTSTRING("tmm6"),
ZYDIS_MAKE_SHORTSTRING("tmm7"),
// Flags registers
ZYDIS_MAKE_SHORTSTRING("flags"),
ZYDIS_MAKE_SHORTSTRING("eflags"),
ZYDIS_MAKE_SHORTSTRING("rflags"),
// Instruction-pointer registers
ZYDIS_MAKE_SHORTSTRING("ip"),
ZYDIS_MAKE_SHORTSTRING("eip"),
ZYDIS_MAKE_SHORTSTRING("rip"),
// Segment registers
ZYDIS_MAKE_SHORTSTRING("es"),
ZYDIS_MAKE_SHORTSTRING("cs"),
ZYDIS_MAKE_SHORTSTRING("ss"),
ZYDIS_MAKE_SHORTSTRING("ds"),
ZYDIS_MAKE_SHORTSTRING("fs"),
ZYDIS_MAKE_SHORTSTRING("gs"),
// Table registers
ZYDIS_MAKE_SHORTSTRING("gdtr"),
ZYDIS_MAKE_SHORTSTRING("ldtr"),
ZYDIS_MAKE_SHORTSTRING("idtr"),
ZYDIS_MAKE_SHORTSTRING("tr"),
// Test registers
ZYDIS_MAKE_SHORTSTRING("tr0"),
ZYDIS_MAKE_SHORTSTRING("tr1"),
ZYDIS_MAKE_SHORTSTRING("tr2"),
ZYDIS_MAKE_SHORTSTRING("tr3"),
ZYDIS_MAKE_SHORTSTRING("tr4"),
ZYDIS_MAKE_SHORTSTRING("tr5"),
ZYDIS_MAKE_SHORTSTRING("tr6"),
ZYDIS_MAKE_SHORTSTRING("tr7"),
// Control registers
ZYDIS_MAKE_SHORTSTRING("cr0"),
ZYDIS_MAKE_SHORTSTRING("cr1"),
ZYDIS_MAKE_SHORTSTRING("cr2"),
ZYDIS_MAKE_SHORTSTRING("cr3"),
ZYDIS_MAKE_SHORTSTRING("cr4"),
ZYDIS_MAKE_SHORTSTRING("cr5"),
ZYDIS_MAKE_SHORTSTRING("cr6"),
ZYDIS_MAKE_SHORTSTRING("cr7"),
ZYDIS_MAKE_SHORTSTRING("cr8"),
ZYDIS_MAKE_SHORTSTRING("cr9"),
ZYDIS_MAKE_SHORTSTRING("cr10"),
ZYDIS_MAKE_SHORTSTRING("cr11"),
ZYDIS_MAKE_SHORTSTRING("cr12"),
ZYDIS_MAKE_SHORTSTRING("cr13"),
ZYDIS_MAKE_SHORTSTRING("cr14"),
ZYDIS_MAKE_SHORTSTRING("cr15"),
// Debug registers
ZYDIS_MAKE_SHORTSTRING("dr0"),
ZYDIS_MAKE_SHORTSTRING("dr1"),
ZYDIS_MAKE_SHORTSTRING("dr2"),
ZYDIS_MAKE_SHORTSTRING("dr3"),
ZYDIS_MAKE_SHORTSTRING("dr4"),
ZYDIS_MAKE_SHORTSTRING("dr5"),
ZYDIS_MAKE_SHORTSTRING("dr6"),
ZYDIS_MAKE_SHORTSTRING("dr7"),
ZYDIS_MAKE_SHORTSTRING("dr8"),
ZYDIS_MAKE_SHORTSTRING("dr9"),
ZYDIS_MAKE_SHORTSTRING("dr10"),
ZYDIS_MAKE_SHORTSTRING("dr11"),
ZYDIS_MAKE_SHORTSTRING("dr12"),
ZYDIS_MAKE_SHORTSTRING("dr13"),
ZYDIS_MAKE_SHORTSTRING("dr14"),
ZYDIS_MAKE_SHORTSTRING("dr15"),
// Mask registers
ZYDIS_MAKE_SHORTSTRING("k0"),
ZYDIS_MAKE_SHORTSTRING("k1"),
ZYDIS_MAKE_SHORTSTRING("k2"),
ZYDIS_MAKE_SHORTSTRING("k3"),
ZYDIS_MAKE_SHORTSTRING("k4"),
ZYDIS_MAKE_SHORTSTRING("k5"),
ZYDIS_MAKE_SHORTSTRING("k6"),
ZYDIS_MAKE_SHORTSTRING("k7"),
// Bound registers
ZYDIS_MAKE_SHORTSTRING("bnd0"),
ZYDIS_MAKE_SHORTSTRING("bnd1"),
ZYDIS_MAKE_SHORTSTRING("bnd2"),
ZYDIS_MAKE_SHORTSTRING("bnd3"),
ZYDIS_MAKE_SHORTSTRING("bndcfg"),
ZYDIS_MAKE_SHORTSTRING("bndstatus"),
// Uncategorized
ZYDIS_MAKE_SHORTSTRING("mxcsr"),
ZYDIS_MAKE_SHORTSTRING("pkru"),
ZYDIS_MAKE_SHORTSTRING("xcr0"),
ZYDIS_MAKE_SHORTSTRING("uif")
};

View File

@ -0,0 +1,816 @@
#pragma pack(push, 1)
static const ZydisShortString STR_ADD = ZYDIS_MAKE_SHORTSTRING("+");
static const struct ZydisPredefinedTokenADD_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[4];
} TOK_DATA_ADD = { 4, 2, { ZYDIS_TOKEN_DELIMITER, 0, '+', '\0' } };
static const ZydisPredefinedToken* const TOK_ADD = (const ZydisPredefinedToken* const)&TOK_DATA_ADD;
static const ZydisShortString STR_ADDR_RELATIVE = ZYDIS_MAKE_SHORTSTRING("$");
static const struct ZydisPredefinedTokenADDR_RELATIVE_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[4];
} TOK_DATA_ADDR_RELATIVE = { 4, 2, { ZYDIS_TOKEN_ADDRESS_REL, 0, '$', '\0' } };
static const ZydisPredefinedToken* const TOK_ADDR_RELATIVE = (const ZydisPredefinedToken* const)&TOK_DATA_ADDR_RELATIVE;
static const ZydisShortString STR_DECO_1TO2 = ZYDIS_MAKE_SHORTSTRING(" {1to2}");
static const struct ZydisPredefinedTokenDECO_1TO2_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[19];
} TOK_DATA_DECO_1TO2 = { 19, 17, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 5, '1', 't', 'o', '2', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_1TO2 = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_1TO2;
static const ZydisShortString STR_DECO_1TO4 = ZYDIS_MAKE_SHORTSTRING(" {1to4}");
static const struct ZydisPredefinedTokenDECO_1TO4_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[19];
} TOK_DATA_DECO_1TO4 = { 19, 17, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 5, '1', 't', 'o', '4', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_1TO4 = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_1TO4;
static const ZydisShortString STR_DECO_1TO8 = ZYDIS_MAKE_SHORTSTRING(" {1to8}");
static const struct ZydisPredefinedTokenDECO_1TO8_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[19];
} TOK_DATA_DECO_1TO8 = { 19, 17, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 5, '1', 't', 'o', '8', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_1TO8 = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_1TO8;
static const ZydisShortString STR_DECO_1TO16 = ZYDIS_MAKE_SHORTSTRING(" {1to16}");
static const struct ZydisPredefinedTokenDECO_1TO16_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[20];
} TOK_DATA_DECO_1TO16 = { 20, 18, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 6, '1', 't', 'o', '1', '6', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_1TO16 = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_1TO16;
static const ZydisShortString STR_DECO_1TO32 = ZYDIS_MAKE_SHORTSTRING(" {1to32}");
static const struct ZydisPredefinedTokenDECO_1TO32_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[20];
} TOK_DATA_DECO_1TO32 = { 20, 18, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 6, '1', 't', 'o', '3', '2', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_1TO32 = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_1TO32;
static const ZydisShortString STR_DECO_1TO64 = ZYDIS_MAKE_SHORTSTRING(" {1to64}");
static const struct ZydisPredefinedTokenDECO_1TO64_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[20];
} TOK_DATA_DECO_1TO64 = { 20, 18, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 6, '1', 't', 'o', '6', '4', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_1TO64 = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_1TO64;
static const ZydisShortString STR_DECO_4TO8 = ZYDIS_MAKE_SHORTSTRING(" {4to8}");
static const struct ZydisPredefinedTokenDECO_4TO8_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[19];
} TOK_DATA_DECO_4TO8 = { 19, 17, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 5, '4', 't', 'o', '8', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_4TO8 = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_4TO8;
static const ZydisShortString STR_DECO_4TO16 = ZYDIS_MAKE_SHORTSTRING(" {4to16}");
static const struct ZydisPredefinedTokenDECO_4TO16_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[20];
} TOK_DATA_DECO_4TO16 = { 20, 18, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 6, '4', 't', 'o', '1', '6', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_4TO16 = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_4TO16;
static const ZydisShortString STR_DECO_8TO16 = ZYDIS_MAKE_SHORTSTRING(" {8to16}");
static const struct ZydisPredefinedTokenDECO_8TO16_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[20];
} TOK_DATA_DECO_8TO16 = { 20, 18, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 6, '8', 't', 'o', '1', '6', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_8TO16 = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_8TO16;
static const ZydisShortString STR_DECO_AAAA = ZYDIS_MAKE_SHORTSTRING(" {aaaa}");
static const struct ZydisPredefinedTokenDECO_AAAA_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[19];
} TOK_DATA_DECO_AAAA = { 19, 17, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 5, 'a', 'a', 'a', 'a', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_AAAA = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_AAAA;
static const ZydisShortString STR_DECO_BADC = ZYDIS_MAKE_SHORTSTRING(" {badc}");
static const struct ZydisPredefinedTokenDECO_BADC_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[19];
} TOK_DATA_DECO_BADC = { 19, 17, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 5, 'b', 'a', 'd', 'c', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_BADC = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_BADC;
static const ZydisShortString STR_DECO_BBBB = ZYDIS_MAKE_SHORTSTRING(" {bbbb}");
static const struct ZydisPredefinedTokenDECO_BBBB_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[19];
} TOK_DATA_DECO_BBBB = { 19, 17, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 5, 'b', 'b', 'b', 'b', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_BBBB = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_BBBB;
static const ZydisShortString STR_DECO_BEGIN = ZYDIS_MAKE_SHORTSTRING(" {");
static const struct ZydisPredefinedTokenDECO_BEGIN_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[8];
} TOK_DATA_DECO_BEGIN = { 8, 6, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 0, '{', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_BEGIN = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_BEGIN;
static const ZydisShortString STR_DECO_CCCC = ZYDIS_MAKE_SHORTSTRING(" {cccc}");
static const struct ZydisPredefinedTokenDECO_CCCC_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[19];
} TOK_DATA_DECO_CCCC = { 19, 17, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 5, 'c', 'c', 'c', 'c', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_CCCC = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_CCCC;
static const ZydisShortString STR_DECO_CDAB = ZYDIS_MAKE_SHORTSTRING(" {cdab}");
static const struct ZydisPredefinedTokenDECO_CDAB_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[19];
} TOK_DATA_DECO_CDAB = { 19, 17, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 5, 'c', 'd', 'a', 'b', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_CDAB = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_CDAB;
static const ZydisShortString STR_DECO_DACB = ZYDIS_MAKE_SHORTSTRING(" {dacb}");
static const struct ZydisPredefinedTokenDECO_DACB_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[19];
} TOK_DATA_DECO_DACB = { 19, 17, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 5, 'd', 'a', 'c', 'b', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_DACB = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_DACB;
static const ZydisShortString STR_DECO_DDDD = ZYDIS_MAKE_SHORTSTRING(" {dddd}");
static const struct ZydisPredefinedTokenDECO_DDDD_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[19];
} TOK_DATA_DECO_DDDD = { 19, 17, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 5, 'd', 'd', 'd', 'd', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_DDDD = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_DDDD;
static const ZydisShortString STR_DECO_EH = ZYDIS_MAKE_SHORTSTRING(" {eh}");
static const struct ZydisPredefinedTokenDECO_EH_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[17];
} TOK_DATA_DECO_EH = { 17, 15, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 3, 'e', 'h', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_EH = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_EH;
static const ZydisShortString STR_DECO_END = ZYDIS_MAKE_SHORTSTRING("}");
static const struct ZydisPredefinedTokenDECO_END_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[4];
} TOK_DATA_DECO_END = { 4, 2, { ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_END = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_END;
static const ZydisShortString STR_DECO_FLOAT16 = ZYDIS_MAKE_SHORTSTRING(" {float16}");
static const struct ZydisPredefinedTokenDECO_FLOAT16_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[22];
} TOK_DATA_DECO_FLOAT16 = { 22, 20, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 8, 'f', 'l', 'o', 'a', 't', '1', '6', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_FLOAT16 = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_FLOAT16;
static const ZydisShortString STR_DECO_RD = ZYDIS_MAKE_SHORTSTRING(" {rd}");
static const struct ZydisPredefinedTokenDECO_RD_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[17];
} TOK_DATA_DECO_RD = { 17, 15, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 3, 'r', 'd', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_RD = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_RD;
static const ZydisShortString STR_DECO_RD_SAE = ZYDIS_MAKE_SHORTSTRING(" {rd-sae}");
static const struct ZydisPredefinedTokenDECO_RD_SAE_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[21];
} TOK_DATA_DECO_RD_SAE = { 21, 19, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 7, 'r', 'd', '-', 's', 'a', 'e', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_RD_SAE = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_RD_SAE;
static const ZydisShortString STR_DECO_RN = ZYDIS_MAKE_SHORTSTRING(" {rn}");
static const struct ZydisPredefinedTokenDECO_RN_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[17];
} TOK_DATA_DECO_RN = { 17, 15, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 3, 'r', 'n', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_RN = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_RN;
static const ZydisShortString STR_DECO_RN_SAE = ZYDIS_MAKE_SHORTSTRING(" {rn-sae}");
static const struct ZydisPredefinedTokenDECO_RN_SAE_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[21];
} TOK_DATA_DECO_RN_SAE = { 21, 19, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 7, 'r', 'n', '-', 's', 'a', 'e', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_RN_SAE = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_RN_SAE;
static const ZydisShortString STR_DECO_RU = ZYDIS_MAKE_SHORTSTRING(" {ru}");
static const struct ZydisPredefinedTokenDECO_RU_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[17];
} TOK_DATA_DECO_RU = { 17, 15, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 3, 'r', 'u', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_RU = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_RU;
static const ZydisShortString STR_DECO_RU_SAE = ZYDIS_MAKE_SHORTSTRING(" {ru-sae}");
static const struct ZydisPredefinedTokenDECO_RU_SAE_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[21];
} TOK_DATA_DECO_RU_SAE = { 21, 19, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 7, 'r', 'u', '-', 's', 'a', 'e', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_RU_SAE = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_RU_SAE;
static const ZydisShortString STR_DECO_RZ = ZYDIS_MAKE_SHORTSTRING(" {rz}");
static const struct ZydisPredefinedTokenDECO_RZ_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[17];
} TOK_DATA_DECO_RZ = { 17, 15, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 3, 'r', 'z', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_RZ = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_RZ;
static const ZydisShortString STR_DECO_RZ_SAE = ZYDIS_MAKE_SHORTSTRING(" {rz-sae}");
static const struct ZydisPredefinedTokenDECO_RZ_SAE_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[21];
} TOK_DATA_DECO_RZ_SAE = { 21, 19, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 7, 'r', 'z', '-', 's', 'a', 'e', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_RZ_SAE = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_RZ_SAE;
static const ZydisShortString STR_DECO_SAE = ZYDIS_MAKE_SHORTSTRING(" {sae}");
static const struct ZydisPredefinedTokenDECO_SAE_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[18];
} TOK_DATA_DECO_SAE = { 18, 16, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 4, 's', 'a', 'e', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_SAE = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_SAE;
static const ZydisShortString STR_DECO_SINT8 = ZYDIS_MAKE_SHORTSTRING(" {sint8}");
static const struct ZydisPredefinedTokenDECO_SINT8_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[20];
} TOK_DATA_DECO_SINT8 = { 20, 18, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 6, 's', 'i', 'n', 't', '8', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_SINT8 = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_SINT8;
static const ZydisShortString STR_DECO_SINT16 = ZYDIS_MAKE_SHORTSTRING(" {sint16}");
static const struct ZydisPredefinedTokenDECO_SINT16_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[21];
} TOK_DATA_DECO_SINT16 = { 21, 19, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 7, 's', 'i', 'n', 't', '1', '6', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_SINT16 = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_SINT16;
static const ZydisShortString STR_DECO_UINT8 = ZYDIS_MAKE_SHORTSTRING(" {uint8}");
static const struct ZydisPredefinedTokenDECO_UINT8_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[20];
} TOK_DATA_DECO_UINT8 = { 20, 18, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 6, 'u', 'i', 'n', 't', '8', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_UINT8 = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_UINT8;
static const ZydisShortString STR_DECO_UINT16 = ZYDIS_MAKE_SHORTSTRING(" {uint16}");
static const struct ZydisPredefinedTokenDECO_UINT16_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[21];
} TOK_DATA_DECO_UINT16 = { 21, 19, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 7, 'u', 'i', 'n', 't', '1', '6', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_UINT16 = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_UINT16;
static const ZydisShortString STR_DECO_ZERO = ZYDIS_MAKE_SHORTSTRING(" {z}");
static const struct ZydisPredefinedTokenDECO_ZERO_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[16];
} TOK_DATA_DECO_ZERO = { 16, 14, { ZYDIS_TOKEN_WHITESPACE, 2, ' ', '\0', ZYDIS_TOKEN_PARENTHESIS_OPEN, 2, '{', '\0', ZYDIS_TOKEN_DECORATOR, 2, 'z', '\0', ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, '}', '\0' } };
static const ZydisPredefinedToken* const TOK_DECO_ZERO = (const ZydisPredefinedToken* const)&TOK_DATA_DECO_ZERO;
static const ZydisShortString STR_DELIM_MEMORY = ZYDIS_MAKE_SHORTSTRING(",");
static const struct ZydisPredefinedTokenDELIM_MEMORY_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[4];
} TOK_DATA_DELIM_MEMORY = { 4, 2, { ZYDIS_TOKEN_DELIMITER, 0, ',', '\0' } };
static const ZydisPredefinedToken* const TOK_DELIM_MEMORY = (const ZydisPredefinedToken* const)&TOK_DATA_DELIM_MEMORY;
static const ZydisShortString STR_DELIM_MNEMONIC = ZYDIS_MAKE_SHORTSTRING(" ");
static const struct ZydisPredefinedTokenDELIM_MNEMONIC_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[4];
} TOK_DATA_DELIM_MNEMONIC = { 4, 2, { ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_DELIM_MNEMONIC = (const ZydisPredefinedToken* const)&TOK_DATA_DELIM_MNEMONIC;
static const ZydisShortString STR_DELIM_OPERAND = ZYDIS_MAKE_SHORTSTRING(", ");
static const struct ZydisPredefinedTokenDELIM_OPERAND_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[8];
} TOK_DATA_DELIM_OPERAND = { 8, 6, { ZYDIS_TOKEN_DELIMITER, 2, ',', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_DELIM_OPERAND = (const ZydisPredefinedToken* const)&TOK_DATA_DELIM_OPERAND;
static const ZydisShortString STR_DELIM_SEGMENT = ZYDIS_MAKE_SHORTSTRING(":");
static const struct ZydisPredefinedTokenDELIM_SEGMENT_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[4];
} TOK_DATA_DELIM_SEGMENT = { 4, 2, { ZYDIS_TOKEN_DELIMITER, 0, ':', '\0' } };
static const ZydisPredefinedToken* const TOK_DELIM_SEGMENT = (const ZydisPredefinedToken* const)&TOK_DATA_DELIM_SEGMENT;
static const ZydisShortString STR_FAR = ZYDIS_MAKE_SHORTSTRING(" far");
static const ZydisShortString STR_FAR_ATT = ZYDIS_MAKE_SHORTSTRING("l");
static const ZydisShortString STR_IMMEDIATE = ZYDIS_MAKE_SHORTSTRING("$");
static const struct ZydisPredefinedTokenIMMEDIATE_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[4];
} TOK_DATA_IMMEDIATE = { 4, 2, { ZYDIS_TOKEN_IMMEDIATE, 0, '$', '\0' } };
static const ZydisPredefinedToken* const TOK_IMMEDIATE = (const ZydisPredefinedToken* const)&TOK_DATA_IMMEDIATE;
static const ZydisShortString STR_INVALID_MNEMONIC = ZYDIS_MAKE_SHORTSTRING("invalid");
static const struct ZydisPredefinedTokenINVALID_MNEMONIC_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[10];
} TOK_DATA_INVALID_MNEMONIC = { 10, 2, { ZYDIS_TOKEN_MNEMONIC, 0, 'i', 'n', 'v', 'a', 'l', 'i', 'd', '\0' } };
static const ZydisPredefinedToken* const TOK_INVALID_MNEMONIC = (const ZydisPredefinedToken* const)&TOK_DATA_INVALID_MNEMONIC;
static const ZydisShortString STR_INVALID_REG = ZYDIS_MAKE_SHORTSTRING("invalid");
static const struct ZydisPredefinedTokenINVALID_REG_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[10];
} TOK_DATA_INVALID_REG = { 10, 2, { ZYDIS_TOKEN_REGISTER, 0, 'i', 'n', 'v', 'a', 'l', 'i', 'd', '\0' } };
static const ZydisPredefinedToken* const TOK_INVALID_REG = (const ZydisPredefinedToken* const)&TOK_DATA_INVALID_REG;
static const ZydisShortString STR_MEMORY_BEGIN_ATT = ZYDIS_MAKE_SHORTSTRING("(");
static const struct ZydisPredefinedTokenMEMORY_BEGIN_ATT_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[4];
} TOK_DATA_MEMORY_BEGIN_ATT = { 4, 2, { ZYDIS_TOKEN_PARENTHESIS_OPEN, 0, '(', '\0' } };
static const ZydisPredefinedToken* const TOK_MEMORY_BEGIN_ATT = (const ZydisPredefinedToken* const)&TOK_DATA_MEMORY_BEGIN_ATT;
static const ZydisShortString STR_MEMORY_BEGIN_INTEL = ZYDIS_MAKE_SHORTSTRING("[");
static const struct ZydisPredefinedTokenMEMORY_BEGIN_INTEL_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[4];
} TOK_DATA_MEMORY_BEGIN_INTEL = { 4, 2, { ZYDIS_TOKEN_PARENTHESIS_OPEN, 0, '[', '\0' } };
static const ZydisPredefinedToken* const TOK_MEMORY_BEGIN_INTEL = (const ZydisPredefinedToken* const)&TOK_DATA_MEMORY_BEGIN_INTEL;
static const ZydisShortString STR_MEMORY_END_ATT = ZYDIS_MAKE_SHORTSTRING(")");
static const struct ZydisPredefinedTokenMEMORY_END_ATT_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[4];
} TOK_DATA_MEMORY_END_ATT = { 4, 2, { ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, ')', '\0' } };
static const ZydisPredefinedToken* const TOK_MEMORY_END_ATT = (const ZydisPredefinedToken* const)&TOK_DATA_MEMORY_END_ATT;
static const ZydisShortString STR_MEMORY_END_INTEL = ZYDIS_MAKE_SHORTSTRING("]");
static const struct ZydisPredefinedTokenMEMORY_END_INTEL_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[4];
} TOK_DATA_MEMORY_END_INTEL = { 4, 2, { ZYDIS_TOKEN_PARENTHESIS_CLOSE, 0, ']', '\0' } };
static const ZydisPredefinedToken* const TOK_MEMORY_END_INTEL = (const ZydisPredefinedToken* const)&TOK_DATA_MEMORY_END_INTEL;
static const ZydisShortString STR_MUL = ZYDIS_MAKE_SHORTSTRING("*");
static const struct ZydisPredefinedTokenMUL_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[4];
} TOK_DATA_MUL = { 4, 2, { ZYDIS_TOKEN_DELIMITER, 0, '*', '\0' } };
static const ZydisPredefinedToken* const TOK_MUL = (const ZydisPredefinedToken* const)&TOK_DATA_MUL;
static const ZydisShortString STR_NEAR = ZYDIS_MAKE_SHORTSTRING(" near");
static const ZydisShortString STR_PREF_BND = ZYDIS_MAKE_SHORTSTRING("bnd ");
static const struct ZydisPredefinedTokenPREF_BND_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[10];
} TOK_DATA_PREF_BND = { 10, 8, { ZYDIS_TOKEN_PREFIX, 4, 'b', 'n', 'd', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_BND = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_BND;
static const ZydisShortString STR_PREF_LOCK = ZYDIS_MAKE_SHORTSTRING("lock ");
static const struct ZydisPredefinedTokenPREF_LOCK_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[11];
} TOK_DATA_PREF_LOCK = { 11, 9, { ZYDIS_TOKEN_PREFIX, 5, 'l', 'o', 'c', 'k', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_LOCK = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_LOCK;
static const ZydisShortString STR_PREF_REP = ZYDIS_MAKE_SHORTSTRING("rep ");
static const struct ZydisPredefinedTokenPREF_REP_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[10];
} TOK_DATA_PREF_REP = { 10, 8, { ZYDIS_TOKEN_PREFIX, 4, 'r', 'e', 'p', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REP = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REP;
static const ZydisShortString STR_PREF_REPE = ZYDIS_MAKE_SHORTSTRING("repe ");
static const struct ZydisPredefinedTokenPREF_REPE_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[11];
} TOK_DATA_PREF_REPE = { 11, 9, { ZYDIS_TOKEN_PREFIX, 5, 'r', 'e', 'p', 'e', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REPE = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REPE;
static const ZydisShortString STR_PREF_REPNE = ZYDIS_MAKE_SHORTSTRING("repne ");
static const struct ZydisPredefinedTokenPREF_REPNE_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[12];
} TOK_DATA_PREF_REPNE = { 12, 10, { ZYDIS_TOKEN_PREFIX, 6, 'r', 'e', 'p', 'n', 'e', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REPNE = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REPNE;
static const ZydisShortString STR_PREF_REX_4A = ZYDIS_MAKE_SHORTSTRING("rex.wx ");
static const struct ZydisPredefinedTokenPREF_REX_4A_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[13];
} TOK_DATA_PREF_REX_4A = { 13, 11, { ZYDIS_TOKEN_PREFIX, 7, 'r', 'e', 'x', '.', 'w', 'x', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REX_4A = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REX_4A;
static const ZydisShortString STR_PREF_REX_4B = ZYDIS_MAKE_SHORTSTRING("rex.wxb ");
static const struct ZydisPredefinedTokenPREF_REX_4B_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[14];
} TOK_DATA_PREF_REX_4B = { 14, 12, { ZYDIS_TOKEN_PREFIX, 8, 'r', 'e', 'x', '.', 'w', 'x', 'b', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REX_4B = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REX_4B;
static const ZydisShortString STR_PREF_REX_4C = ZYDIS_MAKE_SHORTSTRING("rex.wr ");
static const struct ZydisPredefinedTokenPREF_REX_4C_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[13];
} TOK_DATA_PREF_REX_4C = { 13, 11, { ZYDIS_TOKEN_PREFIX, 7, 'r', 'e', 'x', '.', 'w', 'r', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REX_4C = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REX_4C;
static const ZydisShortString STR_PREF_REX_4D = ZYDIS_MAKE_SHORTSTRING("rex.wrb ");
static const struct ZydisPredefinedTokenPREF_REX_4D_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[14];
} TOK_DATA_PREF_REX_4D = { 14, 12, { ZYDIS_TOKEN_PREFIX, 8, 'r', 'e', 'x', '.', 'w', 'r', 'b', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REX_4D = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REX_4D;
static const ZydisShortString STR_PREF_REX_4E = ZYDIS_MAKE_SHORTSTRING("rex.wrx ");
static const struct ZydisPredefinedTokenPREF_REX_4E_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[14];
} TOK_DATA_PREF_REX_4E = { 14, 12, { ZYDIS_TOKEN_PREFIX, 8, 'r', 'e', 'x', '.', 'w', 'r', 'x', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REX_4E = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REX_4E;
static const ZydisShortString STR_PREF_REX_4F = ZYDIS_MAKE_SHORTSTRING("rex.wrxb ");
static const struct ZydisPredefinedTokenPREF_REX_4F_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[15];
} TOK_DATA_PREF_REX_4F = { 15, 13, { ZYDIS_TOKEN_PREFIX, 9, 'r', 'e', 'x', '.', 'w', 'r', 'x', 'b', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REX_4F = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REX_4F;
static const ZydisShortString STR_PREF_REX_40 = ZYDIS_MAKE_SHORTSTRING("rex ");
static const struct ZydisPredefinedTokenPREF_REX_40_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[10];
} TOK_DATA_PREF_REX_40 = { 10, 8, { ZYDIS_TOKEN_PREFIX, 4, 'r', 'e', 'x', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REX_40 = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REX_40;
static const ZydisShortString STR_PREF_REX_41 = ZYDIS_MAKE_SHORTSTRING("rex.b ");
static const struct ZydisPredefinedTokenPREF_REX_41_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[12];
} TOK_DATA_PREF_REX_41 = { 12, 10, { ZYDIS_TOKEN_PREFIX, 6, 'r', 'e', 'x', '.', 'b', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REX_41 = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REX_41;
static const ZydisShortString STR_PREF_REX_42 = ZYDIS_MAKE_SHORTSTRING("rex.x ");
static const struct ZydisPredefinedTokenPREF_REX_42_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[12];
} TOK_DATA_PREF_REX_42 = { 12, 10, { ZYDIS_TOKEN_PREFIX, 6, 'r', 'e', 'x', '.', 'x', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REX_42 = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REX_42;
static const ZydisShortString STR_PREF_REX_43 = ZYDIS_MAKE_SHORTSTRING("rex.xb ");
static const struct ZydisPredefinedTokenPREF_REX_43_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[13];
} TOK_DATA_PREF_REX_43 = { 13, 11, { ZYDIS_TOKEN_PREFIX, 7, 'r', 'e', 'x', '.', 'x', 'b', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REX_43 = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REX_43;
static const ZydisShortString STR_PREF_REX_44 = ZYDIS_MAKE_SHORTSTRING("rex.r ");
static const struct ZydisPredefinedTokenPREF_REX_44_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[12];
} TOK_DATA_PREF_REX_44 = { 12, 10, { ZYDIS_TOKEN_PREFIX, 6, 'r', 'e', 'x', '.', 'r', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REX_44 = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REX_44;
static const ZydisShortString STR_PREF_REX_45 = ZYDIS_MAKE_SHORTSTRING("rex.rb ");
static const struct ZydisPredefinedTokenPREF_REX_45_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[13];
} TOK_DATA_PREF_REX_45 = { 13, 11, { ZYDIS_TOKEN_PREFIX, 7, 'r', 'e', 'x', '.', 'r', 'b', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REX_45 = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REX_45;
static const ZydisShortString STR_PREF_REX_46 = ZYDIS_MAKE_SHORTSTRING("rex.rx ");
static const struct ZydisPredefinedTokenPREF_REX_46_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[13];
} TOK_DATA_PREF_REX_46 = { 13, 11, { ZYDIS_TOKEN_PREFIX, 7, 'r', 'e', 'x', '.', 'r', 'x', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REX_46 = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REX_46;
static const ZydisShortString STR_PREF_REX_47 = ZYDIS_MAKE_SHORTSTRING("rex.rxb ");
static const struct ZydisPredefinedTokenPREF_REX_47_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[14];
} TOK_DATA_PREF_REX_47 = { 14, 12, { ZYDIS_TOKEN_PREFIX, 8, 'r', 'e', 'x', '.', 'r', 'x', 'b', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REX_47 = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REX_47;
static const ZydisShortString STR_PREF_REX_48 = ZYDIS_MAKE_SHORTSTRING("rex.w ");
static const struct ZydisPredefinedTokenPREF_REX_48_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[12];
} TOK_DATA_PREF_REX_48 = { 12, 10, { ZYDIS_TOKEN_PREFIX, 6, 'r', 'e', 'x', '.', 'w', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REX_48 = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REX_48;
static const ZydisShortString STR_PREF_REX_49 = ZYDIS_MAKE_SHORTSTRING("rex.wb ");
static const struct ZydisPredefinedTokenPREF_REX_49_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[13];
} TOK_DATA_PREF_REX_49 = { 13, 11, { ZYDIS_TOKEN_PREFIX, 7, 'r', 'e', 'x', '.', 'w', 'b', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_REX_49 = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_REX_49;
static const ZydisShortString STR_PREF_SEG_CS = ZYDIS_MAKE_SHORTSTRING("cs ");
static const struct ZydisPredefinedTokenPREF_SEG_CS_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[9];
} TOK_DATA_PREF_SEG_CS = { 9, 7, { ZYDIS_TOKEN_PREFIX, 3, 'c', 's', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_SEG_CS = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_SEG_CS;
static const ZydisShortString STR_PREF_SEG_DS = ZYDIS_MAKE_SHORTSTRING("ds ");
static const struct ZydisPredefinedTokenPREF_SEG_DS_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[9];
} TOK_DATA_PREF_SEG_DS = { 9, 7, { ZYDIS_TOKEN_PREFIX, 3, 'd', 's', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_SEG_DS = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_SEG_DS;
static const ZydisShortString STR_PREF_SEG_ES = ZYDIS_MAKE_SHORTSTRING("es ");
static const struct ZydisPredefinedTokenPREF_SEG_ES_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[9];
} TOK_DATA_PREF_SEG_ES = { 9, 7, { ZYDIS_TOKEN_PREFIX, 3, 'e', 's', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_SEG_ES = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_SEG_ES;
static const ZydisShortString STR_PREF_SEG_FS = ZYDIS_MAKE_SHORTSTRING("fs ");
static const struct ZydisPredefinedTokenPREF_SEG_FS_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[9];
} TOK_DATA_PREF_SEG_FS = { 9, 7, { ZYDIS_TOKEN_PREFIX, 3, 'f', 's', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_SEG_FS = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_SEG_FS;
static const ZydisShortString STR_PREF_SEG_GS = ZYDIS_MAKE_SHORTSTRING("gs ");
static const struct ZydisPredefinedTokenPREF_SEG_GS_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[9];
} TOK_DATA_PREF_SEG_GS = { 9, 7, { ZYDIS_TOKEN_PREFIX, 3, 'g', 's', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_SEG_GS = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_SEG_GS;
static const ZydisShortString STR_PREF_SEG_SS = ZYDIS_MAKE_SHORTSTRING("ss ");
static const struct ZydisPredefinedTokenPREF_SEG_SS_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[9];
} TOK_DATA_PREF_SEG_SS = { 9, 7, { ZYDIS_TOKEN_PREFIX, 3, 's', 's', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_SEG_SS = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_SEG_SS;
static const ZydisShortString STR_PREF_XACQUIRE = ZYDIS_MAKE_SHORTSTRING("xacquire ");
static const struct ZydisPredefinedTokenPREF_XACQUIRE_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[15];
} TOK_DATA_PREF_XACQUIRE = { 15, 13, { ZYDIS_TOKEN_PREFIX, 9, 'x', 'a', 'c', 'q', 'u', 'i', 'r', 'e', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_XACQUIRE = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_XACQUIRE;
static const ZydisShortString STR_PREF_XRELEASE = ZYDIS_MAKE_SHORTSTRING("xrelease ");
static const struct ZydisPredefinedTokenPREF_XRELEASE_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[15];
} TOK_DATA_PREF_XRELEASE = { 15, 13, { ZYDIS_TOKEN_PREFIX, 9, 'x', 'r', 'e', 'l', 'e', 'a', 's', 'e', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_XRELEASE = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_XRELEASE;
static const ZydisShortString STR_PREF_NOTRACK = ZYDIS_MAKE_SHORTSTRING("notrack ");
static const struct ZydisPredefinedTokenPREF_NOTRACK_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[14];
} TOK_DATA_PREF_NOTRACK = { 14, 12, { ZYDIS_TOKEN_PREFIX, 8, 'n', 'o', 't', 'r', 'a', 'c', 'k', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_PREF_NOTRACK = (const ZydisPredefinedToken* const)&TOK_DATA_PREF_NOTRACK;
static const ZydisShortString STR_REGISTER = ZYDIS_MAKE_SHORTSTRING("%");
static const struct ZydisPredefinedTokenREGISTER_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[4];
} TOK_DATA_REGISTER = { 4, 2, { ZYDIS_TOKEN_REGISTER, 0, '%', '\0' } };
static const ZydisPredefinedToken* const TOK_REGISTER = (const ZydisPredefinedToken* const)&TOK_DATA_REGISTER;
static const ZydisShortString STR_SHORT = ZYDIS_MAKE_SHORTSTRING(" short");
static const ZydisShortString STR_SIZE_8_ATT = ZYDIS_MAKE_SHORTSTRING("b");
static const ZydisShortString STR_SIZE_8_INTEL = ZYDIS_MAKE_SHORTSTRING("byte ptr ");
static const struct ZydisPredefinedTokenSIZE_8_INTEL_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[15];
} TOK_DATA_SIZE_8_INTEL = { 15, 13, { ZYDIS_TOKEN_TYPECAST, 9, 'b', 'y', 't', 'e', ' ', 'p', 't', 'r', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_SIZE_8_INTEL = (const ZydisPredefinedToken* const)&TOK_DATA_SIZE_8_INTEL;
static const ZydisShortString STR_SIZE_16_ATT = ZYDIS_MAKE_SHORTSTRING("w");
static const ZydisShortString STR_SIZE_16_INTEL = ZYDIS_MAKE_SHORTSTRING("word ptr ");
static const struct ZydisPredefinedTokenSIZE_16_INTEL_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[15];
} TOK_DATA_SIZE_16_INTEL = { 15, 13, { ZYDIS_TOKEN_TYPECAST, 9, 'w', 'o', 'r', 'd', ' ', 'p', 't', 'r', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_SIZE_16_INTEL = (const ZydisPredefinedToken* const)&TOK_DATA_SIZE_16_INTEL;
static const ZydisShortString STR_SIZE_32_ATT = ZYDIS_MAKE_SHORTSTRING("l");
static const ZydisShortString STR_SIZE_32_INTEL = ZYDIS_MAKE_SHORTSTRING("dword ptr ");
static const struct ZydisPredefinedTokenSIZE_32_INTEL_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[16];
} TOK_DATA_SIZE_32_INTEL = { 16, 14, { ZYDIS_TOKEN_TYPECAST, 10, 'd', 'w', 'o', 'r', 'd', ' ', 'p', 't', 'r', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_SIZE_32_INTEL = (const ZydisPredefinedToken* const)&TOK_DATA_SIZE_32_INTEL;
static const ZydisShortString STR_SIZE_48 = ZYDIS_MAKE_SHORTSTRING("fword ptr ");
static const struct ZydisPredefinedTokenSIZE_48_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[16];
} TOK_DATA_SIZE_48 = { 16, 14, { ZYDIS_TOKEN_TYPECAST, 10, 'f', 'w', 'o', 'r', 'd', ' ', 'p', 't', 'r', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_SIZE_48 = (const ZydisPredefinedToken* const)&TOK_DATA_SIZE_48;
static const ZydisShortString STR_SIZE_64_ATT = ZYDIS_MAKE_SHORTSTRING("q");
static const ZydisShortString STR_SIZE_64_INTEL = ZYDIS_MAKE_SHORTSTRING("qword ptr ");
static const struct ZydisPredefinedTokenSIZE_64_INTEL_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[16];
} TOK_DATA_SIZE_64_INTEL = { 16, 14, { ZYDIS_TOKEN_TYPECAST, 10, 'q', 'w', 'o', 'r', 'd', ' ', 'p', 't', 'r', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_SIZE_64_INTEL = (const ZydisPredefinedToken* const)&TOK_DATA_SIZE_64_INTEL;
static const ZydisShortString STR_SIZE_80 = ZYDIS_MAKE_SHORTSTRING("tbyte ptr ");
static const struct ZydisPredefinedTokenSIZE_80_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[16];
} TOK_DATA_SIZE_80 = { 16, 14, { ZYDIS_TOKEN_TYPECAST, 10, 't', 'b', 'y', 't', 'e', ' ', 'p', 't', 'r', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_SIZE_80 = (const ZydisPredefinedToken* const)&TOK_DATA_SIZE_80;
static const ZydisShortString STR_SIZE_128_ATT = ZYDIS_MAKE_SHORTSTRING("x");
static const ZydisShortString STR_SIZE_128_INTEL = ZYDIS_MAKE_SHORTSTRING("xmmword ptr ");
static const struct ZydisPredefinedTokenSIZE_128_INTEL_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[18];
} TOK_DATA_SIZE_128_INTEL = { 18, 16, { ZYDIS_TOKEN_TYPECAST, 12, 'x', 'm', 'm', 'w', 'o', 'r', 'd', ' ', 'p', 't', 'r', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_SIZE_128_INTEL = (const ZydisPredefinedToken* const)&TOK_DATA_SIZE_128_INTEL;
static const ZydisShortString STR_SIZE_256_ATT = ZYDIS_MAKE_SHORTSTRING("y");
static const ZydisShortString STR_SIZE_256_INTEL = ZYDIS_MAKE_SHORTSTRING("ymmword ptr ");
static const struct ZydisPredefinedTokenSIZE_256_INTEL_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[18];
} TOK_DATA_SIZE_256_INTEL = { 18, 16, { ZYDIS_TOKEN_TYPECAST, 12, 'y', 'm', 'm', 'w', 'o', 'r', 'd', ' ', 'p', 't', 'r', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_SIZE_256_INTEL = (const ZydisPredefinedToken* const)&TOK_DATA_SIZE_256_INTEL;
static const ZydisShortString STR_SIZE_512_ATT = ZYDIS_MAKE_SHORTSTRING("z");
static const ZydisShortString STR_SIZE_512_INTEL = ZYDIS_MAKE_SHORTSTRING("zmmword ptr ");
static const struct ZydisPredefinedTokenSIZE_512_INTEL_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[18];
} TOK_DATA_SIZE_512_INTEL = { 18, 16, { ZYDIS_TOKEN_TYPECAST, 12, 'z', 'm', 'm', 'w', 'o', 'r', 'd', ' ', 'p', 't', 'r', '\0', ZYDIS_TOKEN_WHITESPACE, 0, ' ', '\0' } };
static const ZydisPredefinedToken* const TOK_SIZE_512_INTEL = (const ZydisPredefinedToken* const)&TOK_DATA_SIZE_512_INTEL;
static const ZydisShortString STR_SUB = ZYDIS_MAKE_SHORTSTRING("-");
static const struct ZydisPredefinedTokenSUB_
{
ZyanU8 size;
ZyanU8 next;
ZyanU8 data[4];
} TOK_DATA_SUB = { 4, 2, { ZYDIS_TOKEN_DELIMITER, 0, '-', '\0' } };
static const ZydisPredefinedToken* const TOK_SUB = (const ZydisPredefinedToken* const)&TOK_DATA_SUB;
static const ZydisShortString STR_WHITESPACE = ZYDIS_MAKE_SHORTSTRING(" ");
#pragma pack(pop)

View File

@ -0,0 +1,58 @@
const ZydisEncoderRelInfo *ZydisGetRelInfo(ZydisMnemonic mnemonic)
{
static const ZydisEncoderRelInfo info_lookup[9] =
{
{ { { 0, 3, 6 }, { 0, 4, 5 }, { 0, 0, 5 } }, ZYDIS_SIZE_HINT_NONE, ZYAN_FALSE },
{ { { 2, 4, 7 }, { 2, 5, 6 }, { 2, 0, 6 } }, ZYDIS_SIZE_HINT_NONE, ZYAN_TRUE },
{ { { 2, 0, 0 }, { 3, 0, 0 }, { 0, 0, 0 } }, ZYDIS_SIZE_HINT_NONE, ZYAN_FALSE },
{ { { 3, 0, 0 }, { 2, 0, 0 }, { 3, 0, 0 } }, ZYDIS_SIZE_HINT_NONE, ZYAN_FALSE },
{ { { 0, 0, 0 }, { 0, 0, 0 }, { 5, 0, 7 } }, ZYDIS_SIZE_HINT_NONE, ZYAN_FALSE },
{ { { 2, 3, 6 }, { 2, 4, 5 }, { 2, 0, 5 } }, ZYDIS_SIZE_HINT_NONE, ZYAN_FALSE },
{ { { 0, 0, 0 }, { 0, 0, 0 }, { 2, 0, 0 } }, ZYDIS_SIZE_HINT_NONE, ZYAN_FALSE },
{ { { 2, 0, 0 }, { 2, 0, 0 }, { 2, 0, 0 } }, ZYDIS_SIZE_HINT_ASZ, ZYAN_FALSE },
{ { { 0, 4, 7 }, { 0, 5, 6 }, { 0, 5, 6 } }, ZYDIS_SIZE_HINT_OSZ, ZYAN_FALSE },
};
switch (mnemonic)
{
case ZYDIS_MNEMONIC_CALL:
return &info_lookup[0];
case ZYDIS_MNEMONIC_JB:
case ZYDIS_MNEMONIC_JBE:
case ZYDIS_MNEMONIC_JL:
case ZYDIS_MNEMONIC_JLE:
case ZYDIS_MNEMONIC_JNB:
case ZYDIS_MNEMONIC_JNBE:
case ZYDIS_MNEMONIC_JNL:
case ZYDIS_MNEMONIC_JNLE:
case ZYDIS_MNEMONIC_JNO:
case ZYDIS_MNEMONIC_JNP:
case ZYDIS_MNEMONIC_JNS:
case ZYDIS_MNEMONIC_JNZ:
case ZYDIS_MNEMONIC_JO:
case ZYDIS_MNEMONIC_JP:
case ZYDIS_MNEMONIC_JS:
case ZYDIS_MNEMONIC_JZ:
return &info_lookup[1];
case ZYDIS_MNEMONIC_JCXZ:
return &info_lookup[2];
case ZYDIS_MNEMONIC_JECXZ:
return &info_lookup[3];
case ZYDIS_MNEMONIC_JKNZD:
case ZYDIS_MNEMONIC_JKZD:
return &info_lookup[4];
case ZYDIS_MNEMONIC_JMP:
return &info_lookup[5];
case ZYDIS_MNEMONIC_JRCXZ:
return &info_lookup[6];
case ZYDIS_MNEMONIC_LOOP:
case ZYDIS_MNEMONIC_LOOPE:
case ZYDIS_MNEMONIC_LOOPNE:
return &info_lookup[7];
case ZYDIS_MNEMONIC_XBEGIN:
return &info_lookup[8];
default:
return ZYAN_NULL;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,23 @@
static const ZydisInstructionEncodingInfo INSTR_ENCODINGS[] =
{
{ 0, { { 0, 0, 0 } }, { { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_MODRM, { { 0, 0, 0 } }, { { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_DISP, { { 16, 32, 64 } }, { { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_IMM0, { { 0, 0, 0 } }, { { { 8, 8, 8 }, ZYAN_FALSE, ZYAN_FALSE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_IMM0, { { 0, 0, 0 } }, { { { 16, 16, 16 }, ZYAN_FALSE, ZYAN_FALSE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_IMM0, { { 0, 0, 0 } }, { { { 8, 8, 8 }, ZYAN_TRUE, ZYAN_FALSE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_IMM0, { { 0, 0, 0 } }, { { { 16, 32, 32 }, ZYAN_TRUE, ZYAN_FALSE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_IMM0, { { 0, 0, 0 } }, { { { 16, 32, 64 }, ZYAN_TRUE, ZYAN_FALSE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_IMM0, { { 0, 0, 0 } }, { { { 8, 8, 8 }, ZYAN_TRUE, ZYAN_TRUE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_IMM0, { { 0, 0, 0 } }, { { { 16, 32, 32 }, ZYAN_TRUE, ZYAN_TRUE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_IMM0, { { 0, 0, 0 } }, { { { 32, 32, 32 }, ZYAN_TRUE, ZYAN_TRUE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_MODRM | ZYDIS_INSTR_ENC_FLAG_HAS_IMM0, { { 0, 0, 0 } }, { { { 8, 8, 8 }, ZYAN_FALSE, ZYAN_FALSE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_MODRM | ZYDIS_INSTR_ENC_FLAG_HAS_IMM0, { { 0, 0, 0 } }, { { { 32, 32, 32 }, ZYAN_FALSE, ZYAN_FALSE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_MODRM | ZYDIS_INSTR_ENC_FLAG_HAS_IMM0, { { 0, 0, 0 } }, { { { 8, 8, 8 }, ZYAN_TRUE, ZYAN_FALSE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_MODRM | ZYDIS_INSTR_ENC_FLAG_HAS_IMM0, { { 0, 0, 0 } }, { { { 16, 32, 32 }, ZYAN_TRUE, ZYAN_FALSE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_MODRM | ZYDIS_INSTR_ENC_FLAG_HAS_IMM0, { { 0, 0, 0 } }, { { { 16, 32, 32 }, ZYAN_TRUE, ZYAN_TRUE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_MODRM | ZYDIS_INSTR_ENC_FLAG_FORCE_REG_FORM, { { 0, 0, 0 } }, { { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE }, { { 0, 0, 0 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_IMM0 | ZYDIS_INSTR_ENC_FLAG_HAS_IMM1, { { 0, 0, 0 } }, { { { 16, 16, 16 }, ZYAN_FALSE, ZYAN_FALSE }, { { 8, 8, 8 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_IMM0 | ZYDIS_INSTR_ENC_FLAG_HAS_IMM1, { { 0, 0, 0 } }, { { { 16, 32, 32 }, ZYAN_FALSE, ZYAN_FALSE }, { { 16, 16, 16 }, ZYAN_FALSE, ZYAN_FALSE } } },
{ ZYDIS_INSTR_ENC_FLAG_HAS_MODRM | ZYDIS_INSTR_ENC_FLAG_HAS_IMM0 | ZYDIS_INSTR_ENC_FLAG_HAS_IMM1, { { 0, 0, 0 } }, { { { 8, 8, 8 }, ZYAN_FALSE, ZYAN_FALSE }, { { 8, 8, 8 }, ZYAN_FALSE, ZYAN_FALSE } } }
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,23 @@
static const ZydisRegisterClassLookupItem REG_CLASS_LOOKUP[] =
{
/* INVALID */ { ZYDIS_REGISTER_NONE, ZYDIS_REGISTER_NONE, 0, 0 },
/* GPR8 */ { ZYDIS_REGISTER_AL, ZYDIS_REGISTER_R15B, 8, 8 },
/* GPR16 */ { ZYDIS_REGISTER_AX, ZYDIS_REGISTER_R15W, 16, 16 },
/* GPR32 */ { ZYDIS_REGISTER_EAX, ZYDIS_REGISTER_R15D, 32, 32 },
/* GPR64 */ { ZYDIS_REGISTER_RAX, ZYDIS_REGISTER_R15, 0, 64 },
/* X87 */ { ZYDIS_REGISTER_ST0, ZYDIS_REGISTER_ST7, 80, 80 },
/* MMX */ { ZYDIS_REGISTER_MM0, ZYDIS_REGISTER_MM7, 64, 64 },
/* XMM */ { ZYDIS_REGISTER_XMM0, ZYDIS_REGISTER_XMM31, 128, 128 },
/* YMM */ { ZYDIS_REGISTER_YMM0, ZYDIS_REGISTER_YMM31, 256, 256 },
/* ZMM */ { ZYDIS_REGISTER_ZMM0, ZYDIS_REGISTER_ZMM31, 512, 512 },
/* TMM */ { ZYDIS_REGISTER_TMM0, ZYDIS_REGISTER_TMM7, 8192, 8192 },
/* FLAGS */ { ZYDIS_REGISTER_NONE, ZYDIS_REGISTER_NONE, 0, 0 },
/* IP */ { ZYDIS_REGISTER_NONE, ZYDIS_REGISTER_NONE, 0, 0 },
/* SEGMENT */ { ZYDIS_REGISTER_ES, ZYDIS_REGISTER_GS, 16, 16 },
/* TABLE */ { ZYDIS_REGISTER_NONE, ZYDIS_REGISTER_NONE, 0, 0 },
/* TEST */ { ZYDIS_REGISTER_TR0, ZYDIS_REGISTER_TR7, 32, 32 },
/* CONTROL */ { ZYDIS_REGISTER_CR0, ZYDIS_REGISTER_CR15, 32, 64 },
/* DEBUG */ { ZYDIS_REGISTER_DR0, ZYDIS_REGISTER_DR15, 32, 64 },
/* MASK */ { ZYDIS_REGISTER_K0, ZYDIS_REGISTER_K7, 64, 64 },
/* BOUND */ { ZYDIS_REGISTER_BND0, ZYDIS_REGISTER_BND3, 128, 128 }
};

View File

@ -0,0 +1,269 @@
static const ZydisRegisterLookupItem REG_LOOKUP[] =
{
/* NONE */ { ZYDIS_REGCLASS_INVALID, -1, 0, 0 },
/* AL */ { ZYDIS_REGCLASS_GPR8, 0, 8, 8 },
/* CL */ { ZYDIS_REGCLASS_GPR8, 1, 8, 8 },
/* DL */ { ZYDIS_REGCLASS_GPR8, 2, 8, 8 },
/* BL */ { ZYDIS_REGCLASS_GPR8, 3, 8, 8 },
/* AH */ { ZYDIS_REGCLASS_GPR8, 4, 8, 8 },
/* CH */ { ZYDIS_REGCLASS_GPR8, 5, 8, 8 },
/* DH */ { ZYDIS_REGCLASS_GPR8, 6, 8, 8 },
/* BH */ { ZYDIS_REGCLASS_GPR8, 7, 8, 8 },
/* SPL */ { ZYDIS_REGCLASS_GPR8, 8, 8, 8 },
/* BPL */ { ZYDIS_REGCLASS_GPR8, 9, 8, 8 },
/* SIL */ { ZYDIS_REGCLASS_GPR8, 10, 8, 8 },
/* DIL */ { ZYDIS_REGCLASS_GPR8, 11, 8, 8 },
/* R8B */ { ZYDIS_REGCLASS_GPR8, 12, 8, 8 },
/* R9B */ { ZYDIS_REGCLASS_GPR8, 13, 8, 8 },
/* R10B */ { ZYDIS_REGCLASS_GPR8, 14, 8, 8 },
/* R11B */ { ZYDIS_REGCLASS_GPR8, 15, 8, 8 },
/* R12B */ { ZYDIS_REGCLASS_GPR8, 16, 8, 8 },
/* R13B */ { ZYDIS_REGCLASS_GPR8, 17, 8, 8 },
/* R14B */ { ZYDIS_REGCLASS_GPR8, 18, 8, 8 },
/* R15B */ { ZYDIS_REGCLASS_GPR8, 19, 8, 8 },
/* AX */ { ZYDIS_REGCLASS_GPR16, 0, 16, 16 },
/* CX */ { ZYDIS_REGCLASS_GPR16, 1, 16, 16 },
/* DX */ { ZYDIS_REGCLASS_GPR16, 2, 16, 16 },
/* BX */ { ZYDIS_REGCLASS_GPR16, 3, 16, 16 },
/* SP */ { ZYDIS_REGCLASS_GPR16, 4, 16, 16 },
/* BP */ { ZYDIS_REGCLASS_GPR16, 5, 16, 16 },
/* SI */ { ZYDIS_REGCLASS_GPR16, 6, 16, 16 },
/* DI */ { ZYDIS_REGCLASS_GPR16, 7, 16, 16 },
/* R8W */ { ZYDIS_REGCLASS_GPR16, 8, 16, 16 },
/* R9W */ { ZYDIS_REGCLASS_GPR16, 9, 16, 16 },
/* R10W */ { ZYDIS_REGCLASS_GPR16, 10, 16, 16 },
/* R11W */ { ZYDIS_REGCLASS_GPR16, 11, 16, 16 },
/* R12W */ { ZYDIS_REGCLASS_GPR16, 12, 16, 16 },
/* R13W */ { ZYDIS_REGCLASS_GPR16, 13, 16, 16 },
/* R14W */ { ZYDIS_REGCLASS_GPR16, 14, 16, 16 },
/* R15W */ { ZYDIS_REGCLASS_GPR16, 15, 16, 16 },
/* EAX */ { ZYDIS_REGCLASS_GPR32, 0, 32, 32 },
/* ECX */ { ZYDIS_REGCLASS_GPR32, 1, 32, 32 },
/* EDX */ { ZYDIS_REGCLASS_GPR32, 2, 32, 32 },
/* EBX */ { ZYDIS_REGCLASS_GPR32, 3, 32, 32 },
/* ESP */ { ZYDIS_REGCLASS_GPR32, 4, 32, 32 },
/* EBP */ { ZYDIS_REGCLASS_GPR32, 5, 32, 32 },
/* ESI */ { ZYDIS_REGCLASS_GPR32, 6, 32, 32 },
/* EDI */ { ZYDIS_REGCLASS_GPR32, 7, 32, 32 },
/* R8D */ { ZYDIS_REGCLASS_GPR32, 8, 32, 32 },
/* R9D */ { ZYDIS_REGCLASS_GPR32, 9, 32, 32 },
/* R10D */ { ZYDIS_REGCLASS_GPR32, 10, 32, 32 },
/* R11D */ { ZYDIS_REGCLASS_GPR32, 11, 32, 32 },
/* R12D */ { ZYDIS_REGCLASS_GPR32, 12, 32, 32 },
/* R13D */ { ZYDIS_REGCLASS_GPR32, 13, 32, 32 },
/* R14D */ { ZYDIS_REGCLASS_GPR32, 14, 32, 32 },
/* R15D */ { ZYDIS_REGCLASS_GPR32, 15, 32, 32 },
/* RAX */ { ZYDIS_REGCLASS_GPR64, 0, 0, 64 },
/* RCX */ { ZYDIS_REGCLASS_GPR64, 1, 0, 64 },
/* RDX */ { ZYDIS_REGCLASS_GPR64, 2, 0, 64 },
/* RBX */ { ZYDIS_REGCLASS_GPR64, 3, 0, 64 },
/* RSP */ { ZYDIS_REGCLASS_GPR64, 4, 0, 64 },
/* RBP */ { ZYDIS_REGCLASS_GPR64, 5, 0, 64 },
/* RSI */ { ZYDIS_REGCLASS_GPR64, 6, 0, 64 },
/* RDI */ { ZYDIS_REGCLASS_GPR64, 7, 0, 64 },
/* R8 */ { ZYDIS_REGCLASS_GPR64, 8, 0, 64 },
/* R9 */ { ZYDIS_REGCLASS_GPR64, 9, 0, 64 },
/* R10 */ { ZYDIS_REGCLASS_GPR64, 10, 0, 64 },
/* R11 */ { ZYDIS_REGCLASS_GPR64, 11, 0, 64 },
/* R12 */ { ZYDIS_REGCLASS_GPR64, 12, 0, 64 },
/* R13 */ { ZYDIS_REGCLASS_GPR64, 13, 0, 64 },
/* R14 */ { ZYDIS_REGCLASS_GPR64, 14, 0, 64 },
/* R15 */ { ZYDIS_REGCLASS_GPR64, 15, 0, 64 },
/* ST0 */ { ZYDIS_REGCLASS_X87, 0, 80, 80 },
/* ST1 */ { ZYDIS_REGCLASS_X87, 1, 80, 80 },
/* ST2 */ { ZYDIS_REGCLASS_X87, 2, 80, 80 },
/* ST3 */ { ZYDIS_REGCLASS_X87, 3, 80, 80 },
/* ST4 */ { ZYDIS_REGCLASS_X87, 4, 80, 80 },
/* ST5 */ { ZYDIS_REGCLASS_X87, 5, 80, 80 },
/* ST6 */ { ZYDIS_REGCLASS_X87, 6, 80, 80 },
/* ST7 */ { ZYDIS_REGCLASS_X87, 7, 80, 80 },
/* X87CONTROL */ { ZYDIS_REGCLASS_INVALID, -1, 16, 16 },
/* X87STATUS */ { ZYDIS_REGCLASS_INVALID, -1, 16, 16 },
/* X87TAG */ { ZYDIS_REGCLASS_INVALID, -1, 16, 16 },
/* MM0 */ { ZYDIS_REGCLASS_MMX, 0, 64, 64 },
/* MM1 */ { ZYDIS_REGCLASS_MMX, 1, 64, 64 },
/* MM2 */ { ZYDIS_REGCLASS_MMX, 2, 64, 64 },
/* MM3 */ { ZYDIS_REGCLASS_MMX, 3, 64, 64 },
/* MM4 */ { ZYDIS_REGCLASS_MMX, 4, 64, 64 },
/* MM5 */ { ZYDIS_REGCLASS_MMX, 5, 64, 64 },
/* MM6 */ { ZYDIS_REGCLASS_MMX, 6, 64, 64 },
/* MM7 */ { ZYDIS_REGCLASS_MMX, 7, 64, 64 },
/* XMM0 */ { ZYDIS_REGCLASS_XMM, 0, 128, 128 },
/* XMM1 */ { ZYDIS_REGCLASS_XMM, 1, 128, 128 },
/* XMM2 */ { ZYDIS_REGCLASS_XMM, 2, 128, 128 },
/* XMM3 */ { ZYDIS_REGCLASS_XMM, 3, 128, 128 },
/* XMM4 */ { ZYDIS_REGCLASS_XMM, 4, 128, 128 },
/* XMM5 */ { ZYDIS_REGCLASS_XMM, 5, 128, 128 },
/* XMM6 */ { ZYDIS_REGCLASS_XMM, 6, 128, 128 },
/* XMM7 */ { ZYDIS_REGCLASS_XMM, 7, 128, 128 },
/* XMM8 */ { ZYDIS_REGCLASS_XMM, 8, 128, 128 },
/* XMM9 */ { ZYDIS_REGCLASS_XMM, 9, 128, 128 },
/* XMM10 */ { ZYDIS_REGCLASS_XMM, 10, 128, 128 },
/* XMM11 */ { ZYDIS_REGCLASS_XMM, 11, 128, 128 },
/* XMM12 */ { ZYDIS_REGCLASS_XMM, 12, 128, 128 },
/* XMM13 */ { ZYDIS_REGCLASS_XMM, 13, 128, 128 },
/* XMM14 */ { ZYDIS_REGCLASS_XMM, 14, 128, 128 },
/* XMM15 */ { ZYDIS_REGCLASS_XMM, 15, 128, 128 },
/* XMM16 */ { ZYDIS_REGCLASS_XMM, 16, 128, 128 },
/* XMM17 */ { ZYDIS_REGCLASS_XMM, 17, 128, 128 },
/* XMM18 */ { ZYDIS_REGCLASS_XMM, 18, 128, 128 },
/* XMM19 */ { ZYDIS_REGCLASS_XMM, 19, 128, 128 },
/* XMM20 */ { ZYDIS_REGCLASS_XMM, 20, 128, 128 },
/* XMM21 */ { ZYDIS_REGCLASS_XMM, 21, 128, 128 },
/* XMM22 */ { ZYDIS_REGCLASS_XMM, 22, 128, 128 },
/* XMM23 */ { ZYDIS_REGCLASS_XMM, 23, 128, 128 },
/* XMM24 */ { ZYDIS_REGCLASS_XMM, 24, 128, 128 },
/* XMM25 */ { ZYDIS_REGCLASS_XMM, 25, 128, 128 },
/* XMM26 */ { ZYDIS_REGCLASS_XMM, 26, 128, 128 },
/* XMM27 */ { ZYDIS_REGCLASS_XMM, 27, 128, 128 },
/* XMM28 */ { ZYDIS_REGCLASS_XMM, 28, 128, 128 },
/* XMM29 */ { ZYDIS_REGCLASS_XMM, 29, 128, 128 },
/* XMM30 */ { ZYDIS_REGCLASS_XMM, 30, 128, 128 },
/* XMM31 */ { ZYDIS_REGCLASS_XMM, 31, 128, 128 },
/* YMM0 */ { ZYDIS_REGCLASS_YMM, 0, 256, 256 },
/* YMM1 */ { ZYDIS_REGCLASS_YMM, 1, 256, 256 },
/* YMM2 */ { ZYDIS_REGCLASS_YMM, 2, 256, 256 },
/* YMM3 */ { ZYDIS_REGCLASS_YMM, 3, 256, 256 },
/* YMM4 */ { ZYDIS_REGCLASS_YMM, 4, 256, 256 },
/* YMM5 */ { ZYDIS_REGCLASS_YMM, 5, 256, 256 },
/* YMM6 */ { ZYDIS_REGCLASS_YMM, 6, 256, 256 },
/* YMM7 */ { ZYDIS_REGCLASS_YMM, 7, 256, 256 },
/* YMM8 */ { ZYDIS_REGCLASS_YMM, 8, 256, 256 },
/* YMM9 */ { ZYDIS_REGCLASS_YMM, 9, 256, 256 },
/* YMM10 */ { ZYDIS_REGCLASS_YMM, 10, 256, 256 },
/* YMM11 */ { ZYDIS_REGCLASS_YMM, 11, 256, 256 },
/* YMM12 */ { ZYDIS_REGCLASS_YMM, 12, 256, 256 },
/* YMM13 */ { ZYDIS_REGCLASS_YMM, 13, 256, 256 },
/* YMM14 */ { ZYDIS_REGCLASS_YMM, 14, 256, 256 },
/* YMM15 */ { ZYDIS_REGCLASS_YMM, 15, 256, 256 },
/* YMM16 */ { ZYDIS_REGCLASS_YMM, 16, 256, 256 },
/* YMM17 */ { ZYDIS_REGCLASS_YMM, 17, 256, 256 },
/* YMM18 */ { ZYDIS_REGCLASS_YMM, 18, 256, 256 },
/* YMM19 */ { ZYDIS_REGCLASS_YMM, 19, 256, 256 },
/* YMM20 */ { ZYDIS_REGCLASS_YMM, 20, 256, 256 },
/* YMM21 */ { ZYDIS_REGCLASS_YMM, 21, 256, 256 },
/* YMM22 */ { ZYDIS_REGCLASS_YMM, 22, 256, 256 },
/* YMM23 */ { ZYDIS_REGCLASS_YMM, 23, 256, 256 },
/* YMM24 */ { ZYDIS_REGCLASS_YMM, 24, 256, 256 },
/* YMM25 */ { ZYDIS_REGCLASS_YMM, 25, 256, 256 },
/* YMM26 */ { ZYDIS_REGCLASS_YMM, 26, 256, 256 },
/* YMM27 */ { ZYDIS_REGCLASS_YMM, 27, 256, 256 },
/* YMM28 */ { ZYDIS_REGCLASS_YMM, 28, 256, 256 },
/* YMM29 */ { ZYDIS_REGCLASS_YMM, 29, 256, 256 },
/* YMM30 */ { ZYDIS_REGCLASS_YMM, 30, 256, 256 },
/* YMM31 */ { ZYDIS_REGCLASS_YMM, 31, 256, 256 },
/* ZMM0 */ { ZYDIS_REGCLASS_ZMM, 0, 512, 512 },
/* ZMM1 */ { ZYDIS_REGCLASS_ZMM, 1, 512, 512 },
/* ZMM2 */ { ZYDIS_REGCLASS_ZMM, 2, 512, 512 },
/* ZMM3 */ { ZYDIS_REGCLASS_ZMM, 3, 512, 512 },
/* ZMM4 */ { ZYDIS_REGCLASS_ZMM, 4, 512, 512 },
/* ZMM5 */ { ZYDIS_REGCLASS_ZMM, 5, 512, 512 },
/* ZMM6 */ { ZYDIS_REGCLASS_ZMM, 6, 512, 512 },
/* ZMM7 */ { ZYDIS_REGCLASS_ZMM, 7, 512, 512 },
/* ZMM8 */ { ZYDIS_REGCLASS_ZMM, 8, 512, 512 },
/* ZMM9 */ { ZYDIS_REGCLASS_ZMM, 9, 512, 512 },
/* ZMM10 */ { ZYDIS_REGCLASS_ZMM, 10, 512, 512 },
/* ZMM11 */ { ZYDIS_REGCLASS_ZMM, 11, 512, 512 },
/* ZMM12 */ { ZYDIS_REGCLASS_ZMM, 12, 512, 512 },
/* ZMM13 */ { ZYDIS_REGCLASS_ZMM, 13, 512, 512 },
/* ZMM14 */ { ZYDIS_REGCLASS_ZMM, 14, 512, 512 },
/* ZMM15 */ { ZYDIS_REGCLASS_ZMM, 15, 512, 512 },
/* ZMM16 */ { ZYDIS_REGCLASS_ZMM, 16, 512, 512 },
/* ZMM17 */ { ZYDIS_REGCLASS_ZMM, 17, 512, 512 },
/* ZMM18 */ { ZYDIS_REGCLASS_ZMM, 18, 512, 512 },
/* ZMM19 */ { ZYDIS_REGCLASS_ZMM, 19, 512, 512 },
/* ZMM20 */ { ZYDIS_REGCLASS_ZMM, 20, 512, 512 },
/* ZMM21 */ { ZYDIS_REGCLASS_ZMM, 21, 512, 512 },
/* ZMM22 */ { ZYDIS_REGCLASS_ZMM, 22, 512, 512 },
/* ZMM23 */ { ZYDIS_REGCLASS_ZMM, 23, 512, 512 },
/* ZMM24 */ { ZYDIS_REGCLASS_ZMM, 24, 512, 512 },
/* ZMM25 */ { ZYDIS_REGCLASS_ZMM, 25, 512, 512 },
/* ZMM26 */ { ZYDIS_REGCLASS_ZMM, 26, 512, 512 },
/* ZMM27 */ { ZYDIS_REGCLASS_ZMM, 27, 512, 512 },
/* ZMM28 */ { ZYDIS_REGCLASS_ZMM, 28, 512, 512 },
/* ZMM29 */ { ZYDIS_REGCLASS_ZMM, 29, 512, 512 },
/* ZMM30 */ { ZYDIS_REGCLASS_ZMM, 30, 512, 512 },
/* ZMM31 */ { ZYDIS_REGCLASS_ZMM, 31, 512, 512 },
/* TMM0 */ { ZYDIS_REGCLASS_TMM, 0, 8192, 8192 },
/* TMM1 */ { ZYDIS_REGCLASS_TMM, 1, 8192, 8192 },
/* TMM2 */ { ZYDIS_REGCLASS_TMM, 2, 8192, 8192 },
/* TMM3 */ { ZYDIS_REGCLASS_TMM, 3, 8192, 8192 },
/* TMM4 */ { ZYDIS_REGCLASS_TMM, 4, 8192, 8192 },
/* TMM5 */ { ZYDIS_REGCLASS_TMM, 5, 8192, 8192 },
/* TMM6 */ { ZYDIS_REGCLASS_TMM, 6, 8192, 8192 },
/* TMM7 */ { ZYDIS_REGCLASS_TMM, 7, 8192, 8192 },
/* FLAGS */ { ZYDIS_REGCLASS_FLAGS, -1, 16, 16 },
/* EFLAGS */ { ZYDIS_REGCLASS_FLAGS, -1, 32, 32 },
/* RFLAGS */ { ZYDIS_REGCLASS_FLAGS, -1, 0, 64 },
/* IP */ { ZYDIS_REGCLASS_IP, -1, 16, 16 },
/* EIP */ { ZYDIS_REGCLASS_IP, -1, 32, 32 },
/* RIP */ { ZYDIS_REGCLASS_IP, -1, 0, 64 },
/* ES */ { ZYDIS_REGCLASS_SEGMENT, 0, 16, 16 },
/* CS */ { ZYDIS_REGCLASS_SEGMENT, 1, 16, 16 },
/* SS */ { ZYDIS_REGCLASS_SEGMENT, 2, 16, 16 },
/* DS */ { ZYDIS_REGCLASS_SEGMENT, 3, 16, 16 },
/* FS */ { ZYDIS_REGCLASS_SEGMENT, 4, 16, 16 },
/* GS */ { ZYDIS_REGCLASS_SEGMENT, 5, 16, 16 },
/* GDTR */ { ZYDIS_REGCLASS_TABLE, -1, 0, 0 },
/* LDTR */ { ZYDIS_REGCLASS_TABLE, -1, 0, 0 },
/* IDTR */ { ZYDIS_REGCLASS_TABLE, -1, 0, 0 },
/* TR */ { ZYDIS_REGCLASS_TABLE, -1, 0, 0 },
/* TR0 */ { ZYDIS_REGCLASS_TEST, 0, 32, 32 },
/* TR1 */ { ZYDIS_REGCLASS_TEST, 1, 32, 32 },
/* TR2 */ { ZYDIS_REGCLASS_TEST, 2, 32, 32 },
/* TR3 */ { ZYDIS_REGCLASS_TEST, 3, 32, 32 },
/* TR4 */ { ZYDIS_REGCLASS_TEST, 4, 32, 32 },
/* TR5 */ { ZYDIS_REGCLASS_TEST, 5, 32, 32 },
/* TR6 */ { ZYDIS_REGCLASS_TEST, 6, 32, 32 },
/* TR7 */ { ZYDIS_REGCLASS_TEST, 7, 32, 32 },
/* CR0 */ { ZYDIS_REGCLASS_CONTROL, 0, 32, 64 },
/* CR1 */ { ZYDIS_REGCLASS_CONTROL, 1, 32, 64 },
/* CR2 */ { ZYDIS_REGCLASS_CONTROL, 2, 32, 64 },
/* CR3 */ { ZYDIS_REGCLASS_CONTROL, 3, 32, 64 },
/* CR4 */ { ZYDIS_REGCLASS_CONTROL, 4, 32, 64 },
/* CR5 */ { ZYDIS_REGCLASS_CONTROL, 5, 32, 64 },
/* CR6 */ { ZYDIS_REGCLASS_CONTROL, 6, 32, 64 },
/* CR7 */ { ZYDIS_REGCLASS_CONTROL, 7, 32, 64 },
/* CR8 */ { ZYDIS_REGCLASS_CONTROL, 8, 32, 64 },
/* CR9 */ { ZYDIS_REGCLASS_CONTROL, 9, 32, 64 },
/* CR10 */ { ZYDIS_REGCLASS_CONTROL, 10, 32, 64 },
/* CR11 */ { ZYDIS_REGCLASS_CONTROL, 11, 32, 64 },
/* CR12 */ { ZYDIS_REGCLASS_CONTROL, 12, 32, 64 },
/* CR13 */ { ZYDIS_REGCLASS_CONTROL, 13, 32, 64 },
/* CR14 */ { ZYDIS_REGCLASS_CONTROL, 14, 32, 64 },
/* CR15 */ { ZYDIS_REGCLASS_CONTROL, 15, 32, 64 },
/* DR0 */ { ZYDIS_REGCLASS_DEBUG, 0, 32, 64 },
/* DR1 */ { ZYDIS_REGCLASS_DEBUG, 1, 32, 64 },
/* DR2 */ { ZYDIS_REGCLASS_DEBUG, 2, 32, 64 },
/* DR3 */ { ZYDIS_REGCLASS_DEBUG, 3, 32, 64 },
/* DR4 */ { ZYDIS_REGCLASS_DEBUG, 4, 32, 64 },
/* DR5 */ { ZYDIS_REGCLASS_DEBUG, 5, 32, 64 },
/* DR6 */ { ZYDIS_REGCLASS_DEBUG, 6, 32, 64 },
/* DR7 */ { ZYDIS_REGCLASS_DEBUG, 7, 32, 64 },
/* DR8 */ { ZYDIS_REGCLASS_DEBUG, 8, 32, 64 },
/* DR9 */ { ZYDIS_REGCLASS_DEBUG, 9, 32, 64 },
/* DR10 */ { ZYDIS_REGCLASS_DEBUG, 10, 32, 64 },
/* DR11 */ { ZYDIS_REGCLASS_DEBUG, 11, 32, 64 },
/* DR12 */ { ZYDIS_REGCLASS_DEBUG, 12, 32, 64 },
/* DR13 */ { ZYDIS_REGCLASS_DEBUG, 13, 32, 64 },
/* DR14 */ { ZYDIS_REGCLASS_DEBUG, 14, 32, 64 },
/* DR15 */ { ZYDIS_REGCLASS_DEBUG, 15, 32, 64 },
/* K0 */ { ZYDIS_REGCLASS_MASK, 0, 64, 64 },
/* K1 */ { ZYDIS_REGCLASS_MASK, 1, 64, 64 },
/* K2 */ { ZYDIS_REGCLASS_MASK, 2, 64, 64 },
/* K3 */ { ZYDIS_REGCLASS_MASK, 3, 64, 64 },
/* K4 */ { ZYDIS_REGCLASS_MASK, 4, 64, 64 },
/* K5 */ { ZYDIS_REGCLASS_MASK, 5, 64, 64 },
/* K6 */ { ZYDIS_REGCLASS_MASK, 6, 64, 64 },
/* K7 */ { ZYDIS_REGCLASS_MASK, 7, 64, 64 },
/* BND0 */ { ZYDIS_REGCLASS_BOUND, 0, 128, 128 },
/* BND1 */ { ZYDIS_REGCLASS_BOUND, 1, 128, 128 },
/* BND2 */ { ZYDIS_REGCLASS_BOUND, 2, 128, 128 },
/* BND3 */ { ZYDIS_REGCLASS_BOUND, 3, 128, 128 },
/* BNDCFG */ { ZYDIS_REGCLASS_INVALID, -1, 64, 64 },
/* BNDSTATUS */ { ZYDIS_REGCLASS_INVALID, -1, 64, 64 },
/* MXCSR */ { ZYDIS_REGCLASS_INVALID, -1, 32, 32 },
/* PKRU */ { ZYDIS_REGCLASS_INVALID, -1, 32, 32 },
/* XCR0 */ { ZYDIS_REGCLASS_INVALID, -1, 64, 64 },
/* UIF */ { ZYDIS_REGCLASS_INVALID, -1, 1, 1 }
};