From 1fc7e91465357f8f2ebe627e770d5d050c4c55c8 Mon Sep 17 00:00:00 2001 From: NtQuery Date: Sun, 3 May 2015 12:47:30 +0200 Subject: [PATCH] distorm update --- diStorm/include/distorm.h | 63 +- diStorm/include/mnemonics.h | 14 +- diStorm/src/decoder.c | 86 +- diStorm/src/distorm.c | 53 +- diStorm/src/instructions.c | 25 +- diStorm/src/instructions.h | 33 +- diStorm/src/insts.c | 2961 ++++++++++++++++++----------------- diStorm/src/insts.h | 12 +- diStorm/src/mnemonics.c | 5 +- diStorm/src/operands.c | 20 +- diStorm/src/operands.h | 2 +- 11 files changed, 1706 insertions(+), 1568 deletions(-) diff --git a/diStorm/include/distorm.h b/diStorm/include/distorm.h index 47f3ea1..2ab431f 100644 --- a/diStorm/include/distorm.h +++ b/diStorm/include/distorm.h @@ -91,10 +91,10 @@ typedef unsigned __int8 uint8_t; /* * Operand Size or Adderss size are stored inside the flags: - * 0 - 16 bits - * 1 - 32 bits - * 2 - 64 bits - * 3 - reserved + * 00 - 16 bits + * 01 - 32 bits + * 10 - 64 bits + * 11 - reserved * * If you call these set-macros more than once, you will have to clean the bits before doing so. */ @@ -104,6 +104,8 @@ typedef unsigned __int8 uint8_t; #define FLAG_GET_ADDRSIZE(flags) (((flags) >> 10) & 3) /* To get the LOCK/REPNZ/REP prefixes. */ #define FLAG_GET_PREFIX(flags) ((flags) & 7) +/* Indicates whether the instruction is privileged. */ +#define FLAG_GET_PRIVILEGED(flags) (((flags) & FLAG_PRIVILEGED_INSTRUCTION) != 0) /* * Macros to extract segment registers from 'segment': @@ -179,7 +181,7 @@ typedef struct { */ uint8_t index; - /* Size of: + /* Size in bits of: O_REG: register O_IMM: instruction.imm O_IMM1: instruction.imm.ex.i1 @@ -206,13 +208,18 @@ typedef struct { #define FLAG_HINT_TAKEN (1 << 3) /* Indicates there is a hint non-taken for Jcc instructions only. */ #define FLAG_HINT_NOT_TAKEN (1 << 4) -/* The Imm value is signed extended. */ +/* The Imm value is signed extended (E.G in 64 bit decoding mode, a 32 bit imm is usually sign extended into 64 bit imm). */ #define FLAG_IMM_SIGNED (1 << 5) /* The destination operand is writable. */ #define FLAG_DST_WR (1 << 6) /* The instruction uses RIP-relative indirection. */ #define FLAG_RIP_RELATIVE (1 << 7) +/* See flag FLAG_GET_XXX macros above. */ + +/* The instruction is privileged and can only be used from Ring0. */ +#define FLAG_PRIVILEGED_INSTRUCTION (1 << 15) + /* No register was defined. */ #define R_NONE ((uint8_t)-1) @@ -243,12 +250,12 @@ typedef struct { /* Unused prefixes mask, for each bit that is set that prefix is not used (LSB is byte [addr + 0]). */ uint16_t unusedPrefixesMask; /* Mask of registers that were used in the operands, only used for quick look up, in order to know *some* operand uses that register class. */ - uint16_t usedRegistersMask; + uint32_t usedRegistersMask; /* ID of opcode in the global opcode table. Use for mnemonic look up. */ uint16_t opcode; /* Up to four operands per instruction, ignored if ops[n].type == O_NONE. */ _Operand ops[OPERANDS_NO]; - /* Size of the whole instruction. */ + /* Size of the whole instruction in bytes. */ uint8_t size; /* Segment information of memory indirection, default segment, or overriden one, can be -1. Use SEGMENT macros. */ uint8_t segment; @@ -258,7 +265,7 @@ typedef struct { /* Meta defines the instruction set class, and the flow control flags. Use META macros. */ uint8_t meta; /* The CPU flags that the instruction operates upon. */ - uint8_t modifiedFlagsMask, testedFlagsMask, undefinedFlagsMask; + uint16_t modifiedFlagsMask, testedFlagsMask, undefinedFlagsMask; } _DInst; #ifndef DISTORM_LIGHT @@ -279,7 +286,7 @@ typedef struct { _WString mnemonic; /* Mnemonic of decoded instruction, prefixed if required by REP, LOCK etc. */ _WString operands; /* Operands of the decoded instruction, up to 3 operands, comma-seperated. */ _WString instructionHex; /* Hex dump - little endian, including prefixes. */ - unsigned int size; /* Size of decoded instruction. */ + unsigned int size; /* Size of decoded instruction in bytes. */ _OffsetType offset; /* Start offset of the decoded instruction. */ } _DecodedInst; @@ -300,20 +307,29 @@ typedef struct { #define RM_AVX 0x800 /* YMM0 - YMM15 */ #define RM_CR 0x1000 /* CR0, CR2, CR3, CR4, CR8 */ #define RM_DR 0x2000 /* DR0, DR1, DR2, DR3, DR6, DR7 */ +#define RM_R8 0x4000 /* R8B, R8W, R8D, R8 */ +#define RM_R9 0x8000 /* R9B, R9W, R9D, R9 */ +#define RM_R10 0x10000 /* R10B, R10W, R10D, R10 */ +#define RM_R11 0x20000 /* R11B, R11W, R11D, R11 */ +#define RM_R12 0x40000 /* R12B, R12W, R12D, R12 */ +#define RM_R13 0x80000 /* R13B, R13W, R13D, R13 */ +#define RM_R14 0x100000 /* R14B, R14W, R14D, R14 */ +#define RM_R15 0x200000 /* R15B, R15W, R15D, R15 */ + /* RIP should be checked using the 'flags' field and FLAG_RIP_RELATIVE. * Segments should be checked using the segment macros. * For now R8 - R15 are not supported and non general purpose registers map into same RM. */ -/* CPU Flags that instructions modify, test or undefine. */ -#define D_ZF 1 /* Zero */ -#define D_SF 2 /* Sign */ -#define D_CF 4 /* Carry */ -#define D_OF 8 /* Overflow */ -#define D_PF 0x10 /* Parity */ -#define D_AF 0x20 /* Auxilary */ -#define D_DF 0x40 /* Direction */ -#define D_IF 0x80 /* Interrupt */ +/* CPU flags that instructions modify, test or undefine (are EFLAGS compatible!). */ +#define D_CF 1 /* Carry */ +#define D_PF 4 /* Parity */ +#define D_AF 0x10 /* Auxiliary */ +#define D_ZF 0x40 /* Zero */ +#define D_SF 0x80 /* Sign */ +#define D_IF 0x200 /* Interrupt */ +#define D_DF 0x400 /* Direction */ +#define D_OF 0x800 /* Overflow */ /* * Instructions Set classes: @@ -427,6 +443,15 @@ typedef enum { DECRES_NONE, DECRES_SUCCESS, DECRES_MEMORYERR, DECRES_INPUTERR, D * Notes: 1)The minimal size of maxInstructions is 15. * 2)You will have to synchronize the offset,code and length by yourself if you pass code fragments and not a complete code block! */ + +/* distorm_decompose + * There is lots of documentation about diStorm at https://code.google.com/p/distorm/wiki + * + * Please read https://code.google.com/p/distorm/wiki/DecomposeInterface + * + * And also see https://code.google.com/p/distorm/wiki/TipsnTricks + * + */ #ifdef SUPPORT_64BIT_OFFSET _DecodeResult distorm_decompose64(_CodeInfo* ci, _DInst result[], unsigned int maxInstructions, unsigned int* usedInstructionsCount); diff --git a/diStorm/include/mnemonics.h b/diStorm/include/mnemonics.h index b144c82..a177972 100644 --- a/diStorm/include/mnemonics.h +++ b/diStorm/include/mnemonics.h @@ -124,14 +124,14 @@ typedef enum { I_MOVNTDQA = 7895, I_MOVNTI = 952, I_MOVNTPD = 2556, I_MOVNTPS = 2547, I_MOVNTQ = 6841, I_MOVNTSD = 2574, I_MOVNTSS = 2565, I_MOVQ = 3926, I_MOVQ2DQ = 6513, I_MOVS = 295, I_MOVSD = 2110, I_MOVSHDUP = 2353, I_MOVSLDUP = 2176, I_MOVSS = 2103, I_MOVSX = 939, - I_MOVSXD = 10013, I_MOVUPD = 2095, I_MOVUPS = 2087, I_MOVZX = 927, I_MPSADBW = 9628, + I_MOVSXD = 10005, I_MOVUPD = 2095, I_MOVUPS = 2087, I_MOVZX = 927, I_MPSADBW = 9628, I_MUL = 1625, I_MULPD = 3170, I_MULPS = 3163, I_MULSD = 3184, I_MULSS = 3177, I_MWAIT = 1764, I_NEG = 1620, I_NOP = 581, I_NOT = 1615, I_OR = 27, I_ORPD = 3053, I_ORPS = 3047, I_OUT = 451, I_OUTS = 128, I_PABSB = 7688, I_PABSD = 7718, I_PABSW = 7703, I_PACKSSDW = 3849, I_PACKSSWB = 3681, I_PACKUSDW = 7916, I_PACKUSWB = 3759, I_PADDB = 7204, I_PADDD = 7234, I_PADDQ = 6481, I_PADDSB = 6930, I_PADDSW = 6947, I_PADDUSB = 6620, I_PADDUSW = 6639, I_PADDW = 7219, I_PALIGNR = 9410, I_PAND = 6607, - I_PANDN = 6665, I_PAUSE = 10021, I_PAVGB = 6680, I_PAVGUSB = 2078, I_PAVGW = 6725, + I_PANDN = 6665, I_PAUSE = 10013, I_PAVGB = 6680, I_PAVGUSB = 2078, I_PAVGW = 6725, I_PBLENDVB = 7599, I_PBLENDW = 9391, I_PCLMULQDQ = 9647, I_PCMPEQB = 4043, I_PCMPEQD = 4081, I_PCMPEQQ = 7876, I_PCMPEQW = 4062, I_PCMPESTRI = 9726, I_PCMPESTRM = 9703, I_PCMPGTB = 3702, I_PCMPGTD = 3740, I_PCMPGTQ = 8087, @@ -163,7 +163,7 @@ typedef enum { I_PUNPCKLDQ = 3658, I_PUNPCKLQDQ = 3870, I_PUNPCKLWD = 3635, I_PUSH = 16, I_PUSHA = 91, I_PUSHF = 270, I_PXOR = 6981, I_RCL = 977, I_RCPPS = 2953, I_RCPSS = 2960, I_RCR = 982, I_RDFSBASE = 9882, I_RDGSBASE = 9912, I_RDMSR = 600, I_RDPMC = 607, - I_RDRAND = 9980, I_RDTSC = 593, I_RDTSCP = 1864, I_RET = 325, I_RETF = 354, + I_RDRAND = 10026, I_RDTSC = 593, I_RDTSCP = 1864, I_RET = 325, I_RETF = 354, I_ROL = 967, I_ROR = 972, I_ROUNDPD = 9296, I_ROUNDPS = 9277, I_ROUNDSD = 9334, I_ROUNDSS = 9315, I_RSM = 882, I_RSQRTPS = 2915, I_RSQRTSS = 2924, I_SAHF = 283, I_SAL = 997, I_SALC = 394, I_SAR = 1002, I_SBB = 36, I_SCAS = 319, I_SETA = 807, @@ -241,7 +241,7 @@ typedef enum { I_VHADDPD = 4197, I_VHADDPS = 4206, I_VHSUBPD = 4231, I_VHSUBPS = 4240, I_VINSERTF128 = 9503, I_VINSERTPS = 9557, I_VLDDQU = 7001, I_VLDMXCSR = 9941, I_VMASKMOVDQU = 7131, I_VMASKMOVPD = 7949, I_VMASKMOVPS = 7937, I_VMAXPD = 3588, I_VMAXPS = 3580, - I_VMAXSD = 3604, I_VMAXSS = 3596, I_VMCALL = 1719, I_VMCLEAR = 9997, I_VMFUNC = 1787, + I_VMAXSD = 3604, I_VMAXSS = 3596, I_VMCALL = 1719, I_VMCLEAR = 9989, I_VMFUNC = 1787, I_VMINPD = 3468, I_VMINPS = 3460, I_VMINSD = 3484, I_VMINSS = 3476, I_VMLAUNCH = 1727, I_VMLOAD = 1811, I_VMMCALL = 1802, I_VMOVAPD = 2476, I_VMOVAPS = 2467, I_VMOVD = 3932, I_VMOVDDUP = 2234, I_VMOVDQA = 3962, I_VMOVDQU = 3971, I_VMOVHLPS = 2195, @@ -249,9 +249,9 @@ typedef enum { I_VMOVMSKPD = 2836, I_VMOVMSKPS = 2825, I_VMOVNTDQ = 6858, I_VMOVNTDQA = 7905, I_VMOVNTPD = 2593, I_VMOVNTPS = 2583, I_VMOVQ = 3939, I_VMOVSD = 2143, I_VMOVSHDUP = 2391, I_VMOVSLDUP = 2223, I_VMOVSS = 2135, I_VMOVUPD = 2126, I_VMOVUPS = 2117, I_VMPSADBW = 9637, - I_VMPTRLD = 9988, I_VMPTRST = 6385, I_VMREAD = 4128, I_VMRESUME = 1737, I_VMRUN = 1795, + I_VMPTRLD = 9980, I_VMPTRST = 6385, I_VMREAD = 4128, I_VMRESUME = 1737, I_VMRUN = 1795, I_VMSAVE = 1819, I_VMULPD = 3199, I_VMULPS = 3191, I_VMULSD = 3215, I_VMULSS = 3207, - I_VMWRITE = 4152, I_VMXOFF = 1747, I_VMXON = 10006, I_VORPD = 3066, I_VORPS = 3059, + I_VMWRITE = 4152, I_VMXOFF = 1747, I_VMXON = 9998, I_VORPD = 3066, I_VORPS = 3059, I_VPABSB = 7695, I_VPABSD = 7725, I_VPABSW = 7710, I_VPACKSSDW = 3859, I_VPACKSSWB = 3691, I_VPACKUSDW = 7926, I_VPACKUSWB = 3769, I_VPADDB = 7211, I_VPADDD = 7241, I_VPADDQ = 6488, I_VPADDSB = 6938, I_VPADDSW = 6955, I_VPADDUSW = 6629, I_VPADDW = 7226, @@ -287,7 +287,7 @@ typedef enum { I_VTESTPD = 7590, I_VTESTPS = 7581, I_VUCOMISD = 2761, I_VUCOMISS = 2751, I_VUNPCKHPD = 2317, I_VUNPCKHPS = 2306, I_VUNPCKLPD = 2275, I_VUNPCKLPS = 2264, I_VXORPD = 3095, I_VXORPS = 3087, I_VZEROALL = 4118, I_VZEROUPPER = 4106, - I_WAIT = 10028, I_WBINVD = 561, I_WRFSBASE = 9931, I_WRGSBASE = 9960, I_WRMSR = 586, + I_WAIT = 10020, I_WBINVD = 561, I_WRFSBASE = 9931, I_WRGSBASE = 9960, I_WRMSR = 586, I_XADD = 946, I_XCHG = 212, I_XGETBV = 1771, I_XLAT = 400, I_XOR = 61, I_XORPD = 3080, I_XORPS = 3073, I_XRSTOR = 4273, I_XRSTOR64 = 4281, I_XSAVE = 4249, I_XSAVE64 = 4256, I_XSAVEOPT = 4299, I_XSAVEOPT64 = 4309, I_XSETBV = 1779, I__3DNOW = 10034 diff --git a/diStorm/src/decoder.c b/diStorm/src/decoder.c index 4ecd05e..3ffc3a1 100644 --- a/diStorm/src/decoder.c +++ b/diStorm/src/decoder.c @@ -78,8 +78,17 @@ static _DecodeType decode_get_effective_op_size(_DecodeType dt, _iflags decodedP return dt; } +/* A helper macro to convert from diStorm's CPU flags to EFLAGS. */ +#define CONVERT_FLAGS_TO_EFLAGS(dst, src, field) dst->field = ((src->field & D_COMPACT_SAME_FLAGS) | \ + ((src->field & D_COMPACT_IF) ? D_IF : 0) | \ + ((src->field & D_COMPACT_DF) ? D_DF : 0) | \ + ((src->field & D_COMPACT_OF) ? D_OF : 0)); + static _DecodeResult decode_inst(_CodeInfo* ci, _PrefixState* ps, _DInst* di) { + /* Remember whether the instruction is privileged. */ + uint16_t privilegedFlag = 0; + /* The ModR/M byte of the current instruction. */ unsigned int modrm = 0; @@ -106,7 +115,7 @@ static _DecodeResult decode_inst(_CodeInfo* ci, _PrefixState* ps, _DInst* di) */ int lockable = FALSE; - /* Calcualte (and cache) effective-operand-size and effective-address-size only once. */ + /* Calculate (and cache) effective-operand-size and effective-address-size only once. */ _DecodeType effOpSz, effAdrSz; _iflags instFlags; @@ -115,6 +124,10 @@ static _DecodeResult decode_inst(_CodeInfo* ci, _PrefixState* ps, _DInst* di) isi = &InstSharedInfoTable[ii->sharedIndex]; instFlags = FlagsTable[isi->flagsIndex]; + /* Copy the privileged bit and remove it from the opcodeId field ASAP. */ + privilegedFlag = ii->opcodeId & OPCODE_ID_PRIVILEGED; + ii->opcodeId &= ~OPCODE_ID_PRIVILEGED; + /* * If both REX and OpSize are available we will have to disable the OpSize, because REX has precedence. * However, only if REX.W is set ! @@ -135,8 +148,8 @@ static _DecodeResult decode_inst(_CodeInfo* ci, _PrefixState* ps, _DInst* di) * Which practically means, don't allow 32 bits instructions in 16 bits decoding mode, but do allow * 16 bits instructions in 32 bits decoding mode, of course... - * NOTE: Make sure the instruction set for 32 bits has explicitly this specfic flag set. - * NOTE2: Make sure the instruction set for 64 bits has explicitly this specfic flag set. + * NOTE: Make sure the instruction set for 32 bits has explicitly this specific flag set. + * NOTE2: Make sure the instruction set for 64 bits has explicitly this specific flag set. * If this is the case, drop what we've got and restart all over after DB'ing that byte. @@ -263,7 +276,7 @@ static _DecodeResult decode_inst(_CodeInfo* ci, _PrefixState* ps, _DInst* di) else if ((instFlags & (INST_PRE_ADDR_SIZE | INST_NATIVE)) == (INST_PRE_ADDR_SIZE | INST_NATIVE)) { di->opcode = ii->opcodeId; - /* If LOOPxx gets here from 64bits, it must be Decode32Bits because Address Size perfix is set. */ + /* If LOOPxx gets here from 64bits, it must be Decode32Bits because Address Size prefix is set. */ ps->usedPrefixes |= INST_PRE_ADDR_SIZE; } /* @@ -336,10 +349,10 @@ static _DecodeResult decode_inst(_CodeInfo* ci, _PrefixState* ps, _DInst* di) * Therefore, we use another table to fix the offset. */ if (instFlags & INST_PRE_VEX) { - /* Use the AVX pesudo compare mnemonics table. */ + /* Use the AVX pseudo compare mnemonics table. */ di->opcode = ii->opcodeId + VCmpMnemonicOffsets[cmpType]; } else { - /* Use the SSE psuedo compare mnemonics table. */ + /* Use the SSE pseudo compare mnemonics table. */ di->opcode = ii->opcodeId + CmpMnemonicOffsets[cmpType]; } } @@ -356,6 +369,9 @@ static _DecodeResult decode_inst(_CodeInfo* ci, _PrefixState* ps, _DInst* di) /* Set the unused prefixes mask. */ di->unusedPrefixesMask = prefixes_set_unused_mask(ps); + /* Fix privileged. Assumes the privilegedFlag is 0x8000 only. */ + di->flags |= privilegedFlag; + /* Copy instruction meta. */ di->meta = isi->meta; if (di->segment == 0) di->segment = R_NONE; @@ -364,9 +380,9 @@ static _DecodeResult decode_inst(_CodeInfo* ci, _PrefixState* ps, _DInst* di) if (di->base != R_NONE) di->usedRegistersMask |= _REGISTERTORCLASS[di->base]; /* Copy CPU affected flags. */ - di->modifiedFlagsMask = isi->modifiedFlags; - di->testedFlagsMask = isi->testedFlags; - di->undefinedFlagsMask = isi->undefinedFlags; + CONVERT_FLAGS_TO_EFLAGS(di, isi, modifiedFlagsMask); + CONVERT_FLAGS_TO_EFLAGS(di, isi, testedFlagsMask); + CONVERT_FLAGS_TO_EFLAGS(di, isi, undefinedFlagsMask); /* Calculate the size of the instruction we've just decoded. */ di->size = (uint8_t)((ci->code - startCode) & 0xff); @@ -404,6 +420,8 @@ _DecodeResult decode_internal(_CodeInfo* _ci, int supportOldIntr, _DInst result[ _PrefixState ps; unsigned int prefixSize; _CodeInfo ci; + unsigned int features; + unsigned int mfc; _OffsetType codeOffset = _ci->codeOffset; const uint8_t* code = _ci->code; @@ -428,10 +446,15 @@ _DecodeResult decode_internal(_CodeInfo* _ci, int supportOldIntr, _DInst result[ #ifdef DISTORM_LIGHT supportOldIntr; /* Unreferenced. */ -#endif + /* + * Only truncate address if we are using the decompose interface. + * Otherwise, we use the textual interface which needs full addresses for formatting bytes output. + * So distorm_format will truncate later. + */ if (_ci->features & DF_MAXIMUM_ADDR32) addrMask = 0xffffffff; else if (_ci->features & DF_MAXIMUM_ADDR16) addrMask = 0xffff; +#endif /* No entries are used yet. */ *usedInstructionsCount = 0; @@ -557,13 +580,26 @@ _DecodeResult decode_internal(_CodeInfo* _ci, int supportOldIntr, _DInst result[ pdi->addr = startInstOffset & addrMask; /* pdi->disp &= addrMask; */ - /* Advance to next instruction. */ - codeLen -= pdi->size; - codeOffset += pdi->size; - code += pdi->size; + if ((decodeResult == DECRES_INPUTERR) && (ps.decodedPrefixes & INST_PRE_VEX)) { + if (ps.prefixExtType == PET_VEX3BYTES) { + prefixSize -= 2; + codeLen += 2; + } else if (ps.prefixExtType == PET_VEX2BYTES) { + prefixSize -= 1; + codeLen += 1; + } + ps.last = ps.start + prefixSize - 1; + code = ps.last + 1; + codeOffset = startInstOffset + prefixSize; + } else { + /* Advance to next instruction. */ + codeLen -= pdi->size; + codeOffset += pdi->size; + code += pdi->size; - /* Instruction's size should include prefixes. */ - pdi->size += (uint8_t)prefixSize; + /* Instruction's size should include prefixes. */ + pdi->size += (uint8_t)prefixSize; + } /* Drop all prefixes and the instruction itself, because the instruction wasn't successfully decoded. */ if ((decodeResult == DECRES_INPUTERR) && (~_ci->features & DF_RETURN_FC_ONLY)) { @@ -599,14 +635,16 @@ _DecodeResult decode_internal(_CodeInfo* _ci, int supportOldIntr, _DInst result[ _ci->nextOffset = codeOffset; /* Check whether we need to stop on any flow control instruction. */ - if ((decodeResult == DECRES_SUCCESS) && (_ci->features & DF_STOP_ON_FLOW_CONTROL)) { - if (((_ci->features & DF_STOP_ON_CALL) && (META_GET_FC(pdi->meta) == FC_CALL)) || - ((_ci->features & DF_STOP_ON_RET) && (META_GET_FC(pdi->meta) == FC_RET)) || - ((_ci->features & DF_STOP_ON_SYS) && (META_GET_FC(pdi->meta) == FC_SYS)) || - ((_ci->features & DF_STOP_ON_UNC_BRANCH) && (META_GET_FC(pdi->meta) == FC_UNC_BRANCH)) || - ((_ci->features & DF_STOP_ON_CND_BRANCH) && (META_GET_FC(pdi->meta) == FC_CND_BRANCH)) || - ((_ci->features & DF_STOP_ON_INT) && (META_GET_FC(pdi->meta) == FC_INT)) || - ((_ci->features & DF_STOP_ON_CMOV) && (META_GET_FC(pdi->meta) == FC_CMOV))) + features = _ci->features; + mfc = META_GET_FC(pdi->meta); + if ((decodeResult == DECRES_SUCCESS) && (features & DF_STOP_ON_FLOW_CONTROL)) { + if (((features & DF_STOP_ON_CALL) && (mfc == FC_CALL)) || + ((features & DF_STOP_ON_RET) && (mfc == FC_RET)) || + ((features & DF_STOP_ON_SYS) && (mfc == FC_SYS)) || + ((features & DF_STOP_ON_UNC_BRANCH) && (mfc == FC_UNC_BRANCH)) || + ((features & DF_STOP_ON_CND_BRANCH) && (mfc == FC_CND_BRANCH)) || + ((features & DF_STOP_ON_INT) && (mfc == FC_INT)) || + ((features & DF_STOP_ON_CMOV) && (mfc == FC_CMOV))) return DECRES_SUCCESS; } } diff --git a/diStorm/src/distorm.c b/diStorm/src/distorm.c index 59e737c..c09297f 100644 --- a/diStorm/src/distorm.c +++ b/diStorm/src/distorm.c @@ -64,9 +64,10 @@ along with this program. If not, see #ifndef DISTORM_LIGHT -/* Helper function to concat an explicit size when it's unknown from the operands. */ +/* Helper function to concatenate an explicit size when it's unknown from the operands. */ static void distorm_format_size(_WString* str, const _DInst* di, int opNum) { + int isSizingRequired = 0; /* * We only have to output the size explicitly if it's not clear from the operands. * For example: @@ -75,13 +76,42 @@ static void distorm_format_size(_WString* str, const _DInst* di, int opNum) * * If given operand number is higher than 2, then output the size anyways. */ - if (((opNum >= 2) || ((di->ops[0].type != O_REG) && (di->ops[1].type != O_REG))) || + isSizingRequired = ((opNum >= 2) || ((di->ops[0].type != O_REG) && (di->ops[1].type != O_REG))); + + /* Still not sure? Try some special instructions. */ + if (!isSizingRequired) { /* * INS/OUTS are exception, because DX is a port specifier and not a real src/dst register. - * MOVZX is also an exception, because the source operand can be a memory indirection: - * MOVZX EBX, [ECX], but which size from ECX was read? + * A few exceptions that always requires sizing: + * MOVZX, MOVSX, MOVSXD. + * ROL, ROR, RCL, RCR, SHL, SHR, SAL, SAR. + * SHLD, SHRD. */ - ((di->opcode == I_INS) || (di->opcode == I_OUTS) || (di->opcode == I_MOVZX))) { + switch (di->opcode) + { + case I_INS: + case I_OUTS: + case I_MOVZX: + case I_MOVSX: + case I_MOVSXD: + case I_ROL: + case I_ROR: + case I_RCL: + case I_RCR: + case I_SHL: + case I_SHR: + case I_SAL: + case I_SAR: + case I_SHLD: + case I_SHRD: + isSizingRequired = 1; + break; + default: /* Instruction doesn't require sizing. */ break; + } + } + + if (isSizingRequired) + { switch (di->ops[opNum].size) { case 0: break; /* OT_MEM's unknown size. */ @@ -129,10 +159,11 @@ static void distorm_format_signed_disp(_WString* str, const _DInst* di, uint64_t /* Copy other fields. */ result->size = di->size; - result->offset = di->addr & addrMask; + result->offset = di->addr; if (di->flags == FLAG_NOT_DECODABLE) { str = &result->mnemonic; + result->offset &= addrMask; strclear_WS(&result->operands); strcpy_WSN(str, "DB "); str_code_hb(str, di->imm.byte); @@ -143,9 +174,13 @@ static void distorm_format_signed_disp(_WString* str, const _DInst* di, uint64_t str = &result->instructionHex; strclear_WS(str); + /* Gotta have full address for (di->addr - ci->codeOffset) to work in all modes. */ for (i = 0; i < di->size; i++) str_hex_b(str, ci->code[(unsigned int)(di->addr - ci->codeOffset + i)]); + /* Truncate address now. */ + result->offset &= addrMask; + str = &result->mnemonic; switch (FLAG_GET_PREFIX(di->flags)) { @@ -153,7 +188,9 @@ static void distorm_format_signed_disp(_WString* str, const _DInst* di, uint64_t strcpy_WSN(str, "LOCK "); break; case FLAG_REP: - strcpy_WSN(str, "REP "); + /* REP prefix for CMPS and SCAS is really a REPZ. */ + if ((di->opcode == I_CMPS) || (di->opcode == I_SCAS)) strcpy_WSN(str, "REPZ "); + else strcpy_WSN(str, "REP "); break; case FLAG_REPNZ: strcpy_WSN(str, "REPNZ "); @@ -207,7 +244,7 @@ static void distorm_format_signed_disp(_WString* str, const _DInst* di, uint64_t break; case O_IMM: /* If the instruction is 'push', show explicit size (except byte imm). */ - if (di->opcode == I_PUSH && di->ops[i].size != 8) distorm_format_size(str, di, i); + if ((di->opcode == I_PUSH) && (di->ops[i].size != 8)) distorm_format_size(str, di, i); /* Special fix for negative sign extended immediates. */ if ((di->flags & FLAG_IMM_SIGNED) && (di->ops[i].size == 8)) { if (di->imm.sbyte < 0) { diff --git a/diStorm/src/instructions.c b/diStorm/src/instructions.c index 0e2e479..b0193e7 100644 --- a/diStorm/src/instructions.c +++ b/diStorm/src/instructions.c @@ -42,7 +42,7 @@ When you read a byte and have to decide if it's enough or you should read more b It's really fast because you POP the instruction info in top 3 iterates on the DB, because an instruction can be formed from two bytes + 3 bits reg from the ModR/M byte. For a simple explanation, check this out: http://www.csse.monash.edu.au/~lloyd/tildeAlgDS/Tree/Trie/ -Futher reading: http://en.wikipedia.org/wiki/Trie +Further reading: http://en.wikipedia.org/wiki/Trie The first GATE (array you read off a trie data structure), as I call them, is statically allocated by the compiler. The second and third gates if used are being allocated dynamically by the instructions-insertion functionality. @@ -86,9 +86,9 @@ But if you read 1, you know that you go to an instruction (in this case, a RET). That's why there's an Instruction-Node structure, it tells you whether you got to an instruction or another list so you should keep on reading byte). -In Intel, you could go through 4 gates at top, because there're instructions which are built from 2 bytes and another smaller list +In Intel, you could go through 4 gates at top, because there are instructions which are built from 2 bytes and another smaller list for the REG part, or newest SSE4 instructions which use 4 bytes for opcode. -Therefore, Intel's first gate is 256 long, and other gates are 256 (/72) or 8 long, yes, it costs pretty much alot of memory +Therefore, Intel's first gate is 256 long, and other gates are 256 (/72) or 8 long, yes, it costs pretty much a lot of memory for non-used defined instructions, but I think that it still rocks. */ @@ -139,7 +139,7 @@ static _InstInfo* inst_get_info(_InstNode in, int index) * Now, it's a mandatory prefix and NOT an operand size one. * 66480f2dc0 db 0x48; CVTPD2PI XMM0, XMM0 * Although this instruction doesn't require a REX.W, it just shows, that even if it did - it doesn't matter. - * REX.W is dropped because it's not requried, but the decode function disabled the operand size even so. + * REX.W is dropped because it's not required, but the decode function disabled the operand size even so. */ static _InstInfo* inst_lookup_prefixed(_InstNode in, _PrefixState* ps) { @@ -228,7 +228,7 @@ static _InstInfo* inst_vex_mod_lookup(_CodeInfo* ci, _InstNode in, _InstInfo* ii /* Make a second lookup for this special instruction. */ return inst_get_info(in, index); } - /* Return the original one, in case we didn't find a stuited instruction. */ + /* Return the original one, in case we didn't find a suited instruction. */ return ii; } @@ -423,7 +423,7 @@ _InstInfo* inst_lookup(_CodeInfo* ci, _PrefixState* ps) return instType == INT_INFO ? &InstInfos[INST_NODE_INDEX(in)] : (_InstInfo*)&InstInfosEx[INST_NODE_INDEX(in)]; } - /* Read second byte, still doens't mean all of its bits are used (I.E: ModRM). */ + /* Read second byte, still doesn't mean all of its bits are used (I.E: ModRM). */ ci->code += 1; ci->codeLen -= 1; if (ci->codeLen < 0) return NULL; @@ -434,7 +434,7 @@ _InstInfo* inst_lookup(_CodeInfo* ci, _PrefixState* ps) /* Try single byte instruction + reg byte OR one whole byte (OCST_1dBYTES). */ if (instType == INT_LIST_DIVIDED) { - /* OCST_1dBYTES is relatively simple to OCST_2dBYTES, since it's really divided at 0xc0. */ + /* OCST_1dBYTES is relatively similar to OCST_2dBYTES, since it's really divided at 0xc0. */ if (tmpIndex1 < INST_DIVIDED_MODRM) { /* An instruction which requires a ModR/M byte. Thus it's 1.3 bytes long instruction. */ tmpIndex1 = (tmpIndex1 >> 3) & 7; /* Isolate the 3 REG/OPCODE bits. */ @@ -443,7 +443,7 @@ _InstInfo* inst_lookup(_CodeInfo* ci, _PrefixState* ps) * Divided instructions can't be in the range of 0x8-0xc0. * That's because 0-8 are used for 3 bits group. * And 0xc0-0xff are used for not-divided instruction. - * So the inbetween range is omitted, thus saving some more place in the tables. + * So the in between range is omitted, thus saving some more place in the tables. */ tmpIndex1 -= INST_DIVIDED_MODRM - 8; } @@ -484,14 +484,14 @@ _InstInfo* inst_lookup(_CodeInfo* ci, _PrefixState* ps) return instType == INT_INFO ? &InstInfos[INST_NODE_INDEX(in)] : (_InstInfo*)&InstInfosEx[INST_NODE_INDEX(in)]; /* - * 2 bytes + mandatory perfix. + * 2 bytes + mandatory prefix. * Mandatory prefixes can be anywhere in the prefixes. * There cannot be more than one mandatory prefix, unless it's a normal operand size prefix. */ if (instType == INT_LIST_PREFIXED) return inst_lookup_prefixed(in, ps); } - /* Read third byte, still doens't mean all of its bits are used (I.E: ModRM). */ + /* Read third byte, still doesn't mean all of its bits are used (I.E: ModRM). */ ci->code += 1; ci->codeLen -= 1; if (ci->codeLen < 0) return NULL; @@ -507,7 +507,10 @@ _InstInfo* inst_lookup(_CodeInfo* ci, _PrefixState* ps) return instType == INT_INFO ? &InstInfos[INST_NODE_INDEX(in)] : (_InstInfo*)&InstInfosEx[INST_NODE_INDEX(in)]; /* It has to be a prefixed table then. */ - return inst_lookup_prefixed(in, ps); + ii = inst_lookup_prefixed(in, ps); + /* RDRAND and VMPTRLD share same 2.3 bytes opcode, and alternate on the MOD bits. See insts.h for more info. */ + if ((ii != NULL) && (ii->opcodeId == I_VMPTRLD) && (tmpIndex1 >= INST_DIVIDED_MODRM)) return &II_RDRAND; + return ii; } /* Try 2 bytes + divided range (OCST_2dBYTES). */ diff --git a/diStorm/src/instructions.h b/diStorm/src/instructions.h index 0806c71..812e211 100644 --- a/diStorm/src/instructions.h +++ b/diStorm/src/instructions.h @@ -376,6 +376,9 @@ typedef enum OpType { /* Indicates that the instruction doesn't use the VVVV field of the VEX prefix, if it does then it's undecodable. */ #define INST_VEX_V_UNUSED (1 << 6) +/* Indication that the instruction is privileged (Ring 0), this should be checked on the opcodeId field. */ +#define OPCODE_ID_PRIVILEGED ((uint16_t)0x8000) + /* * Indicates which operand is being decoded. * Destination (1st), Source (2nd), op3 (3rd), op4 (4th). @@ -383,6 +386,20 @@ typedef enum OpType { */ typedef enum {ONT_NONE = -1, ONT_1 = 0, ONT_2 = 1, ONT_3 = 2, ONT_4 = 3} _OperandNumberType; +/* CPU Flags that instructions modify, test or undefine, in compacted form (CF,PF,AF,ZF,SF are 1:1 map to EFLAGS). */ +#define D_COMPACT_CF 1 /* Carry */ +#define D_COMPACT_PF 4 /* Parity */ +#define D_COMPACT_AF 0x10 /* Auxiliary */ +#define D_COMPACT_ZF 0x40 /* Zero */ +#define D_COMPACT_SF 0x80 /* Sign */ +/* The following flags have to be translated to EFLAGS. */ +#define D_COMPACT_IF 2 /* Interrupt */ +#define D_COMPACT_DF 8 /* Direction */ +#define D_COMPACT_OF 0x20 /* Overflow */ + +/* The mask of flags that are already compatible with EFLAGS. */ +#define D_COMPACT_SAME_FLAGS (D_COMPACT_CF | D_COMPACT_PF | D_COMPACT_AF | D_COMPACT_ZF | D_COMPACT_SF) + /* * In order to save more space for storing the DB statically, * I came up with another level of shared info. @@ -395,19 +412,23 @@ typedef struct { uint8_t flagsIndex; /* An index into FlagsTables */ uint8_t s, d; /* OpType. */ uint8_t meta; /* Hi 5 bits = Instruction set class | Lo 3 bits = flow control flags. */ - /* The following are CPU flag masks that the instruction changes. */ - uint8_t modifiedFlags; - uint8_t testedFlags; - uint8_t undefinedFlags; + /* + * The following are CPU flag masks that the instruction changes. + * The flags are compacted so 8 bits representation is enough. + * They will be expanded in runtime to be compatible to EFLAGS. + */ + uint8_t modifiedFlagsMask; + uint8_t testedFlagsMask; + uint8_t undefinedFlagsMask; } _InstSharedInfo; /* * This structure is used for the instructions DB and NOT for the disassembled result code! - * This is the BASE structure, there are extentions to this structure below. + * This is the BASE structure, there are extensions to this structure below. */ typedef struct { uint16_t sharedIndex; /* An index into the SharedInfoTable. */ - uint16_t opcodeId; /* The opcodeId is really a byte-offset into the mnemonics table. */ + uint16_t opcodeId; /* The opcodeId is really a byte-offset into the mnemonics table. MSB is a privileged indication. */ } _InstInfo; /* diff --git a/diStorm/src/insts.c b/diStorm/src/insts.c index dffeb47..a644d2c 100644 --- a/diStorm/src/insts.c +++ b/diStorm/src/insts.c @@ -27,16 +27,17 @@ along with this program. If not, see /* - * GENERATED BY disOps at Fri Sep 21 15:33:01 2012 + * GENERATED BY disOps at Sat Dec 13 21:47:42 2014 */ -_InstInfo II_MOVSXD = /*II*/ {0x1cf, 10013}; +_InstInfo II_MOVSXD = /*II*/ {0x1d0, 10005}; _InstInfo II_NOP = /*II*/ {0x53, 581}; -_InstInfo II_PAUSE = /*II*/ {0x88, 10021}; -_InstInfo II_WAIT = /*II*/ {0x53, 10028}; -_InstInfo II_3DNOW = /*II*/ {0x1d0, 10034}; +_InstInfo II_PAUSE = /*II*/ {0x88, 10013}; +_InstInfo II_WAIT = /*II*/ {0x53, 10020}; +_InstInfo II_RDRAND = /*II*/ {0x1d1, 10026}; +_InstInfo II_3DNOW = /*II*/ {0x1d2, 10034}; -_iflags FlagsTable[98] = { +_iflags FlagsTable[100] = { 0x80000011, 0x80000000, 0x800400, @@ -127,8 +128,10 @@ _iflags FlagsTable[98] = { 0x21020009, 0xc7000019, 0x20100009, -0x40002009, +0xc0002009, 0x40002008, +0xc0000000, +0xc0002008, 0x4020009, 0x40100009, 0x60120009, @@ -142,7 +145,7 @@ _InstNode Table_0F_0F = 1312; _InstNode Table_0F_38 = 1768; _InstNode Table_0F_3A = 2024; -_InstInfo InstInfos[1242] = { +_InstInfo InstInfos[1243] = { /*II_00*/ {0x0, 11}, /*II_01*/ {0x1, 11}, /*II_02*/ {0x2, 11}, @@ -240,10 +243,10 @@ _InstInfo InstInfos[1242] = { /*II_63*/ {0x32, 111}, /*II_68*/ {0x33, 16}, /*II_6A*/ {0x35, 16}, - /*II_6C*/ {0x36, 123}, - /*II_6D*/ {0x37, 123}, - /*II_6E*/ {0x38, 128}, - /*II_6F*/ {0x39, 128}, + /*II_6C*/ {0x36, 32891}, + /*II_6D*/ {0x37, 32891}, + /*II_6E*/ {0x38, 32896}, + /*II_6F*/ {0x39, 32896}, /*II_70*/ {0x3a, 134}, /*II_71*/ {0x3a, 138}, /*II_72*/ {0x3b, 143}, @@ -327,7 +330,7 @@ _InstInfo InstInfos[1242] = { /*II_CC*/ {0x6d, 360}, /*II_CD*/ {0x6e, 367}, /*II_CE*/ {0x6f, 372}, - /*II_CF*/ {0x70, 378}, + /*II_CF*/ {0x70, 33146}, /*II_D4*/ {0x71, 384}, /*II_D5*/ {0x71, 389}, /*II_D6*/ {0x72, 394}, @@ -335,45 +338,45 @@ _InstInfo InstInfos[1242] = { /*II_E0*/ {0x74, 406}, /*II_E1*/ {0x74, 414}, /*II_E2*/ {0x75, 421}, - /*II_E4*/ {0x77, 447}, - /*II_E5*/ {0x78, 447}, - /*II_E6*/ {0x79, 451}, - /*II_E7*/ {0x7a, 451}, + /*II_E4*/ {0x77, 33215}, + /*II_E5*/ {0x78, 33215}, + /*II_E6*/ {0x79, 33219}, + /*II_E7*/ {0x7a, 33219}, /*II_E8*/ {0x7b, 456}, /*II_E9*/ {0x7c, 462}, /*II_EA*/ {0x7d, 467}, /*II_EB*/ {0x7e, 462}, - /*II_EC*/ {0x7f, 447}, - /*II_ED*/ {0x80, 447}, - /*II_EE*/ {0x81, 451}, - /*II_EF*/ {0x82, 451}, + /*II_EC*/ {0x7f, 33215}, + /*II_ED*/ {0x80, 33215}, + /*II_EE*/ {0x81, 33219}, + /*II_EF*/ {0x82, 33219}, /*II_F1*/ {0x6d, 476}, - /*II_F4*/ {0x53, 482}, + /*II_F4*/ {0x53, 33250}, /*II_F5*/ {0x83, 487}, /*II_F8*/ {0x83, 492}, /*II_F9*/ {0x83, 497}, - /*II_FA*/ {0x84, 502}, - /*II_FB*/ {0x84, 507}, + /*II_FA*/ {0x84, 33270}, + /*II_FB*/ {0x84, 33275}, /*II_FC*/ {0x85, 512}, /*II_FD*/ {0x85, 517}, /*II_0F_02*/ {0x86, 522}, /*II_0F_03*/ {0x86, 527}, /*II_0F_05*/ {0x87, 532}, - /*II_0F_06*/ {0x88, 541}, + /*II_0F_06*/ {0x88, 33309}, /*II_0F_07*/ {0x87, 547}, - /*II_0F_08*/ {0x88, 555}, - /*II_0F_09*/ {0x88, 561}, + /*II_0F_08*/ {0x88, 33323}, + /*II_0F_09*/ {0x88, 33329}, /*II_0F_0B*/ {0x89, 569}, /*II_0F_0E*/ {0x8a, 574}, /*II_0F_1F*/ {0x8b, 581}, - /*II_0F_20*/ {0x8c, 218}, - /*II_0F_21*/ {0x8d, 218}, - /*II_0F_22*/ {0x8e, 218}, - /*II_0F_23*/ {0x8f, 218}, - /*II_0F_30*/ {0x88, 586}, - /*II_0F_31*/ {0x88, 593}, - /*II_0F_32*/ {0x88, 600}, - /*II_0F_33*/ {0x88, 607}, + /*II_0F_20*/ {0x8c, 32986}, + /*II_0F_21*/ {0x8d, 32986}, + /*II_0F_22*/ {0x8e, 32986}, + /*II_0F_23*/ {0x8f, 32986}, + /*II_0F_30*/ {0x88, 33354}, + /*II_0F_31*/ {0x88, 33361}, + /*II_0F_32*/ {0x88, 33368}, + /*II_0F_33*/ {0x88, 33375}, /*II_0F_34*/ {0x87, 614}, /*II_0F_35*/ {0x87, 624}, /*II_0F_37*/ {0x90, 633}, @@ -496,898 +499,899 @@ _InstInfo InstInfos[1242] = { /*II_C0_03*/ {0xd3, 982}, /*II_C0_04*/ {0xd4, 987}, /*II_C0_05*/ {0xd4, 992}, - /*II_C0_06*/ {0xd5, 997}, - /*II_C0_07*/ {0xd5, 1002}, - /*II_C1_00*/ {0xd6, 967}, - /*II_C1_01*/ {0xd6, 972}, - /*II_C1_02*/ {0xd7, 977}, - /*II_C1_03*/ {0xd7, 982}, - /*II_C1_04*/ {0xd8, 987}, - /*II_C1_05*/ {0xd8, 992}, - /*II_C1_06*/ {0xd9, 997}, - /*II_C1_07*/ {0xd9, 1002}, - /*II_C6_00*/ {0xd5, 218}, - /*II_C7_00*/ {0xda, 218}, - /*II_D0_00*/ {0xdb, 967}, - /*II_D0_01*/ {0xdb, 972}, - /*II_D0_02*/ {0xdc, 977}, - /*II_D0_03*/ {0xdc, 982}, - /*II_D0_04*/ {0xdd, 987}, - /*II_D0_05*/ {0xdd, 992}, - /*II_D0_06*/ {0xde, 997}, - /*II_D0_07*/ {0xde, 1002}, - /*II_D1_00*/ {0xdf, 967}, - /*II_D1_01*/ {0xdf, 972}, - /*II_D1_02*/ {0xe0, 977}, - /*II_D1_03*/ {0xe0, 982}, - /*II_D1_04*/ {0xe1, 987}, - /*II_D1_05*/ {0xe1, 992}, - /*II_D1_06*/ {0xe2, 997}, - /*II_D1_07*/ {0xe2, 1002}, - /*II_D2_00*/ {0xe3, 967}, - /*II_D2_01*/ {0xe3, 972}, - /*II_D2_02*/ {0xe4, 977}, - /*II_D2_03*/ {0xe4, 982}, - /*II_D2_04*/ {0xe5, 987}, - /*II_D2_05*/ {0xe5, 992}, - /*II_D2_06*/ {0xe6, 997}, - /*II_D2_07*/ {0xe6, 1002}, - /*II_D3_00*/ {0xe7, 967}, - /*II_D3_01*/ {0xe7, 972}, - /*II_D3_02*/ {0xe8, 977}, - /*II_D3_03*/ {0xe8, 982}, - /*II_D3_04*/ {0xe9, 987}, - /*II_D3_05*/ {0xe9, 992}, - /*II_D3_06*/ {0xea, 997}, - /*II_D3_07*/ {0xea, 1002}, - /*II_D8_00*/ {0xeb, 1007}, - /*II_D8_01*/ {0xeb, 1013}, - /*II_D8_02*/ {0xeb, 1019}, - /*II_D8_03*/ {0xeb, 1025}, - /*II_D8_04*/ {0xeb, 1032}, - /*II_D8_05*/ {0xeb, 1038}, - /*II_D8_06*/ {0xeb, 1045}, - /*II_D8_07*/ {0xeb, 1051}, - /*II_D8_C0*/ {0xec, 1007}, - /*II_D8_C0*/ {0xec, 1007}, - /*II_D8_C0*/ {0xec, 1007}, - /*II_D8_C0*/ {0xec, 1007}, - /*II_D8_C0*/ {0xec, 1007}, - /*II_D8_C0*/ {0xec, 1007}, - /*II_D8_C0*/ {0xec, 1007}, - /*II_D8_C0*/ {0xec, 1007}, - /*II_D8_C8*/ {0xec, 1013}, - /*II_D8_C8*/ {0xec, 1013}, - /*II_D8_C8*/ {0xec, 1013}, - /*II_D8_C8*/ {0xec, 1013}, - /*II_D8_C8*/ {0xec, 1013}, - /*II_D8_C8*/ {0xec, 1013}, - /*II_D8_C8*/ {0xec, 1013}, - /*II_D8_C8*/ {0xec, 1013}, - /*II_D8_D0*/ {0xed, 1019}, - /*II_D8_D0*/ {0xed, 1019}, - /*II_D8_D0*/ {0xed, 1019}, - /*II_D8_D0*/ {0xed, 1019}, - /*II_D8_D0*/ {0xed, 1019}, - /*II_D8_D0*/ {0xed, 1019}, - /*II_D8_D0*/ {0xed, 1019}, - /*II_D8_D0*/ {0xed, 1019}, - /*II_D8_D8*/ {0xed, 1025}, - /*II_D8_D9*/ {0xee, 1025}, - /*II_D8_D8*/ {0xed, 1025}, - /*II_D8_D8*/ {0xed, 1025}, - /*II_D8_D8*/ {0xed, 1025}, - /*II_D8_D8*/ {0xed, 1025}, - /*II_D8_D8*/ {0xed, 1025}, - /*II_D8_D8*/ {0xed, 1025}, - /*II_D8_E0*/ {0xec, 1032}, - /*II_D8_E0*/ {0xec, 1032}, - /*II_D8_E0*/ {0xec, 1032}, - /*II_D8_E0*/ {0xec, 1032}, - /*II_D8_E0*/ {0xec, 1032}, - /*II_D8_E0*/ {0xec, 1032}, - /*II_D8_E0*/ {0xec, 1032}, - /*II_D8_E0*/ {0xec, 1032}, - /*II_D8_E8*/ {0xec, 1038}, - /*II_D8_E8*/ {0xec, 1038}, - /*II_D8_E8*/ {0xec, 1038}, - /*II_D8_E8*/ {0xec, 1038}, - /*II_D8_E8*/ {0xec, 1038}, - /*II_D8_E8*/ {0xec, 1038}, - /*II_D8_E8*/ {0xec, 1038}, - /*II_D8_E8*/ {0xec, 1038}, - /*II_D8_F0*/ {0xec, 1045}, - /*II_D8_F0*/ {0xec, 1045}, - /*II_D8_F0*/ {0xec, 1045}, - /*II_D8_F0*/ {0xec, 1045}, - /*II_D8_F0*/ {0xec, 1045}, - /*II_D8_F0*/ {0xec, 1045}, - /*II_D8_F0*/ {0xec, 1045}, - /*II_D8_F0*/ {0xec, 1045}, - /*II_D8_F8*/ {0xec, 1051}, - /*II_D8_F8*/ {0xec, 1051}, - /*II_D8_F8*/ {0xec, 1051}, - /*II_D8_F8*/ {0xec, 1051}, - /*II_D8_F8*/ {0xec, 1051}, - /*II_D8_F8*/ {0xec, 1051}, - /*II_D8_F8*/ {0xec, 1051}, - /*II_D8_F8*/ {0xec, 1051}, - /*II_D9_00*/ {0xeb, 1058}, - /*II_D9_02*/ {0xeb, 1063}, - /*II_D9_03*/ {0xeb, 1068}, - /*II_D9_04*/ {0xef, 1074}, - /*II_D9_05*/ {0xef, 1082}, - /*II_D9_C0*/ {0xed, 1058}, - /*II_D9_C0*/ {0xed, 1058}, - /*II_D9_C0*/ {0xed, 1058}, - /*II_D9_C0*/ {0xed, 1058}, - /*II_D9_C0*/ {0xed, 1058}, - /*II_D9_C0*/ {0xed, 1058}, - /*II_D9_C0*/ {0xed, 1058}, - /*II_D9_C0*/ {0xed, 1058}, - /*II_D9_C8*/ {0xed, 1089}, - /*II_D9_C9*/ {0xee, 1089}, - /*II_D9_C8*/ {0xed, 1089}, - /*II_D9_C8*/ {0xed, 1089}, - /*II_D9_C8*/ {0xed, 1089}, - /*II_D9_C8*/ {0xed, 1089}, - /*II_D9_C8*/ {0xed, 1089}, - /*II_D9_C8*/ {0xed, 1089}, - /*II_D9_D0*/ {0xee, 1095}, - /*II_D9_E0*/ {0xee, 1101}, - /*II_D9_E1*/ {0xee, 1107}, - /*II_D9_E4*/ {0xee, 1113}, - /*II_D9_E5*/ {0xee, 1119}, - /*II_D9_E8*/ {0xee, 1125}, - /*II_D9_E9*/ {0xee, 1131}, - /*II_D9_EA*/ {0xee, 1139}, - /*II_D9_EB*/ {0xee, 1147}, - /*II_D9_EC*/ {0xee, 1154}, - /*II_D9_ED*/ {0xee, 1162}, - /*II_D9_EE*/ {0xee, 1170}, - /*II_D9_F0*/ {0xee, 1176}, - /*II_D9_F1*/ {0xee, 1183}, - /*II_D9_F2*/ {0xee, 1190}, - /*II_D9_F3*/ {0xee, 1197}, - /*II_D9_F4*/ {0xee, 1205}, - /*II_D9_F5*/ {0xee, 1214}, - /*II_D9_F6*/ {0xee, 1222}, - /*II_D9_F7*/ {0xee, 1231}, - /*II_D9_F8*/ {0xee, 1240}, - /*II_D9_F9*/ {0xee, 1247}, - /*II_D9_FA*/ {0xee, 1256}, - /*II_D9_FB*/ {0xee, 1263}, - /*II_D9_FC*/ {0xee, 1272}, - /*II_D9_FD*/ {0xee, 1281}, - /*II_D9_FE*/ {0xee, 1289}, - /*II_D9_FF*/ {0xee, 1295}, - /*II_DA_00*/ {0xeb, 1301}, - /*II_DA_01*/ {0xeb, 1308}, - /*II_DA_02*/ {0xeb, 1315}, - /*II_DA_03*/ {0xeb, 1322}, - /*II_DA_04*/ {0xeb, 1330}, - /*II_DA_05*/ {0xeb, 1337}, - /*II_DA_06*/ {0xeb, 1345}, - /*II_DA_07*/ {0xeb, 1352}, - /*II_DA_C0*/ {0xf0, 1360}, - /*II_DA_C0*/ {0xf0, 1360}, - /*II_DA_C0*/ {0xf0, 1360}, - /*II_DA_C0*/ {0xf0, 1360}, - /*II_DA_C0*/ {0xf0, 1360}, - /*II_DA_C0*/ {0xf0, 1360}, - /*II_DA_C0*/ {0xf0, 1360}, - /*II_DA_C0*/ {0xf0, 1360}, - /*II_DA_C8*/ {0xf1, 1368}, - /*II_DA_C8*/ {0xf1, 1368}, - /*II_DA_C8*/ {0xf1, 1368}, - /*II_DA_C8*/ {0xf1, 1368}, - /*II_DA_C8*/ {0xf1, 1368}, - /*II_DA_C8*/ {0xf1, 1368}, - /*II_DA_C8*/ {0xf1, 1368}, - /*II_DA_C8*/ {0xf1, 1368}, - /*II_DA_D0*/ {0xf2, 1376}, - /*II_DA_D0*/ {0xf2, 1376}, - /*II_DA_D0*/ {0xf2, 1376}, - /*II_DA_D0*/ {0xf2, 1376}, - /*II_DA_D0*/ {0xf2, 1376}, - /*II_DA_D0*/ {0xf2, 1376}, - /*II_DA_D0*/ {0xf2, 1376}, - /*II_DA_D0*/ {0xf2, 1376}, - /*II_DA_D8*/ {0xf3, 1385}, - /*II_DA_D8*/ {0xf3, 1385}, - /*II_DA_D8*/ {0xf3, 1385}, - /*II_DA_D8*/ {0xf3, 1385}, - /*II_DA_D8*/ {0xf3, 1385}, - /*II_DA_D8*/ {0xf3, 1385}, - /*II_DA_D8*/ {0xf3, 1385}, - /*II_DA_D8*/ {0xf3, 1385}, - /*II_DA_E9*/ {0xee, 1393}, - /*II_DB_00*/ {0xeb, 1402}, - /*II_DB_01*/ {0xf4, 1408}, - /*II_DB_02*/ {0xeb, 1416}, - /*II_DB_03*/ {0xeb, 1422}, - /*II_DB_05*/ {0xf5, 1058}, - /*II_DB_07*/ {0xf5, 1068}, - /*II_DB_C0*/ {0xf0, 1429}, - /*II_DB_C0*/ {0xf0, 1429}, - /*II_DB_C0*/ {0xf0, 1429}, - /*II_DB_C0*/ {0xf0, 1429}, - /*II_DB_C0*/ {0xf0, 1429}, - /*II_DB_C0*/ {0xf0, 1429}, - /*II_DB_C0*/ {0xf0, 1429}, - /*II_DB_C0*/ {0xf0, 1429}, - /*II_DB_C8*/ {0xf1, 1438}, - /*II_DB_C8*/ {0xf1, 1438}, - /*II_DB_C8*/ {0xf1, 1438}, - /*II_DB_C8*/ {0xf1, 1438}, - /*II_DB_C8*/ {0xf1, 1438}, - /*II_DB_C8*/ {0xf1, 1438}, - /*II_DB_C8*/ {0xf1, 1438}, - /*II_DB_C8*/ {0xf1, 1438}, - /*II_DB_D0*/ {0xf2, 1447}, - /*II_DB_D0*/ {0xf2, 1447}, - /*II_DB_D0*/ {0xf2, 1447}, - /*II_DB_D0*/ {0xf2, 1447}, - /*II_DB_D0*/ {0xf2, 1447}, - /*II_DB_D0*/ {0xf2, 1447}, - /*II_DB_D0*/ {0xf2, 1447}, - /*II_DB_D0*/ {0xf2, 1447}, - /*II_DB_D8*/ {0xf3, 1457}, - /*II_DB_D8*/ {0xf3, 1457}, - /*II_DB_D8*/ {0xf3, 1457}, - /*II_DB_D8*/ {0xf3, 1457}, - /*II_DB_D8*/ {0xf3, 1457}, - /*II_DB_D8*/ {0xf3, 1457}, - /*II_DB_D8*/ {0xf3, 1457}, - /*II_DB_D8*/ {0xf3, 1457}, - /*II_DB_E0*/ {0xee, 1466}, - /*II_DB_E1*/ {0xee, 1472}, - /*II_DB_E4*/ {0xee, 1480}, - /*II_DB_E8*/ {0xf6, 1488}, - /*II_DB_E8*/ {0xf6, 1488}, - /*II_DB_E8*/ {0xf6, 1488}, - /*II_DB_E8*/ {0xf6, 1488}, - /*II_DB_E8*/ {0xf6, 1488}, - /*II_DB_E8*/ {0xf6, 1488}, - /*II_DB_E8*/ {0xf6, 1488}, - /*II_DB_E8*/ {0xf6, 1488}, - /*II_DB_F0*/ {0xf7, 1496}, - /*II_DB_F0*/ {0xf7, 1496}, - /*II_DB_F0*/ {0xf7, 1496}, - /*II_DB_F0*/ {0xf7, 1496}, - /*II_DB_F0*/ {0xf7, 1496}, - /*II_DB_F0*/ {0xf7, 1496}, - /*II_DB_F0*/ {0xf7, 1496}, - /*II_DB_F0*/ {0xf7, 1496}, - /*II_DC_00*/ {0xf8, 1007}, - /*II_DC_01*/ {0xf8, 1013}, - /*II_DC_02*/ {0xf8, 1019}, - /*II_DC_03*/ {0xf8, 1025}, - /*II_DC_04*/ {0xf8, 1032}, - /*II_DC_05*/ {0xf8, 1038}, - /*II_DC_06*/ {0xf8, 1045}, - /*II_DC_07*/ {0xf8, 1051}, - /*II_DC_C0*/ {0xf9, 1007}, - /*II_DC_C0*/ {0xf9, 1007}, - /*II_DC_C0*/ {0xf9, 1007}, - /*II_DC_C0*/ {0xf9, 1007}, - /*II_DC_C0*/ {0xf9, 1007}, - /*II_DC_C0*/ {0xf9, 1007}, - /*II_DC_C0*/ {0xf9, 1007}, - /*II_DC_C0*/ {0xf9, 1007}, - /*II_DC_C8*/ {0xf9, 1013}, - /*II_DC_C8*/ {0xf9, 1013}, - /*II_DC_C8*/ {0xf9, 1013}, - /*II_DC_C8*/ {0xf9, 1013}, - /*II_DC_C8*/ {0xf9, 1013}, - /*II_DC_C8*/ {0xf9, 1013}, - /*II_DC_C8*/ {0xf9, 1013}, - /*II_DC_C8*/ {0xf9, 1013}, - /*II_DC_E0*/ {0xf9, 1038}, - /*II_DC_E0*/ {0xf9, 1038}, - /*II_DC_E0*/ {0xf9, 1038}, - /*II_DC_E0*/ {0xf9, 1038}, - /*II_DC_E0*/ {0xf9, 1038}, - /*II_DC_E0*/ {0xf9, 1038}, - /*II_DC_E0*/ {0xf9, 1038}, - /*II_DC_E0*/ {0xf9, 1038}, - /*II_DC_E8*/ {0xf9, 1032}, - /*II_DC_E8*/ {0xf9, 1032}, - /*II_DC_E8*/ {0xf9, 1032}, - /*II_DC_E8*/ {0xf9, 1032}, - /*II_DC_E8*/ {0xf9, 1032}, - /*II_DC_E8*/ {0xf9, 1032}, - /*II_DC_E8*/ {0xf9, 1032}, - /*II_DC_E8*/ {0xf9, 1032}, - /*II_DC_F0*/ {0xf9, 1051}, - /*II_DC_F0*/ {0xf9, 1051}, - /*II_DC_F0*/ {0xf9, 1051}, - /*II_DC_F0*/ {0xf9, 1051}, - /*II_DC_F0*/ {0xf9, 1051}, - /*II_DC_F0*/ {0xf9, 1051}, - /*II_DC_F0*/ {0xf9, 1051}, - /*II_DC_F0*/ {0xf9, 1051}, - /*II_DC_F8*/ {0xf9, 1045}, - /*II_DC_F8*/ {0xf9, 1045}, - /*II_DC_F8*/ {0xf9, 1045}, - /*II_DC_F8*/ {0xf9, 1045}, - /*II_DC_F8*/ {0xf9, 1045}, - /*II_DC_F8*/ {0xf9, 1045}, - /*II_DC_F8*/ {0xf9, 1045}, - /*II_DC_F8*/ {0xf9, 1045}, - /*II_DD_00*/ {0xf8, 1058}, - /*II_DD_01*/ {0xfa, 1408}, - /*II_DD_02*/ {0xf8, 1063}, - /*II_DD_03*/ {0xf8, 1068}, - /*II_DD_04*/ {0xef, 1503}, - /*II_DD_C0*/ {0xed, 1511}, - /*II_DD_C0*/ {0xed, 1511}, - /*II_DD_C0*/ {0xed, 1511}, - /*II_DD_C0*/ {0xed, 1511}, - /*II_DD_C0*/ {0xed, 1511}, - /*II_DD_C0*/ {0xed, 1511}, - /*II_DD_C0*/ {0xed, 1511}, - /*II_DD_C0*/ {0xed, 1511}, - /*II_DD_D0*/ {0xed, 1063}, - /*II_DD_D0*/ {0xed, 1063}, - /*II_DD_D0*/ {0xed, 1063}, - /*II_DD_D0*/ {0xed, 1063}, - /*II_DD_D0*/ {0xed, 1063}, - /*II_DD_D0*/ {0xed, 1063}, - /*II_DD_D0*/ {0xed, 1063}, - /*II_DD_D0*/ {0xed, 1063}, - /*II_DD_D8*/ {0xed, 1068}, - /*II_DD_D8*/ {0xed, 1068}, - /*II_DD_D8*/ {0xed, 1068}, - /*II_DD_D8*/ {0xed, 1068}, - /*II_DD_D8*/ {0xed, 1068}, - /*II_DD_D8*/ {0xed, 1068}, - /*II_DD_D8*/ {0xed, 1068}, - /*II_DD_D8*/ {0xed, 1068}, - /*II_DD_E0*/ {0xf9, 1518}, - /*II_DD_E1*/ {0xee, 1518}, - /*II_DD_E0*/ {0xf9, 1518}, - /*II_DD_E0*/ {0xf9, 1518}, - /*II_DD_E0*/ {0xf9, 1518}, - /*II_DD_E0*/ {0xf9, 1518}, - /*II_DD_E0*/ {0xf9, 1518}, - /*II_DD_E0*/ {0xf9, 1518}, - /*II_DD_E8*/ {0xed, 1525}, - /*II_DD_E9*/ {0xee, 1525}, - /*II_DD_E8*/ {0xed, 1525}, - /*II_DD_E8*/ {0xed, 1525}, - /*II_DD_E8*/ {0xed, 1525}, - /*II_DD_E8*/ {0xed, 1525}, - /*II_DD_E8*/ {0xed, 1525}, - /*II_DD_E8*/ {0xed, 1525}, - /*II_DE_00*/ {0xfb, 1301}, - /*II_DE_01*/ {0xfb, 1308}, - /*II_DE_02*/ {0xfb, 1315}, - /*II_DE_03*/ {0xfb, 1322}, - /*II_DE_04*/ {0xfb, 1330}, - /*II_DE_05*/ {0xfb, 1337}, - /*II_DE_06*/ {0xfb, 1345}, - /*II_DE_07*/ {0xfb, 1352}, - /*II_DE_C0*/ {0xf9, 1533}, - /*II_DE_C1*/ {0xee, 1533}, - /*II_DE_C0*/ {0xf9, 1533}, - /*II_DE_C0*/ {0xf9, 1533}, - /*II_DE_C0*/ {0xf9, 1533}, - /*II_DE_C0*/ {0xf9, 1533}, - /*II_DE_C0*/ {0xf9, 1533}, - /*II_DE_C0*/ {0xf9, 1533}, - /*II_DE_C8*/ {0xf9, 1540}, - /*II_DE_C9*/ {0xee, 1540}, - /*II_DE_C8*/ {0xf9, 1540}, - /*II_DE_C8*/ {0xf9, 1540}, - /*II_DE_C8*/ {0xf9, 1540}, - /*II_DE_C8*/ {0xf9, 1540}, - /*II_DE_C8*/ {0xf9, 1540}, - /*II_DE_C8*/ {0xf9, 1540}, - /*II_DE_D9*/ {0xee, 1547}, - /*II_DE_E0*/ {0xf9, 1555}, - /*II_DE_E1*/ {0xee, 1555}, - /*II_DE_E0*/ {0xf9, 1555}, - /*II_DE_E0*/ {0xf9, 1555}, - /*II_DE_E0*/ {0xf9, 1555}, - /*II_DE_E0*/ {0xf9, 1555}, - /*II_DE_E0*/ {0xf9, 1555}, - /*II_DE_E0*/ {0xf9, 1555}, - /*II_DE_E8*/ {0xf9, 1563}, - /*II_DE_E9*/ {0xee, 1563}, - /*II_DE_E8*/ {0xf9, 1563}, - /*II_DE_E8*/ {0xf9, 1563}, - /*II_DE_E8*/ {0xf9, 1563}, - /*II_DE_E8*/ {0xf9, 1563}, - /*II_DE_E8*/ {0xf9, 1563}, - /*II_DE_E8*/ {0xf9, 1563}, - /*II_DE_F0*/ {0xf9, 1570}, - /*II_DE_F1*/ {0xee, 1570}, - /*II_DE_F0*/ {0xf9, 1570}, - /*II_DE_F0*/ {0xf9, 1570}, - /*II_DE_F0*/ {0xf9, 1570}, - /*II_DE_F0*/ {0xf9, 1570}, - /*II_DE_F0*/ {0xf9, 1570}, - /*II_DE_F0*/ {0xf9, 1570}, - /*II_DE_F8*/ {0xf9, 1578}, - /*II_DE_F9*/ {0xee, 1578}, - /*II_DE_F8*/ {0xf9, 1578}, - /*II_DE_F8*/ {0xf9, 1578}, - /*II_DE_F8*/ {0xf9, 1578}, - /*II_DE_F8*/ {0xf9, 1578}, - /*II_DE_F8*/ {0xf9, 1578}, - /*II_DE_F8*/ {0xf9, 1578}, - /*II_DF_00*/ {0xfb, 1402}, - /*II_DF_01*/ {0xfc, 1408}, + /*II_C0_06*/ {0xd4, 997}, + /*II_C0_07*/ {0xd4, 1002}, + /*II_C1_00*/ {0xd5, 967}, + /*II_C1_01*/ {0xd5, 972}, + /*II_C1_02*/ {0xd6, 977}, + /*II_C1_03*/ {0xd6, 982}, + /*II_C1_04*/ {0xd7, 987}, + /*II_C1_05*/ {0xd7, 992}, + /*II_C1_06*/ {0xd7, 997}, + /*II_C1_07*/ {0xd7, 1002}, + /*II_C6_00*/ {0xd8, 218}, + /*II_C7_00*/ {0xd9, 218}, + /*II_D0_00*/ {0xda, 967}, + /*II_D0_01*/ {0xda, 972}, + /*II_D0_02*/ {0xdb, 977}, + /*II_D0_03*/ {0xdb, 982}, + /*II_D0_04*/ {0xdc, 987}, + /*II_D0_05*/ {0xdc, 992}, + /*II_D0_06*/ {0xdc, 997}, + /*II_D0_07*/ {0xdc, 1002}, + /*II_D1_00*/ {0xdd, 967}, + /*II_D1_01*/ {0xdd, 972}, + /*II_D1_02*/ {0xde, 977}, + /*II_D1_03*/ {0xde, 982}, + /*II_D1_04*/ {0xdf, 987}, + /*II_D1_05*/ {0xdf, 992}, + /*II_D1_06*/ {0xdf, 997}, + /*II_D1_07*/ {0xdf, 1002}, + /*II_D2_00*/ {0xe0, 967}, + /*II_D2_01*/ {0xe0, 972}, + /*II_D2_02*/ {0xe1, 977}, + /*II_D2_03*/ {0xe1, 982}, + /*II_D2_04*/ {0xe2, 987}, + /*II_D2_05*/ {0xe2, 992}, + /*II_D2_06*/ {0xe2, 997}, + /*II_D2_07*/ {0xe2, 1002}, + /*II_D3_00*/ {0xe3, 967}, + /*II_D3_01*/ {0xe3, 972}, + /*II_D3_02*/ {0xe4, 977}, + /*II_D3_03*/ {0xe4, 982}, + /*II_D3_04*/ {0xe5, 987}, + /*II_D3_05*/ {0xe5, 992}, + /*II_D3_06*/ {0xe5, 997}, + /*II_D3_07*/ {0xe5, 1002}, + /*II_D8_00*/ {0xe6, 1007}, + /*II_D8_01*/ {0xe6, 1013}, + /*II_D8_02*/ {0xe6, 1019}, + /*II_D8_03*/ {0xe6, 1025}, + /*II_D8_04*/ {0xe6, 1032}, + /*II_D8_05*/ {0xe6, 1038}, + /*II_D8_06*/ {0xe6, 1045}, + /*II_D8_07*/ {0xe6, 1051}, + /*II_D8_C0*/ {0xe7, 1007}, + /*II_D8_C0*/ {0xe7, 1007}, + /*II_D8_C0*/ {0xe7, 1007}, + /*II_D8_C0*/ {0xe7, 1007}, + /*II_D8_C0*/ {0xe7, 1007}, + /*II_D8_C0*/ {0xe7, 1007}, + /*II_D8_C0*/ {0xe7, 1007}, + /*II_D8_C0*/ {0xe7, 1007}, + /*II_D8_C8*/ {0xe7, 1013}, + /*II_D8_C8*/ {0xe7, 1013}, + /*II_D8_C8*/ {0xe7, 1013}, + /*II_D8_C8*/ {0xe7, 1013}, + /*II_D8_C8*/ {0xe7, 1013}, + /*II_D8_C8*/ {0xe7, 1013}, + /*II_D8_C8*/ {0xe7, 1013}, + /*II_D8_C8*/ {0xe7, 1013}, + /*II_D8_D0*/ {0xe8, 1019}, + /*II_D8_D0*/ {0xe8, 1019}, + /*II_D8_D0*/ {0xe8, 1019}, + /*II_D8_D0*/ {0xe8, 1019}, + /*II_D8_D0*/ {0xe8, 1019}, + /*II_D8_D0*/ {0xe8, 1019}, + /*II_D8_D0*/ {0xe8, 1019}, + /*II_D8_D0*/ {0xe8, 1019}, + /*II_D8_D8*/ {0xe8, 1025}, + /*II_D8_D9*/ {0xe9, 1025}, + /*II_D8_D8*/ {0xe8, 1025}, + /*II_D8_D8*/ {0xe8, 1025}, + /*II_D8_D8*/ {0xe8, 1025}, + /*II_D8_D8*/ {0xe8, 1025}, + /*II_D8_D8*/ {0xe8, 1025}, + /*II_D8_D8*/ {0xe8, 1025}, + /*II_D8_E0*/ {0xe7, 1032}, + /*II_D8_E0*/ {0xe7, 1032}, + /*II_D8_E0*/ {0xe7, 1032}, + /*II_D8_E0*/ {0xe7, 1032}, + /*II_D8_E0*/ {0xe7, 1032}, + /*II_D8_E0*/ {0xe7, 1032}, + /*II_D8_E0*/ {0xe7, 1032}, + /*II_D8_E0*/ {0xe7, 1032}, + /*II_D8_E8*/ {0xe7, 1038}, + /*II_D8_E8*/ {0xe7, 1038}, + /*II_D8_E8*/ {0xe7, 1038}, + /*II_D8_E8*/ {0xe7, 1038}, + /*II_D8_E8*/ {0xe7, 1038}, + /*II_D8_E8*/ {0xe7, 1038}, + /*II_D8_E8*/ {0xe7, 1038}, + /*II_D8_E8*/ {0xe7, 1038}, + /*II_D8_F0*/ {0xe7, 1045}, + /*II_D8_F0*/ {0xe7, 1045}, + /*II_D8_F0*/ {0xe7, 1045}, + /*II_D8_F0*/ {0xe7, 1045}, + /*II_D8_F0*/ {0xe7, 1045}, + /*II_D8_F0*/ {0xe7, 1045}, + /*II_D8_F0*/ {0xe7, 1045}, + /*II_D8_F0*/ {0xe7, 1045}, + /*II_D8_F8*/ {0xe7, 1051}, + /*II_D8_F8*/ {0xe7, 1051}, + /*II_D8_F8*/ {0xe7, 1051}, + /*II_D8_F8*/ {0xe7, 1051}, + /*II_D8_F8*/ {0xe7, 1051}, + /*II_D8_F8*/ {0xe7, 1051}, + /*II_D8_F8*/ {0xe7, 1051}, + /*II_D8_F8*/ {0xe7, 1051}, + /*II_D9_00*/ {0xe6, 1058}, + /*II_D9_02*/ {0xea, 1063}, + /*II_D9_03*/ {0xea, 1068}, + /*II_D9_04*/ {0xeb, 1074}, + /*II_D9_05*/ {0xec, 1082}, + /*II_D9_C0*/ {0xe8, 1058}, + /*II_D9_C0*/ {0xe8, 1058}, + /*II_D9_C0*/ {0xe8, 1058}, + /*II_D9_C0*/ {0xe8, 1058}, + /*II_D9_C0*/ {0xe8, 1058}, + /*II_D9_C0*/ {0xe8, 1058}, + /*II_D9_C0*/ {0xe8, 1058}, + /*II_D9_C0*/ {0xe8, 1058}, + /*II_D9_C8*/ {0xe8, 1089}, + /*II_D9_C9*/ {0xe9, 1089}, + /*II_D9_C8*/ {0xe8, 1089}, + /*II_D9_C8*/ {0xe8, 1089}, + /*II_D9_C8*/ {0xe8, 1089}, + /*II_D9_C8*/ {0xe8, 1089}, + /*II_D9_C8*/ {0xe8, 1089}, + /*II_D9_C8*/ {0xe8, 1089}, + /*II_D9_D0*/ {0xe9, 1095}, + /*II_D9_E0*/ {0xe9, 1101}, + /*II_D9_E1*/ {0xe9, 1107}, + /*II_D9_E4*/ {0xe9, 1113}, + /*II_D9_E5*/ {0xe9, 1119}, + /*II_D9_E8*/ {0xe9, 1125}, + /*II_D9_E9*/ {0xe9, 1131}, + /*II_D9_EA*/ {0xe9, 1139}, + /*II_D9_EB*/ {0xe9, 1147}, + /*II_D9_EC*/ {0xe9, 1154}, + /*II_D9_ED*/ {0xe9, 1162}, + /*II_D9_EE*/ {0xe9, 1170}, + /*II_D9_F0*/ {0xe9, 1176}, + /*II_D9_F1*/ {0xe9, 1183}, + /*II_D9_F2*/ {0xe9, 1190}, + /*II_D9_F3*/ {0xe9, 1197}, + /*II_D9_F4*/ {0xe9, 1205}, + /*II_D9_F5*/ {0xe9, 1214}, + /*II_D9_F6*/ {0xe9, 1222}, + /*II_D9_F7*/ {0xe9, 1231}, + /*II_D9_F8*/ {0xe9, 1240}, + /*II_D9_F9*/ {0xe9, 1247}, + /*II_D9_FA*/ {0xe9, 1256}, + /*II_D9_FB*/ {0xe9, 1263}, + /*II_D9_FC*/ {0xe9, 1272}, + /*II_D9_FD*/ {0xe9, 1281}, + /*II_D9_FE*/ {0xe9, 1289}, + /*II_D9_FF*/ {0xe9, 1295}, + /*II_DA_00*/ {0xe6, 1301}, + /*II_DA_01*/ {0xe6, 1308}, + /*II_DA_02*/ {0xe6, 1315}, + /*II_DA_03*/ {0xe6, 1322}, + /*II_DA_04*/ {0xe6, 1330}, + /*II_DA_05*/ {0xe6, 1337}, + /*II_DA_06*/ {0xe6, 1345}, + /*II_DA_07*/ {0xe6, 1352}, + /*II_DA_C0*/ {0xed, 1360}, + /*II_DA_C0*/ {0xed, 1360}, + /*II_DA_C0*/ {0xed, 1360}, + /*II_DA_C0*/ {0xed, 1360}, + /*II_DA_C0*/ {0xed, 1360}, + /*II_DA_C0*/ {0xed, 1360}, + /*II_DA_C0*/ {0xed, 1360}, + /*II_DA_C0*/ {0xed, 1360}, + /*II_DA_C8*/ {0xee, 1368}, + /*II_DA_C8*/ {0xee, 1368}, + /*II_DA_C8*/ {0xee, 1368}, + /*II_DA_C8*/ {0xee, 1368}, + /*II_DA_C8*/ {0xee, 1368}, + /*II_DA_C8*/ {0xee, 1368}, + /*II_DA_C8*/ {0xee, 1368}, + /*II_DA_C8*/ {0xee, 1368}, + /*II_DA_D0*/ {0xef, 1376}, + /*II_DA_D0*/ {0xef, 1376}, + /*II_DA_D0*/ {0xef, 1376}, + /*II_DA_D0*/ {0xef, 1376}, + /*II_DA_D0*/ {0xef, 1376}, + /*II_DA_D0*/ {0xef, 1376}, + /*II_DA_D0*/ {0xef, 1376}, + /*II_DA_D0*/ {0xef, 1376}, + /*II_DA_D8*/ {0xf0, 1385}, + /*II_DA_D8*/ {0xf0, 1385}, + /*II_DA_D8*/ {0xf0, 1385}, + /*II_DA_D8*/ {0xf0, 1385}, + /*II_DA_D8*/ {0xf0, 1385}, + /*II_DA_D8*/ {0xf0, 1385}, + /*II_DA_D8*/ {0xf0, 1385}, + /*II_DA_D8*/ {0xf0, 1385}, + /*II_DA_E9*/ {0xe9, 1393}, + /*II_DB_00*/ {0xe6, 1402}, + /*II_DB_01*/ {0xf1, 1408}, + /*II_DB_02*/ {0xea, 1416}, + /*II_DB_03*/ {0xea, 1422}, + /*II_DB_05*/ {0xf2, 1058}, + /*II_DB_07*/ {0xf3, 1068}, + /*II_DB_C0*/ {0xed, 1429}, + /*II_DB_C0*/ {0xed, 1429}, + /*II_DB_C0*/ {0xed, 1429}, + /*II_DB_C0*/ {0xed, 1429}, + /*II_DB_C0*/ {0xed, 1429}, + /*II_DB_C0*/ {0xed, 1429}, + /*II_DB_C0*/ {0xed, 1429}, + /*II_DB_C0*/ {0xed, 1429}, + /*II_DB_C8*/ {0xee, 1438}, + /*II_DB_C8*/ {0xee, 1438}, + /*II_DB_C8*/ {0xee, 1438}, + /*II_DB_C8*/ {0xee, 1438}, + /*II_DB_C8*/ {0xee, 1438}, + /*II_DB_C8*/ {0xee, 1438}, + /*II_DB_C8*/ {0xee, 1438}, + /*II_DB_C8*/ {0xee, 1438}, + /*II_DB_D0*/ {0xef, 1447}, + /*II_DB_D0*/ {0xef, 1447}, + /*II_DB_D0*/ {0xef, 1447}, + /*II_DB_D0*/ {0xef, 1447}, + /*II_DB_D0*/ {0xef, 1447}, + /*II_DB_D0*/ {0xef, 1447}, + /*II_DB_D0*/ {0xef, 1447}, + /*II_DB_D0*/ {0xef, 1447}, + /*II_DB_D8*/ {0xf0, 1457}, + /*II_DB_D8*/ {0xf0, 1457}, + /*II_DB_D8*/ {0xf0, 1457}, + /*II_DB_D8*/ {0xf0, 1457}, + /*II_DB_D8*/ {0xf0, 1457}, + /*II_DB_D8*/ {0xf0, 1457}, + /*II_DB_D8*/ {0xf0, 1457}, + /*II_DB_D8*/ {0xf0, 1457}, + /*II_DB_E0*/ {0xe9, 1466}, + /*II_DB_E1*/ {0xe9, 1472}, + /*II_DB_E4*/ {0xe9, 1480}, + /*II_DB_E8*/ {0xf4, 1488}, + /*II_DB_E8*/ {0xf4, 1488}, + /*II_DB_E8*/ {0xf4, 1488}, + /*II_DB_E8*/ {0xf4, 1488}, + /*II_DB_E8*/ {0xf4, 1488}, + /*II_DB_E8*/ {0xf4, 1488}, + /*II_DB_E8*/ {0xf4, 1488}, + /*II_DB_E8*/ {0xf4, 1488}, + /*II_DB_F0*/ {0xf5, 1496}, + /*II_DB_F0*/ {0xf5, 1496}, + /*II_DB_F0*/ {0xf5, 1496}, + /*II_DB_F0*/ {0xf5, 1496}, + /*II_DB_F0*/ {0xf5, 1496}, + /*II_DB_F0*/ {0xf5, 1496}, + /*II_DB_F0*/ {0xf5, 1496}, + /*II_DB_F0*/ {0xf5, 1496}, + /*II_DC_00*/ {0xf6, 1007}, + /*II_DC_01*/ {0xf6, 1013}, + /*II_DC_02*/ {0xf6, 1019}, + /*II_DC_03*/ {0xf6, 1025}, + /*II_DC_04*/ {0xf6, 1032}, + /*II_DC_05*/ {0xf6, 1038}, + /*II_DC_06*/ {0xf6, 1045}, + /*II_DC_07*/ {0xf6, 1051}, + /*II_DC_C0*/ {0xf7, 1007}, + /*II_DC_C0*/ {0xf7, 1007}, + /*II_DC_C0*/ {0xf7, 1007}, + /*II_DC_C0*/ {0xf7, 1007}, + /*II_DC_C0*/ {0xf7, 1007}, + /*II_DC_C0*/ {0xf7, 1007}, + /*II_DC_C0*/ {0xf7, 1007}, + /*II_DC_C0*/ {0xf7, 1007}, + /*II_DC_C8*/ {0xf7, 1013}, + /*II_DC_C8*/ {0xf7, 1013}, + /*II_DC_C8*/ {0xf7, 1013}, + /*II_DC_C8*/ {0xf7, 1013}, + /*II_DC_C8*/ {0xf7, 1013}, + /*II_DC_C8*/ {0xf7, 1013}, + /*II_DC_C8*/ {0xf7, 1013}, + /*II_DC_C8*/ {0xf7, 1013}, + /*II_DC_E0*/ {0xf7, 1038}, + /*II_DC_E0*/ {0xf7, 1038}, + /*II_DC_E0*/ {0xf7, 1038}, + /*II_DC_E0*/ {0xf7, 1038}, + /*II_DC_E0*/ {0xf7, 1038}, + /*II_DC_E0*/ {0xf7, 1038}, + /*II_DC_E0*/ {0xf7, 1038}, + /*II_DC_E0*/ {0xf7, 1038}, + /*II_DC_E8*/ {0xf7, 1032}, + /*II_DC_E8*/ {0xf7, 1032}, + /*II_DC_E8*/ {0xf7, 1032}, + /*II_DC_E8*/ {0xf7, 1032}, + /*II_DC_E8*/ {0xf7, 1032}, + /*II_DC_E8*/ {0xf7, 1032}, + /*II_DC_E8*/ {0xf7, 1032}, + /*II_DC_E8*/ {0xf7, 1032}, + /*II_DC_F0*/ {0xf7, 1051}, + /*II_DC_F0*/ {0xf7, 1051}, + /*II_DC_F0*/ {0xf7, 1051}, + /*II_DC_F0*/ {0xf7, 1051}, + /*II_DC_F0*/ {0xf7, 1051}, + /*II_DC_F0*/ {0xf7, 1051}, + /*II_DC_F0*/ {0xf7, 1051}, + /*II_DC_F0*/ {0xf7, 1051}, + /*II_DC_F8*/ {0xf7, 1045}, + /*II_DC_F8*/ {0xf7, 1045}, + /*II_DC_F8*/ {0xf7, 1045}, + /*II_DC_F8*/ {0xf7, 1045}, + /*II_DC_F8*/ {0xf7, 1045}, + /*II_DC_F8*/ {0xf7, 1045}, + /*II_DC_F8*/ {0xf7, 1045}, + /*II_DC_F8*/ {0xf7, 1045}, + /*II_DD_00*/ {0xf6, 1058}, + /*II_DD_01*/ {0xf8, 1408}, + /*II_DD_02*/ {0xf9, 1063}, + /*II_DD_03*/ {0xf9, 1068}, + /*II_DD_04*/ {0xeb, 1503}, + /*II_DD_C0*/ {0xe8, 1511}, + /*II_DD_C0*/ {0xe8, 1511}, + /*II_DD_C0*/ {0xe8, 1511}, + /*II_DD_C0*/ {0xe8, 1511}, + /*II_DD_C0*/ {0xe8, 1511}, + /*II_DD_C0*/ {0xe8, 1511}, + /*II_DD_C0*/ {0xe8, 1511}, + /*II_DD_C0*/ {0xe8, 1511}, + /*II_DD_D0*/ {0xe8, 1063}, + /*II_DD_D0*/ {0xe8, 1063}, + /*II_DD_D0*/ {0xe8, 1063}, + /*II_DD_D0*/ {0xe8, 1063}, + /*II_DD_D0*/ {0xe8, 1063}, + /*II_DD_D0*/ {0xe8, 1063}, + /*II_DD_D0*/ {0xe8, 1063}, + /*II_DD_D0*/ {0xe8, 1063}, + /*II_DD_D8*/ {0xe8, 1068}, + /*II_DD_D8*/ {0xe8, 1068}, + /*II_DD_D8*/ {0xe8, 1068}, + /*II_DD_D8*/ {0xe8, 1068}, + /*II_DD_D8*/ {0xe8, 1068}, + /*II_DD_D8*/ {0xe8, 1068}, + /*II_DD_D8*/ {0xe8, 1068}, + /*II_DD_D8*/ {0xe8, 1068}, + /*II_DD_E0*/ {0xf7, 1518}, + /*II_DD_E1*/ {0xe9, 1518}, + /*II_DD_E0*/ {0xf7, 1518}, + /*II_DD_E0*/ {0xf7, 1518}, + /*II_DD_E0*/ {0xf7, 1518}, + /*II_DD_E0*/ {0xf7, 1518}, + /*II_DD_E0*/ {0xf7, 1518}, + /*II_DD_E0*/ {0xf7, 1518}, + /*II_DD_E8*/ {0xe8, 1525}, + /*II_DD_E9*/ {0xe9, 1525}, + /*II_DD_E8*/ {0xe8, 1525}, + /*II_DD_E8*/ {0xe8, 1525}, + /*II_DD_E8*/ {0xe8, 1525}, + /*II_DD_E8*/ {0xe8, 1525}, + /*II_DD_E8*/ {0xe8, 1525}, + /*II_DD_E8*/ {0xe8, 1525}, + /*II_DE_00*/ {0xec, 1301}, + /*II_DE_01*/ {0xec, 1308}, + /*II_DE_02*/ {0xec, 1315}, + /*II_DE_03*/ {0xec, 1322}, + /*II_DE_04*/ {0xec, 1330}, + /*II_DE_05*/ {0xec, 1337}, + /*II_DE_06*/ {0xec, 1345}, + /*II_DE_07*/ {0xec, 1352}, + /*II_DE_C0*/ {0xf7, 1533}, + /*II_DE_C1*/ {0xe9, 1533}, + /*II_DE_C0*/ {0xf7, 1533}, + /*II_DE_C0*/ {0xf7, 1533}, + /*II_DE_C0*/ {0xf7, 1533}, + /*II_DE_C0*/ {0xf7, 1533}, + /*II_DE_C0*/ {0xf7, 1533}, + /*II_DE_C0*/ {0xf7, 1533}, + /*II_DE_C8*/ {0xf7, 1540}, + /*II_DE_C9*/ {0xe9, 1540}, + /*II_DE_C8*/ {0xf7, 1540}, + /*II_DE_C8*/ {0xf7, 1540}, + /*II_DE_C8*/ {0xf7, 1540}, + /*II_DE_C8*/ {0xf7, 1540}, + /*II_DE_C8*/ {0xf7, 1540}, + /*II_DE_C8*/ {0xf7, 1540}, + /*II_DE_D9*/ {0xe9, 1547}, + /*II_DE_E0*/ {0xf7, 1555}, + /*II_DE_E1*/ {0xe9, 1555}, + /*II_DE_E0*/ {0xf7, 1555}, + /*II_DE_E0*/ {0xf7, 1555}, + /*II_DE_E0*/ {0xf7, 1555}, + /*II_DE_E0*/ {0xf7, 1555}, + /*II_DE_E0*/ {0xf7, 1555}, + /*II_DE_E0*/ {0xf7, 1555}, + /*II_DE_E8*/ {0xf7, 1563}, + /*II_DE_E9*/ {0xe9, 1563}, + /*II_DE_E8*/ {0xf7, 1563}, + /*II_DE_E8*/ {0xf7, 1563}, + /*II_DE_E8*/ {0xf7, 1563}, + /*II_DE_E8*/ {0xf7, 1563}, + /*II_DE_E8*/ {0xf7, 1563}, + /*II_DE_E8*/ {0xf7, 1563}, + /*II_DE_F0*/ {0xf7, 1570}, + /*II_DE_F1*/ {0xe9, 1570}, + /*II_DE_F0*/ {0xf7, 1570}, + /*II_DE_F0*/ {0xf7, 1570}, + /*II_DE_F0*/ {0xf7, 1570}, + /*II_DE_F0*/ {0xf7, 1570}, + /*II_DE_F0*/ {0xf7, 1570}, + /*II_DE_F0*/ {0xf7, 1570}, + /*II_DE_F8*/ {0xf7, 1578}, + /*II_DE_F9*/ {0xe9, 1578}, + /*II_DE_F8*/ {0xf7, 1578}, + /*II_DE_F8*/ {0xf7, 1578}, + /*II_DE_F8*/ {0xf7, 1578}, + /*II_DE_F8*/ {0xf7, 1578}, + /*II_DE_F8*/ {0xf7, 1578}, + /*II_DE_F8*/ {0xf7, 1578}, + /*II_DF_00*/ {0xec, 1402}, + /*II_DF_01*/ {0xfa, 1408}, /*II_DF_02*/ {0xfb, 1416}, /*II_DF_03*/ {0xfb, 1422}, - /*II_DF_04*/ {0xf5, 1585}, - /*II_DF_05*/ {0xf8, 1402}, - /*II_DF_06*/ {0xf5, 1591}, - /*II_DF_07*/ {0xf8, 1422}, - /*II_DF_E8*/ {0xf6, 1598}, - /*II_DF_E8*/ {0xf6, 1598}, - /*II_DF_E8*/ {0xf6, 1598}, - /*II_DF_E8*/ {0xf6, 1598}, - /*II_DF_E8*/ {0xf6, 1598}, - /*II_DF_E8*/ {0xf6, 1598}, - /*II_DF_E8*/ {0xf6, 1598}, - /*II_DF_E8*/ {0xf6, 1598}, - /*II_DF_F0*/ {0xf6, 1607}, - /*II_DF_F0*/ {0xf6, 1607}, - /*II_DF_F0*/ {0xf6, 1607}, - /*II_DF_F0*/ {0xf6, 1607}, - /*II_DF_F0*/ {0xf6, 1607}, - /*II_DF_F0*/ {0xf6, 1607}, - /*II_DF_F0*/ {0xf6, 1607}, - /*II_DF_F0*/ {0xf6, 1607}, - /*II_F6_00*/ {0xfd, 206}, - /*II_F6_02*/ {0xfe, 1615}, - /*II_F6_03*/ {0xff, 1620}, - /*II_F6_04*/ {0x100, 1625}, - /*II_F6_05*/ {0x100, 117}, - /*II_F6_06*/ {0x101, 1630}, - /*II_F6_07*/ {0x101, 1635}, - /*II_F7_00*/ {0x102, 206}, - /*II_F7_02*/ {0x103, 1615}, - /*II_F7_03*/ {0x104, 1620}, - /*II_F7_04*/ {0x105, 1625}, - /*II_F7_05*/ {0x105, 117}, - /*II_F7_06*/ {0x106, 1630}, - /*II_F7_07*/ {0x106, 1635}, - /*II_FE_00*/ {0x107, 81}, - /*II_FE_01*/ {0x107, 86}, - /*II_FF_00*/ {0x108, 81}, - /*II_FF_01*/ {0x108, 86}, - /*II_FF_02*/ {0x109, 456}, - /*II_FF_03*/ {0x10a, 260}, - /*II_FF_04*/ {0x10b, 462}, - /*II_FF_05*/ {0x10c, 467}, - /*II_FF_06*/ {0x10d, 16}, - /*II_0F_00_00*/ {0x10e, 1641}, - /*II_0F_00_01*/ {0x10f, 1647}, - /*II_0F_00_02*/ {0x10f, 1652}, - /*II_0F_00_03*/ {0x110, 1658}, - /*II_0F_00_04*/ {0x111, 1663}, - /*II_0F_00_05*/ {0x111, 1669}, - /*II_0F_01_00*/ {0x112, 1675}, - /*II_0F_01_01*/ {0x112, 1681}, - /*II_0F_01_02*/ {0x112, 1687}, - /*II_0F_01_03*/ {0x112, 1693}, - /*II_0F_01_04*/ {0x113, 1699}, - /*II_0F_01_06*/ {0x114, 1705}, - /*II_0F_01_07*/ {0x115, 1711}, - /*II_0F_01_C1*/ {0x116, 1719}, - /*II_0F_01_C2*/ {0x116, 1727}, - /*II_0F_01_C3*/ {0x116, 1737}, - /*II_0F_01_C4*/ {0x116, 1747}, - /*II_0F_01_C8*/ {0x117, 1755}, - /*II_0F_01_C9*/ {0x117, 1764}, + /*II_DF_04*/ {0xf2, 1585}, + /*II_DF_05*/ {0xf6, 1402}, + /*II_DF_06*/ {0xf3, 1591}, + /*II_DF_07*/ {0xf9, 1422}, + /*II_DF_E8*/ {0xf4, 1598}, + /*II_DF_E8*/ {0xf4, 1598}, + /*II_DF_E8*/ {0xf4, 1598}, + /*II_DF_E8*/ {0xf4, 1598}, + /*II_DF_E8*/ {0xf4, 1598}, + /*II_DF_E8*/ {0xf4, 1598}, + /*II_DF_E8*/ {0xf4, 1598}, + /*II_DF_E8*/ {0xf4, 1598}, + /*II_DF_F0*/ {0xf4, 1607}, + /*II_DF_F0*/ {0xf4, 1607}, + /*II_DF_F0*/ {0xf4, 1607}, + /*II_DF_F0*/ {0xf4, 1607}, + /*II_DF_F0*/ {0xf4, 1607}, + /*II_DF_F0*/ {0xf4, 1607}, + /*II_DF_F0*/ {0xf4, 1607}, + /*II_DF_F0*/ {0xf4, 1607}, + /*II_F6_00*/ {0xfc, 206}, + /*II_F6_02*/ {0xfd, 1615}, + /*II_F6_03*/ {0xfe, 1620}, + /*II_F6_04*/ {0xff, 1625}, + /*II_F6_05*/ {0xff, 117}, + /*II_F6_06*/ {0x100, 1630}, + /*II_F6_07*/ {0x100, 1635}, + /*II_F7_00*/ {0x101, 206}, + /*II_F7_02*/ {0x102, 1615}, + /*II_F7_03*/ {0x103, 1620}, + /*II_F7_04*/ {0x104, 1625}, + /*II_F7_05*/ {0x104, 117}, + /*II_F7_06*/ {0x105, 1630}, + /*II_F7_07*/ {0x105, 1635}, + /*II_FE_00*/ {0x106, 81}, + /*II_FE_01*/ {0x106, 86}, + /*II_FF_00*/ {0x107, 81}, + /*II_FF_01*/ {0x107, 86}, + /*II_FF_02*/ {0x108, 456}, + /*II_FF_03*/ {0x109, 260}, + /*II_FF_04*/ {0x10a, 462}, + /*II_FF_05*/ {0x10b, 467}, + /*II_FF_06*/ {0x10c, 16}, + /*II_0F_00_00*/ {0x10d, 1641}, + /*II_0F_00_01*/ {0x10e, 1647}, + /*II_0F_00_02*/ {0x10e, 34420}, + /*II_0F_00_03*/ {0x10f, 34426}, + /*II_0F_00_04*/ {0x110, 1663}, + /*II_0F_00_05*/ {0x110, 1669}, + /*II_0F_01_00*/ {0x111, 1675}, + /*II_0F_01_01*/ {0x111, 1681}, + /*II_0F_01_02*/ {0x111, 34455}, + /*II_0F_01_03*/ {0x111, 34461}, + /*II_0F_01_04*/ {0x112, 1699}, + /*II_0F_01_06*/ {0x113, 34473}, + /*II_0F_01_07*/ {0x114, 34479}, + /*II_0F_01_C1*/ {0x115, 1719}, + /*II_0F_01_C2*/ {0x115, 1727}, + /*II_0F_01_C3*/ {0x115, 1737}, + /*II_0F_01_C4*/ {0x115, 1747}, + /*II_0F_01_C8*/ {0x116, 1755}, + /*II_0F_01_C9*/ {0x116, 1764}, /*II_0F_01_D0*/ {0x88, 1771}, /*II_0F_01_D1*/ {0x88, 1779}, - /*II_0F_01_D4*/ {0x116, 1787}, - /*II_0F_01_D8*/ {0x118, 1795}, - /*II_0F_01_D9*/ {0x119, 1802}, - /*II_0F_01_DA*/ {0x11a, 1811}, - /*II_0F_01_DB*/ {0x11a, 1819}, - /*II_0F_01_DC*/ {0x119, 1827}, - /*II_0F_01_DD*/ {0x119, 1833}, - /*II_0F_01_DE*/ {0x11a, 1839}, - /*II_0F_01_DF*/ {0x11b, 1847}, - /*II_0F_01_F8*/ {0x11c, 1856}, - /*II_0F_01_F9*/ {0x11c, 1864}, - /*II_0F_0D_00*/ {0x11d, 1872}, - /*II_0F_0D_01*/ {0x11d, 1882}, - /*II_0F_0F_0C*/ {0x11e, 1893}, - /*II_0F_0F_0D*/ {0x11f, 1900}, - /*II_0F_0F_1C*/ {0x11e, 1907}, - /*II_0F_0F_1D*/ {0x11f, 1914}, - /*II_0F_0F_8A*/ {0x11e, 1921}, - /*II_0F_0F_8E*/ {0x11e, 1929}, - /*II_0F_0F_90*/ {0x11f, 1938}, - /*II_0F_0F_94*/ {0x11f, 1947}, - /*II_0F_0F_96*/ {0x11f, 1954}, - /*II_0F_0F_97*/ {0x11f, 1961}, - /*II_0F_0F_9A*/ {0x11f, 1970}, - /*II_0F_0F_9E*/ {0x11f, 1977}, - /*II_0F_0F_A0*/ {0x11f, 1984}, - /*II_0F_0F_A4*/ {0x11f, 1993}, - /*II_0F_0F_A6*/ {0x11f, 2000}, - /*II_0F_0F_A7*/ {0x11f, 2010}, - /*II_0F_0F_AA*/ {0x11f, 2020}, - /*II_0F_0F_AE*/ {0x11f, 2028}, - /*II_0F_0F_B0*/ {0x11f, 2035}, - /*II_0F_0F_B4*/ {0x11f, 2044}, - /*II_0F_0F_B6*/ {0x11f, 2051}, - /*II_0F_0F_B7*/ {0x11f, 2061}, - /*II_0F_0F_BB*/ {0x11e, 2070}, - /*II_0F_0F_BF*/ {0x11f, 2078}, - /*II_0F_10*/ {0x120, 2087}, - /*II_66_0F_10*/ {0x121, 2095}, - /*II_F3_0F_10*/ {0x122, 2103}, - /*II_F2_0F_10*/ {0x123, 2110}, - /*II_0F_11*/ {0x128, 2087}, - /*II_66_0F_11*/ {0x129, 2095}, - /*II_F3_0F_11*/ {0x12a, 2103}, - /*II_F2_0F_11*/ {0x12b, 2110}, - /*II_66_0F_12*/ {0x130, 2168}, - /*II_F3_0F_12*/ {0x131, 2176}, - /*II_F2_0F_12*/ {0x131, 2186}, - /*II_0F_13*/ {0x135, 2160}, - /*II_66_0F_13*/ {0x136, 2168}, - /*II_0F_14*/ {0x138, 2244}, - /*II_66_0F_14*/ {0x139, 2254}, - /*II_0F_15*/ {0x138, 2286}, - /*II_66_0F_15*/ {0x139, 2296}, - /*II_66_0F_16*/ {0x130, 2345}, - /*II_F3_0F_16*/ {0x13b, 2353}, - /*II_0F_17*/ {0x135, 2337}, - /*II_66_0F_17*/ {0x136, 2345}, - /*II_0F_18_00*/ {0x13c, 2402}, - /*II_0F_18_01*/ {0x13c, 2415}, - /*II_0F_18_02*/ {0x13c, 2427}, - /*II_0F_18_03*/ {0x13c, 2439}, - /*II_0F_28*/ {0x120, 2451}, - /*II_66_0F_28*/ {0x121, 2459}, - /*II_0F_29*/ {0x128, 2451}, - /*II_66_0F_29*/ {0x129, 2459}, - /*II_0F_2A*/ {0x13d, 2485}, - /*II_66_0F_2A*/ {0x13e, 2495}, - /*II_F3_0F_2A*/ {0x13f, 2505}, - /*II_F2_0F_2A*/ {0x140, 2515}, - /*II_0F_2B*/ {0x141, 2547}, - /*II_66_0F_2B*/ {0x142, 2556}, - /*II_F3_0F_2B*/ {0x143, 2565}, - /*II_F2_0F_2B*/ {0x144, 2574}, - /*II_0F_2C*/ {0x146, 2603}, - /*II_66_0F_2C*/ {0x147, 2614}, - /*II_F3_0F_2C*/ {0x148, 2625}, - /*II_F2_0F_2C*/ {0x149, 2636}, - /*II_0F_2D*/ {0x146, 2671}, - /*II_66_0F_2D*/ {0x139, 2681}, - /*II_F3_0F_2D*/ {0x148, 2691}, - /*II_F2_0F_2D*/ {0x149, 2701}, - /*II_0F_2E*/ {0x14b, 2733}, - /*II_66_0F_2E*/ {0x14c, 2742}, - /*II_0F_2F*/ {0x14b, 2771}, - /*II_66_0F_2F*/ {0x14c, 2779}, - /*II_0F_50*/ {0x14f, 2805}, - /*II_66_0F_50*/ {0x150, 2815}, - /*II_0F_51*/ {0x138, 2847}, - /*II_66_0F_51*/ {0x139, 2855}, - /*II_F3_0F_51*/ {0x152, 2863}, - /*II_F2_0F_51*/ {0x14c, 2871}, - /*II_0F_52*/ {0x138, 2915}, - /*II_F3_0F_52*/ {0x152, 2924}, - /*II_0F_53*/ {0x138, 2953}, - /*II_F3_0F_53*/ {0x152, 2960}, - /*II_0F_54*/ {0x138, 2983}, - /*II_66_0F_54*/ {0x139, 2990}, - /*II_0F_55*/ {0x138, 3013}, - /*II_66_0F_55*/ {0x139, 3021}, - /*II_0F_56*/ {0x138, 3047}, - /*II_66_0F_56*/ {0x139, 3053}, - /*II_0F_57*/ {0x138, 3073}, - /*II_66_0F_57*/ {0x139, 3080}, - /*II_0F_58*/ {0x138, 3103}, - /*II_66_0F_58*/ {0x139, 3110}, - /*II_F3_0F_58*/ {0x152, 3117}, - /*II_F2_0F_58*/ {0x14c, 3124}, - /*II_0F_59*/ {0x138, 3163}, - /*II_66_0F_59*/ {0x139, 3170}, - /*II_F3_0F_59*/ {0x152, 3177}, - /*II_F2_0F_59*/ {0x14c, 3184}, - /*II_0F_5A*/ {0x14c, 3223}, - /*II_66_0F_5A*/ {0x139, 3233}, - /*II_F3_0F_5A*/ {0x153, 3243}, - /*II_F2_0F_5A*/ {0x14c, 3253}, - /*II_0F_5B*/ {0x139, 3307}, - /*II_66_0F_5B*/ {0x139, 3317}, - /*II_F3_0F_5B*/ {0x139, 3327}, - /*II_0F_5C*/ {0x138, 3372}, - /*II_66_0F_5C*/ {0x139, 3379}, - /*II_F3_0F_5C*/ {0x152, 3386}, - /*II_F2_0F_5C*/ {0x14c, 3393}, - /*II_0F_5D*/ {0x138, 3432}, - /*II_66_0F_5D*/ {0x139, 3439}, - /*II_F3_0F_5D*/ {0x152, 3446}, - /*II_F2_0F_5D*/ {0x14c, 3453}, - /*II_0F_5E*/ {0x138, 3492}, - /*II_66_0F_5E*/ {0x139, 3499}, - /*II_F3_0F_5E*/ {0x152, 3506}, - /*II_F2_0F_5E*/ {0x14c, 3513}, - /*II_0F_5F*/ {0x138, 3552}, - /*II_66_0F_5F*/ {0x139, 3559}, - /*II_F3_0F_5F*/ {0x152, 3566}, - /*II_F2_0F_5F*/ {0x14c, 3573}, - /*II_0F_60*/ {0x156, 3612}, - /*II_66_0F_60*/ {0x139, 3612}, - /*II_0F_61*/ {0x156, 3635}, - /*II_66_0F_61*/ {0x139, 3635}, - /*II_0F_62*/ {0x156, 3658}, - /*II_66_0F_62*/ {0x139, 3658}, - /*II_0F_63*/ {0x157, 3681}, - /*II_66_0F_63*/ {0x139, 3681}, - /*II_0F_64*/ {0x157, 3702}, - /*II_66_0F_64*/ {0x139, 3702}, - /*II_0F_65*/ {0x157, 3721}, - /*II_66_0F_65*/ {0x139, 3721}, - /*II_0F_66*/ {0x157, 3740}, - /*II_66_0F_66*/ {0x139, 3740}, - /*II_0F_67*/ {0x157, 3759}, - /*II_66_0F_67*/ {0x139, 3759}, - /*II_0F_68*/ {0x157, 3780}, - /*II_66_0F_68*/ {0x139, 3780}, - /*II_0F_69*/ {0x157, 3803}, - /*II_66_0F_69*/ {0x139, 3803}, - /*II_0F_6A*/ {0x157, 3826}, - /*II_66_0F_6A*/ {0x139, 3826}, - /*II_0F_6B*/ {0x157, 3849}, - /*II_66_0F_6B*/ {0x139, 3849}, - /*II_66_0F_6C*/ {0x139, 3870}, - /*II_66_0F_6D*/ {0x139, 3895}, - /*II_0F_6F*/ {0x15b, 3926}, - /*II_66_0F_6F*/ {0x121, 3946}, - /*II_F3_0F_6F*/ {0x121, 3954}, - /*II_0F_74*/ {0x157, 4043}, - /*II_66_0F_74*/ {0x139, 4043}, - /*II_0F_75*/ {0x157, 4062}, - /*II_66_0F_75*/ {0x139, 4062}, - /*II_0F_76*/ {0x157, 4081}, - /*II_66_0F_76*/ {0x139, 4081}, - /*II_0F_77*/ {0x15f, 4100}, - /*II_0F_78*/ {0x161, 4128}, - /*II_0F_79*/ {0x164, 4152}, - /*II_66_0F_79*/ {0x165, 4136}, - /*II_F2_0F_79*/ {0x166, 4143}, - /*II_0F_7A_30*/ {0x167, 4161}, - /*II_0F_7A_31*/ {0x168, 4171}, - /*II_66_0F_7C*/ {0x169, 4181}, - /*II_F2_0F_7C*/ {0x169, 4189}, - /*II_66_0F_7D*/ {0x169, 4215}, - /*II_F2_0F_7D*/ {0x169, 4223}, - /*II_F3_0F_7E*/ {0x123, 3926}, - /*II_0F_7F*/ {0x16d, 3926}, - /*II_66_0F_7F*/ {0x129, 3946}, - /*II_F3_0F_7F*/ {0x129, 3954}, - /*II_F3_0F_B8*/ {0x171, 4338}, - /*II_0F_BA_04*/ {0x172, 872}, - /*II_0F_BA_05*/ {0x173, 887}, - /*II_0F_BA_06*/ {0x173, 912}, - /*II_0F_BA_07*/ {0x173, 934}, - /*II_0F_BC*/ {0x174, 4346}, - /*II_F3_0F_BC*/ {0x175, 4351}, - /*II_0F_BD*/ {0x174, 4358}, - /*II_F3_0F_BD*/ {0x176, 4363}, - /*II_0F_C7_07*/ {0x186, 6385}, - /*II_66_0F_D0*/ {0x169, 6394}, - /*II_F2_0F_D0*/ {0x169, 6404}, - /*II_0F_D1*/ {0x157, 6436}, - /*II_66_0F_D1*/ {0x139, 6436}, - /*II_0F_D2*/ {0x157, 6451}, - /*II_66_0F_D2*/ {0x139, 6451}, - /*II_0F_D3*/ {0x157, 6466}, - /*II_66_0F_D3*/ {0x139, 6466}, - /*II_0F_D4*/ {0x14c, 6481}, - /*II_66_0F_D4*/ {0x139, 6481}, - /*II_0F_D5*/ {0x157, 6496}, - /*II_66_0F_D5*/ {0x139, 6496}, - /*II_66_0F_D6*/ {0x12b, 3926}, - /*II_F3_0F_D6*/ {0x187, 6513}, - /*II_F2_0F_D6*/ {0x188, 6522}, - /*II_0F_D7*/ {0x18a, 6531}, - /*II_66_0F_D7*/ {0x18b, 6531}, - /*II_0F_D8*/ {0x157, 6552}, - /*II_66_0F_D8*/ {0x139, 6552}, - /*II_0F_D9*/ {0x157, 6571}, - /*II_66_0F_D9*/ {0x139, 6571}, - /*II_0F_DA*/ {0x18d, 6590}, - /*II_66_0F_DA*/ {0x139, 6590}, - /*II_0F_DB*/ {0x157, 6607}, - /*II_66_0F_DB*/ {0x139, 6607}, - /*II_0F_DC*/ {0x157, 6620}, - /*II_66_0F_DC*/ {0x139, 6620}, - /*II_0F_DD*/ {0x157, 6639}, - /*II_66_0F_DD*/ {0x139, 6639}, - /*II_0F_DE*/ {0x18d, 6648}, - /*II_66_0F_DE*/ {0x139, 6648}, - /*II_0F_DF*/ {0x157, 6665}, - /*II_66_0F_DF*/ {0x139, 6665}, - /*II_0F_E0*/ {0x18d, 6680}, - /*II_66_0F_E0*/ {0x139, 6680}, - /*II_0F_E1*/ {0x157, 6695}, - /*II_66_0F_E1*/ {0x139, 6695}, - /*II_0F_E2*/ {0x157, 6710}, - /*II_66_0F_E2*/ {0x139, 6710}, - /*II_0F_E3*/ {0x18d, 6725}, - /*II_66_0F_E3*/ {0x139, 6725}, - /*II_0F_E4*/ {0x18d, 6740}, - /*II_66_0F_E4*/ {0x139, 6740}, - /*II_0F_E5*/ {0x157, 6759}, - /*II_66_0F_E5*/ {0x139, 6759}, - /*II_66_0F_E6*/ {0x139, 6776}, - /*II_F3_0F_E6*/ {0x14c, 6787}, - /*II_F2_0F_E6*/ {0x139, 6797}, - /*II_0F_E7*/ {0x18e, 6841}, - /*II_66_0F_E7*/ {0x142, 6849}, - /*II_0F_E8*/ {0x157, 6868}, - /*II_66_0F_E8*/ {0x139, 6868}, - /*II_0F_E9*/ {0x157, 6885}, - /*II_66_0F_E9*/ {0x139, 6885}, - /*II_0F_EA*/ {0x18d, 6902}, - /*II_66_0F_EA*/ {0x139, 6902}, - /*II_0F_EB*/ {0x157, 6919}, - /*II_66_0F_EB*/ {0x139, 6919}, - /*II_0F_EC*/ {0x157, 6930}, - /*II_66_0F_EC*/ {0x139, 6930}, - /*II_0F_ED*/ {0x157, 6947}, - /*II_66_0F_ED*/ {0x139, 6947}, - /*II_0F_EE*/ {0x18d, 6964}, - /*II_66_0F_EE*/ {0x139, 6964}, - /*II_0F_EF*/ {0x157, 6981}, - /*II_66_0F_EF*/ {0x139, 6981}, - /*II_F2_0F_F0*/ {0x18f, 6994}, - /*II_0F_F1*/ {0x157, 7009}, - /*II_66_0F_F1*/ {0x139, 7009}, - /*II_0F_F2*/ {0x157, 7024}, - /*II_66_0F_F2*/ {0x139, 7024}, - /*II_0F_F3*/ {0x157, 7039}, - /*II_66_0F_F3*/ {0x139, 7039}, - /*II_0F_F4*/ {0x191, 7054}, - /*II_66_0F_F4*/ {0x139, 7054}, - /*II_0F_F5*/ {0x157, 7073}, - /*II_66_0F_F5*/ {0x139, 7073}, - /*II_0F_F6*/ {0x18d, 7092}, - /*II_66_0F_F6*/ {0x139, 7092}, - /*II_0F_F7*/ {0x192, 7109}, - /*II_66_0F_F7*/ {0x193, 7119}, - /*II_0F_F8*/ {0x157, 7144}, - /*II_66_0F_F8*/ {0x139, 7144}, - /*II_0F_F9*/ {0x157, 7159}, - /*II_66_0F_F9*/ {0x139, 7159}, - /*II_0F_FA*/ {0x157, 7174}, - /*II_66_0F_FA*/ {0x139, 7174}, - /*II_0F_FB*/ {0x191, 7189}, - /*II_66_0F_FB*/ {0x139, 7189}, - /*II_0F_FC*/ {0x157, 7204}, - /*II_66_0F_FC*/ {0x139, 7204}, - /*II_0F_FD*/ {0x157, 7219}, - /*II_66_0F_FD*/ {0x139, 7219}, - /*II_0F_FE*/ {0x157, 7234}, - /*II_66_0F_FE*/ {0x139, 7234}, - /*II_D9_06*/ {0xef, 7249}, + /*II_0F_01_D4*/ {0x115, 1787}, + /*II_0F_01_D8*/ {0x117, 1795}, + /*II_0F_01_D9*/ {0x118, 1802}, + /*II_0F_01_DA*/ {0x119, 1811}, + /*II_0F_01_DB*/ {0x119, 1819}, + /*II_0F_01_DC*/ {0x118, 1827}, + /*II_0F_01_DD*/ {0x118, 1833}, + /*II_0F_01_DE*/ {0x119, 1839}, + /*II_0F_01_DF*/ {0x11a, 1847}, + /*II_0F_01_F8*/ {0x11b, 1856}, + /*II_0F_01_F9*/ {0x11b, 1864}, + /*II_0F_0D_00*/ {0x11c, 1872}, + /*II_0F_0D_01*/ {0x11c, 1882}, + /*II_0F_0F_0C*/ {0x11d, 1893}, + /*II_0F_0F_0D*/ {0x11e, 1900}, + /*II_0F_0F_1C*/ {0x11d, 1907}, + /*II_0F_0F_1D*/ {0x11e, 1914}, + /*II_0F_0F_8A*/ {0x11d, 1921}, + /*II_0F_0F_8E*/ {0x11d, 1929}, + /*II_0F_0F_90*/ {0x11e, 1938}, + /*II_0F_0F_94*/ {0x11e, 1947}, + /*II_0F_0F_96*/ {0x11e, 1954}, + /*II_0F_0F_97*/ {0x11e, 1961}, + /*II_0F_0F_9A*/ {0x11e, 1970}, + /*II_0F_0F_9E*/ {0x11e, 1977}, + /*II_0F_0F_A0*/ {0x11e, 1984}, + /*II_0F_0F_A4*/ {0x11e, 1993}, + /*II_0F_0F_A6*/ {0x11e, 2000}, + /*II_0F_0F_A7*/ {0x11e, 2010}, + /*II_0F_0F_AA*/ {0x11e, 2020}, + /*II_0F_0F_AE*/ {0x11e, 2028}, + /*II_0F_0F_B0*/ {0x11e, 2035}, + /*II_0F_0F_B4*/ {0x11e, 2044}, + /*II_0F_0F_B6*/ {0x11e, 2051}, + /*II_0F_0F_B7*/ {0x11e, 2061}, + /*II_0F_0F_BB*/ {0x11d, 2070}, + /*II_0F_0F_BF*/ {0x11e, 2078}, + /*II_0F_10*/ {0x11f, 2087}, + /*II_66_0F_10*/ {0x120, 2095}, + /*II_F3_0F_10*/ {0x121, 2103}, + /*II_F2_0F_10*/ {0x122, 2110}, + /*II_0F_11*/ {0x127, 2087}, + /*II_66_0F_11*/ {0x128, 2095}, + /*II_F3_0F_11*/ {0x129, 2103}, + /*II_F2_0F_11*/ {0x12a, 2110}, + /*II_66_0F_12*/ {0x12f, 2168}, + /*II_F3_0F_12*/ {0x130, 2176}, + /*II_F2_0F_12*/ {0x130, 2186}, + /*II_0F_13*/ {0x134, 2160}, + /*II_66_0F_13*/ {0x135, 2168}, + /*II_0F_14*/ {0x137, 2244}, + /*II_66_0F_14*/ {0x138, 2254}, + /*II_0F_15*/ {0x137, 2286}, + /*II_66_0F_15*/ {0x138, 2296}, + /*II_66_0F_16*/ {0x12f, 2345}, + /*II_F3_0F_16*/ {0x13a, 2353}, + /*II_0F_17*/ {0x134, 2337}, + /*II_66_0F_17*/ {0x135, 2345}, + /*II_0F_18_00*/ {0x13b, 2402}, + /*II_0F_18_01*/ {0x13b, 2415}, + /*II_0F_18_02*/ {0x13b, 2427}, + /*II_0F_18_03*/ {0x13b, 2439}, + /*II_0F_28*/ {0x11f, 2451}, + /*II_66_0F_28*/ {0x120, 2459}, + /*II_0F_29*/ {0x127, 2451}, + /*II_66_0F_29*/ {0x128, 2459}, + /*II_0F_2A*/ {0x13c, 2485}, + /*II_66_0F_2A*/ {0x13d, 2495}, + /*II_F3_0F_2A*/ {0x13e, 2505}, + /*II_F2_0F_2A*/ {0x13f, 2515}, + /*II_0F_2B*/ {0x140, 2547}, + /*II_66_0F_2B*/ {0x141, 2556}, + /*II_F3_0F_2B*/ {0x142, 2565}, + /*II_F2_0F_2B*/ {0x143, 2574}, + /*II_0F_2C*/ {0x145, 2603}, + /*II_66_0F_2C*/ {0x146, 2614}, + /*II_F3_0F_2C*/ {0x147, 2625}, + /*II_F2_0F_2C*/ {0x148, 2636}, + /*II_0F_2D*/ {0x145, 2671}, + /*II_66_0F_2D*/ {0x138, 2681}, + /*II_F3_0F_2D*/ {0x147, 2691}, + /*II_F2_0F_2D*/ {0x148, 2701}, + /*II_0F_2E*/ {0x14a, 2733}, + /*II_66_0F_2E*/ {0x14b, 2742}, + /*II_0F_2F*/ {0x14a, 2771}, + /*II_66_0F_2F*/ {0x14b, 2779}, + /*II_0F_50*/ {0x14e, 2805}, + /*II_66_0F_50*/ {0x14f, 2815}, + /*II_0F_51*/ {0x137, 2847}, + /*II_66_0F_51*/ {0x138, 2855}, + /*II_F3_0F_51*/ {0x151, 2863}, + /*II_F2_0F_51*/ {0x14b, 2871}, + /*II_0F_52*/ {0x137, 2915}, + /*II_F3_0F_52*/ {0x151, 2924}, + /*II_0F_53*/ {0x137, 2953}, + /*II_F3_0F_53*/ {0x151, 2960}, + /*II_0F_54*/ {0x137, 2983}, + /*II_66_0F_54*/ {0x138, 2990}, + /*II_0F_55*/ {0x137, 3013}, + /*II_66_0F_55*/ {0x138, 3021}, + /*II_0F_56*/ {0x137, 3047}, + /*II_66_0F_56*/ {0x138, 3053}, + /*II_0F_57*/ {0x137, 3073}, + /*II_66_0F_57*/ {0x138, 3080}, + /*II_0F_58*/ {0x137, 3103}, + /*II_66_0F_58*/ {0x138, 3110}, + /*II_F3_0F_58*/ {0x151, 3117}, + /*II_F2_0F_58*/ {0x14b, 3124}, + /*II_0F_59*/ {0x137, 3163}, + /*II_66_0F_59*/ {0x138, 3170}, + /*II_F3_0F_59*/ {0x151, 3177}, + /*II_F2_0F_59*/ {0x14b, 3184}, + /*II_0F_5A*/ {0x14b, 3223}, + /*II_66_0F_5A*/ {0x138, 3233}, + /*II_F3_0F_5A*/ {0x152, 3243}, + /*II_F2_0F_5A*/ {0x14b, 3253}, + /*II_0F_5B*/ {0x138, 3307}, + /*II_66_0F_5B*/ {0x138, 3317}, + /*II_F3_0F_5B*/ {0x138, 3327}, + /*II_0F_5C*/ {0x137, 3372}, + /*II_66_0F_5C*/ {0x138, 3379}, + /*II_F3_0F_5C*/ {0x151, 3386}, + /*II_F2_0F_5C*/ {0x14b, 3393}, + /*II_0F_5D*/ {0x137, 3432}, + /*II_66_0F_5D*/ {0x138, 3439}, + /*II_F3_0F_5D*/ {0x151, 3446}, + /*II_F2_0F_5D*/ {0x14b, 3453}, + /*II_0F_5E*/ {0x137, 3492}, + /*II_66_0F_5E*/ {0x138, 3499}, + /*II_F3_0F_5E*/ {0x151, 3506}, + /*II_F2_0F_5E*/ {0x14b, 3513}, + /*II_0F_5F*/ {0x137, 3552}, + /*II_66_0F_5F*/ {0x138, 3559}, + /*II_F3_0F_5F*/ {0x151, 3566}, + /*II_F2_0F_5F*/ {0x14b, 3573}, + /*II_0F_60*/ {0x155, 3612}, + /*II_66_0F_60*/ {0x138, 3612}, + /*II_0F_61*/ {0x155, 3635}, + /*II_66_0F_61*/ {0x138, 3635}, + /*II_0F_62*/ {0x155, 3658}, + /*II_66_0F_62*/ {0x138, 3658}, + /*II_0F_63*/ {0x156, 3681}, + /*II_66_0F_63*/ {0x138, 3681}, + /*II_0F_64*/ {0x156, 3702}, + /*II_66_0F_64*/ {0x138, 3702}, + /*II_0F_65*/ {0x156, 3721}, + /*II_66_0F_65*/ {0x138, 3721}, + /*II_0F_66*/ {0x156, 3740}, + /*II_66_0F_66*/ {0x138, 3740}, + /*II_0F_67*/ {0x156, 3759}, + /*II_66_0F_67*/ {0x138, 3759}, + /*II_0F_68*/ {0x156, 3780}, + /*II_66_0F_68*/ {0x138, 3780}, + /*II_0F_69*/ {0x156, 3803}, + /*II_66_0F_69*/ {0x138, 3803}, + /*II_0F_6A*/ {0x156, 3826}, + /*II_66_0F_6A*/ {0x138, 3826}, + /*II_0F_6B*/ {0x156, 3849}, + /*II_66_0F_6B*/ {0x138, 3849}, + /*II_66_0F_6C*/ {0x138, 3870}, + /*II_66_0F_6D*/ {0x138, 3895}, + /*II_0F_6F*/ {0x15a, 3926}, + /*II_66_0F_6F*/ {0x120, 3946}, + /*II_F3_0F_6F*/ {0x120, 3954}, + /*II_0F_74*/ {0x156, 4043}, + /*II_66_0F_74*/ {0x138, 4043}, + /*II_0F_75*/ {0x156, 4062}, + /*II_66_0F_75*/ {0x138, 4062}, + /*II_0F_76*/ {0x156, 4081}, + /*II_66_0F_76*/ {0x138, 4081}, + /*II_0F_77*/ {0x15e, 4100}, + /*II_0F_78*/ {0x160, 4128}, + /*II_0F_79*/ {0x163, 4152}, + /*II_66_0F_79*/ {0x164, 4136}, + /*II_F2_0F_79*/ {0x165, 4143}, + /*II_0F_7A_30*/ {0x166, 4161}, + /*II_0F_7A_31*/ {0x167, 4171}, + /*II_66_0F_7C*/ {0x168, 4181}, + /*II_F2_0F_7C*/ {0x168, 4189}, + /*II_66_0F_7D*/ {0x168, 4215}, + /*II_F2_0F_7D*/ {0x168, 4223}, + /*II_F3_0F_7E*/ {0x122, 3926}, + /*II_0F_7F*/ {0x16c, 3926}, + /*II_66_0F_7F*/ {0x128, 3946}, + /*II_F3_0F_7F*/ {0x128, 3954}, + /*II_F3_0F_B8*/ {0x170, 4338}, + /*II_0F_BA_04*/ {0x171, 872}, + /*II_0F_BA_05*/ {0x172, 887}, + /*II_0F_BA_06*/ {0x172, 912}, + /*II_0F_BA_07*/ {0x172, 934}, + /*II_0F_BC*/ {0x173, 4346}, + /*II_F3_0F_BC*/ {0x174, 4351}, + /*II_0F_BD*/ {0x173, 4358}, + /*II_F3_0F_BD*/ {0x175, 4363}, + /*II_0F_C7_07*/ {0x185, 6385}, + /*II_66_0F_D0*/ {0x168, 6394}, + /*II_F2_0F_D0*/ {0x168, 6404}, + /*II_0F_D1*/ {0x156, 6436}, + /*II_66_0F_D1*/ {0x138, 6436}, + /*II_0F_D2*/ {0x156, 6451}, + /*II_66_0F_D2*/ {0x138, 6451}, + /*II_0F_D3*/ {0x156, 6466}, + /*II_66_0F_D3*/ {0x138, 6466}, + /*II_0F_D4*/ {0x14b, 6481}, + /*II_66_0F_D4*/ {0x138, 6481}, + /*II_0F_D5*/ {0x156, 6496}, + /*II_66_0F_D5*/ {0x138, 6496}, + /*II_66_0F_D6*/ {0x12a, 3926}, + /*II_F3_0F_D6*/ {0x186, 6513}, + /*II_F2_0F_D6*/ {0x187, 6522}, + /*II_0F_D7*/ {0x189, 6531}, + /*II_66_0F_D7*/ {0x18a, 6531}, + /*II_0F_D8*/ {0x156, 6552}, + /*II_66_0F_D8*/ {0x138, 6552}, + /*II_0F_D9*/ {0x156, 6571}, + /*II_66_0F_D9*/ {0x138, 6571}, + /*II_0F_DA*/ {0x18c, 6590}, + /*II_66_0F_DA*/ {0x138, 6590}, + /*II_0F_DB*/ {0x156, 6607}, + /*II_66_0F_DB*/ {0x138, 6607}, + /*II_0F_DC*/ {0x156, 6620}, + /*II_66_0F_DC*/ {0x138, 6620}, + /*II_0F_DD*/ {0x156, 6639}, + /*II_66_0F_DD*/ {0x138, 6639}, + /*II_0F_DE*/ {0x18c, 6648}, + /*II_66_0F_DE*/ {0x138, 6648}, + /*II_0F_DF*/ {0x156, 6665}, + /*II_66_0F_DF*/ {0x138, 6665}, + /*II_0F_E0*/ {0x18c, 6680}, + /*II_66_0F_E0*/ {0x138, 6680}, + /*II_0F_E1*/ {0x156, 6695}, + /*II_66_0F_E1*/ {0x138, 6695}, + /*II_0F_E2*/ {0x156, 6710}, + /*II_66_0F_E2*/ {0x138, 6710}, + /*II_0F_E3*/ {0x18c, 6725}, + /*II_66_0F_E3*/ {0x138, 6725}, + /*II_0F_E4*/ {0x18c, 6740}, + /*II_66_0F_E4*/ {0x138, 6740}, + /*II_0F_E5*/ {0x156, 6759}, + /*II_66_0F_E5*/ {0x138, 6759}, + /*II_66_0F_E6*/ {0x138, 6776}, + /*II_F3_0F_E6*/ {0x14b, 6787}, + /*II_F2_0F_E6*/ {0x138, 6797}, + /*II_0F_E7*/ {0x18d, 6841}, + /*II_66_0F_E7*/ {0x141, 6849}, + /*II_0F_E8*/ {0x156, 6868}, + /*II_66_0F_E8*/ {0x138, 6868}, + /*II_0F_E9*/ {0x156, 6885}, + /*II_66_0F_E9*/ {0x138, 6885}, + /*II_0F_EA*/ {0x18c, 6902}, + /*II_66_0F_EA*/ {0x138, 6902}, + /*II_0F_EB*/ {0x156, 6919}, + /*II_66_0F_EB*/ {0x138, 6919}, + /*II_0F_EC*/ {0x156, 6930}, + /*II_66_0F_EC*/ {0x138, 6930}, + /*II_0F_ED*/ {0x156, 6947}, + /*II_66_0F_ED*/ {0x138, 6947}, + /*II_0F_EE*/ {0x18c, 6964}, + /*II_66_0F_EE*/ {0x138, 6964}, + /*II_0F_EF*/ {0x156, 6981}, + /*II_66_0F_EF*/ {0x138, 6981}, + /*II_F2_0F_F0*/ {0x18e, 6994}, + /*II_0F_F1*/ {0x156, 7009}, + /*II_66_0F_F1*/ {0x138, 7009}, + /*II_0F_F2*/ {0x156, 7024}, + /*II_66_0F_F2*/ {0x138, 7024}, + /*II_0F_F3*/ {0x156, 7039}, + /*II_66_0F_F3*/ {0x138, 7039}, + /*II_0F_F4*/ {0x190, 7054}, + /*II_66_0F_F4*/ {0x138, 7054}, + /*II_0F_F5*/ {0x156, 7073}, + /*II_66_0F_F5*/ {0x138, 7073}, + /*II_0F_F6*/ {0x18c, 7092}, + /*II_66_0F_F6*/ {0x138, 7092}, + /*II_0F_F7*/ {0x191, 7109}, + /*II_66_0F_F7*/ {0x192, 7119}, + /*II_0F_F8*/ {0x156, 7144}, + /*II_66_0F_F8*/ {0x138, 7144}, + /*II_0F_F9*/ {0x156, 7159}, + /*II_66_0F_F9*/ {0x138, 7159}, + /*II_0F_FA*/ {0x156, 7174}, + /*II_66_0F_FA*/ {0x138, 7174}, + /*II_0F_FB*/ {0x190, 7189}, + /*II_66_0F_FB*/ {0x138, 7189}, + /*II_0F_FC*/ {0x156, 7204}, + /*II_66_0F_FC*/ {0x138, 7204}, + /*II_0F_FD*/ {0x156, 7219}, + /*II_66_0F_FD*/ {0x138, 7219}, + /*II_0F_FE*/ {0x156, 7234}, + /*II_66_0F_FE*/ {0x138, 7234}, + /*II_D9_06*/ {0x194, 7249}, /*II_9B_D9_06*/ {0x195, 7258}, - /*II_D9_07*/ {0xef, 7266}, - /*II_9B_D9_07*/ {0x195, 7274}, - /*II_DB_E2*/ {0xee, 7281}, - /*II_9B_DB_E2*/ {0x196, 7289}, - /*II_DB_E3*/ {0xee, 7296}, - /*II_9B_DB_E3*/ {0x196, 7304}, - /*II_DD_06*/ {0xef, 7311}, + /*II_D9_07*/ {0xfb, 7266}, + /*II_9B_D9_07*/ {0x196, 7274}, + /*II_DB_E2*/ {0xe9, 7281}, + /*II_9B_DB_E2*/ {0x197, 7289}, + /*II_DB_E3*/ {0xe9, 7296}, + /*II_9B_DB_E3*/ {0x197, 7304}, + /*II_DD_06*/ {0x194, 7311}, /*II_9B_DD_06*/ {0x195, 7319}, - /*II_DD_07*/ {0xef, 7326}, - /*II_9B_DD_07*/ {0x195, 7334}, - /*II_DF_E0*/ {0x197, 7326}, - /*II_9B_DF_E0*/ {0x198, 7334}, - /*II_0F_38_00*/ {0x199, 7341}, - /*II_66_0F_38_00*/ {0x19a, 7341}, - /*II_0F_38_01*/ {0x199, 7358}, - /*II_66_0F_38_01*/ {0x19a, 7358}, - /*II_0F_38_02*/ {0x199, 7375}, - /*II_66_0F_38_02*/ {0x19a, 7375}, - /*II_0F_38_03*/ {0x199, 7392}, - /*II_66_0F_38_03*/ {0x19a, 7392}, - /*II_0F_38_04*/ {0x199, 7411}, - /*II_66_0F_38_04*/ {0x19a, 7411}, - /*II_0F_38_05*/ {0x199, 7434}, - /*II_66_0F_38_05*/ {0x19a, 7434}, - /*II_0F_38_06*/ {0x199, 7451}, - /*II_66_0F_38_06*/ {0x19a, 7451}, - /*II_0F_38_07*/ {0x199, 7468}, - /*II_66_0F_38_07*/ {0x19a, 7468}, - /*II_0F_38_08*/ {0x199, 7487}, - /*II_66_0F_38_08*/ {0x19a, 7487}, - /*II_0F_38_09*/ {0x199, 7504}, - /*II_66_0F_38_09*/ {0x19a, 7504}, - /*II_0F_38_0A*/ {0x199, 7521}, - /*II_66_0F_38_0A*/ {0x19a, 7521}, - /*II_0F_38_0B*/ {0x199, 7538}, - /*II_66_0F_38_0B*/ {0x19a, 7538}, - /*II_66_0F_38_17*/ {0x19c, 7629}, - /*II_0F_38_1C*/ {0x199, 7688}, - /*II_66_0F_38_1C*/ {0x19a, 7688}, - /*II_0F_38_1D*/ {0x199, 7703}, - /*II_66_0F_38_1D*/ {0x19a, 7703}, - /*II_0F_38_1E*/ {0x199, 7718}, - /*II_66_0F_38_1E*/ {0x19a, 7718}, - /*II_66_0F_38_20*/ {0x1a1, 7733}, - /*II_66_0F_38_21*/ {0x1a2, 7754}, - /*II_66_0F_38_22*/ {0x1a3, 7775}, - /*II_66_0F_38_23*/ {0x1a1, 7796}, - /*II_66_0F_38_24*/ {0x1a2, 7817}, - /*II_66_0F_38_25*/ {0x1a1, 7838}, - /*II_66_0F_38_28*/ {0x1a5, 7859}, - /*II_66_0F_38_29*/ {0x1a5, 7876}, - /*II_66_0F_38_2A*/ {0x1a6, 7895}, - /*II_66_0F_38_2B*/ {0x1a5, 7916}, - /*II_66_0F_38_30*/ {0x1a1, 7961}, - /*II_66_0F_38_31*/ {0x1a2, 7982}, - /*II_66_0F_38_32*/ {0x1a3, 8003}, - /*II_66_0F_38_33*/ {0x1a1, 8024}, - /*II_66_0F_38_34*/ {0x1a2, 8045}, - /*II_66_0F_38_35*/ {0x1a1, 8066}, - /*II_66_0F_38_37*/ {0x19c, 8087}, - /*II_66_0F_38_38*/ {0x1a5, 8106}, - /*II_66_0F_38_39*/ {0x1a5, 8123}, - /*II_66_0F_38_3A*/ {0x1a5, 8140}, - /*II_66_0F_38_3B*/ {0x1a5, 8157}, - /*II_66_0F_38_3C*/ {0x1a5, 8174}, - /*II_66_0F_38_3D*/ {0x1a5, 8191}, - /*II_66_0F_38_3E*/ {0x1a5, 8208}, - /*II_66_0F_38_3F*/ {0x1a5, 8225}, - /*II_66_0F_38_40*/ {0x1a5, 8242}, - /*II_66_0F_38_41*/ {0x1a5, 8259}, - /*II_66_0F_38_80*/ {0x1a9, 8284}, - /*II_66_0F_38_81*/ {0x1a9, 8292}, - /*II_66_0F_38_82*/ {0x1a9, 8301}, - /*II_66_0F_38_DB*/ {0x1ac, 9150}, - /*II_66_0F_38_DC*/ {0x1ac, 9167}, - /*II_66_0F_38_DD*/ {0x1ac, 9184}, - /*II_66_0F_38_DE*/ {0x1ac, 9209}, - /*II_66_0F_38_DF*/ {0x1ac, 9226}, - /*II_0F_38_F0*/ {0x1af, 9251}, - /*II_F2_0F_38_F0*/ {0x1b0, 9258}, - /*II_0F_38_F1*/ {0x1b1, 9251}, - /*II_F2_0F_38_F1*/ {0x1b2, 9258}, - /*II_0F_71_02*/ {0x1c9, 6436}, - /*II_66_0F_71_02*/ {0x1ca, 6436}, - /*II_0F_71_04*/ {0x1c9, 6695}, - /*II_66_0F_71_04*/ {0x1ca, 6695}, - /*II_0F_71_06*/ {0x1c9, 7009}, - /*II_66_0F_71_06*/ {0x1ca, 7009}, - /*II_0F_72_02*/ {0x1c9, 6451}, - /*II_66_0F_72_02*/ {0x1ca, 6451}, - /*II_0F_72_04*/ {0x1c9, 6710}, - /*II_66_0F_72_04*/ {0x1ca, 6710}, - /*II_0F_72_06*/ {0x1c9, 7024}, - /*II_66_0F_72_06*/ {0x1ca, 7024}, - /*II_0F_73_02*/ {0x1c9, 6466}, - /*II_66_0F_73_02*/ {0x1ca, 6466}, - /*II_66_0F_73_03*/ {0x1ca, 9830}, - /*II_0F_73_06*/ {0x1c9, 7039}, - /*II_66_0F_73_06*/ {0x1ca, 7039}, - /*II_66_0F_73_07*/ {0x1ca, 9847}, - /*II_F3_0F_AE_00*/ {0x1cc, 9882}, - /*II_F3_0F_AE_01*/ {0x1cc, 9912}, - /*II_0F_AE_02*/ {0x115, 9922}, - /*II_F3_0F_AE_02*/ {0x1cc, 9931}, - /*II_0F_AE_03*/ {0x115, 9951}, - /*II_F3_0F_AE_03*/ {0x1cc, 9960}, - /*II_66_0F_C7_06*/ {0x186, 9997}, - /*II_F3_0F_C7_06*/ {0x186, 10006} + /*II_DD_07*/ {0xfb, 7326}, + /*II_9B_DD_07*/ {0x196, 7334}, + /*II_DF_E0*/ {0x198, 7326}, + /*II_9B_DF_E0*/ {0x199, 7334}, + /*II_0F_38_00*/ {0x19a, 7341}, + /*II_66_0F_38_00*/ {0x19b, 7341}, + /*II_0F_38_01*/ {0x19a, 7358}, + /*II_66_0F_38_01*/ {0x19b, 7358}, + /*II_0F_38_02*/ {0x19a, 7375}, + /*II_66_0F_38_02*/ {0x19b, 7375}, + /*II_0F_38_03*/ {0x19a, 7392}, + /*II_66_0F_38_03*/ {0x19b, 7392}, + /*II_0F_38_04*/ {0x19a, 7411}, + /*II_66_0F_38_04*/ {0x19b, 7411}, + /*II_0F_38_05*/ {0x19a, 7434}, + /*II_66_0F_38_05*/ {0x19b, 7434}, + /*II_0F_38_06*/ {0x19a, 7451}, + /*II_66_0F_38_06*/ {0x19b, 7451}, + /*II_0F_38_07*/ {0x19a, 7468}, + /*II_66_0F_38_07*/ {0x19b, 7468}, + /*II_0F_38_08*/ {0x19a, 7487}, + /*II_66_0F_38_08*/ {0x19b, 7487}, + /*II_0F_38_09*/ {0x19a, 7504}, + /*II_66_0F_38_09*/ {0x19b, 7504}, + /*II_0F_38_0A*/ {0x19a, 7521}, + /*II_66_0F_38_0A*/ {0x19b, 7521}, + /*II_0F_38_0B*/ {0x19a, 7538}, + /*II_66_0F_38_0B*/ {0x19b, 7538}, + /*II_66_0F_38_17*/ {0x19d, 7629}, + /*II_0F_38_1C*/ {0x19a, 7688}, + /*II_66_0F_38_1C*/ {0x19b, 7688}, + /*II_0F_38_1D*/ {0x19a, 7703}, + /*II_66_0F_38_1D*/ {0x19b, 7703}, + /*II_0F_38_1E*/ {0x19a, 7718}, + /*II_66_0F_38_1E*/ {0x19b, 7718}, + /*II_66_0F_38_20*/ {0x1a2, 7733}, + /*II_66_0F_38_21*/ {0x1a3, 7754}, + /*II_66_0F_38_22*/ {0x1a4, 7775}, + /*II_66_0F_38_23*/ {0x1a2, 7796}, + /*II_66_0F_38_24*/ {0x1a3, 7817}, + /*II_66_0F_38_25*/ {0x1a2, 7838}, + /*II_66_0F_38_28*/ {0x1a6, 7859}, + /*II_66_0F_38_29*/ {0x1a6, 7876}, + /*II_66_0F_38_2A*/ {0x1a7, 7895}, + /*II_66_0F_38_2B*/ {0x1a6, 7916}, + /*II_66_0F_38_30*/ {0x1a2, 7961}, + /*II_66_0F_38_31*/ {0x1a3, 7982}, + /*II_66_0F_38_32*/ {0x1a4, 8003}, + /*II_66_0F_38_33*/ {0x1a2, 8024}, + /*II_66_0F_38_34*/ {0x1a3, 8045}, + /*II_66_0F_38_35*/ {0x1a2, 8066}, + /*II_66_0F_38_37*/ {0x19d, 8087}, + /*II_66_0F_38_38*/ {0x1a6, 8106}, + /*II_66_0F_38_39*/ {0x1a6, 8123}, + /*II_66_0F_38_3A*/ {0x1a6, 8140}, + /*II_66_0F_38_3B*/ {0x1a6, 8157}, + /*II_66_0F_38_3C*/ {0x1a6, 8174}, + /*II_66_0F_38_3D*/ {0x1a6, 8191}, + /*II_66_0F_38_3E*/ {0x1a6, 8208}, + /*II_66_0F_38_3F*/ {0x1a6, 8225}, + /*II_66_0F_38_40*/ {0x1a6, 8242}, + /*II_66_0F_38_41*/ {0x1a6, 8259}, + /*II_66_0F_38_80*/ {0x1aa, 8284}, + /*II_66_0F_38_81*/ {0x1aa, 8292}, + /*II_66_0F_38_82*/ {0x1aa, 8301}, + /*II_66_0F_38_DB*/ {0x1ad, 9150}, + /*II_66_0F_38_DC*/ {0x1ad, 9167}, + /*II_66_0F_38_DD*/ {0x1ad, 9184}, + /*II_66_0F_38_DE*/ {0x1ad, 9209}, + /*II_66_0F_38_DF*/ {0x1ad, 9226}, + /*II_0F_38_F0*/ {0x1b0, 9251}, + /*II_F2_0F_38_F0*/ {0x1b1, 9258}, + /*II_0F_38_F1*/ {0x1b2, 9251}, + /*II_F2_0F_38_F1*/ {0x1b3, 9258}, + /*II_0F_71_02*/ {0x1ca, 6436}, + /*II_66_0F_71_02*/ {0x1cb, 6436}, + /*II_0F_71_04*/ {0x1ca, 6695}, + /*II_66_0F_71_04*/ {0x1cb, 6695}, + /*II_0F_71_06*/ {0x1ca, 7009}, + /*II_66_0F_71_06*/ {0x1cb, 7009}, + /*II_0F_72_02*/ {0x1ca, 6451}, + /*II_66_0F_72_02*/ {0x1cb, 6451}, + /*II_0F_72_04*/ {0x1ca, 6710}, + /*II_66_0F_72_04*/ {0x1cb, 6710}, + /*II_0F_72_06*/ {0x1ca, 7024}, + /*II_66_0F_72_06*/ {0x1cb, 7024}, + /*II_0F_73_02*/ {0x1ca, 6466}, + /*II_66_0F_73_02*/ {0x1cb, 6466}, + /*II_66_0F_73_03*/ {0x1cb, 9830}, + /*II_0F_73_06*/ {0x1ca, 7039}, + /*II_66_0F_73_06*/ {0x1cb, 7039}, + /*II_66_0F_73_07*/ {0x1cb, 9847}, + /*II_F3_0F_AE_00*/ {0x1cd, 9882}, + /*II_F3_0F_AE_01*/ {0x1cd, 9912}, + /*II_0F_AE_02*/ {0x114, 9922}, + /*II_F3_0F_AE_02*/ {0x1cd, 9931}, + /*II_0F_AE_03*/ {0x114, 9951}, + /*II_F3_0F_AE_03*/ {0x1cd, 9960}, + /*II_0F_C7_06*/ {0x1cf, 9980}, + /*II_66_0F_C7_06*/ {0x185, 9989}, + /*II_F3_0F_C7_06*/ {0x185, 9998} }; -_InstInfoEx InstInfosEx[382] = { +_InstInfoEx InstInfosEx[381] = { /*II_69*/ {0x34, 117, 0x0, 3, 0, 0, 0}, /*II_6B*/ {0x34, 117, 0x0, 5, 0, 0, 0}, /*II_98*/ {0x4e, 228, 0x0, 0, 0, 233, 239}, @@ -1397,379 +1401,378 @@ _InstInfoEx InstInfosEx[382] = { /*II_0F_A5*/ {0xac, 876, 0x0, 52, 0, 0, 0}, /*II_0F_AC*/ {0xac, 892, 0x0, 1, 0, 0, 0}, /*II_0F_AD*/ {0xac, 892, 0x0, 52, 0, 0, 0}, - /*II_V_0F_10*/ {0x124, 2117, 0x41, 0, 0, 0, 0}, - /*II_V_66_0F_10*/ {0x124, 2126, 0x41, 0, 0, 0, 0}, - /*II_V_F3_0F_10*/ {0x125, 2135, 0x20, 69, 0, 0, 0}, - /*II_V_F2_0F_10*/ {0x125, 2143, 0x20, 69, 0, 0, 0}, - /*II_VRR_F3_0F_10*/ {0x126, 2135, 0x60, 0, 0, 0, 0}, - /*II_VRR_F2_0F_10*/ {0x127, 2143, 0x60, 0, 0, 0, 0}, - /*II_V_0F_11*/ {0x12c, 2117, 0x41, 0, 0, 0, 0}, - /*II_V_66_0F_11*/ {0x12c, 2126, 0x41, 0, 0, 0, 0}, - /*II_V_F3_0F_11*/ {0x125, 2135, 0x20, 69, 0, 0, 0}, - /*II_V_F2_0F_11*/ {0x125, 2143, 0x20, 69, 0, 0, 0}, - /*II_VRR_F3_0F_11*/ {0x12d, 2135, 0x60, 0, 0, 0, 0}, - /*II_VRR_F2_0F_11*/ {0x12e, 2143, 0x60, 0, 0, 0, 0}, - /*II_0F_12*/ {0x12f, 2151, 0x0, 0, 0, 2160, 0}, - /*II_V_0F_12*/ {0x132, 2195, 0x0, 72, 0, 2205, 0}, - /*II_V_66_0F_12*/ {0x133, 2214, 0x0, 46, 0, 0, 0}, - /*II_V_F3_0F_12*/ {0x124, 2223, 0x41, 0, 0, 0, 0}, - /*II_V_F2_0F_12*/ {0x134, 2234, 0x41, 0, 0, 0, 0}, - /*II_V_0F_13*/ {0x137, 2205, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_13*/ {0x137, 2214, 0x40, 0, 0, 0, 0}, - /*II_V_0F_14*/ {0x13a, 2264, 0x1, 90, 0, 0, 0}, - /*II_V_66_0F_14*/ {0x13a, 2275, 0x1, 90, 0, 0, 0}, - /*II_V_0F_15*/ {0x13a, 2306, 0x1, 90, 0, 0, 0}, - /*II_V_66_0F_15*/ {0x13a, 2317, 0x1, 90, 0, 0, 0}, - /*II_0F_16*/ {0x12f, 2328, 0x0, 0, 0, 2337, 0}, - /*II_V_0F_16*/ {0x132, 2363, 0x0, 72, 0, 2373, 0}, - /*II_V_66_0F_16*/ {0x133, 2382, 0x0, 46, 0, 0, 0}, - /*II_V_F3_0F_16*/ {0x124, 2391, 0x41, 0, 0, 0, 0}, - /*II_V_0F_17*/ {0x137, 2373, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_17*/ {0x137, 2382, 0x40, 0, 0, 0, 0}, - /*II_V_0F_28*/ {0x124, 2467, 0x41, 0, 0, 0, 0}, - /*II_V_66_0F_28*/ {0x124, 2476, 0x41, 0, 0, 0, 0}, - /*II_V_0F_29*/ {0x12c, 2467, 0x41, 0, 0, 0, 0}, - /*II_V_66_0F_29*/ {0x12c, 2476, 0x41, 0, 0, 0, 0}, - /*II_V_F3_0F_2A*/ {0x133, 2525, 0x2, 79, 0, 0, 0}, - /*II_V_F2_0F_2A*/ {0x133, 2536, 0x2, 79, 0, 0, 0}, - /*II_V_0F_2B*/ {0x145, 2583, 0x41, 0, 0, 0, 0}, - /*II_V_66_0F_2B*/ {0x145, 2593, 0x41, 0, 0, 0, 0}, - /*II_V_F3_0F_2C*/ {0x14a, 2647, 0x42, 0, 0, 0, 0}, - /*II_V_F2_0F_2C*/ {0x14a, 2659, 0x42, 0, 0, 0, 0}, - /*II_V_F3_0F_2D*/ {0x14a, 2711, 0x42, 0, 0, 0, 0}, - /*II_V_F2_0F_2D*/ {0x14a, 2722, 0x42, 0, 0, 0, 0}, - /*II_V_0F_2E*/ {0x14d, 2751, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_2E*/ {0x14e, 2761, 0x40, 0, 0, 0, 0}, - /*II_V_0F_2F*/ {0x14d, 2787, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_2F*/ {0x14e, 2796, 0x40, 0, 0, 0, 0}, - /*II_V_0F_50*/ {0x151, 2825, 0x41, 0, 0, 0, 0}, - /*II_V_66_0F_50*/ {0x151, 2836, 0x41, 0, 0, 0, 0}, - /*II_V_0F_51*/ {0x124, 2879, 0x41, 0, 0, 0, 0}, - /*II_V_66_0F_51*/ {0x124, 2888, 0x41, 0, 0, 0, 0}, - /*II_V_F3_0F_51*/ {0x133, 2897, 0x0, 71, 0, 0, 0}, - /*II_V_F2_0F_51*/ {0x133, 2906, 0x0, 72, 0, 0, 0}, - /*II_V_0F_52*/ {0x124, 2933, 0x41, 0, 0, 0, 0}, - /*II_V_F3_0F_52*/ {0x133, 2943, 0x0, 71, 0, 0, 0}, - /*II_V_0F_53*/ {0x124, 2967, 0x41, 0, 0, 0, 0}, - /*II_V_F3_0F_53*/ {0x133, 2975, 0x0, 71, 0, 0, 0}, - /*II_V_0F_54*/ {0x13a, 2997, 0x1, 90, 0, 0, 0}, - /*II_V_66_0F_54*/ {0x13a, 3005, 0x1, 90, 0, 0, 0}, - /*II_V_0F_55*/ {0x13a, 3029, 0x1, 90, 0, 0, 0}, - /*II_V_66_0F_55*/ {0x13a, 3038, 0x1, 90, 0, 0, 0}, - /*II_V_0F_56*/ {0x13a, 3059, 0x1, 90, 0, 0, 0}, - /*II_V_66_0F_56*/ {0x13a, 3066, 0x1, 90, 0, 0, 0}, - /*II_V_0F_57*/ {0x13a, 3087, 0x1, 90, 0, 0, 0}, - /*II_V_66_0F_57*/ {0x13a, 3095, 0x1, 90, 0, 0, 0}, - /*II_V_0F_58*/ {0x13a, 3131, 0x1, 90, 0, 0, 0}, - /*II_V_66_0F_58*/ {0x13a, 3139, 0x1, 90, 0, 0, 0}, - /*II_V_F3_0F_58*/ {0x133, 3147, 0x0, 71, 0, 0, 0}, - /*II_V_F2_0F_58*/ {0x133, 3155, 0x0, 72, 0, 0, 0}, - /*II_V_0F_59*/ {0x13a, 3191, 0x1, 90, 0, 0, 0}, - /*II_V_66_0F_59*/ {0x13a, 3199, 0x1, 90, 0, 0, 0}, - /*II_V_F3_0F_59*/ {0x133, 3207, 0x0, 71, 0, 0, 0}, - /*II_V_F2_0F_59*/ {0x133, 3215, 0x0, 72, 0, 0, 0}, - /*II_V_0F_5A*/ {0x154, 3263, 0x41, 0, 0, 0, 0}, - /*II_V_66_0F_5A*/ {0x155, 3274, 0x41, 0, 0, 0, 0}, - /*II_V_F3_0F_5A*/ {0x133, 3285, 0x0, 71, 0, 0, 0}, - /*II_V_F2_0F_5A*/ {0x133, 3296, 0x0, 72, 0, 0, 0}, - /*II_V_0F_5B*/ {0x124, 3338, 0x41, 0, 0, 0, 0}, - /*II_V_66_0F_5B*/ {0x124, 3349, 0x41, 0, 0, 0, 0}, - /*II_V_F3_0F_5B*/ {0x124, 3360, 0x41, 0, 0, 0, 0}, - /*II_V_0F_5C*/ {0x13a, 3400, 0x1, 90, 0, 0, 0}, - /*II_V_66_0F_5C*/ {0x13a, 3408, 0x1, 90, 0, 0, 0}, - /*II_V_F3_0F_5C*/ {0x133, 3416, 0x0, 71, 0, 0, 0}, - /*II_V_F2_0F_5C*/ {0x133, 3424, 0x0, 72, 0, 0, 0}, - /*II_V_0F_5D*/ {0x13a, 3460, 0x1, 90, 0, 0, 0}, - /*II_V_66_0F_5D*/ {0x13a, 3468, 0x1, 90, 0, 0, 0}, - /*II_V_F3_0F_5D*/ {0x133, 3476, 0x0, 71, 0, 0, 0}, - /*II_V_F2_0F_5D*/ {0x133, 3484, 0x0, 72, 0, 0, 0}, - /*II_V_0F_5E*/ {0x13a, 3520, 0x1, 90, 0, 0, 0}, - /*II_V_66_0F_5E*/ {0x13a, 3528, 0x1, 90, 0, 0, 0}, - /*II_V_F3_0F_5E*/ {0x133, 3536, 0x0, 71, 0, 0, 0}, - /*II_V_F2_0F_5E*/ {0x133, 3544, 0x0, 72, 0, 0, 0}, - /*II_V_0F_5F*/ {0x13a, 3580, 0x1, 90, 0, 0, 0}, - /*II_V_66_0F_5F*/ {0x13a, 3588, 0x1, 90, 0, 0, 0}, - /*II_V_F3_0F_5F*/ {0x133, 3596, 0x0, 71, 0, 0, 0}, - /*II_V_F2_0F_5F*/ {0x133, 3604, 0x0, 72, 0, 0, 0}, - /*II_V_66_0F_60*/ {0x133, 3623, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_61*/ {0x133, 3646, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_62*/ {0x133, 3669, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_63*/ {0x133, 3691, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_64*/ {0x133, 3711, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_65*/ {0x133, 3730, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_66*/ {0x133, 3749, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_67*/ {0x133, 3769, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_68*/ {0x133, 3791, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_69*/ {0x133, 3814, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_6A*/ {0x133, 3837, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_6B*/ {0x133, 3859, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_6C*/ {0x133, 3882, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_6D*/ {0x133, 3907, 0x0, 73, 0, 0, 0}, - /*II_0F_6E*/ {0x158, 3920, 0x0, 0, 0, 0, 3926}, - /*II_66_0F_6E*/ {0x159, 3920, 0x0, 0, 0, 0, 3926}, - /*II_V_66_0F_6E*/ {0x15a, 3932, 0x46, 0, 0, 3939, 0}, - /*II_V_66_0F_6F*/ {0x124, 3962, 0x41, 0, 0, 0, 0}, - /*II_V_F3_0F_6F*/ {0x124, 3971, 0x41, 0, 0, 0, 0}, - /*II_0F_70*/ {0x15c, 3980, 0x0, 1, 0, 0, 0}, - /*II_66_0F_70*/ {0x15d, 3988, 0x0, 1, 0, 0, 0}, - /*II_F3_0F_70*/ {0x15d, 3996, 0x0, 1, 0, 0, 0}, - /*II_F2_0F_70*/ {0x15d, 4005, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_70*/ {0x15e, 4014, 0x40, 1, 0, 0, 0}, - /*II_V_F3_0F_70*/ {0x15e, 4023, 0x40, 1, 0, 0, 0}, - /*II_V_F2_0F_70*/ {0x15e, 4033, 0x40, 1, 0, 0, 0}, - /*II_V_66_0F_74*/ {0x133, 4052, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_75*/ {0x133, 4071, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_76*/ {0x133, 4090, 0x0, 73, 0, 0, 0}, - /*II_V_0F_77*/ {0x160, 4106, 0x49, 0, 0, 4118, 0}, - /*II_66_0F_78*/ {0x162, 4136, 0x0, 8, 0, 0, 0}, - /*II_F2_0F_78*/ {0x163, 4143, 0x0, 7, 8, 0, 0}, - /*II_V_66_0F_7C*/ {0x13a, 4197, 0x1, 90, 0, 0, 0}, - /*II_V_F2_0F_7C*/ {0x13a, 4206, 0x1, 90, 0, 0, 0}, - /*II_V_66_0F_7D*/ {0x13a, 4231, 0x1, 90, 0, 0, 0}, - /*II_V_F2_0F_7D*/ {0x13a, 4240, 0x1, 90, 0, 0, 0}, - /*II_0F_7E*/ {0x16a, 3920, 0x0, 0, 0, 0, 3926}, - /*II_66_0F_7E*/ {0x16b, 3920, 0x0, 0, 0, 0, 3926}, - /*II_V_66_0F_7E*/ {0x16c, 3932, 0x46, 0, 0, 3939, 0}, - /*II_V_F3_0F_7E*/ {0x14e, 3939, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_7F*/ {0x12c, 3962, 0x41, 0, 0, 0, 0}, - /*II_V_F3_0F_7F*/ {0x12c, 3971, 0x41, 0, 0, 0, 0}, - /*II_0F_AE_04*/ {0x16e, 4249, 0x0, 0, 0, 0, 4256}, - /*II_0F_AE_05*/ {0x16f, 4265, 0x0, 0, 0, 4273, 4281}, - /*II_0F_AE_06*/ {0x16f, 4291, 0x0, 0, 0, 4299, 4309}, - /*II_0F_AE_07*/ {0x170, 4321, 0x0, 0, 0, 4329, 0}, - /*II_0F_C2*/ {0x177, 4370, 0x0, 0, 0, 4379, 4388}, - /*II_66_0F_C2*/ {0x178, 4449, 0x0, 0, 0, 4458, 4467}, - /*II_F3_0F_C2*/ {0x179, 4528, 0x0, 0, 0, 4537, 4546}, - /*II_F2_0F_C2*/ {0x17a, 4607, 0x0, 0, 0, 4616, 4625}, - /*II_V_0F_C2*/ {0x17b, 4686, 0x1, 90, 0, 4696, 4706}, - /*II_V_66_0F_C2*/ {0x17b, 5088, 0x1, 90, 0, 5098, 5108}, - /*II_V_F3_0F_C2*/ {0x17c, 5490, 0x0, 71, 0, 5500, 5510}, - /*II_V_F2_0F_C2*/ {0x17c, 5892, 0x0, 72, 0, 5902, 5912}, - /*II_0F_C4*/ {0x17d, 6294, 0x0, 1, 0, 0, 0}, - /*II_66_0F_C4*/ {0x17e, 6294, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_C4*/ {0x17f, 6302, 0x0, 25, 1, 0, 0}, - /*II_0F_C5*/ {0x180, 6311, 0x0, 1, 0, 0, 0}, - /*II_66_0F_C5*/ {0x181, 6311, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_C5*/ {0x182, 6319, 0x40, 1, 0, 0, 0}, - /*II_0F_C6*/ {0x183, 6328, 0x0, 1, 0, 0, 0}, - /*II_66_0F_C6*/ {0x15d, 6336, 0x0, 1, 0, 0, 0}, - /*II_V_0F_C6*/ {0x184, 6344, 0x1, 90, 1, 0, 0}, - /*II_V_66_0F_C6*/ {0x184, 6353, 0x1, 90, 1, 0, 0}, - /*II_0F_C7_01*/ {0x185, 6362, 0x0, 0, 0, 0, 6373}, - /*II_V_66_0F_D0*/ {0x13a, 6414, 0x1, 90, 0, 0, 0}, - /*II_V_F2_0F_D0*/ {0x13a, 6425, 0x1, 90, 0, 0, 0}, - /*II_V_66_0F_D1*/ {0x133, 6443, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_D2*/ {0x133, 6458, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_D3*/ {0x133, 6473, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_D4*/ {0x133, 6488, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_D5*/ {0x133, 6504, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_D6*/ {0x189, 3939, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_D7*/ {0x18c, 6541, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_D8*/ {0x133, 6561, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_D9*/ {0x133, 6580, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_DA*/ {0x133, 6598, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_DB*/ {0x133, 6613, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_DC*/ {0x133, 6629, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_DD*/ {0x133, 6629, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_DE*/ {0x133, 6656, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_DF*/ {0x133, 6672, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_E0*/ {0x133, 6687, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_E1*/ {0x133, 6702, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_E2*/ {0x133, 6717, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_E3*/ {0x133, 6732, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_E4*/ {0x133, 6749, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_E5*/ {0x133, 6767, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_E6*/ {0x155, 6807, 0x41, 0, 0, 0, 0}, - /*II_V_F3_0F_E6*/ {0x154, 6819, 0x41, 0, 0, 0, 0}, - /*II_V_F2_0F_E6*/ {0x155, 6830, 0x41, 0, 0, 0, 0}, - /*II_V_66_0F_E7*/ {0x145, 6858, 0x41, 0, 0, 0, 0}, - /*II_V_66_0F_E8*/ {0x133, 6876, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_E9*/ {0x133, 6893, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_EA*/ {0x133, 6910, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_EB*/ {0x133, 6924, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_EC*/ {0x133, 6938, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_ED*/ {0x133, 6955, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_EE*/ {0x133, 6972, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_EF*/ {0x133, 6987, 0x0, 73, 0, 0, 0}, - /*II_V_F2_0F_F0*/ {0x190, 7001, 0x41, 0, 0, 0, 0}, - /*II_V_66_0F_F1*/ {0x133, 7016, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_F2*/ {0x133, 7031, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_F3*/ {0x133, 7046, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_F4*/ {0x133, 7063, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_F5*/ {0x133, 7082, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_F6*/ {0x133, 7100, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_F7*/ {0x194, 7131, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_F8*/ {0x133, 7151, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_F9*/ {0x133, 7166, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_FA*/ {0x133, 7181, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_FB*/ {0x133, 7196, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_FC*/ {0x133, 7211, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_FD*/ {0x133, 7226, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_FE*/ {0x133, 7241, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_00*/ {0x133, 7349, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_01*/ {0x133, 7366, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_02*/ {0x133, 7383, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_03*/ {0x133, 7401, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_04*/ {0x133, 7422, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_05*/ {0x133, 7442, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_06*/ {0x133, 7459, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_07*/ {0x133, 7477, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_08*/ {0x133, 7495, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_09*/ {0x133, 7512, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_0A*/ {0x133, 7529, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_0B*/ {0x133, 7548, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_0C*/ {0x13a, 7559, 0x1, 90, 0, 0, 0}, - /*II_V_66_0F_38_0D*/ {0x13a, 7570, 0x1, 90, 0, 0, 0}, - /*II_V_66_0F_38_0E*/ {0x124, 7581, 0x41, 0, 0, 0, 0}, - /*II_V_66_0F_38_0F*/ {0x124, 7590, 0x41, 0, 0, 0, 0}, - /*II_66_0F_38_10*/ {0x19b, 7599, 0x0, 74, 0, 0, 0}, - /*II_66_0F_38_14*/ {0x19b, 7609, 0x0, 74, 0, 0, 0}, - /*II_66_0F_38_15*/ {0x19b, 7619, 0x0, 74, 0, 0, 0}, - /*II_V_66_0F_38_17*/ {0x124, 7636, 0x41, 0, 0, 0, 0}, - /*II_V_66_0F_38_18*/ {0x19d, 7644, 0x41, 0, 0, 0, 0}, - /*II_V_66_0F_38_19*/ {0x19e, 7658, 0x50, 0, 0, 0, 0}, - /*II_V_66_0F_38_1A*/ {0x19f, 7672, 0x50, 0, 0, 0, 0}, - /*II_V_66_0F_38_1C*/ {0x1a0, 7695, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_1D*/ {0x1a0, 7710, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_1E*/ {0x1a0, 7725, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_20*/ {0x14e, 7743, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_21*/ {0x14d, 7764, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_22*/ {0x1a4, 7785, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_23*/ {0x14e, 7806, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_24*/ {0x14d, 7827, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_25*/ {0x14e, 7848, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_28*/ {0x133, 7867, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_29*/ {0x133, 7885, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_2A*/ {0x1a7, 7905, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_2B*/ {0x133, 7926, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_2C*/ {0x13a, 7937, 0x1, 92, 0, 0, 0}, - /*II_V_66_0F_38_2D*/ {0x13a, 7949, 0x1, 92, 0, 0, 0}, - /*II_V_66_0F_38_2E*/ {0x1a8, 7937, 0x1, 83, 0, 0, 0}, - /*II_V_66_0F_38_2F*/ {0x1a8, 7949, 0x1, 83, 0, 0, 0}, - /*II_V_66_0F_38_30*/ {0x14e, 7971, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_31*/ {0x14d, 7992, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_32*/ {0x1a4, 8013, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_33*/ {0x14e, 8034, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_34*/ {0x14d, 8055, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_35*/ {0x14e, 8076, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_37*/ {0x133, 8096, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_38*/ {0x133, 8114, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_39*/ {0x133, 8131, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_3A*/ {0x133, 8148, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_3B*/ {0x133, 8165, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_3C*/ {0x133, 8182, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_3D*/ {0x133, 8199, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_3E*/ {0x133, 8216, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_3F*/ {0x133, 8233, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_40*/ {0x133, 8250, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_41*/ {0x1a0, 8271, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_96*/ {0x1aa, 8310, 0x7, 90, 0, 8326, 0}, - /*II_V_66_0F_38_97*/ {0x1aa, 8342, 0x7, 90, 0, 8358, 0}, - /*II_V_66_0F_38_98*/ {0x1aa, 8374, 0x7, 90, 0, 8387, 0}, - /*II_V_66_0F_38_99*/ {0x1ab, 8400, 0x6, 80, 0, 8413, 0}, - /*II_V_66_0F_38_9A*/ {0x1aa, 8426, 0x7, 90, 0, 8439, 0}, - /*II_V_66_0F_38_9B*/ {0x1ab, 8452, 0x6, 80, 0, 8465, 0}, - /*II_V_66_0F_38_9C*/ {0x1aa, 8478, 0x7, 90, 0, 8492, 0}, - /*II_V_66_0F_38_9D*/ {0x1ab, 8506, 0x6, 80, 0, 8520, 0}, - /*II_V_66_0F_38_9E*/ {0x1aa, 8534, 0x7, 90, 0, 8548, 0}, - /*II_V_66_0F_38_9F*/ {0x1ab, 8562, 0x6, 80, 0, 8576, 0}, - /*II_V_66_0F_38_A6*/ {0x1aa, 8590, 0x7, 90, 0, 8606, 0}, - /*II_V_66_0F_38_A7*/ {0x1aa, 8622, 0x7, 90, 0, 8638, 0}, - /*II_V_66_0F_38_A8*/ {0x1aa, 8654, 0x7, 90, 0, 8667, 0}, - /*II_V_66_0F_38_A9*/ {0x1ab, 8680, 0x6, 80, 0, 8693, 0}, - /*II_V_66_0F_38_AA*/ {0x1aa, 8706, 0x7, 90, 0, 8719, 0}, - /*II_V_66_0F_38_AB*/ {0x1ab, 8732, 0x6, 80, 0, 8745, 0}, - /*II_V_66_0F_38_AC*/ {0x1aa, 8758, 0x7, 90, 0, 8772, 0}, - /*II_V_66_0F_38_AD*/ {0x1ab, 8786, 0x6, 80, 0, 8800, 0}, - /*II_V_66_0F_38_AE*/ {0x1aa, 8814, 0x7, 90, 0, 8828, 0}, - /*II_V_66_0F_38_AF*/ {0x1ab, 8842, 0x6, 80, 0, 8856, 0}, - /*II_V_66_0F_38_B6*/ {0x1aa, 8870, 0x7, 90, 0, 8886, 0}, - /*II_V_66_0F_38_B7*/ {0x1aa, 8902, 0x7, 90, 0, 8918, 0}, - /*II_V_66_0F_38_B8*/ {0x1aa, 8934, 0x7, 90, 0, 8947, 0}, - /*II_V_66_0F_38_B9*/ {0x1ab, 8960, 0x6, 80, 0, 8973, 0}, - /*II_V_66_0F_38_BA*/ {0x1aa, 8986, 0x7, 90, 0, 8999, 0}, - /*II_V_66_0F_38_BB*/ {0x1ab, 9012, 0x6, 80, 0, 9025, 0}, - /*II_V_66_0F_38_BC*/ {0x1aa, 9038, 0x7, 90, 0, 9052, 0}, - /*II_V_66_0F_38_BD*/ {0x1ab, 9066, 0x6, 80, 0, 9080, 0}, - /*II_V_66_0F_38_BE*/ {0x1aa, 9094, 0x7, 90, 0, 9108, 0}, - /*II_V_66_0F_38_BF*/ {0x1ab, 9122, 0x6, 80, 0, 9136, 0}, - /*II_V_66_0F_38_DB*/ {0x1ad, 9158, 0x40, 0, 0, 0, 0}, - /*II_V_66_0F_38_DC*/ {0x1ae, 9175, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_DD*/ {0x1ae, 9196, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_DE*/ {0x1ae, 9217, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_38_DF*/ {0x1ae, 9238, 0x0, 73, 0, 0, 0}, - /*II_V_66_0F_3A_04*/ {0x1b3, 7559, 0x41, 1, 0, 0, 0}, - /*II_V_66_0F_3A_05*/ {0x1b3, 7570, 0x41, 1, 0, 0, 0}, - /*II_V_66_0F_3A_06*/ {0x1b4, 9265, 0x10, 86, 1, 0, 0}, - /*II_66_0F_3A_08*/ {0x19b, 9277, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_08*/ {0x1b3, 9286, 0x41, 1, 0, 0, 0}, - /*II_66_0F_3A_09*/ {0x19b, 9296, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_09*/ {0x1b3, 9305, 0x41, 1, 0, 0, 0}, - /*II_66_0F_3A_0A*/ {0x1b5, 9315, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_0A*/ {0x17f, 9324, 0x0, 71, 1, 0, 0}, - /*II_66_0F_3A_0B*/ {0x1b6, 9334, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_0B*/ {0x17f, 9343, 0x0, 72, 1, 0, 0}, - /*II_66_0F_3A_0C*/ {0x19b, 9353, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_0C*/ {0x184, 9362, 0x1, 90, 1, 0, 0}, - /*II_66_0F_3A_0D*/ {0x19b, 9372, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_0D*/ {0x184, 9381, 0x1, 90, 1, 0, 0}, - /*II_66_0F_3A_0E*/ {0x19b, 9391, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_0E*/ {0x17f, 9400, 0x0, 73, 1, 0, 0}, - /*II_0F_3A_0F*/ {0x1b7, 9410, 0x0, 1, 0, 0, 0}, - /*II_66_0F_3A_0F*/ {0x1b8, 9410, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_0F*/ {0x17f, 9419, 0x0, 73, 1, 0, 0}, - /*II_66_0F_3A_14*/ {0x1b9, 9429, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_14*/ {0x1ba, 9437, 0x40, 1, 0, 0, 0}, - /*II_66_0F_3A_15*/ {0x1bb, 6311, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_15*/ {0x1bc, 6319, 0x40, 1, 0, 0, 0}, - /*II_66_0F_3A_16*/ {0x1bd, 9446, 0x0, 1, 0, 0, 9454}, - /*II_V_66_0F_3A_16*/ {0x1be, 9462, 0x46, 1, 0, 9471, 0}, - /*II_66_0F_3A_17*/ {0x1bf, 9480, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_17*/ {0x1c0, 9491, 0x40, 1, 0, 0, 0}, - /*II_V_66_0F_3A_18*/ {0x1b4, 9503, 0x10, 73, 1, 0, 0}, - /*II_V_66_0F_3A_19*/ {0x1c1, 9516, 0x50, 1, 0, 0, 0}, - /*II_66_0F_3A_20*/ {0x1c2, 9530, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_20*/ {0x17f, 9538, 0x0, 76, 1, 0, 0}, - /*II_66_0F_3A_21*/ {0x1b5, 9547, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_21*/ {0x17f, 9557, 0x0, 71, 1, 0, 0}, - /*II_66_0F_3A_22*/ {0x1c3, 9568, 0x0, 1, 0, 0, 9576}, - /*II_V_66_0F_3A_22*/ {0x17f, 9584, 0x6, 79, 1, 9593, 0}, - /*II_66_0F_3A_40*/ {0x19b, 9602, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_40*/ {0x184, 9608, 0x1, 90, 1, 0, 0}, - /*II_66_0F_3A_41*/ {0x19b, 9615, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_41*/ {0x17f, 9621, 0x0, 73, 1, 0, 0}, - /*II_66_0F_3A_42*/ {0x19b, 9628, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_42*/ {0x17f, 9637, 0x0, 73, 1, 0, 0}, - /*II_66_0F_3A_44*/ {0x1c4, 9647, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_44*/ {0x1c5, 9658, 0x0, 73, 1, 0, 0}, - /*II_V_66_0F_3A_4A*/ {0x184, 9670, 0x1, 90, 84, 0, 0}, - /*II_V_66_0F_3A_4B*/ {0x184, 9681, 0x1, 90, 84, 0, 0}, - /*II_V_66_0F_3A_4C*/ {0x17f, 9692, 0x0, 73, 82, 0, 0}, - /*II_66_0F_3A_60*/ {0x1c6, 9703, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_60*/ {0x15e, 9714, 0x40, 1, 0, 0, 0}, - /*II_66_0F_3A_61*/ {0x1c6, 9726, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_61*/ {0x15e, 9737, 0x40, 1, 0, 0, 0}, - /*II_66_0F_3A_62*/ {0x1c6, 9749, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_62*/ {0x15e, 9760, 0x40, 1, 0, 0, 0}, - /*II_66_0F_3A_63*/ {0x1c6, 9772, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_63*/ {0x15e, 9783, 0x40, 1, 0, 0, 0}, - /*II_66_0F_3A_DF*/ {0x1c7, 9795, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_3A_DF*/ {0x1c8, 9812, 0x40, 1, 0, 0, 0}, - /*II_V_66_0F_71_02*/ {0x1cb, 6443, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_71_04*/ {0x1cb, 6702, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_71_06*/ {0x1cb, 7016, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_72_02*/ {0x1cb, 6458, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_72_04*/ {0x1cb, 6717, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_72_06*/ {0x1cb, 7031, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_73_02*/ {0x1cb, 6473, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_73_03*/ {0x1cb, 9838, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_73_06*/ {0x1cb, 7046, 0x0, 1, 0, 0, 0}, - /*II_V_66_0F_73_07*/ {0x1cb, 9855, 0x0, 1, 0, 0, 0}, - /*II_0F_AE_00*/ {0x16e, 9864, 0x0, 0, 0, 0, 9872}, - /*II_0F_AE_01*/ {0x16e, 9892, 0x0, 0, 0, 0, 9901}, - /*II_V_0F_AE_02*/ {0x1cd, 9941, 0x40, 0, 0, 0, 0}, - /*II_V_0F_AE_03*/ {0x1cd, 9970, 0x40, 0, 0, 0, 0}, - /*II_0F_C7_06*/ {0x1ce, 9980, 0x0, 0, 0, 9988, 0} + /*II_V_0F_10*/ {0x123, 2117, 0x41, 0, 0, 0, 0}, + /*II_V_66_0F_10*/ {0x123, 2126, 0x41, 0, 0, 0, 0}, + /*II_V_F3_0F_10*/ {0x124, 2135, 0x20, 69, 0, 0, 0}, + /*II_V_F2_0F_10*/ {0x124, 2143, 0x20, 69, 0, 0, 0}, + /*II_VRR_F3_0F_10*/ {0x125, 2135, 0x60, 0, 0, 0, 0}, + /*II_VRR_F2_0F_10*/ {0x126, 2143, 0x60, 0, 0, 0, 0}, + /*II_V_0F_11*/ {0x12b, 2117, 0x41, 0, 0, 0, 0}, + /*II_V_66_0F_11*/ {0x12b, 2126, 0x41, 0, 0, 0, 0}, + /*II_V_F3_0F_11*/ {0x124, 2135, 0x20, 69, 0, 0, 0}, + /*II_V_F2_0F_11*/ {0x124, 2143, 0x20, 69, 0, 0, 0}, + /*II_VRR_F3_0F_11*/ {0x12c, 2135, 0x60, 0, 0, 0, 0}, + /*II_VRR_F2_0F_11*/ {0x12d, 2143, 0x60, 0, 0, 0, 0}, + /*II_0F_12*/ {0x12e, 2151, 0x0, 0, 0, 2160, 0}, + /*II_V_0F_12*/ {0x131, 2195, 0x0, 72, 0, 2205, 0}, + /*II_V_66_0F_12*/ {0x132, 2214, 0x0, 46, 0, 0, 0}, + /*II_V_F3_0F_12*/ {0x123, 2223, 0x41, 0, 0, 0, 0}, + /*II_V_F2_0F_12*/ {0x133, 2234, 0x41, 0, 0, 0, 0}, + /*II_V_0F_13*/ {0x136, 2205, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_13*/ {0x136, 2214, 0x40, 0, 0, 0, 0}, + /*II_V_0F_14*/ {0x139, 2264, 0x1, 90, 0, 0, 0}, + /*II_V_66_0F_14*/ {0x139, 2275, 0x1, 90, 0, 0, 0}, + /*II_V_0F_15*/ {0x139, 2306, 0x1, 90, 0, 0, 0}, + /*II_V_66_0F_15*/ {0x139, 2317, 0x1, 90, 0, 0, 0}, + /*II_0F_16*/ {0x12e, 2328, 0x0, 0, 0, 2337, 0}, + /*II_V_0F_16*/ {0x131, 2363, 0x0, 72, 0, 2373, 0}, + /*II_V_66_0F_16*/ {0x132, 2382, 0x0, 46, 0, 0, 0}, + /*II_V_F3_0F_16*/ {0x123, 2391, 0x41, 0, 0, 0, 0}, + /*II_V_0F_17*/ {0x136, 2373, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_17*/ {0x136, 2382, 0x40, 0, 0, 0, 0}, + /*II_V_0F_28*/ {0x123, 2467, 0x41, 0, 0, 0, 0}, + /*II_V_66_0F_28*/ {0x123, 2476, 0x41, 0, 0, 0, 0}, + /*II_V_0F_29*/ {0x12b, 2467, 0x41, 0, 0, 0, 0}, + /*II_V_66_0F_29*/ {0x12b, 2476, 0x41, 0, 0, 0, 0}, + /*II_V_F3_0F_2A*/ {0x132, 2525, 0x2, 79, 0, 0, 0}, + /*II_V_F2_0F_2A*/ {0x132, 2536, 0x2, 79, 0, 0, 0}, + /*II_V_0F_2B*/ {0x144, 2583, 0x41, 0, 0, 0, 0}, + /*II_V_66_0F_2B*/ {0x144, 2593, 0x41, 0, 0, 0, 0}, + /*II_V_F3_0F_2C*/ {0x149, 2647, 0x42, 0, 0, 0, 0}, + /*II_V_F2_0F_2C*/ {0x149, 2659, 0x42, 0, 0, 0, 0}, + /*II_V_F3_0F_2D*/ {0x149, 2711, 0x42, 0, 0, 0, 0}, + /*II_V_F2_0F_2D*/ {0x149, 2722, 0x42, 0, 0, 0, 0}, + /*II_V_0F_2E*/ {0x14c, 2751, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_2E*/ {0x14d, 2761, 0x40, 0, 0, 0, 0}, + /*II_V_0F_2F*/ {0x14c, 2787, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_2F*/ {0x14d, 2796, 0x40, 0, 0, 0, 0}, + /*II_V_0F_50*/ {0x150, 2825, 0x41, 0, 0, 0, 0}, + /*II_V_66_0F_50*/ {0x150, 2836, 0x41, 0, 0, 0, 0}, + /*II_V_0F_51*/ {0x123, 2879, 0x41, 0, 0, 0, 0}, + /*II_V_66_0F_51*/ {0x123, 2888, 0x41, 0, 0, 0, 0}, + /*II_V_F3_0F_51*/ {0x132, 2897, 0x0, 71, 0, 0, 0}, + /*II_V_F2_0F_51*/ {0x132, 2906, 0x0, 72, 0, 0, 0}, + /*II_V_0F_52*/ {0x123, 2933, 0x41, 0, 0, 0, 0}, + /*II_V_F3_0F_52*/ {0x132, 2943, 0x0, 71, 0, 0, 0}, + /*II_V_0F_53*/ {0x123, 2967, 0x41, 0, 0, 0, 0}, + /*II_V_F3_0F_53*/ {0x132, 2975, 0x0, 71, 0, 0, 0}, + /*II_V_0F_54*/ {0x139, 2997, 0x1, 90, 0, 0, 0}, + /*II_V_66_0F_54*/ {0x139, 3005, 0x1, 90, 0, 0, 0}, + /*II_V_0F_55*/ {0x139, 3029, 0x1, 90, 0, 0, 0}, + /*II_V_66_0F_55*/ {0x139, 3038, 0x1, 90, 0, 0, 0}, + /*II_V_0F_56*/ {0x139, 3059, 0x1, 90, 0, 0, 0}, + /*II_V_66_0F_56*/ {0x139, 3066, 0x1, 90, 0, 0, 0}, + /*II_V_0F_57*/ {0x139, 3087, 0x1, 90, 0, 0, 0}, + /*II_V_66_0F_57*/ {0x139, 3095, 0x1, 90, 0, 0, 0}, + /*II_V_0F_58*/ {0x139, 3131, 0x1, 90, 0, 0, 0}, + /*II_V_66_0F_58*/ {0x139, 3139, 0x1, 90, 0, 0, 0}, + /*II_V_F3_0F_58*/ {0x132, 3147, 0x0, 71, 0, 0, 0}, + /*II_V_F2_0F_58*/ {0x132, 3155, 0x0, 72, 0, 0, 0}, + /*II_V_0F_59*/ {0x139, 3191, 0x1, 90, 0, 0, 0}, + /*II_V_66_0F_59*/ {0x139, 3199, 0x1, 90, 0, 0, 0}, + /*II_V_F3_0F_59*/ {0x132, 3207, 0x0, 71, 0, 0, 0}, + /*II_V_F2_0F_59*/ {0x132, 3215, 0x0, 72, 0, 0, 0}, + /*II_V_0F_5A*/ {0x153, 3263, 0x41, 0, 0, 0, 0}, + /*II_V_66_0F_5A*/ {0x154, 3274, 0x41, 0, 0, 0, 0}, + /*II_V_F3_0F_5A*/ {0x132, 3285, 0x0, 71, 0, 0, 0}, + /*II_V_F2_0F_5A*/ {0x132, 3296, 0x0, 72, 0, 0, 0}, + /*II_V_0F_5B*/ {0x123, 3338, 0x41, 0, 0, 0, 0}, + /*II_V_66_0F_5B*/ {0x123, 3349, 0x41, 0, 0, 0, 0}, + /*II_V_F3_0F_5B*/ {0x123, 3360, 0x41, 0, 0, 0, 0}, + /*II_V_0F_5C*/ {0x139, 3400, 0x1, 90, 0, 0, 0}, + /*II_V_66_0F_5C*/ {0x139, 3408, 0x1, 90, 0, 0, 0}, + /*II_V_F3_0F_5C*/ {0x132, 3416, 0x0, 71, 0, 0, 0}, + /*II_V_F2_0F_5C*/ {0x132, 3424, 0x0, 72, 0, 0, 0}, + /*II_V_0F_5D*/ {0x139, 3460, 0x1, 90, 0, 0, 0}, + /*II_V_66_0F_5D*/ {0x139, 3468, 0x1, 90, 0, 0, 0}, + /*II_V_F3_0F_5D*/ {0x132, 3476, 0x0, 71, 0, 0, 0}, + /*II_V_F2_0F_5D*/ {0x132, 3484, 0x0, 72, 0, 0, 0}, + /*II_V_0F_5E*/ {0x139, 3520, 0x1, 90, 0, 0, 0}, + /*II_V_66_0F_5E*/ {0x139, 3528, 0x1, 90, 0, 0, 0}, + /*II_V_F3_0F_5E*/ {0x132, 3536, 0x0, 71, 0, 0, 0}, + /*II_V_F2_0F_5E*/ {0x132, 3544, 0x0, 72, 0, 0, 0}, + /*II_V_0F_5F*/ {0x139, 3580, 0x1, 90, 0, 0, 0}, + /*II_V_66_0F_5F*/ {0x139, 3588, 0x1, 90, 0, 0, 0}, + /*II_V_F3_0F_5F*/ {0x132, 3596, 0x0, 71, 0, 0, 0}, + /*II_V_F2_0F_5F*/ {0x132, 3604, 0x0, 72, 0, 0, 0}, + /*II_V_66_0F_60*/ {0x132, 3623, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_61*/ {0x132, 3646, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_62*/ {0x132, 3669, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_63*/ {0x132, 3691, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_64*/ {0x132, 3711, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_65*/ {0x132, 3730, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_66*/ {0x132, 3749, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_67*/ {0x132, 3769, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_68*/ {0x132, 3791, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_69*/ {0x132, 3814, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_6A*/ {0x132, 3837, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_6B*/ {0x132, 3859, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_6C*/ {0x132, 3882, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_6D*/ {0x132, 3907, 0x0, 73, 0, 0, 0}, + /*II_0F_6E*/ {0x157, 3920, 0x0, 0, 0, 0, 3926}, + /*II_66_0F_6E*/ {0x158, 3920, 0x0, 0, 0, 0, 3926}, + /*II_V_66_0F_6E*/ {0x159, 3932, 0x46, 0, 0, 3939, 0}, + /*II_V_66_0F_6F*/ {0x123, 3962, 0x41, 0, 0, 0, 0}, + /*II_V_F3_0F_6F*/ {0x123, 3971, 0x41, 0, 0, 0, 0}, + /*II_0F_70*/ {0x15b, 3980, 0x0, 1, 0, 0, 0}, + /*II_66_0F_70*/ {0x15c, 3988, 0x0, 1, 0, 0, 0}, + /*II_F3_0F_70*/ {0x15c, 3996, 0x0, 1, 0, 0, 0}, + /*II_F2_0F_70*/ {0x15c, 4005, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_70*/ {0x15d, 4014, 0x40, 1, 0, 0, 0}, + /*II_V_F3_0F_70*/ {0x15d, 4023, 0x40, 1, 0, 0, 0}, + /*II_V_F2_0F_70*/ {0x15d, 4033, 0x40, 1, 0, 0, 0}, + /*II_V_66_0F_74*/ {0x132, 4052, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_75*/ {0x132, 4071, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_76*/ {0x132, 4090, 0x0, 73, 0, 0, 0}, + /*II_V_0F_77*/ {0x15f, 4106, 0x49, 0, 0, 4118, 0}, + /*II_66_0F_78*/ {0x161, 4136, 0x0, 8, 0, 0, 0}, + /*II_F2_0F_78*/ {0x162, 4143, 0x0, 7, 8, 0, 0}, + /*II_V_66_0F_7C*/ {0x139, 4197, 0x1, 90, 0, 0, 0}, + /*II_V_F2_0F_7C*/ {0x139, 4206, 0x1, 90, 0, 0, 0}, + /*II_V_66_0F_7D*/ {0x139, 4231, 0x1, 90, 0, 0, 0}, + /*II_V_F2_0F_7D*/ {0x139, 4240, 0x1, 90, 0, 0, 0}, + /*II_0F_7E*/ {0x169, 3920, 0x0, 0, 0, 0, 3926}, + /*II_66_0F_7E*/ {0x16a, 3920, 0x0, 0, 0, 0, 3926}, + /*II_V_66_0F_7E*/ {0x16b, 3932, 0x46, 0, 0, 3939, 0}, + /*II_V_F3_0F_7E*/ {0x14d, 3939, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_7F*/ {0x12b, 3962, 0x41, 0, 0, 0, 0}, + /*II_V_F3_0F_7F*/ {0x12b, 3971, 0x41, 0, 0, 0, 0}, + /*II_0F_AE_04*/ {0x16d, 4249, 0x0, 0, 0, 0, 4256}, + /*II_0F_AE_05*/ {0x16e, 4265, 0x0, 0, 0, 4273, 4281}, + /*II_0F_AE_06*/ {0x16e, 4291, 0x0, 0, 0, 4299, 4309}, + /*II_0F_AE_07*/ {0x16f, 4321, 0x0, 0, 0, 4329, 0}, + /*II_0F_C2*/ {0x176, 4370, 0x0, 0, 0, 4379, 4388}, + /*II_66_0F_C2*/ {0x177, 4449, 0x0, 0, 0, 4458, 4467}, + /*II_F3_0F_C2*/ {0x178, 4528, 0x0, 0, 0, 4537, 4546}, + /*II_F2_0F_C2*/ {0x179, 4607, 0x0, 0, 0, 4616, 4625}, + /*II_V_0F_C2*/ {0x17a, 4686, 0x1, 90, 0, 4696, 4706}, + /*II_V_66_0F_C2*/ {0x17a, 5088, 0x1, 90, 0, 5098, 5108}, + /*II_V_F3_0F_C2*/ {0x17b, 5490, 0x0, 71, 0, 5500, 5510}, + /*II_V_F2_0F_C2*/ {0x17b, 5892, 0x0, 72, 0, 5902, 5912}, + /*II_0F_C4*/ {0x17c, 6294, 0x0, 1, 0, 0, 0}, + /*II_66_0F_C4*/ {0x17d, 6294, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_C4*/ {0x17e, 6302, 0x0, 25, 1, 0, 0}, + /*II_0F_C5*/ {0x17f, 6311, 0x0, 1, 0, 0, 0}, + /*II_66_0F_C5*/ {0x180, 6311, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_C5*/ {0x181, 6319, 0x40, 1, 0, 0, 0}, + /*II_0F_C6*/ {0x182, 6328, 0x0, 1, 0, 0, 0}, + /*II_66_0F_C6*/ {0x15c, 6336, 0x0, 1, 0, 0, 0}, + /*II_V_0F_C6*/ {0x183, 6344, 0x1, 90, 1, 0, 0}, + /*II_V_66_0F_C6*/ {0x183, 6353, 0x1, 90, 1, 0, 0}, + /*II_0F_C7_01*/ {0x184, 6362, 0x0, 0, 0, 0, 6373}, + /*II_V_66_0F_D0*/ {0x139, 6414, 0x1, 90, 0, 0, 0}, + /*II_V_F2_0F_D0*/ {0x139, 6425, 0x1, 90, 0, 0, 0}, + /*II_V_66_0F_D1*/ {0x132, 6443, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_D2*/ {0x132, 6458, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_D3*/ {0x132, 6473, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_D4*/ {0x132, 6488, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_D5*/ {0x132, 6504, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_D6*/ {0x188, 3939, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_D7*/ {0x18b, 6541, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_D8*/ {0x132, 6561, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_D9*/ {0x132, 6580, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_DA*/ {0x132, 6598, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_DB*/ {0x132, 6613, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_DC*/ {0x132, 6629, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_DD*/ {0x132, 6629, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_DE*/ {0x132, 6656, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_DF*/ {0x132, 6672, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_E0*/ {0x132, 6687, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_E1*/ {0x132, 6702, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_E2*/ {0x132, 6717, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_E3*/ {0x132, 6732, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_E4*/ {0x132, 6749, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_E5*/ {0x132, 6767, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_E6*/ {0x154, 6807, 0x41, 0, 0, 0, 0}, + /*II_V_F3_0F_E6*/ {0x153, 6819, 0x41, 0, 0, 0, 0}, + /*II_V_F2_0F_E6*/ {0x154, 6830, 0x41, 0, 0, 0, 0}, + /*II_V_66_0F_E7*/ {0x144, 6858, 0x41, 0, 0, 0, 0}, + /*II_V_66_0F_E8*/ {0x132, 6876, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_E9*/ {0x132, 6893, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_EA*/ {0x132, 6910, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_EB*/ {0x132, 6924, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_EC*/ {0x132, 6938, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_ED*/ {0x132, 6955, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_EE*/ {0x132, 6972, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_EF*/ {0x132, 6987, 0x0, 73, 0, 0, 0}, + /*II_V_F2_0F_F0*/ {0x18f, 7001, 0x41, 0, 0, 0, 0}, + /*II_V_66_0F_F1*/ {0x132, 7016, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_F2*/ {0x132, 7031, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_F3*/ {0x132, 7046, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_F4*/ {0x132, 7063, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_F5*/ {0x132, 7082, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_F6*/ {0x132, 7100, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_F7*/ {0x193, 7131, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_F8*/ {0x132, 7151, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_F9*/ {0x132, 7166, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_FA*/ {0x132, 7181, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_FB*/ {0x132, 7196, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_FC*/ {0x132, 7211, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_FD*/ {0x132, 7226, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_FE*/ {0x132, 7241, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_00*/ {0x132, 7349, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_01*/ {0x132, 7366, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_02*/ {0x132, 7383, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_03*/ {0x132, 7401, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_04*/ {0x132, 7422, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_05*/ {0x132, 7442, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_06*/ {0x132, 7459, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_07*/ {0x132, 7477, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_08*/ {0x132, 7495, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_09*/ {0x132, 7512, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_0A*/ {0x132, 7529, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_0B*/ {0x132, 7548, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_0C*/ {0x139, 7559, 0x1, 90, 0, 0, 0}, + /*II_V_66_0F_38_0D*/ {0x139, 7570, 0x1, 90, 0, 0, 0}, + /*II_V_66_0F_38_0E*/ {0x123, 7581, 0x41, 0, 0, 0, 0}, + /*II_V_66_0F_38_0F*/ {0x123, 7590, 0x41, 0, 0, 0, 0}, + /*II_66_0F_38_10*/ {0x19c, 7599, 0x0, 74, 0, 0, 0}, + /*II_66_0F_38_14*/ {0x19c, 7609, 0x0, 74, 0, 0, 0}, + /*II_66_0F_38_15*/ {0x19c, 7619, 0x0, 74, 0, 0, 0}, + /*II_V_66_0F_38_17*/ {0x123, 7636, 0x41, 0, 0, 0, 0}, + /*II_V_66_0F_38_18*/ {0x19e, 7644, 0x41, 0, 0, 0, 0}, + /*II_V_66_0F_38_19*/ {0x19f, 7658, 0x50, 0, 0, 0, 0}, + /*II_V_66_0F_38_1A*/ {0x1a0, 7672, 0x50, 0, 0, 0, 0}, + /*II_V_66_0F_38_1C*/ {0x1a1, 7695, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_1D*/ {0x1a1, 7710, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_1E*/ {0x1a1, 7725, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_20*/ {0x14d, 7743, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_21*/ {0x14c, 7764, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_22*/ {0x1a5, 7785, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_23*/ {0x14d, 7806, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_24*/ {0x14c, 7827, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_25*/ {0x14d, 7848, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_28*/ {0x132, 7867, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_29*/ {0x132, 7885, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_2A*/ {0x1a8, 7905, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_2B*/ {0x132, 7926, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_2C*/ {0x139, 7937, 0x1, 92, 0, 0, 0}, + /*II_V_66_0F_38_2D*/ {0x139, 7949, 0x1, 92, 0, 0, 0}, + /*II_V_66_0F_38_2E*/ {0x1a9, 7937, 0x1, 83, 0, 0, 0}, + /*II_V_66_0F_38_2F*/ {0x1a9, 7949, 0x1, 83, 0, 0, 0}, + /*II_V_66_0F_38_30*/ {0x14d, 7971, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_31*/ {0x14c, 7992, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_32*/ {0x1a5, 8013, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_33*/ {0x14d, 8034, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_34*/ {0x14c, 8055, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_35*/ {0x14d, 8076, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_37*/ {0x132, 8096, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_38*/ {0x132, 8114, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_39*/ {0x132, 8131, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_3A*/ {0x132, 8148, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_3B*/ {0x132, 8165, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_3C*/ {0x132, 8182, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_3D*/ {0x132, 8199, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_3E*/ {0x132, 8216, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_3F*/ {0x132, 8233, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_40*/ {0x132, 8250, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_41*/ {0x1a1, 8271, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_96*/ {0x1ab, 8310, 0x7, 90, 0, 8326, 0}, + /*II_V_66_0F_38_97*/ {0x1ab, 8342, 0x7, 90, 0, 8358, 0}, + /*II_V_66_0F_38_98*/ {0x1ab, 8374, 0x7, 90, 0, 8387, 0}, + /*II_V_66_0F_38_99*/ {0x1ac, 8400, 0x6, 80, 0, 8413, 0}, + /*II_V_66_0F_38_9A*/ {0x1ab, 8426, 0x7, 90, 0, 8439, 0}, + /*II_V_66_0F_38_9B*/ {0x1ac, 8452, 0x6, 80, 0, 8465, 0}, + /*II_V_66_0F_38_9C*/ {0x1ab, 8478, 0x7, 90, 0, 8492, 0}, + /*II_V_66_0F_38_9D*/ {0x1ac, 8506, 0x6, 80, 0, 8520, 0}, + /*II_V_66_0F_38_9E*/ {0x1ab, 8534, 0x7, 90, 0, 8548, 0}, + /*II_V_66_0F_38_9F*/ {0x1ac, 8562, 0x6, 80, 0, 8576, 0}, + /*II_V_66_0F_38_A6*/ {0x1ab, 8590, 0x7, 90, 0, 8606, 0}, + /*II_V_66_0F_38_A7*/ {0x1ab, 8622, 0x7, 90, 0, 8638, 0}, + /*II_V_66_0F_38_A8*/ {0x1ab, 8654, 0x7, 90, 0, 8667, 0}, + /*II_V_66_0F_38_A9*/ {0x1ac, 8680, 0x6, 80, 0, 8693, 0}, + /*II_V_66_0F_38_AA*/ {0x1ab, 8706, 0x7, 90, 0, 8719, 0}, + /*II_V_66_0F_38_AB*/ {0x1ac, 8732, 0x6, 80, 0, 8745, 0}, + /*II_V_66_0F_38_AC*/ {0x1ab, 8758, 0x7, 90, 0, 8772, 0}, + /*II_V_66_0F_38_AD*/ {0x1ac, 8786, 0x6, 80, 0, 8800, 0}, + /*II_V_66_0F_38_AE*/ {0x1ab, 8814, 0x7, 90, 0, 8828, 0}, + /*II_V_66_0F_38_AF*/ {0x1ac, 8842, 0x6, 80, 0, 8856, 0}, + /*II_V_66_0F_38_B6*/ {0x1ab, 8870, 0x7, 90, 0, 8886, 0}, + /*II_V_66_0F_38_B7*/ {0x1ab, 8902, 0x7, 90, 0, 8918, 0}, + /*II_V_66_0F_38_B8*/ {0x1ab, 8934, 0x7, 90, 0, 8947, 0}, + /*II_V_66_0F_38_B9*/ {0x1ac, 8960, 0x6, 80, 0, 8973, 0}, + /*II_V_66_0F_38_BA*/ {0x1ab, 8986, 0x7, 90, 0, 8999, 0}, + /*II_V_66_0F_38_BB*/ {0x1ac, 9012, 0x6, 80, 0, 9025, 0}, + /*II_V_66_0F_38_BC*/ {0x1ab, 9038, 0x7, 90, 0, 9052, 0}, + /*II_V_66_0F_38_BD*/ {0x1ac, 9066, 0x6, 80, 0, 9080, 0}, + /*II_V_66_0F_38_BE*/ {0x1ab, 9094, 0x7, 90, 0, 9108, 0}, + /*II_V_66_0F_38_BF*/ {0x1ac, 9122, 0x6, 80, 0, 9136, 0}, + /*II_V_66_0F_38_DB*/ {0x1ae, 9158, 0x40, 0, 0, 0, 0}, + /*II_V_66_0F_38_DC*/ {0x1af, 9175, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_DD*/ {0x1af, 9196, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_DE*/ {0x1af, 9217, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_38_DF*/ {0x1af, 9238, 0x0, 73, 0, 0, 0}, + /*II_V_66_0F_3A_04*/ {0x1b4, 7559, 0x41, 1, 0, 0, 0}, + /*II_V_66_0F_3A_05*/ {0x1b4, 7570, 0x41, 1, 0, 0, 0}, + /*II_V_66_0F_3A_06*/ {0x1b5, 9265, 0x10, 86, 1, 0, 0}, + /*II_66_0F_3A_08*/ {0x19c, 9277, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_08*/ {0x1b4, 9286, 0x41, 1, 0, 0, 0}, + /*II_66_0F_3A_09*/ {0x19c, 9296, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_09*/ {0x1b4, 9305, 0x41, 1, 0, 0, 0}, + /*II_66_0F_3A_0A*/ {0x1b6, 9315, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_0A*/ {0x17e, 9324, 0x0, 71, 1, 0, 0}, + /*II_66_0F_3A_0B*/ {0x1b7, 9334, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_0B*/ {0x17e, 9343, 0x0, 72, 1, 0, 0}, + /*II_66_0F_3A_0C*/ {0x19c, 9353, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_0C*/ {0x183, 9362, 0x1, 90, 1, 0, 0}, + /*II_66_0F_3A_0D*/ {0x19c, 9372, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_0D*/ {0x183, 9381, 0x1, 90, 1, 0, 0}, + /*II_66_0F_3A_0E*/ {0x19c, 9391, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_0E*/ {0x17e, 9400, 0x0, 73, 1, 0, 0}, + /*II_0F_3A_0F*/ {0x1b8, 9410, 0x0, 1, 0, 0, 0}, + /*II_66_0F_3A_0F*/ {0x1b9, 9410, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_0F*/ {0x17e, 9419, 0x0, 73, 1, 0, 0}, + /*II_66_0F_3A_14*/ {0x1ba, 9429, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_14*/ {0x1bb, 9437, 0x40, 1, 0, 0, 0}, + /*II_66_0F_3A_15*/ {0x1bc, 6311, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_15*/ {0x1bd, 6319, 0x40, 1, 0, 0, 0}, + /*II_66_0F_3A_16*/ {0x1be, 9446, 0x0, 1, 0, 0, 9454}, + /*II_V_66_0F_3A_16*/ {0x1bf, 9462, 0x46, 1, 0, 9471, 0}, + /*II_66_0F_3A_17*/ {0x1c0, 9480, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_17*/ {0x1c1, 9491, 0x40, 1, 0, 0, 0}, + /*II_V_66_0F_3A_18*/ {0x1b5, 9503, 0x10, 73, 1, 0, 0}, + /*II_V_66_0F_3A_19*/ {0x1c2, 9516, 0x50, 1, 0, 0, 0}, + /*II_66_0F_3A_20*/ {0x1c3, 9530, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_20*/ {0x17e, 9538, 0x0, 76, 1, 0, 0}, + /*II_66_0F_3A_21*/ {0x1b6, 9547, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_21*/ {0x17e, 9557, 0x0, 71, 1, 0, 0}, + /*II_66_0F_3A_22*/ {0x1c4, 9568, 0x0, 1, 0, 0, 9576}, + /*II_V_66_0F_3A_22*/ {0x17e, 9584, 0x6, 79, 1, 9593, 0}, + /*II_66_0F_3A_40*/ {0x19c, 9602, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_40*/ {0x183, 9608, 0x1, 90, 1, 0, 0}, + /*II_66_0F_3A_41*/ {0x19c, 9615, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_41*/ {0x17e, 9621, 0x0, 73, 1, 0, 0}, + /*II_66_0F_3A_42*/ {0x19c, 9628, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_42*/ {0x17e, 9637, 0x0, 73, 1, 0, 0}, + /*II_66_0F_3A_44*/ {0x1c5, 9647, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_44*/ {0x1c6, 9658, 0x0, 73, 1, 0, 0}, + /*II_V_66_0F_3A_4A*/ {0x183, 9670, 0x1, 90, 84, 0, 0}, + /*II_V_66_0F_3A_4B*/ {0x183, 9681, 0x1, 90, 84, 0, 0}, + /*II_V_66_0F_3A_4C*/ {0x17e, 9692, 0x0, 73, 82, 0, 0}, + /*II_66_0F_3A_60*/ {0x1c7, 9703, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_60*/ {0x15d, 9714, 0x40, 1, 0, 0, 0}, + /*II_66_0F_3A_61*/ {0x1c7, 9726, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_61*/ {0x15d, 9737, 0x40, 1, 0, 0, 0}, + /*II_66_0F_3A_62*/ {0x1c7, 9749, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_62*/ {0x15d, 9760, 0x40, 1, 0, 0, 0}, + /*II_66_0F_3A_63*/ {0x1c7, 9772, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_63*/ {0x15d, 9783, 0x40, 1, 0, 0, 0}, + /*II_66_0F_3A_DF*/ {0x1c8, 9795, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_3A_DF*/ {0x1c9, 9812, 0x40, 1, 0, 0, 0}, + /*II_V_66_0F_71_02*/ {0x1cc, 6443, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_71_04*/ {0x1cc, 6702, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_71_06*/ {0x1cc, 7016, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_72_02*/ {0x1cc, 6458, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_72_04*/ {0x1cc, 6717, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_72_06*/ {0x1cc, 7031, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_73_02*/ {0x1cc, 6473, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_73_03*/ {0x1cc, 9838, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_73_06*/ {0x1cc, 7046, 0x0, 1, 0, 0, 0}, + /*II_V_66_0F_73_07*/ {0x1cc, 9855, 0x0, 1, 0, 0, 0}, + /*II_0F_AE_00*/ {0x16d, 9864, 0x0, 0, 0, 0, 9872}, + /*II_0F_AE_01*/ {0x16d, 9892, 0x0, 0, 0, 0, 9901}, + /*II_V_0F_AE_02*/ {0x1ce, 9941, 0x40, 0, 0, 0, 0}, + /*II_V_0F_AE_03*/ {0x1ce, 9970, 0x40, 0, 0, 0, 0} }; _InstNode InstructionsTree[5560] = { @@ -7321,9 +7324,9 @@ _InstNode InstructionsTree[5560] = { /* 15a9 - */ 0, /* 15aa - */ 0, /* 15ab - */ 0, -/* 15ac - _0F_C7_06 */ 0x417d, -/* 15ad - _66_0F_C7_06 */ 0x24d8, -/* 15ae - _F3_0F_C7_06 */ 0x24d9, +/* 15ac - _0F_C7_06 */ 0x24d8, +/* 15ad - _66_0F_C7_06 */ 0x24d9, +/* 15ae - _F3_0F_C7_06 */ 0x24da, /* 15af - */ 0, /* 15b0 - */ 0, /* 15b1 - */ 0, @@ -7335,75 +7338,75 @@ _InstNode InstructionsTree[5560] = { /* 15b7 - */ 0 }; -_InstSharedInfo InstSharedInfoTable[465] = { -{0, 9, 15, 8, 63, 0, 0}, -{0, 11, 17, 8, 63, 0, 0}, -{0, 15, 9, 8, 63, 0, 0}, -{0, 17, 11, 8, 63, 0, 0}, -{1, 1, 33, 8, 63, 0, 0}, -{1, 3, 35, 8, 63, 0, 0}, +_InstSharedInfo InstSharedInfoTable[467] = { +{0, 9, 15, 8, 245, 0, 0}, +{0, 11, 17, 8, 245, 0, 0}, +{0, 15, 9, 8, 245, 0, 0}, +{0, 17, 11, 8, 245, 0, 0}, +{1, 1, 33, 8, 245, 0, 0}, +{1, 3, 35, 8, 245, 0, 0}, {2, 0, 32, 8, 0, 0, 0}, {3, 0, 32, 8, 0, 0, 0}, -{0, 9, 15, 8, 19, 32, 0}, -{0, 11, 17, 8, 19, 32, 0}, -{0, 15, 9, 8, 19, 32, 0}, -{0, 17, 11, 8, 19, 32, 0}, -{1, 1, 33, 8, 19, 32, 0}, -{1, 3, 35, 8, 19, 32, 0}, +{0, 9, 15, 8, 196, 16, 0}, +{0, 11, 17, 8, 196, 16, 0}, +{0, 15, 9, 8, 196, 16, 0}, +{0, 17, 11, 8, 196, 16, 0}, +{1, 1, 33, 8, 196, 16, 0}, +{1, 3, 35, 8, 196, 16, 0}, {4, 0, 32, 8, 0, 0, 0}, -{0, 9, 15, 8, 63, 4, 0}, -{0, 11, 17, 8, 63, 4, 0}, -{0, 15, 9, 8, 63, 4, 0}, -{0, 17, 11, 8, 63, 4, 0}, -{1, 1, 33, 8, 63, 4, 0}, -{1, 3, 35, 8, 63, 4, 0}, +{0, 9, 15, 8, 245, 1, 0}, +{0, 11, 17, 8, 245, 1, 0}, +{0, 15, 9, 8, 245, 1, 0}, +{0, 17, 11, 8, 245, 1, 0}, +{1, 1, 33, 8, 245, 1, 0}, +{1, 3, 35, 8, 245, 1, 0}, {5, 0, 32, 8, 0, 0, 0}, {6, 0, 32, 8, 0, 0, 0}, {7, 0, 32, 8, 0, 0, 0}, {8, 0, 32, 8, 0, 0, 0}, -{0, 9, 15, 8, 31, 0, 32}, -{0, 11, 17, 8, 31, 0, 32}, -{0, 15, 9, 8, 31, 0, 32}, -{0, 17, 11, 8, 31, 0, 32}, -{1, 1, 33, 8, 31, 0, 32}, -{1, 3, 35, 8, 31, 0, 32}, -{9, 0, 0, 8, 55, 36, 8}, -{0, 9, 15, 8, 19, 0, 32}, -{0, 11, 17, 8, 19, 0, 32}, -{0, 15, 9, 8, 19, 0, 32}, -{0, 17, 11, 8, 19, 0, 32}, -{1, 1, 33, 8, 19, 0, 32}, -{1, 3, 35, 8, 19, 0, 32}, -{9, 0, 0, 8, 36, 32, 27}, -{10, 9, 15, 8, 63, 0, 0}, -{10, 11, 17, 8, 63, 0, 0}, -{10, 15, 9, 8, 63, 0, 0}, -{10, 17, 11, 8, 63, 0, 0}, -{11, 1, 33, 8, 63, 0, 0}, -{11, 3, 35, 8, 63, 0, 0}, -{12, 0, 54, 8, 59, 0, 0}, +{0, 9, 15, 8, 229, 0, 16}, +{0, 11, 17, 8, 229, 0, 16}, +{0, 15, 9, 8, 229, 0, 16}, +{0, 17, 11, 8, 229, 0, 16}, +{1, 1, 33, 8, 229, 0, 16}, +{1, 3, 35, 8, 229, 0, 16}, +{9, 0, 0, 8, 213, 17, 32}, +{0, 9, 15, 8, 196, 0, 16}, +{0, 11, 17, 8, 196, 0, 16}, +{0, 15, 9, 8, 196, 0, 16}, +{0, 17, 11, 8, 196, 0, 16}, +{1, 1, 33, 8, 196, 0, 16}, +{1, 3, 35, 8, 196, 0, 16}, +{9, 0, 0, 8, 17, 16, 228}, +{10, 9, 15, 8, 245, 0, 0}, +{10, 11, 17, 8, 245, 0, 0}, +{10, 15, 9, 8, 245, 0, 0}, +{10, 17, 11, 8, 245, 0, 0}, +{11, 1, 33, 8, 245, 0, 0}, +{11, 3, 35, 8, 245, 0, 0}, +{12, 0, 54, 8, 244, 0, 0}, {13, 0, 54, 8, 0, 0, 0}, {14, 0, 54, 8, 0, 0, 0}, {15, 0, 0, 8, 0, 0, 0}, {16, 42, 11, 8, 0, 0, 0}, -{10, 10, 16, 8, 1, 0, 0}, +{10, 10, 16, 8, 64, 0, 0}, {13, 0, 3, 8, 0, 0, 0}, -{17, 17, 11, 8, 12, 0, 51}, +{17, 17, 11, 8, 33, 0, 212}, {18, 0, 5, 8, 0, 0, 0}, -{19, 59, 56, 8, 0, 64, 0}, -{20, 59, 56, 8, 0, 64, 0}, -{19, 55, 59, 8, 0, 64, 0}, -{20, 55, 59, 8, 0, 64, 0}, -{13, 0, 40, 13, 0, 8, 0}, -{13, 0, 40, 13, 0, 4, 0}, +{19, 59, 56, 8, 0, 8, 0}, +{20, 59, 56, 8, 0, 8, 0}, +{19, 55, 59, 8, 0, 8, 0}, +{20, 55, 59, 8, 0, 8, 0}, +{13, 0, 40, 13, 0, 32, 0}, {13, 0, 40, 13, 0, 1, 0}, -{13, 0, 40, 13, 0, 5, 0}, -{13, 0, 40, 13, 0, 2, 0}, -{13, 0, 40, 13, 0, 16, 0}, -{13, 0, 40, 13, 0, 10, 0}, -{13, 0, 40, 13, 0, 11, 0}, -{10, 9, 15, 8, 19, 0, 32}, -{10, 11, 17, 8, 19, 0, 32}, +{13, 0, 40, 13, 0, 64, 0}, +{13, 0, 40, 13, 0, 65, 0}, +{13, 0, 40, 13, 0, 128, 0}, +{13, 0, 40, 13, 0, 4, 0}, +{13, 0, 40, 13, 0, 160, 0}, +{13, 0, 40, 13, 0, 224, 0}, +{10, 9, 15, 8, 196, 0, 16}, +{10, 11, 17, 8, 196, 0, 16}, {0, 9, 15, 8, 0, 0, 0}, {0, 11, 17, 8, 0, 0, 0}, {21, 9, 15, 8, 0, 0, 0}, @@ -7418,24 +7421,24 @@ _InstSharedInfo InstSharedInfoTable[465] = { {9, 0, 38, 9, 0, 0, 0}, {23, 0, 0, 8, 0, 0, 0}, {23, 0, 0, 8, 255, 0, 0}, -{11, 0, 0, 8, 55, 0, 0}, +{11, 0, 0, 8, 213, 0, 0}, {11, 0, 0, 8, 0, 0, 0}, {1, 49, 33, 8, 0, 0, 0}, {1, 50, 35, 8, 0, 0, 0}, {1, 33, 49, 8, 0, 0, 0}, {1, 35, 50, 8, 0, 0, 0}, -{24, 55, 56, 8, 0, 64, 0}, -{25, 55, 56, 8, 0, 64, 0}, -{19, 56, 55, 8, 63, 64, 0}, -{26, 56, 55, 8, 63, 64, 0}, -{11, 1, 33, 8, 19, 0, 32}, -{11, 3, 35, 8, 19, 0, 32}, -{19, 33, 56, 8, 0, 64, 0}, -{26, 35, 56, 8, 0, 64, 0}, -{19, 55, 33, 8, 0, 64, 0}, -{26, 55, 35, 8, 0, 64, 0}, -{19, 33, 56, 8, 63, 64, 0}, -{26, 35, 56, 8, 63, 64, 0}, +{24, 55, 56, 8, 0, 8, 0}, +{25, 55, 56, 8, 0, 8, 0}, +{19, 56, 55, 8, 245, 8, 0}, +{26, 56, 55, 8, 245, 8, 0}, +{11, 1, 33, 8, 196, 0, 16}, +{11, 3, 35, 8, 196, 0, 16}, +{19, 33, 56, 8, 0, 8, 0}, +{26, 35, 56, 8, 0, 8, 0}, +{19, 55, 33, 8, 0, 8, 0}, +{26, 55, 35, 8, 0, 8, 0}, +{19, 33, 56, 8, 245, 8, 0}, +{26, 35, 56, 8, 245, 8, 0}, {1, 1, 53, 8, 0, 0, 0}, {27, 3, 54, 8, 0, 0, 0}, {13, 0, 2, 10, 0, 0, 0}, @@ -7449,10 +7452,10 @@ _InstSharedInfo InstSharedInfoTable[465] = { {11, 0, 1, 14, 0, 0, 0}, {9, 0, 0, 14, 0, 0, 0}, {28, 0, 0, 10, 255, 0, 0}, -{9, 0, 1, 8, 19, 0, 44}, +{9, 0, 1, 8, 196, 0, 49}, {9, 0, 0, 8, 0, 0, 0}, {29, 0, 57, 8, 0, 0, 0}, -{30, 0, 40, 13, 0, 1, 0}, +{30, 0, 40, 13, 0, 64, 0}, {30, 0, 40, 13, 0, 0, 0}, {31, 0, 40, 13, 0, 0, 0}, {1, 1, 33, 8, 0, 0, 0}, @@ -7467,10 +7470,10 @@ _InstSharedInfo InstSharedInfoTable[465] = { {1, 59, 36, 8, 0, 0, 0}, {11, 33, 59, 8, 0, 0, 0}, {11, 36, 59, 8, 0, 0, 0}, -{11, 0, 0, 8, 4, 0, 0}, -{11, 0, 0, 8, 128, 0, 0}, -{11, 0, 0, 8, 64, 0, 0}, -{10, 16, 11, 8, 1, 0, 0}, +{11, 0, 0, 8, 1, 0, 0}, +{11, 0, 0, 8, 2, 0, 0}, +{11, 0, 0, 8, 8, 0, 0}, +{10, 16, 11, 8, 64, 0, 0}, {32, 0, 0, 27, 0, 0, 0}, {32, 0, 0, 8, 0, 0, 0}, {32, 0, 0, 14, 0, 0, 0}, @@ -7481,126 +7484,125 @@ _InstSharedInfo InstSharedInfoTable[465] = { {33, 14, 29, 8, 0, 0, 0}, {33, 14, 30, 8, 0, 0, 0}, {34, 0, 0, 8, 0, 0, 0}, -{35, 17, 11, 31, 0, 8, 0}, -{35, 17, 11, 31, 0, 4, 0}, +{35, 17, 11, 31, 0, 32, 0}, {35, 17, 11, 31, 0, 1, 0}, -{35, 17, 11, 31, 0, 5, 0}, -{35, 17, 11, 31, 0, 2, 0}, -{35, 17, 11, 31, 0, 16, 0}, -{35, 17, 11, 31, 0, 10, 0}, -{35, 17, 11, 31, 0, 11, 0}, -{32, 0, 41, 13, 0, 8, 0}, -{32, 0, 41, 13, 0, 4, 0}, +{35, 17, 11, 31, 0, 64, 0}, +{35, 17, 11, 31, 0, 65, 0}, +{35, 17, 11, 31, 0, 128, 0}, +{35, 17, 11, 31, 0, 4, 0}, +{35, 17, 11, 31, 0, 160, 0}, +{35, 17, 11, 31, 0, 224, 0}, +{32, 0, 41, 13, 0, 32, 0}, {32, 0, 41, 13, 0, 1, 0}, -{32, 0, 41, 13, 0, 5, 0}, -{32, 0, 41, 13, 0, 2, 0}, -{32, 0, 41, 13, 0, 16, 0}, -{32, 0, 41, 13, 0, 10, 0}, -{32, 0, 41, 13, 0, 11, 0}, -{35, 0, 15, 8, 0, 8, 0}, -{35, 0, 15, 8, 0, 4, 0}, +{32, 0, 41, 13, 0, 64, 0}, +{32, 0, 41, 13, 0, 65, 0}, +{32, 0, 41, 13, 0, 128, 0}, +{32, 0, 41, 13, 0, 4, 0}, +{32, 0, 41, 13, 0, 160, 0}, +{32, 0, 41, 13, 0, 224, 0}, +{35, 0, 15, 8, 0, 32, 0}, {35, 0, 15, 8, 0, 1, 0}, -{35, 0, 15, 8, 0, 5, 0}, -{35, 0, 15, 8, 0, 2, 0}, -{35, 0, 15, 8, 0, 16, 0}, -{35, 0, 15, 8, 0, 10, 0}, -{35, 0, 15, 8, 0, 11, 0}, +{35, 0, 15, 8, 0, 64, 0}, +{35, 0, 15, 8, 0, 65, 0}, +{35, 0, 15, 8, 0, 128, 0}, +{35, 0, 15, 8, 0, 4, 0}, +{35, 0, 15, 8, 0, 160, 0}, +{35, 0, 15, 8, 0, 224, 0}, {36, 0, 32, 8, 0, 0, 0}, {37, 0, 32, 8, 0, 0, 0}, -{35, 11, 17, 8, 4, 0, 59}, -{38, 11, 17, 8, 23, 0, 40}, +{35, 11, 17, 8, 1, 0, 244}, +{38, 11, 17, 8, 197, 0, 48}, {39, 0, 32, 8, 0, 0, 0}, {40, 0, 32, 8, 0, 0, 0}, {32, 0, 0, 8, 255, 0, 0}, -{41, 11, 17, 8, 4, 0, 59}, -{35, 17, 11, 8, 12, 0, 51}, -{41, 9, 15, 8, 63, 0, 0}, -{41, 11, 17, 8, 63, 0, 0}, +{41, 11, 17, 8, 1, 0, 244}, +{35, 17, 11, 8, 33, 0, 212}, +{41, 9, 15, 8, 245, 0, 0}, +{41, 11, 17, 8, 245, 0, 0}, {42, 37, 11, 8, 0, 0, 0}, {35, 15, 11, 8, 0, 0, 0}, {43, 16, 11, 8, 0, 0, 0}, {43, 13, 45, 48, 0, 0, 0}, {44, 0, 54, 8, 0, 0, 0}, -{45, 1, 15, 8, 63, 0, 0}, -{45, 1, 15, 8, 19, 32, 0}, -{45, 1, 15, 8, 63, 4, 0}, -{45, 1, 15, 8, 31, 0, 32}, -{45, 1, 15, 8, 19, 0, 32}, -{46, 1, 15, 8, 63, 0, 0}, -{45, 3, 17, 8, 63, 0, 0}, -{45, 3, 17, 8, 19, 32, 0}, -{45, 3, 17, 8, 63, 4, 0}, -{45, 3, 17, 8, 31, 0, 32}, -{45, 3, 17, 8, 19, 0, 32}, -{46, 3, 17, 8, 63, 0, 0}, -{47, 1, 15, 8, 63, 0, 0}, -{47, 1, 15, 8, 19, 32, 0}, -{47, 1, 15, 8, 63, 4, 0}, -{47, 1, 15, 8, 31, 0, 32}, -{47, 1, 15, 8, 19, 0, 32}, -{48, 1, 15, 8, 63, 0, 0}, -{45, 5, 17, 8, 63, 0, 0}, -{49, 5, 17, 8, 19, 32, 0}, -{45, 5, 17, 8, 63, 4, 0}, -{49, 5, 17, 8, 31, 0, 32}, -{49, 5, 17, 8, 19, 0, 32}, -{46, 5, 17, 8, 63, 0, 0}, +{45, 1, 15, 8, 245, 0, 0}, +{45, 1, 15, 8, 196, 16, 0}, +{45, 1, 15, 8, 245, 1, 0}, +{45, 1, 15, 8, 229, 0, 16}, +{45, 1, 15, 8, 196, 0, 16}, +{46, 1, 15, 8, 245, 0, 0}, +{45, 3, 17, 8, 245, 0, 0}, +{45, 3, 17, 8, 196, 16, 0}, +{45, 3, 17, 8, 245, 1, 0}, +{45, 3, 17, 8, 229, 0, 16}, +{45, 3, 17, 8, 196, 0, 16}, +{46, 3, 17, 8, 245, 0, 0}, +{47, 1, 15, 8, 245, 0, 0}, +{47, 1, 15, 8, 196, 16, 0}, +{47, 1, 15, 8, 245, 1, 0}, +{47, 1, 15, 8, 229, 0, 16}, +{47, 1, 15, 8, 196, 0, 16}, +{48, 1, 15, 8, 245, 0, 0}, +{45, 5, 17, 8, 245, 0, 0}, +{49, 5, 17, 8, 196, 16, 0}, +{45, 5, 17, 8, 245, 1, 0}, +{49, 5, 17, 8, 229, 0, 16}, +{49, 5, 17, 8, 196, 0, 16}, +{46, 5, 17, 8, 245, 0, 0}, {50, 0, 17, 8, 0, 0, 0}, -{51, 1, 15, 8, 4, 0, 8}, -{51, 1, 15, 8, 4, 4, 8}, -{51, 1, 15, 8, 23, 0, 40}, +{51, 1, 15, 8, 1, 0, 32}, +{51, 1, 15, 8, 1, 1, 32}, +{51, 1, 15, 8, 197, 0, 48}, +{51, 1, 17, 8, 1, 0, 32}, +{51, 1, 17, 8, 1, 1, 32}, +{51, 1, 17, 8, 197, 0, 48}, {51, 1, 15, 8, 0, 0, 0}, -{51, 1, 17, 8, 4, 0, 8}, -{51, 1, 17, 8, 4, 4, 8}, -{51, 1, 17, 8, 23, 0, 40}, -{51, 1, 17, 8, 0, 0, 0}, {51, 3, 17, 8, 0, 0, 0}, -{51, 51, 15, 8, 12, 0, 0}, -{51, 51, 15, 8, 12, 4, 0}, -{51, 51, 15, 8, 31, 0, 32}, -{51, 51, 15, 8, 0, 0, 0}, -{51, 51, 17, 8, 12, 0, 0}, -{51, 51, 17, 8, 12, 4, 0}, -{51, 51, 17, 8, 31, 0, 32}, -{51, 51, 17, 8, 0, 0, 0}, -{51, 52, 15, 8, 4, 0, 8}, -{51, 52, 15, 8, 4, 4, 8}, -{51, 52, 15, 8, 23, 0, 40}, -{51, 52, 15, 8, 0, 0, 0}, -{51, 52, 17, 8, 4, 0, 8}, -{51, 52, 17, 8, 4, 4, 8}, -{51, 52, 17, 8, 23, 0, 40}, -{51, 52, 17, 8, 0, 0, 0}, +{51, 51, 15, 8, 33, 0, 0}, +{51, 51, 15, 8, 33, 1, 0}, +{51, 51, 15, 8, 229, 0, 16}, +{51, 51, 17, 8, 33, 0, 0}, +{51, 51, 17, 8, 33, 1, 0}, +{51, 51, 17, 8, 229, 0, 16}, +{51, 52, 15, 8, 1, 0, 32}, +{51, 52, 15, 8, 1, 1, 32}, +{51, 52, 15, 8, 197, 0, 48}, +{51, 52, 17, 8, 1, 0, 32}, +{51, 52, 17, 8, 1, 1, 32}, +{51, 52, 17, 8, 197, 0, 48}, {46, 0, 21, 16, 0, 0, 0}, {52, 0, 62, 16, 0, 0, 0}, {52, 0, 61, 16, 0, 0, 0}, {52, 0, 0, 16, 0, 0, 0}, +{51, 0, 21, 16, 0, 0, 0}, {46, 0, 42, 16, 0, 0, 0}, -{53, 0, 62, 24, 0, 4, 0}, +{46, 0, 20, 16, 0, 0, 0}, {53, 0, 62, 24, 0, 1, 0}, -{53, 0, 62, 24, 0, 5, 0}, -{53, 0, 62, 24, 0, 16, 0}, +{53, 0, 62, 24, 0, 64, 0}, +{53, 0, 62, 24, 0, 65, 0}, +{53, 0, 62, 24, 0, 4, 0}, {54, 0, 21, 56, 0, 0, 0}, {46, 0, 23, 16, 0, 0, 0}, -{53, 0, 62, 16, 21, 0, 0}, -{53, 0, 62, 24, 21, 0, 0}, +{51, 0, 23, 16, 0, 0, 0}, +{53, 0, 62, 16, 69, 0, 0}, +{53, 0, 62, 24, 69, 0, 0}, {46, 0, 22, 16, 0, 0, 0}, {52, 0, 63, 16, 0, 0, 0}, {54, 0, 22, 56, 0, 0, 0}, -{46, 0, 20, 16, 0, 0, 0}, +{51, 0, 22, 16, 0, 0, 0}, {54, 0, 20, 56, 0, 0, 0}, -{46, 1, 15, 8, 19, 0, 32}, +{51, 0, 20, 16, 0, 0, 0}, +{46, 1, 15, 8, 196, 0, 16}, {45, 0, 15, 8, 0, 0, 0}, -{45, 0, 15, 8, 63, 0, 0}, -{51, 0, 15, 8, 12, 0, 51}, -{51, 0, 15, 8, 0, 0, 63}, -{46, 3, 17, 8, 19, 0, 32}, +{45, 0, 15, 8, 245, 0, 0}, +{51, 0, 15, 8, 33, 0, 212}, +{51, 0, 15, 8, 0, 0, 245}, +{46, 3, 17, 8, 196, 0, 16}, {45, 0, 17, 8, 0, 0, 0}, -{45, 0, 17, 8, 63, 0, 0}, -{51, 0, 17, 8, 12, 0, 51}, -{51, 0, 17, 8, 0, 0, 63}, -{45, 0, 15, 8, 59, 0, 0}, -{45, 0, 17, 8, 59, 0, 0}, +{45, 0, 17, 8, 245, 0, 0}, +{51, 0, 17, 8, 33, 0, 212}, +{51, 0, 17, 8, 0, 0, 245}, +{45, 0, 15, 8, 244, 0, 0}, +{45, 0, 17, 8, 244, 0, 0}, {55, 0, 17, 9, 0, 0, 0}, {56, 0, 37, 9, 0, 0, 0}, {55, 0, 17, 12, 0, 0, 0}, @@ -7609,7 +7611,7 @@ _InstSharedInfo InstSharedInfoTable[465] = { {46, 0, 17, 8, 0, 0, 0}, {46, 0, 16, 8, 0, 0, 0}, {54, 0, 16, 8, 0, 0, 0}, -{46, 0, 16, 8, 1, 0, 0}, +{46, 0, 16, 8, 64, 0, 0}, {55, 0, 39, 8, 0, 0, 0}, {57, 0, 28, 8, 0, 0, 0}, {58, 0, 16, 8, 0, 0, 0}, @@ -7667,7 +7669,7 @@ _InstSharedInfo InstSharedInfoTable[465] = { {42, 71, 13, 40, 0, 0, 0}, {42, 72, 13, 48, 0, 0, 0}, {61, 80, 78, 128, 0, 0, 0}, -{34, 71, 68, 40, 21, 0, 0}, +{34, 71, 68, 40, 69, 0, 0}, {34, 72, 68, 48, 0, 0, 0}, {61, 71, 68, 128, 0, 0, 0}, {61, 72, 68, 128, 0, 0, 0}, @@ -7705,12 +7707,12 @@ _InstSharedInfo InstSharedInfoTable[465] = { {76, 0, 42, 8, 0, 0, 0}, {77, 0, 43, 8, 0, 0, 0}, {78, 0, 43, 8, 0, 0, 0}, -{79, 17, 11, 80, 1, 0, 0}, -{80, 1, 17, 8, 4, 0, 59}, -{49, 1, 17, 8, 4, 0, 59}, -{34, 17, 11, 8, 1, 0, 63}, +{79, 17, 11, 80, 64, 0, 0}, +{80, 1, 17, 8, 1, 0, 244}, +{49, 1, 17, 8, 1, 0, 244}, +{34, 17, 11, 8, 64, 0, 245}, {81, 17, 11, 112, 0, 0, 0}, -{82, 17, 11, 8, 5, 0, 58}, +{82, 17, 11, 8, 65, 0, 180}, {83, 73, 68, 40, 0, 0, 0}, {83, 73, 68, 48, 0, 0, 0}, {83, 71, 68, 40, 0, 0, 0}, @@ -7725,7 +7727,7 @@ _InstSharedInfo InstSharedInfoTable[465] = { {87, 68, 13, 128, 0, 0, 0}, {70, 73, 68, 40, 0, 0, 0}, {85, 88, 83, 128, 0, 0, 0}, -{88, 0, 48, 8, 1, 0, 0}, +{88, 0, 48, 8, 64, 0, 0}, {54, 0, 46, 112, 0, 0, 0}, {67, 65, 68, 48, 0, 0, 0}, {67, 69, 64, 48, 0, 0, 0}, @@ -7741,10 +7743,12 @@ _InstSharedInfo InstSharedInfoTable[465] = { {75, 65, 64, 40, 0, 0, 0}, {75, 69, 68, 48, 0, 0, 0}, {89, 69, 68, 128, 0, 0, 0}, +{51, 0, 42, 16, 0, 0, 0}, {90, 0, 42, 16, 0, 0, 0}, +{90, 0, 20, 16, 0, 0, 0}, {91, 0, 0, 16, 0, 0, 0}, -{52, 0, 34, 16, 0, 0, 0}, -{91, 0, 34, 16, 0, 0, 0}, +{92, 0, 34, 16, 0, 0, 0}, +{93, 0, 34, 16, 0, 0, 0}, {34, 67, 64, 64, 0, 0, 0}, {34, 73, 68, 64, 0, 0, 0}, {70, 73, 68, 72, 0, 0, 0}, @@ -7781,26 +7785,27 @@ _InstSharedInfo InstSharedInfoTable[465] = { {87, 68, 76, 128, 0, 0, 0}, {70, 68, 27, 72, 0, 0, 0}, {87, 68, 77, 128, 0, 0, 0}, -{92, 68, 18, 72, 0, 0, 0}, +{94, 68, 18, 72, 0, 0, 0}, {66, 68, 79, 128, 0, 0, 0}, {70, 68, 18, 72, 0, 0, 0}, {66, 68, 75, 128, 0, 0, 0}, {66, 85, 73, 128, 0, 0, 0}, {70, 24, 68, 72, 0, 0, 0}, -{92, 18, 68, 72, 0, 0, 0}, +{94, 18, 68, 72, 0, 0, 0}, {70, 73, 68, 144, 0, 0, 0}, {85, 81, 68, 144, 0, 0, 0}, {70, 73, 68, 80, 0, 0, 0}, {70, 73, 68, 152, 0, 0, 0}, {66, 73, 68, 152, 0, 0, 0}, -{93, 1, 65, 32, 0, 0, 0}, +{95, 1, 65, 32, 0, 0, 0}, {54, 1, 69, 48, 0, 0, 0}, -{94, 69, 81, 128, 0, 0, 0}, -{95, 0, 13, 112, 0, 0, 0}, +{96, 69, 81, 128, 0, 0, 0}, +{97, 0, 13, 112, 0, 0, 0}, {63, 0, 44, 128, 0, 0, 0}, -{78, 0, 43, 112, 0, 0, 0}, -{96, 75, 13, 8, 0, 0, 0}, -{97, 67, 64, 96, 0, 0, 0} +{54, 0, 42, 112, 0, 0, 0}, +{98, 75, 13, 8, 0, 0, 0}, +{97, 0, 17, 8, 0, 0, 0}, +{99, 67, 64, 96, 0, 0, 0} }; uint16_t CmpMnemonicOffsets[8] = { @@ -7808,4 +7813,4 @@ uint16_t CmpMnemonicOffsets[8] = { }; uint16_t VCmpMnemonicOffsets[32] = { 0, 10, 20, 30, 43, 54, 65, 76, 87, 100, 111, 122, 135, 149, 159, 169, 181, 194, 207, 220, 235, 249, 263, 277, 290, 303, 317, 331, 347, 361, 374, 387 -}; \ No newline at end of file +}; diff --git a/diStorm/src/insts.h b/diStorm/src/insts.h index 6fd77f4..4813a8b 100644 --- a/diStorm/src/insts.h +++ b/diStorm/src/insts.h @@ -45,17 +45,23 @@ extern _InstNode Table_0F, Table_0F_38, Table_0F_3A; * The inst_lookup will return on of these two instructions according to the specified decoding mode. * ARPL or MOVSXD on 64 bits is one byte instruction at index 0x63. */ -extern _InstInfo II_ARPL; extern _InstInfo II_MOVSXD; /* * The NOP instruction can be prefixed by REX in 64bits, therefore we have to decide in runtime whether it's an XCHG or NOP instruction. - * If 0x90 is prefixed by a useable REX it will become XCHG, otherwise it will become a NOP. + * If 0x90 is prefixed by a usable REX it will become XCHG, otherwise it will become a NOP. * Also note that if it's prefixed by 0xf3, it becomes a Pause. */ extern _InstInfo II_NOP; extern _InstInfo II_PAUSE; +/* + * RDRAND and VMPTRLD share same 2.3 bytes opcode, and then alternates on the MOD bits, + * RDRAND is OT_FULL_REG while VMPTRLD is OT_MEM, and there's no such mixed type. + * So a hack into the inst_lookup was added for this decision, the DB isn't flexible enough. :( + */ +extern _InstInfo II_RDRAND; + /* * Used for letting the extract operand know the type of operands without knowing the * instruction itself yet, because of the way those instructions work. @@ -63,7 +69,7 @@ extern _InstInfo II_PAUSE; */ extern _InstInfo II_3DNOW; -/* Helper tables for pesudo compare mnemonics. */ +/* Helper tables for pseudo compare mnemonics. */ extern uint16_t CmpMnemonicOffsets[8]; /* SSE */ extern uint16_t VCmpMnemonicOffsets[32]; /* AVX */ diff --git a/diStorm/src/mnemonics.c b/diStorm/src/mnemonics.c index cb8ed20..3bc6bee 100644 --- a/diStorm/src/mnemonics.c +++ b/diStorm/src/mnemonics.c @@ -25,7 +25,6 @@ along with this program. If not, see #ifndef DISTORM_LIGHT - const unsigned char _MNEMONICS[] = "\x09" "UNDEFINED\0" "\x03" "ADD\0" "\x04" "PUSH\0" "\x03" "POP\0" "\x02" "OR\0" \ "\x03" "ADC\0" "\x03" "SBB\0" "\x03" "AND\0" "\x03" "DAA\0" "\x03" "SUB\0" \ @@ -273,8 +272,8 @@ const unsigned char _MNEMONICS[] = "\x06" "PSLLDQ\0" "\x07" "VPSLLDQ\0" "\x06" "FXSAVE\0" "\x08" "FXSAVE64\0" \ "\x08" "RDFSBASE\0" "\x07" "FXRSTOR\0" "\x09" "FXRSTOR64\0" "\x08" "RDGSBASE\0" \ "\x07" "LDMXCSR\0" "\x08" "WRFSBASE\0" "\x08" "VLDMXCSR\0" "\x07" "STMXCSR\0" \ -"\x08" "WRGSBASE\0" "\x08" "VSTMXCSR\0" "\x06" "RDRAND\0" "\x07" "VMPTRLD\0" \ -"\x07" "VMCLEAR\0" "\x05" "VMXON\0" "\x06" "MOVSXD\0" "\x05" "PAUSE\0" "\x04" "WAIT\0" \ +"\x08" "WRGSBASE\0" "\x08" "VSTMXCSR\0" "\x07" "VMPTRLD\0" "\x07" "VMCLEAR\0" \ +"\x05" "VMXON\0" "\x06" "MOVSXD\0" "\x05" "PAUSE\0" "\x04" "WAIT\0" "\x06" "RDRAND\0" \ "\x06" "_3DNOW\0"; const _WRegister _REGISTERS[] = { diff --git a/diStorm/src/operands.c b/diStorm/src/operands.c index bdc4ca0..e1f0215 100644 --- a/diStorm/src/operands.c +++ b/diStorm/src/operands.c @@ -29,11 +29,11 @@ along with this program. If not, see /* Maps a register to its register-class mask. */ -uint16_t _REGISTERTORCLASS[] = /* Based on _RegisterType enumeration! */ -{RM_AX, RM_CX, RM_DX, RM_BX, RM_SP, RM_BP, RM_SI, RM_DI, 0, 0, 0, 0, 0, 0, 0, 0, - RM_AX, RM_CX, RM_DX, RM_BX, RM_SP, RM_BP, RM_SI, RM_DI, 0, 0, 0, 0, 0, 0, 0, 0, - RM_AX, RM_CX, RM_DX, RM_BX, RM_SP, RM_BP, RM_SI, RM_DI, 0, 0, 0, 0, 0, 0, 0, 0, - RM_AX, RM_CX, RM_DX, RM_BX, RM_AX, RM_CX, RM_DX, RM_BX, 0, 0, 0, 0, 0, 0, 0, 0, +uint32_t _REGISTERTORCLASS[] = /* Based on _RegisterType enumeration! */ +{RM_AX, RM_CX, RM_DX, RM_BX, RM_SP, RM_BP, RM_SI, RM_DI, RM_R8, RM_R9, RM_R10, RM_R11, RM_R12, RM_R13, RM_R14, RM_R15, + RM_AX, RM_CX, RM_DX, RM_BX, RM_SP, RM_BP, RM_SI, RM_DI, RM_R8, RM_R9, RM_R10, RM_R11, RM_R12, RM_R13, RM_R14, RM_R15, + RM_AX, RM_CX, RM_DX, RM_BX, RM_SP, RM_BP, RM_SI, RM_DI, RM_R8, RM_R9, RM_R10, RM_R11, RM_R12, RM_R13, RM_R14, RM_R15, + RM_AX, RM_CX, RM_DX, RM_BX, RM_AX, RM_CX, RM_DX, RM_BX, RM_R8, RM_R9, RM_R10, RM_R11, RM_R12, RM_R13, RM_R14, RM_R15, RM_SP, RM_BP, RM_SI, RM_DI, 0, 0, 0, 0, 0, 0, 0, @@ -728,8 +728,12 @@ int operands_extract(_CodeInfo* ci, _DInst* di, _InstInfo* ii, case OT_IMM32: op->type = O_IMM; if (ci->dt == Decode64Bits) { - /* Imm32 is sign extended to 64 bits! */ - op->size = 64; + /* + * Imm32 is sign extended to 64 bits! + * Originally the op size was 64, but later was changed to reflect real size of imm. + */ + op->size = 32; + /* Use this as an indicator that it should be signed extended. */ di->flags |= FLAG_IMM_SIGNED; if (!read_stream_safe_sint(ci, &di->imm.sqword, sizeof(int32_t))) return FALSE; } else { @@ -779,7 +783,7 @@ int operands_extract(_CodeInfo* ci, _DInst* di, _InstInfo* ii, if (ps->prefixExtType) { /* * If REX prefix is valid then we will have to use low bytes. - * This is a PASSIVE behaviour changer of REX prefix, it affects operands even if its value is 0x40 ! + * This is a PASSIVE behavior changer of REX prefix, it affects operands even if its value is 0x40 ! */ ps->usedPrefixes |= INST_PRE_REX; op->index = (uint8_t)operands_fix_8bit_rex_base(reg + ((vrex & PREFIX_EX_R) ? EX_GPR_BASE : 0)); diff --git a/diStorm/src/operands.h b/diStorm/src/operands.h index d671d7a..6785e64 100644 --- a/diStorm/src/operands.h +++ b/diStorm/src/operands.h @@ -30,7 +30,7 @@ along with this program. If not, see #include "instructions.h" -extern uint16_t _REGISTERTORCLASS[]; +extern uint32_t _REGISTERTORCLASS[]; int operands_extract(_CodeInfo* ci, _DInst* di, _InstInfo* ii, _iflags instFlags, _OpType type, _OperandNumberType opNum,