package diStorm3;

import java.util.HashMap;
import java.util.Map;

public class Opcodes {
	private static Map<Integer, OpcodeEnum> mOpcodes;
	
	public static OpcodeEnum lookup(int op)
	{
		return mOpcodes.get(op);
	}
	
	static {
		mOpcodes.put(0, OpcodeEnum.UNDEFINED);
		mOpcodes.put(0xb, OpcodeEnum.ADD);
		mOpcodes.put(0x10, OpcodeEnum.PUSH);
		mOpcodes.put(0x16, OpcodeEnum.POP);
		mOpcodes.put(0x1b, OpcodeEnum.OR);
		mOpcodes.put(0x1f, OpcodeEnum.ADC);
		mOpcodes.put(0x24, OpcodeEnum.SBB);
		mOpcodes.put(0x29, OpcodeEnum.AND);
		mOpcodes.put(0x2e, OpcodeEnum.DAA);
		mOpcodes.put(0x33, OpcodeEnum.SUB);
		mOpcodes.put(0x38, OpcodeEnum.DAS);
		mOpcodes.put(0x3d, OpcodeEnum.XOR);
		mOpcodes.put(0x42, OpcodeEnum.AAA);
		mOpcodes.put(0x47, OpcodeEnum.CMP);
		mOpcodes.put(0x4c, OpcodeEnum.AAS);
		mOpcodes.put(0x51, OpcodeEnum.INC);
		mOpcodes.put(0x56, OpcodeEnum.DEC);
		mOpcodes.put(0x5b, OpcodeEnum.PUSHA);
		mOpcodes.put(0x62, OpcodeEnum.POPA);
		mOpcodes.put(0x68, OpcodeEnum.BOUND);
		mOpcodes.put(0x6f, OpcodeEnum.ARPL);
		mOpcodes.put(0x75, OpcodeEnum.IMUL);
		mOpcodes.put(0x7b, OpcodeEnum.INS);
		mOpcodes.put(0x80, OpcodeEnum.OUTS);
		mOpcodes.put(0x86, OpcodeEnum.JO);
		mOpcodes.put(0x8a, OpcodeEnum.JNO);
		mOpcodes.put(0x8f, OpcodeEnum.JB);
		mOpcodes.put(0x93, OpcodeEnum.JAE);
		mOpcodes.put(0x98, OpcodeEnum.JZ);
		mOpcodes.put(0x9c, OpcodeEnum.JNZ);
		mOpcodes.put(0xa1, OpcodeEnum.JBE);
		mOpcodes.put(0xa6, OpcodeEnum.JA);
		mOpcodes.put(0xaa, OpcodeEnum.JS);
		mOpcodes.put(0xae, OpcodeEnum.JNS);
		mOpcodes.put(0xb3, OpcodeEnum.JP);
		mOpcodes.put(0xb7, OpcodeEnum.JNP);
		mOpcodes.put(0xbc, OpcodeEnum.JL);
		mOpcodes.put(0xc0, OpcodeEnum.JGE);
		mOpcodes.put(0xc5, OpcodeEnum.JLE);
		mOpcodes.put(0xca, OpcodeEnum.JG);
		mOpcodes.put(0xce, OpcodeEnum.TEST);
		mOpcodes.put(0xd4, OpcodeEnum.XCHG);
		mOpcodes.put(0xda, OpcodeEnum.MOV);
		mOpcodes.put(0xdf, OpcodeEnum.LEA);
		mOpcodes.put(0xe4, OpcodeEnum.CBW);
		mOpcodes.put(0xe9, OpcodeEnum.CWDE);
		mOpcodes.put(0xef, OpcodeEnum.CDQE);
		mOpcodes.put(0xf5, OpcodeEnum.CWD);
		mOpcodes.put(0xfa, OpcodeEnum.CDQ);
		mOpcodes.put(0xff, OpcodeEnum.CQO);
		mOpcodes.put(0x104, OpcodeEnum.CALL_FAR);
		mOpcodes.put(0x10e, OpcodeEnum.PUSHF);
		mOpcodes.put(0x115, OpcodeEnum.POPF);
		mOpcodes.put(0x11b, OpcodeEnum.SAHF);
		mOpcodes.put(0x121, OpcodeEnum.LAHF);
		mOpcodes.put(0x127, OpcodeEnum.MOVS);
		mOpcodes.put(0x12d, OpcodeEnum.CMPS);
		mOpcodes.put(0x133, OpcodeEnum.STOS);
		mOpcodes.put(0x139, OpcodeEnum.LODS);
		mOpcodes.put(0x13f, OpcodeEnum.SCAS);
		mOpcodes.put(0x145, OpcodeEnum.RET);
		mOpcodes.put(0x14a, OpcodeEnum.LES);
		mOpcodes.put(0x14f, OpcodeEnum.LDS);
		mOpcodes.put(0x154, OpcodeEnum.ENTER);
		mOpcodes.put(0x15b, OpcodeEnum.LEAVE);
		mOpcodes.put(0x162, OpcodeEnum.RETF);
		mOpcodes.put(0x168, OpcodeEnum.INT3);
		mOpcodes.put(0x16e, OpcodeEnum.INT);
		mOpcodes.put(0x173, OpcodeEnum.INTO);
		mOpcodes.put(0x179, OpcodeEnum.IRET);
		mOpcodes.put(0x17f, OpcodeEnum.AAM);
		mOpcodes.put(0x184, OpcodeEnum.AAD);
		mOpcodes.put(0x189, OpcodeEnum.SALC);
		mOpcodes.put(0x18f, OpcodeEnum.XLAT);
		mOpcodes.put(0x195, OpcodeEnum.LOOPNZ);
		mOpcodes.put(0x19d, OpcodeEnum.LOOPZ);
		mOpcodes.put(0x1a4, OpcodeEnum.LOOP);
		mOpcodes.put(0x1aa, OpcodeEnum.JCXZ);
		mOpcodes.put(0x1b0, OpcodeEnum.JECXZ);
		mOpcodes.put(0x1b7, OpcodeEnum.JRCXZ);
		mOpcodes.put(0x1be, OpcodeEnum.IN);
		mOpcodes.put(0x1c2, OpcodeEnum.OUT);
		mOpcodes.put(0x1c7, OpcodeEnum.CALL);
		mOpcodes.put(0x1cd, OpcodeEnum.JMP);
		mOpcodes.put(0x1d2, OpcodeEnum.JMP_FAR);
		mOpcodes.put(0x1db, OpcodeEnum.INT1);
		mOpcodes.put(0x1e1, OpcodeEnum.HLT);
		mOpcodes.put(0x1e6, OpcodeEnum.CMC);
		mOpcodes.put(0x1eb, OpcodeEnum.CLC);
		mOpcodes.put(0x1f0, OpcodeEnum.STC);
		mOpcodes.put(0x1f5, OpcodeEnum.CLI);
		mOpcodes.put(0x1fa, OpcodeEnum.STI);
		mOpcodes.put(0x1ff, OpcodeEnum.CLD);
		mOpcodes.put(0x204, OpcodeEnum.STD);
		mOpcodes.put(0x209, OpcodeEnum.LAR);
		mOpcodes.put(0x20e, OpcodeEnum.LSL);
		mOpcodes.put(0x213, OpcodeEnum.SYSCALL);
		mOpcodes.put(0x21c, OpcodeEnum.CLTS);
		mOpcodes.put(0x222, OpcodeEnum.SYSRET);
		mOpcodes.put(0x22a, OpcodeEnum.INVD);
		mOpcodes.put(0x230, OpcodeEnum.WBINVD);
		mOpcodes.put(0x238, OpcodeEnum.UD2);
		mOpcodes.put(0x23d, OpcodeEnum.FEMMS);
		mOpcodes.put(0x244, OpcodeEnum.NOP);
		mOpcodes.put(0x249, OpcodeEnum.WRMSR);
		mOpcodes.put(0x250, OpcodeEnum.RDTSC);
		mOpcodes.put(0x257, OpcodeEnum.RDMSR);
		mOpcodes.put(0x25e, OpcodeEnum.RDPMC);
		mOpcodes.put(0x265, OpcodeEnum.SYSENTER);
		mOpcodes.put(0x26f, OpcodeEnum.SYSEXIT);
		mOpcodes.put(0x278, OpcodeEnum.GETSEC);
		mOpcodes.put(0x280, OpcodeEnum.CMOVO);
		mOpcodes.put(0x287, OpcodeEnum.CMOVNO);
		mOpcodes.put(0x28f, OpcodeEnum.CMOVB);
		mOpcodes.put(0x296, OpcodeEnum.CMOVAE);
		mOpcodes.put(0x29e, OpcodeEnum.CMOVZ);
		mOpcodes.put(0x2a5, OpcodeEnum.CMOVNZ);
		mOpcodes.put(0x2ad, OpcodeEnum.CMOVBE);
		mOpcodes.put(0x2b5, OpcodeEnum.CMOVA);
		mOpcodes.put(0x2bc, OpcodeEnum.CMOVS);
		mOpcodes.put(0x2c3, OpcodeEnum.CMOVNS);
		mOpcodes.put(0x2cb, OpcodeEnum.CMOVP);
		mOpcodes.put(0x2d2, OpcodeEnum.CMOVNP);
		mOpcodes.put(0x2da, OpcodeEnum.CMOVL);
		mOpcodes.put(0x2e1, OpcodeEnum.CMOVGE);
		mOpcodes.put(0x2e9, OpcodeEnum.CMOVLE);
		mOpcodes.put(0x2f1, OpcodeEnum.CMOVG);
		mOpcodes.put(0x2f8, OpcodeEnum.SETO);
		mOpcodes.put(0x2fe, OpcodeEnum.SETNO);
		mOpcodes.put(0x305, OpcodeEnum.SETB);
		mOpcodes.put(0x30b, OpcodeEnum.SETAE);
		mOpcodes.put(0x312, OpcodeEnum.SETZ);
		mOpcodes.put(0x318, OpcodeEnum.SETNZ);
		mOpcodes.put(0x31f, OpcodeEnum.SETBE);
		mOpcodes.put(0x326, OpcodeEnum.SETA);
		mOpcodes.put(0x32c, OpcodeEnum.SETS);
		mOpcodes.put(0x332, OpcodeEnum.SETNS);
		mOpcodes.put(0x339, OpcodeEnum.SETP);
		mOpcodes.put(0x33f, OpcodeEnum.SETNP);
		mOpcodes.put(0x346, OpcodeEnum.SETL);
		mOpcodes.put(0x34c, OpcodeEnum.SETGE);
		mOpcodes.put(0x353, OpcodeEnum.SETLE);
		mOpcodes.put(0x35a, OpcodeEnum.SETG);
		mOpcodes.put(0x360, OpcodeEnum.CPUID);
		mOpcodes.put(0x367, OpcodeEnum.BT);
		mOpcodes.put(0x36b, OpcodeEnum.SHLD);
		mOpcodes.put(0x371, OpcodeEnum.RSM);
		mOpcodes.put(0x376, OpcodeEnum.BTS);
		mOpcodes.put(0x37b, OpcodeEnum.SHRD);
		mOpcodes.put(0x381, OpcodeEnum.CMPXCHG);
		mOpcodes.put(0x38a, OpcodeEnum.LSS);
		mOpcodes.put(0x38f, OpcodeEnum.BTR);
		mOpcodes.put(0x394, OpcodeEnum.LFS);
		mOpcodes.put(0x399, OpcodeEnum.LGS);
		mOpcodes.put(0x39e, OpcodeEnum.MOVZX);
		mOpcodes.put(0x3a5, OpcodeEnum.BTC);
		mOpcodes.put(0x3aa, OpcodeEnum.MOVSX);
		mOpcodes.put(0x3b1, OpcodeEnum.XADD);
		mOpcodes.put(0x3b7, OpcodeEnum.MOVNTI);
		mOpcodes.put(0x3bf, OpcodeEnum.BSWAP);
		mOpcodes.put(0x3c6, OpcodeEnum.ROL);
		mOpcodes.put(0x3cb, OpcodeEnum.ROR);
		mOpcodes.put(0x3d0, OpcodeEnum.RCL);
		mOpcodes.put(0x3d5, OpcodeEnum.RCR);
		mOpcodes.put(0x3da, OpcodeEnum.SHL);
		mOpcodes.put(0x3df, OpcodeEnum.SHR);
		mOpcodes.put(0x3e4, OpcodeEnum.SAL);
		mOpcodes.put(0x3e9, OpcodeEnum.SAR);
		mOpcodes.put(0x3ee, OpcodeEnum.XABORT);
		mOpcodes.put(0x3f6, OpcodeEnum.XBEGIN);
		mOpcodes.put(0x3fe, OpcodeEnum.FADD);
		mOpcodes.put(0x404, OpcodeEnum.FMUL);
		mOpcodes.put(0x40a, OpcodeEnum.FCOM);
		mOpcodes.put(0x410, OpcodeEnum.FCOMP);
		mOpcodes.put(0x417, OpcodeEnum.FSUB);
		mOpcodes.put(0x41d, OpcodeEnum.FSUBR);
		mOpcodes.put(0x424, OpcodeEnum.FDIV);
		mOpcodes.put(0x42a, OpcodeEnum.FDIVR);
		mOpcodes.put(0x431, OpcodeEnum.FLD);
		mOpcodes.put(0x436, OpcodeEnum.FST);
		mOpcodes.put(0x43b, OpcodeEnum.FSTP);
		mOpcodes.put(0x441, OpcodeEnum.FLDENV);
		mOpcodes.put(0x449, OpcodeEnum.FLDCW);
		mOpcodes.put(0x450, OpcodeEnum.FXCH);
		mOpcodes.put(0x456, OpcodeEnum.FNOP);
		mOpcodes.put(0x45c, OpcodeEnum.FCHS);
		mOpcodes.put(0x462, OpcodeEnum.FABS);
		mOpcodes.put(0x468, OpcodeEnum.FTST);
		mOpcodes.put(0x46e, OpcodeEnum.FXAM);
		mOpcodes.put(0x474, OpcodeEnum.FLD1);
		mOpcodes.put(0x47a, OpcodeEnum.FLDL2T);
		mOpcodes.put(0x482, OpcodeEnum.FLDL2E);
		mOpcodes.put(0x48a, OpcodeEnum.FLDPI);
		mOpcodes.put(0x491, OpcodeEnum.FLDLG2);
		mOpcodes.put(0x499, OpcodeEnum.FLDLN2);
		mOpcodes.put(0x4a1, OpcodeEnum.FLDZ);
		mOpcodes.put(0x4a7, OpcodeEnum.F2XM1);
		mOpcodes.put(0x4ae, OpcodeEnum.FYL2X);
		mOpcodes.put(0x4b5, OpcodeEnum.FPTAN);
		mOpcodes.put(0x4bc, OpcodeEnum.FPATAN);
		mOpcodes.put(0x4c4, OpcodeEnum.FXTRACT);
		mOpcodes.put(0x4cd, OpcodeEnum.FPREM1);
		mOpcodes.put(0x4d5, OpcodeEnum.FDECSTP);
		mOpcodes.put(0x4de, OpcodeEnum.FINCSTP);
		mOpcodes.put(0x4e7, OpcodeEnum.FPREM);
		mOpcodes.put(0x4ee, OpcodeEnum.FYL2XP1);
		mOpcodes.put(0x4f7, OpcodeEnum.FSQRT);
		mOpcodes.put(0x4fe, OpcodeEnum.FSINCOS);
		mOpcodes.put(0x507, OpcodeEnum.FRNDINT);
		mOpcodes.put(0x510, OpcodeEnum.FSCALE);
		mOpcodes.put(0x518, OpcodeEnum.FSIN);
		mOpcodes.put(0x51e, OpcodeEnum.FCOS);
		mOpcodes.put(0x524, OpcodeEnum.FIADD);
		mOpcodes.put(0x52b, OpcodeEnum.FIMUL);
		mOpcodes.put(0x532, OpcodeEnum.FICOM);
		mOpcodes.put(0x539, OpcodeEnum.FICOMP);
		mOpcodes.put(0x541, OpcodeEnum.FISUB);
		mOpcodes.put(0x548, OpcodeEnum.FISUBR);
		mOpcodes.put(0x550, OpcodeEnum.FIDIV);
		mOpcodes.put(0x557, OpcodeEnum.FIDIVR);
		mOpcodes.put(0x55f, OpcodeEnum.FCMOVB);
		mOpcodes.put(0x567, OpcodeEnum.FCMOVE);
		mOpcodes.put(0x56f, OpcodeEnum.FCMOVBE);
		mOpcodes.put(0x578, OpcodeEnum.FCMOVU);
		mOpcodes.put(0x580, OpcodeEnum.FUCOMPP);
		mOpcodes.put(0x589, OpcodeEnum.FILD);
		mOpcodes.put(0x58f, OpcodeEnum.FISTTP);
		mOpcodes.put(0x597, OpcodeEnum.FIST);
		mOpcodes.put(0x59d, OpcodeEnum.FISTP);
		mOpcodes.put(0x5a4, OpcodeEnum.FCMOVNB);
		mOpcodes.put(0x5ad, OpcodeEnum.FCMOVNE);
		mOpcodes.put(0x5b6, OpcodeEnum.FCMOVNBE);
		mOpcodes.put(0x5c0, OpcodeEnum.FCMOVNU);
		mOpcodes.put(0x5c9, OpcodeEnum.FENI);
		mOpcodes.put(0x5cf, OpcodeEnum.FEDISI);
		mOpcodes.put(0x5d7, OpcodeEnum.FSETPM);
		mOpcodes.put(0x5df, OpcodeEnum.FUCOMI);
		mOpcodes.put(0x5e7, OpcodeEnum.FCOMI);
		mOpcodes.put(0x5ee, OpcodeEnum.FRSTOR);
		mOpcodes.put(0x5f6, OpcodeEnum.FFREE);
		mOpcodes.put(0x5fd, OpcodeEnum.FUCOM);
		mOpcodes.put(0x604, OpcodeEnum.FUCOMP);
		mOpcodes.put(0x60c, OpcodeEnum.FADDP);
		mOpcodes.put(0x613, OpcodeEnum.FMULP);
		mOpcodes.put(0x61a, OpcodeEnum.FCOMPP);
		mOpcodes.put(0x622, OpcodeEnum.FSUBRP);
		mOpcodes.put(0x62a, OpcodeEnum.FSUBP);
		mOpcodes.put(0x631, OpcodeEnum.FDIVRP);
		mOpcodes.put(0x639, OpcodeEnum.FDIVP);
		mOpcodes.put(0x640, OpcodeEnum.FBLD);
		mOpcodes.put(0x646, OpcodeEnum.FBSTP);
		mOpcodes.put(0x64d, OpcodeEnum.FUCOMIP);
		mOpcodes.put(0x656, OpcodeEnum.FCOMIP);
		mOpcodes.put(0x65e, OpcodeEnum.NOT);
		mOpcodes.put(0x663, OpcodeEnum.NEG);
		mOpcodes.put(0x668, OpcodeEnum.MUL);
		mOpcodes.put(0x66d, OpcodeEnum.DIV);
		mOpcodes.put(0x672, OpcodeEnum.IDIV);
		mOpcodes.put(0x678, OpcodeEnum.SLDT);
		mOpcodes.put(0x67e, OpcodeEnum.STR);
		mOpcodes.put(0x683, OpcodeEnum.LLDT);
		mOpcodes.put(0x689, OpcodeEnum.LTR);
		mOpcodes.put(0x68e, OpcodeEnum.VERR);
		mOpcodes.put(0x694, OpcodeEnum.VERW);
		mOpcodes.put(0x69a, OpcodeEnum.SGDT);
		mOpcodes.put(0x6a0, OpcodeEnum.SIDT);
		mOpcodes.put(0x6a6, OpcodeEnum.LGDT);
		mOpcodes.put(0x6ac, OpcodeEnum.LIDT);
		mOpcodes.put(0x6b2, OpcodeEnum.SMSW);
		mOpcodes.put(0x6b8, OpcodeEnum.LMSW);
		mOpcodes.put(0x6be, OpcodeEnum.INVLPG);
		mOpcodes.put(0x6c6, OpcodeEnum.VMCALL);
		mOpcodes.put(0x6ce, OpcodeEnum.VMLAUNCH);
		mOpcodes.put(0x6d8, OpcodeEnum.VMRESUME);
		mOpcodes.put(0x6e2, OpcodeEnum.VMXOFF);
		mOpcodes.put(0x6ea, OpcodeEnum.MONITOR);
		mOpcodes.put(0x6f3, OpcodeEnum.MWAIT);
		mOpcodes.put(0x6fa, OpcodeEnum.CLAC);
		mOpcodes.put(0x700, OpcodeEnum.STAC);
		mOpcodes.put(0x706, OpcodeEnum.XGETBV);
		mOpcodes.put(0x70e, OpcodeEnum.XSETBV);
		mOpcodes.put(0x716, OpcodeEnum.VMFUNC);
		mOpcodes.put(0x71e, OpcodeEnum.XEND);
		mOpcodes.put(0x724, OpcodeEnum.VMRUN);
		mOpcodes.put(0x72b, OpcodeEnum.VMMCALL);
		mOpcodes.put(0x734, OpcodeEnum.VMLOAD);
		mOpcodes.put(0x73c, OpcodeEnum.VMSAVE);
		mOpcodes.put(0x744, OpcodeEnum.STGI);
		mOpcodes.put(0x74a, OpcodeEnum.CLGI);
		mOpcodes.put(0x750, OpcodeEnum.SKINIT);
		mOpcodes.put(0x758, OpcodeEnum.INVLPGA);
		mOpcodes.put(0x761, OpcodeEnum.SWAPGS);
		mOpcodes.put(0x769, OpcodeEnum.RDTSCP);
		mOpcodes.put(0x771, OpcodeEnum.PREFETCH);
		mOpcodes.put(0x77b, OpcodeEnum.PREFETCHW);
		mOpcodes.put(0x786, OpcodeEnum.PI2FW);
		mOpcodes.put(0x78d, OpcodeEnum.PI2FD);
		mOpcodes.put(0x794, OpcodeEnum.PF2IW);
		mOpcodes.put(0x79b, OpcodeEnum.PF2ID);
		mOpcodes.put(0x7a2, OpcodeEnum.PFNACC);
		mOpcodes.put(0x7aa, OpcodeEnum.PFPNACC);
		mOpcodes.put(0x7b3, OpcodeEnum.PFCMPGE);
		mOpcodes.put(0x7bc, OpcodeEnum.PFMIN);
		mOpcodes.put(0x7c3, OpcodeEnum.PFRCP);
		mOpcodes.put(0x7ca, OpcodeEnum.PFRSQRT);
		mOpcodes.put(0x7d3, OpcodeEnum.PFSUB);
		mOpcodes.put(0x7da, OpcodeEnum.PFADD);
		mOpcodes.put(0x7e1, OpcodeEnum.PFCMPGT);
		mOpcodes.put(0x7ea, OpcodeEnum.PFMAX);
		mOpcodes.put(0x7f1, OpcodeEnum.PFRCPIT1);
		mOpcodes.put(0x7fb, OpcodeEnum.PFRSQIT1);
		mOpcodes.put(0x805, OpcodeEnum.PFSUBR);
		mOpcodes.put(0x80d, OpcodeEnum.PFACC);
		mOpcodes.put(0x814, OpcodeEnum.PFCMPEQ);
		mOpcodes.put(0x81d, OpcodeEnum.PFMUL);
		mOpcodes.put(0x824, OpcodeEnum.PFRCPIT2);
		mOpcodes.put(0x82e, OpcodeEnum.PMULHRW);
		mOpcodes.put(0x837, OpcodeEnum.PSWAPD);
		mOpcodes.put(0x83f, OpcodeEnum.PAVGUSB);
		mOpcodes.put(0x848, OpcodeEnum.MOVUPS);
		mOpcodes.put(0x850, OpcodeEnum.MOVUPD);
		mOpcodes.put(0x858, OpcodeEnum.MOVSS);
		mOpcodes.put(0x85f, OpcodeEnum.MOVSD);
		mOpcodes.put(0x866, OpcodeEnum.VMOVUPS);
		mOpcodes.put(0x86f, OpcodeEnum.VMOVUPD);
		mOpcodes.put(0x878, OpcodeEnum.VMOVSS);
		mOpcodes.put(0x880, OpcodeEnum.VMOVSD);
		mOpcodes.put(0x888, OpcodeEnum.MOVHLPS);
		mOpcodes.put(0x891, OpcodeEnum.MOVLPS);
		mOpcodes.put(0x899, OpcodeEnum.MOVLPD);
		mOpcodes.put(0x8a1, OpcodeEnum.MOVSLDUP);
		mOpcodes.put(0x8ab, OpcodeEnum.MOVDDUP);
		mOpcodes.put(0x8b4, OpcodeEnum.VMOVHLPS);
		mOpcodes.put(0x8be, OpcodeEnum.VMOVLPS);
		mOpcodes.put(0x8c7, OpcodeEnum.VMOVLPD);
		mOpcodes.put(0x8d0, OpcodeEnum.VMOVSLDUP);
		mOpcodes.put(0x8db, OpcodeEnum.VMOVDDUP);
		mOpcodes.put(0x8e5, OpcodeEnum.UNPCKLPS);
		mOpcodes.put(0x8ef, OpcodeEnum.UNPCKLPD);
		mOpcodes.put(0x8f9, OpcodeEnum.VUNPCKLPS);
		mOpcodes.put(0x904, OpcodeEnum.VUNPCKLPD);
		mOpcodes.put(0x90f, OpcodeEnum.UNPCKHPS);
		mOpcodes.put(0x919, OpcodeEnum.UNPCKHPD);
		mOpcodes.put(0x923, OpcodeEnum.VUNPCKHPS);
		mOpcodes.put(0x92e, OpcodeEnum.VUNPCKHPD);
		mOpcodes.put(0x939, OpcodeEnum.MOVLHPS);
		mOpcodes.put(0x942, OpcodeEnum.MOVHPS);
		mOpcodes.put(0x94a, OpcodeEnum.MOVHPD);
		mOpcodes.put(0x952, OpcodeEnum.MOVSHDUP);
		mOpcodes.put(0x95c, OpcodeEnum.VMOVLHPS);
		mOpcodes.put(0x966, OpcodeEnum.VMOVHPS);
		mOpcodes.put(0x96f, OpcodeEnum.VMOVHPD);
		mOpcodes.put(0x978, OpcodeEnum.VMOVSHDUP);
		mOpcodes.put(0x983, OpcodeEnum.PREFETCHNTA);
		mOpcodes.put(0x990, OpcodeEnum.PREFETCHT0);
		mOpcodes.put(0x99c, OpcodeEnum.PREFETCHT1);
		mOpcodes.put(0x9a8, OpcodeEnum.PREFETCHT2);
		mOpcodes.put(0x9b4, OpcodeEnum.MOVAPS);
		mOpcodes.put(0x9bc, OpcodeEnum.MOVAPD);
		mOpcodes.put(0x9c4, OpcodeEnum.VMOVAPS);
		mOpcodes.put(0x9cd, OpcodeEnum.VMOVAPD);
		mOpcodes.put(0x9d6, OpcodeEnum.CVTPI2PS);
		mOpcodes.put(0x9e0, OpcodeEnum.CVTPI2PD);
		mOpcodes.put(0x9ea, OpcodeEnum.CVTSI2SS);
		mOpcodes.put(0x9f4, OpcodeEnum.CVTSI2SD);
		mOpcodes.put(0x9fe, OpcodeEnum.VCVTSI2SS);
		mOpcodes.put(0xa09, OpcodeEnum.VCVTSI2SD);
		mOpcodes.put(0xa14, OpcodeEnum.MOVNTPS);
		mOpcodes.put(0xa1d, OpcodeEnum.MOVNTPD);
		mOpcodes.put(0xa26, OpcodeEnum.MOVNTSS);
		mOpcodes.put(0xa2f, OpcodeEnum.MOVNTSD);
		mOpcodes.put(0xa38, OpcodeEnum.VMOVNTPS);
		mOpcodes.put(0xa42, OpcodeEnum.VMOVNTPD);
		mOpcodes.put(0xa4c, OpcodeEnum.CVTTPS2PI);
		mOpcodes.put(0xa57, OpcodeEnum.CVTTPD2PI);
		mOpcodes.put(0xa62, OpcodeEnum.CVTTSS2SI);
		mOpcodes.put(0xa6d, OpcodeEnum.CVTTSD2SI);
		mOpcodes.put(0xa78, OpcodeEnum.VCVTTSS2SI);
		mOpcodes.put(0xa84, OpcodeEnum.VCVTTSD2SI);
		mOpcodes.put(0xa90, OpcodeEnum.CVTPS2PI);
		mOpcodes.put(0xa9a, OpcodeEnum.CVTPD2PI);
		mOpcodes.put(0xaa4, OpcodeEnum.CVTSS2SI);
		mOpcodes.put(0xaae, OpcodeEnum.CVTSD2SI);
		mOpcodes.put(0xab8, OpcodeEnum.VCVTSS2SI);
		mOpcodes.put(0xac3, OpcodeEnum.VCVTSD2SI);
		mOpcodes.put(0xace, OpcodeEnum.UCOMISS);
		mOpcodes.put(0xad7, OpcodeEnum.UCOMISD);
		mOpcodes.put(0xae0, OpcodeEnum.VUCOMISS);
		mOpcodes.put(0xaea, OpcodeEnum.VUCOMISD);
		mOpcodes.put(0xaf4, OpcodeEnum.COMISS);
		mOpcodes.put(0xafc, OpcodeEnum.COMISD);
		mOpcodes.put(0xb04, OpcodeEnum.VCOMISS);
		mOpcodes.put(0xb0d, OpcodeEnum.VCOMISD);
		mOpcodes.put(0xb16, OpcodeEnum.MOVMSKPS);
		mOpcodes.put(0xb20, OpcodeEnum.MOVMSKPD);
		mOpcodes.put(0xb2a, OpcodeEnum.VMOVMSKPS);
		mOpcodes.put(0xb35, OpcodeEnum.VMOVMSKPD);
		mOpcodes.put(0xb40, OpcodeEnum.SQRTPS);
		mOpcodes.put(0xb48, OpcodeEnum.SQRTPD);
		mOpcodes.put(0xb50, OpcodeEnum.SQRTSS);
		mOpcodes.put(0xb58, OpcodeEnum.SQRTSD);
		mOpcodes.put(0xb60, OpcodeEnum.VSQRTPS);
		mOpcodes.put(0xb69, OpcodeEnum.VSQRTPD);
		mOpcodes.put(0xb72, OpcodeEnum.VSQRTSS);
		mOpcodes.put(0xb7b, OpcodeEnum.VSQRTSD);
		mOpcodes.put(0xb84, OpcodeEnum.RSQRTPS);
		mOpcodes.put(0xb8d, OpcodeEnum.RSQRTSS);
		mOpcodes.put(0xb96, OpcodeEnum.VRSQRTPS);
		mOpcodes.put(0xba0, OpcodeEnum.VRSQRTSS);
		mOpcodes.put(0xbaa, OpcodeEnum.RCPPS);
		mOpcodes.put(0xbb1, OpcodeEnum.RCPSS);
		mOpcodes.put(0xbb8, OpcodeEnum.VRCPPS);
		mOpcodes.put(0xbc0, OpcodeEnum.VRCPSS);
		mOpcodes.put(0xbc8, OpcodeEnum.ANDPS);
		mOpcodes.put(0xbcf, OpcodeEnum.ANDPD);
		mOpcodes.put(0xbd6, OpcodeEnum.VANDPS);
		mOpcodes.put(0xbde, OpcodeEnum.VANDPD);
		mOpcodes.put(0xbe6, OpcodeEnum.ANDNPS);
		mOpcodes.put(0xbee, OpcodeEnum.ANDNPD);
		mOpcodes.put(0xbf6, OpcodeEnum.VANDNPS);
		mOpcodes.put(0xbff, OpcodeEnum.VANDNPD);
		mOpcodes.put(0xc08, OpcodeEnum.ORPS);
		mOpcodes.put(0xc0e, OpcodeEnum.ORPD);
		mOpcodes.put(0xc14, OpcodeEnum.VORPS);
		mOpcodes.put(0xc1b, OpcodeEnum.VORPD);
		mOpcodes.put(0xc22, OpcodeEnum.XORPS);
		mOpcodes.put(0xc29, OpcodeEnum.XORPD);
		mOpcodes.put(0xc30, OpcodeEnum.VXORPS);
		mOpcodes.put(0xc38, OpcodeEnum.VXORPD);
		mOpcodes.put(0xc40, OpcodeEnum.ADDPS);
		mOpcodes.put(0xc47, OpcodeEnum.ADDPD);
		mOpcodes.put(0xc4e, OpcodeEnum.ADDSS);
		mOpcodes.put(0xc55, OpcodeEnum.ADDSD);
		mOpcodes.put(0xc5c, OpcodeEnum.VADDPS);
		mOpcodes.put(0xc64, OpcodeEnum.VADDPD);
		mOpcodes.put(0xc6c, OpcodeEnum.VADDSS);
		mOpcodes.put(0xc74, OpcodeEnum.VADDSD);
		mOpcodes.put(0xc7c, OpcodeEnum.MULPS);
		mOpcodes.put(0xc83, OpcodeEnum.MULPD);
		mOpcodes.put(0xc8a, OpcodeEnum.MULSS);
		mOpcodes.put(0xc91, OpcodeEnum.MULSD);
		mOpcodes.put(0xc98, OpcodeEnum.VMULPS);
		mOpcodes.put(0xca0, OpcodeEnum.VMULPD);
		mOpcodes.put(0xca8, OpcodeEnum.VMULSS);
		mOpcodes.put(0xcb0, OpcodeEnum.VMULSD);
		mOpcodes.put(0xcb8, OpcodeEnum.CVTPS2PD);
		mOpcodes.put(0xcc2, OpcodeEnum.CVTPD2PS);
		mOpcodes.put(0xccc, OpcodeEnum.CVTSS2SD);
		mOpcodes.put(0xcd6, OpcodeEnum.CVTSD2SS);
		mOpcodes.put(0xce0, OpcodeEnum.VCVTPS2PD);
		mOpcodes.put(0xceb, OpcodeEnum.VCVTPD2PS);
		mOpcodes.put(0xcf6, OpcodeEnum.VCVTSS2SD);
		mOpcodes.put(0xd01, OpcodeEnum.VCVTSD2SS);
		mOpcodes.put(0xd0c, OpcodeEnum.CVTDQ2PS);
		mOpcodes.put(0xd16, OpcodeEnum.CVTPS2DQ);
		mOpcodes.put(0xd20, OpcodeEnum.CVTTPS2DQ);
		mOpcodes.put(0xd2b, OpcodeEnum.VCVTDQ2PS);
		mOpcodes.put(0xd36, OpcodeEnum.VCVTPS2DQ);
		mOpcodes.put(0xd41, OpcodeEnum.VCVTTPS2DQ);
		mOpcodes.put(0xd4d, OpcodeEnum.SUBPS);
		mOpcodes.put(0xd54, OpcodeEnum.SUBPD);
		mOpcodes.put(0xd5b, OpcodeEnum.SUBSS);
		mOpcodes.put(0xd62, OpcodeEnum.SUBSD);
		mOpcodes.put(0xd69, OpcodeEnum.VSUBPS);
		mOpcodes.put(0xd71, OpcodeEnum.VSUBPD);
		mOpcodes.put(0xd79, OpcodeEnum.VSUBSS);
		mOpcodes.put(0xd81, OpcodeEnum.VSUBSD);
		mOpcodes.put(0xd89, OpcodeEnum.MINPS);
		mOpcodes.put(0xd90, OpcodeEnum.MINPD);
		mOpcodes.put(0xd97, OpcodeEnum.MINSS);
		mOpcodes.put(0xd9e, OpcodeEnum.MINSD);
		mOpcodes.put(0xda5, OpcodeEnum.VMINPS);
		mOpcodes.put(0xdad, OpcodeEnum.VMINPD);
		mOpcodes.put(0xdb5, OpcodeEnum.VMINSS);
		mOpcodes.put(0xdbd, OpcodeEnum.VMINSD);
		mOpcodes.put(0xdc5, OpcodeEnum.DIVPS);
		mOpcodes.put(0xdcc, OpcodeEnum.DIVPD);
		mOpcodes.put(0xdd3, OpcodeEnum.DIVSS);
		mOpcodes.put(0xdda, OpcodeEnum.DIVSD);
		mOpcodes.put(0xde1, OpcodeEnum.VDIVPS);
		mOpcodes.put(0xde9, OpcodeEnum.VDIVPD);
		mOpcodes.put(0xdf1, OpcodeEnum.VDIVSS);
		mOpcodes.put(0xdf9, OpcodeEnum.VDIVSD);
		mOpcodes.put(0xe01, OpcodeEnum.MAXPS);
		mOpcodes.put(0xe08, OpcodeEnum.MAXPD);
		mOpcodes.put(0xe0f, OpcodeEnum.MAXSS);
		mOpcodes.put(0xe16, OpcodeEnum.MAXSD);
		mOpcodes.put(0xe1d, OpcodeEnum.VMAXPS);
		mOpcodes.put(0xe25, OpcodeEnum.VMAXPD);
		mOpcodes.put(0xe2d, OpcodeEnum.VMAXSS);
		mOpcodes.put(0xe35, OpcodeEnum.VMAXSD);
		mOpcodes.put(0xe3d, OpcodeEnum.PUNPCKLBW);
		mOpcodes.put(0xe48, OpcodeEnum.VPUNPCKLBW);
		mOpcodes.put(0xe54, OpcodeEnum.PUNPCKLWD);
		mOpcodes.put(0xe5f, OpcodeEnum.VPUNPCKLWD);
		mOpcodes.put(0xe6b, OpcodeEnum.PUNPCKLDQ);
		mOpcodes.put(0xe76, OpcodeEnum.VPUNPCKLDQ);
		mOpcodes.put(0xe82, OpcodeEnum.PACKSSWB);
		mOpcodes.put(0xe8c, OpcodeEnum.VPACKSSWB);
		mOpcodes.put(0xe97, OpcodeEnum.PCMPGTB);
		mOpcodes.put(0xea0, OpcodeEnum.VPCMPGTB);
		mOpcodes.put(0xeaa, OpcodeEnum.PCMPGTW);
		mOpcodes.put(0xeb3, OpcodeEnum.VPCMPGTW);
		mOpcodes.put(0xebd, OpcodeEnum.PCMPGTD);
		mOpcodes.put(0xec6, OpcodeEnum.VPCMPGTD);
		mOpcodes.put(0xed0, OpcodeEnum.PACKUSWB);
		mOpcodes.put(0xeda, OpcodeEnum.VPACKUSWB);
		mOpcodes.put(0xee5, OpcodeEnum.PUNPCKHBW);
		mOpcodes.put(0xef0, OpcodeEnum.VPUNPCKHBW);
		mOpcodes.put(0xefc, OpcodeEnum.PUNPCKHWD);
		mOpcodes.put(0xf07, OpcodeEnum.VPUNPCKHWD);
		mOpcodes.put(0xf13, OpcodeEnum.PUNPCKHDQ);
		mOpcodes.put(0xf1e, OpcodeEnum.VPUNPCKHDQ);
		mOpcodes.put(0xf2a, OpcodeEnum.PACKSSDW);
		mOpcodes.put(0xf34, OpcodeEnum.VPACKSSDW);
		mOpcodes.put(0xf3f, OpcodeEnum.PUNPCKLQDQ);
		mOpcodes.put(0xf4b, OpcodeEnum.VPUNPCKLQDQ);
		mOpcodes.put(0xf58, OpcodeEnum.PUNPCKHQDQ);
		mOpcodes.put(0xf64, OpcodeEnum.VPUNPCKHQDQ);
		mOpcodes.put(0xf71, OpcodeEnum.MOVD);
		mOpcodes.put(0xf77, OpcodeEnum.MOVQ);
		mOpcodes.put(0xf7d, OpcodeEnum.VMOVD);
		mOpcodes.put(0xf84, OpcodeEnum.VMOVQ);
		mOpcodes.put(0xf8b, OpcodeEnum.MOVDQA);
		mOpcodes.put(0xf93, OpcodeEnum.MOVDQU);
		mOpcodes.put(0xf9b, OpcodeEnum.VMOVDQA);
		mOpcodes.put(0xfa4, OpcodeEnum.VMOVDQU);
		mOpcodes.put(0xfad, OpcodeEnum.PSHUFW);
		mOpcodes.put(0xfb5, OpcodeEnum.PSHUFD);
		mOpcodes.put(0xfbd, OpcodeEnum.PSHUFHW);
		mOpcodes.put(0xfc6, OpcodeEnum.PSHUFLW);
		mOpcodes.put(0xfcf, OpcodeEnum.VPSHUFD);
		mOpcodes.put(0xfd8, OpcodeEnum.VPSHUFHW);
		mOpcodes.put(0xfe2, OpcodeEnum.VPSHUFLW);
		mOpcodes.put(0xfec, OpcodeEnum.PCMPEQB);
		mOpcodes.put(0xff5, OpcodeEnum.VPCMPEQB);
		mOpcodes.put(0xfff, OpcodeEnum.PCMPEQW);
		mOpcodes.put(0x1008, OpcodeEnum.VPCMPEQW);
		mOpcodes.put(0x1012, OpcodeEnum.PCMPEQD);
		mOpcodes.put(0x101b, OpcodeEnum.VPCMPEQD);
		mOpcodes.put(0x1025, OpcodeEnum.EMMS);
		mOpcodes.put(0x102b, OpcodeEnum.VZEROUPPER);
		mOpcodes.put(0x1037, OpcodeEnum.VZEROALL);
		mOpcodes.put(0x1041, OpcodeEnum.VMREAD);
		mOpcodes.put(0x1049, OpcodeEnum.EXTRQ);
		mOpcodes.put(0x1050, OpcodeEnum.INSERTQ);
		mOpcodes.put(0x1059, OpcodeEnum.VMWRITE);
		mOpcodes.put(0x1062, OpcodeEnum.CVTPH2PS);
		mOpcodes.put(0x106c, OpcodeEnum.CVTPS2PH);
		mOpcodes.put(0x1076, OpcodeEnum.HADDPD);
		mOpcodes.put(0x107e, OpcodeEnum.HADDPS);
		mOpcodes.put(0x1086, OpcodeEnum.VHADDPD);
		mOpcodes.put(0x108f, OpcodeEnum.VHADDPS);
		mOpcodes.put(0x1098, OpcodeEnum.HSUBPD);
		mOpcodes.put(0x10a0, OpcodeEnum.HSUBPS);
		mOpcodes.put(0x10a8, OpcodeEnum.VHSUBPD);
		mOpcodes.put(0x10b1, OpcodeEnum.VHSUBPS);
		mOpcodes.put(0x10ba, OpcodeEnum.XSAVE);
		mOpcodes.put(0x10c1, OpcodeEnum.XSAVE64);
		mOpcodes.put(0x10ca, OpcodeEnum.LFENCE);
		mOpcodes.put(0x10d2, OpcodeEnum.XRSTOR);
		mOpcodes.put(0x10da, OpcodeEnum.XRSTOR64);
		mOpcodes.put(0x10e4, OpcodeEnum.MFENCE);
		mOpcodes.put(0x10ec, OpcodeEnum.XSAVEOPT);
		mOpcodes.put(0x10f6, OpcodeEnum.XSAVEOPT64);
		mOpcodes.put(0x1102, OpcodeEnum.SFENCE);
		mOpcodes.put(0x110a, OpcodeEnum.CLFLUSH);
		mOpcodes.put(0x1113, OpcodeEnum.POPCNT);
		mOpcodes.put(0x111b, OpcodeEnum.BSF);
		mOpcodes.put(0x1120, OpcodeEnum.TZCNT);
		mOpcodes.put(0x1127, OpcodeEnum.BSR);
		mOpcodes.put(0x112c, OpcodeEnum.LZCNT);
		mOpcodes.put(0x1133, OpcodeEnum.CMPEQPS);
		mOpcodes.put(0x113c, OpcodeEnum.CMPLTPS);
		mOpcodes.put(0x1145, OpcodeEnum.CMPLEPS);
		mOpcodes.put(0x114e, OpcodeEnum.CMPUNORDPS);
		mOpcodes.put(0x115a, OpcodeEnum.CMPNEQPS);
		mOpcodes.put(0x1164, OpcodeEnum.CMPNLTPS);
		mOpcodes.put(0x116e, OpcodeEnum.CMPNLEPS);
		mOpcodes.put(0x1178, OpcodeEnum.CMPORDPS);
		mOpcodes.put(0x1182, OpcodeEnum.CMPEQPD);
		mOpcodes.put(0x118b, OpcodeEnum.CMPLTPD);
		mOpcodes.put(0x1194, OpcodeEnum.CMPLEPD);
		mOpcodes.put(0x119d, OpcodeEnum.CMPUNORDPD);
		mOpcodes.put(0x11a9, OpcodeEnum.CMPNEQPD);
		mOpcodes.put(0x11b3, OpcodeEnum.CMPNLTPD);
		mOpcodes.put(0x11bd, OpcodeEnum.CMPNLEPD);
		mOpcodes.put(0x11c7, OpcodeEnum.CMPORDPD);
		mOpcodes.put(0x11d1, OpcodeEnum.CMPEQSS);
		mOpcodes.put(0x11da, OpcodeEnum.CMPLTSS);
		mOpcodes.put(0x11e3, OpcodeEnum.CMPLESS);
		mOpcodes.put(0x11ec, OpcodeEnum.CMPUNORDSS);
		mOpcodes.put(0x11f8, OpcodeEnum.CMPNEQSS);
		mOpcodes.put(0x1202, OpcodeEnum.CMPNLTSS);
		mOpcodes.put(0x120c, OpcodeEnum.CMPNLESS);
		mOpcodes.put(0x1216, OpcodeEnum.CMPORDSS);
		mOpcodes.put(0x1220, OpcodeEnum.CMPEQSD);
		mOpcodes.put(0x1229, OpcodeEnum.CMPLTSD);
		mOpcodes.put(0x1232, OpcodeEnum.CMPLESD);
		mOpcodes.put(0x123b, OpcodeEnum.CMPUNORDSD);
		mOpcodes.put(0x1247, OpcodeEnum.CMPNEQSD);
		mOpcodes.put(0x1251, OpcodeEnum.CMPNLTSD);
		mOpcodes.put(0x125b, OpcodeEnum.CMPNLESD);
		mOpcodes.put(0x1265, OpcodeEnum.CMPORDSD);
		mOpcodes.put(0x126f, OpcodeEnum.VCMPEQPS);
		mOpcodes.put(0x1279, OpcodeEnum.VCMPLTPS);
		mOpcodes.put(0x1283, OpcodeEnum.VCMPLEPS);
		mOpcodes.put(0x128d, OpcodeEnum.VCMPUNORDPS);
		mOpcodes.put(0x129a, OpcodeEnum.VCMPNEQPS);
		mOpcodes.put(0x12a5, OpcodeEnum.VCMPNLTPS);
		mOpcodes.put(0x12b0, OpcodeEnum.VCMPNLEPS);
		mOpcodes.put(0x12bb, OpcodeEnum.VCMPORDPS);
		mOpcodes.put(0x12c6, OpcodeEnum.VCMPEQ_UQPS);
		mOpcodes.put(0x12d3, OpcodeEnum.VCMPNGEPS);
		mOpcodes.put(0x12de, OpcodeEnum.VCMPNGTPS);
		mOpcodes.put(0x12e9, OpcodeEnum.VCMPFALSEPS);
		mOpcodes.put(0x12f6, OpcodeEnum.VCMPNEQ_OQPS);
		mOpcodes.put(0x1304, OpcodeEnum.VCMPGEPS);
		mOpcodes.put(0x130e, OpcodeEnum.VCMPGTPS);
		mOpcodes.put(0x1318, OpcodeEnum.VCMPTRUEPS);
		mOpcodes.put(0x1324, OpcodeEnum.VCMPEQ_OSPS);
		mOpcodes.put(0x1331, OpcodeEnum.VCMPLT_OQPS);
		mOpcodes.put(0x133e, OpcodeEnum.VCMPLE_OQPS);
		mOpcodes.put(0x134b, OpcodeEnum.VCMPUNORD_SPS);
		mOpcodes.put(0x135a, OpcodeEnum.VCMPNEQ_USPS);
		mOpcodes.put(0x1368, OpcodeEnum.VCMPNLT_UQPS);
		mOpcodes.put(0x1376, OpcodeEnum.VCMPNLE_UQPS);
		mOpcodes.put(0x1384, OpcodeEnum.VCMPORD_SPS);
		mOpcodes.put(0x1391, OpcodeEnum.VCMPEQ_USPS);
		mOpcodes.put(0x139e, OpcodeEnum.VCMPNGE_UQPS);
		mOpcodes.put(0x13ac, OpcodeEnum.VCMPNGT_UQPS);
		mOpcodes.put(0x13ba, OpcodeEnum.VCMPFALSE_OSPS);
		mOpcodes.put(0x13ca, OpcodeEnum.VCMPNEQ_OSPS);
		mOpcodes.put(0x13d8, OpcodeEnum.VCMPGE_OQPS);
		mOpcodes.put(0x13e5, OpcodeEnum.VCMPGT_OQPS);
		mOpcodes.put(0x13f2, OpcodeEnum.VCMPTRUE_USPS);
		mOpcodes.put(0x1401, OpcodeEnum.VCMPEQPD);
		mOpcodes.put(0x140b, OpcodeEnum.VCMPLTPD);
		mOpcodes.put(0x1415, OpcodeEnum.VCMPLEPD);
		mOpcodes.put(0x141f, OpcodeEnum.VCMPUNORDPD);
		mOpcodes.put(0x142c, OpcodeEnum.VCMPNEQPD);
		mOpcodes.put(0x1437, OpcodeEnum.VCMPNLTPD);
		mOpcodes.put(0x1442, OpcodeEnum.VCMPNLEPD);
		mOpcodes.put(0x144d, OpcodeEnum.VCMPORDPD);
		mOpcodes.put(0x1458, OpcodeEnum.VCMPEQ_UQPD);
		mOpcodes.put(0x1465, OpcodeEnum.VCMPNGEPD);
		mOpcodes.put(0x1470, OpcodeEnum.VCMPNGTPD);
		mOpcodes.put(0x147b, OpcodeEnum.VCMPFALSEPD);
		mOpcodes.put(0x1488, OpcodeEnum.VCMPNEQ_OQPD);
		mOpcodes.put(0x1496, OpcodeEnum.VCMPGEPD);
		mOpcodes.put(0x14a0, OpcodeEnum.VCMPGTPD);
		mOpcodes.put(0x14aa, OpcodeEnum.VCMPTRUEPD);
		mOpcodes.put(0x14b6, OpcodeEnum.VCMPEQ_OSPD);
		mOpcodes.put(0x14c3, OpcodeEnum.VCMPLT_OQPD);
		mOpcodes.put(0x14d0, OpcodeEnum.VCMPLE_OQPD);
		mOpcodes.put(0x14dd, OpcodeEnum.VCMPUNORD_SPD);
		mOpcodes.put(0x14ec, OpcodeEnum.VCMPNEQ_USPD);
		mOpcodes.put(0x14fa, OpcodeEnum.VCMPNLT_UQPD);
		mOpcodes.put(0x1508, OpcodeEnum.VCMPNLE_UQPD);
		mOpcodes.put(0x1516, OpcodeEnum.VCMPORD_SPD);
		mOpcodes.put(0x1523, OpcodeEnum.VCMPEQ_USPD);
		mOpcodes.put(0x1530, OpcodeEnum.VCMPNGE_UQPD);
		mOpcodes.put(0x153e, OpcodeEnum.VCMPNGT_UQPD);
		mOpcodes.put(0x154c, OpcodeEnum.VCMPFALSE_OSPD);
		mOpcodes.put(0x155c, OpcodeEnum.VCMPNEQ_OSPD);
		mOpcodes.put(0x156a, OpcodeEnum.VCMPGE_OQPD);
		mOpcodes.put(0x1577, OpcodeEnum.VCMPGT_OQPD);
		mOpcodes.put(0x1584, OpcodeEnum.VCMPTRUE_USPD);
		mOpcodes.put(0x1593, OpcodeEnum.VCMPEQSS);
		mOpcodes.put(0x159d, OpcodeEnum.VCMPLTSS);
		mOpcodes.put(0x15a7, OpcodeEnum.VCMPLESS);
		mOpcodes.put(0x15b1, OpcodeEnum.VCMPUNORDSS);
		mOpcodes.put(0x15be, OpcodeEnum.VCMPNEQSS);
		mOpcodes.put(0x15c9, OpcodeEnum.VCMPNLTSS);
		mOpcodes.put(0x15d4, OpcodeEnum.VCMPNLESS);
		mOpcodes.put(0x15df, OpcodeEnum.VCMPORDSS);
		mOpcodes.put(0x15ea, OpcodeEnum.VCMPEQ_UQSS);
		mOpcodes.put(0x15f7, OpcodeEnum.VCMPNGESS);
		mOpcodes.put(0x1602, OpcodeEnum.VCMPNGTSS);
		mOpcodes.put(0x160d, OpcodeEnum.VCMPFALSESS);
		mOpcodes.put(0x161a, OpcodeEnum.VCMPNEQ_OQSS);
		mOpcodes.put(0x1628, OpcodeEnum.VCMPGESS);
		mOpcodes.put(0x1632, OpcodeEnum.VCMPGTSS);
		mOpcodes.put(0x163c, OpcodeEnum.VCMPTRUESS);
		mOpcodes.put(0x1648, OpcodeEnum.VCMPEQ_OSSS);
		mOpcodes.put(0x1655, OpcodeEnum.VCMPLT_OQSS);
		mOpcodes.put(0x1662, OpcodeEnum.VCMPLE_OQSS);
		mOpcodes.put(0x166f, OpcodeEnum.VCMPUNORD_SSS);
		mOpcodes.put(0x167e, OpcodeEnum.VCMPNEQ_USSS);
		mOpcodes.put(0x168c, OpcodeEnum.VCMPNLT_UQSS);
		mOpcodes.put(0x169a, OpcodeEnum.VCMPNLE_UQSS);
		mOpcodes.put(0x16a8, OpcodeEnum.VCMPORD_SSS);
		mOpcodes.put(0x16b5, OpcodeEnum.VCMPEQ_USSS);
		mOpcodes.put(0x16c2, OpcodeEnum.VCMPNGE_UQSS);
		mOpcodes.put(0x16d0, OpcodeEnum.VCMPNGT_UQSS);
		mOpcodes.put(0x16de, OpcodeEnum.VCMPFALSE_OSSS);
		mOpcodes.put(0x16ee, OpcodeEnum.VCMPNEQ_OSSS);
		mOpcodes.put(0x16fc, OpcodeEnum.VCMPGE_OQSS);
		mOpcodes.put(0x1709, OpcodeEnum.VCMPGT_OQSS);
		mOpcodes.put(0x1716, OpcodeEnum.VCMPTRUE_USSS);
		mOpcodes.put(0x1725, OpcodeEnum.VCMPEQSD);
		mOpcodes.put(0x172f, OpcodeEnum.VCMPLTSD);
		mOpcodes.put(0x1739, OpcodeEnum.VCMPLESD);
		mOpcodes.put(0x1743, OpcodeEnum.VCMPUNORDSD);
		mOpcodes.put(0x1750, OpcodeEnum.VCMPNEQSD);
		mOpcodes.put(0x175b, OpcodeEnum.VCMPNLTSD);
		mOpcodes.put(0x1766, OpcodeEnum.VCMPNLESD);
		mOpcodes.put(0x1771, OpcodeEnum.VCMPORDSD);
		mOpcodes.put(0x177c, OpcodeEnum.VCMPEQ_UQSD);
		mOpcodes.put(0x1789, OpcodeEnum.VCMPNGESD);
		mOpcodes.put(0x1794, OpcodeEnum.VCMPNGTSD);
		mOpcodes.put(0x179f, OpcodeEnum.VCMPFALSESD);
		mOpcodes.put(0x17ac, OpcodeEnum.VCMPNEQ_OQSD);
		mOpcodes.put(0x17ba, OpcodeEnum.VCMPGESD);
		mOpcodes.put(0x17c4, OpcodeEnum.VCMPGTSD);
		mOpcodes.put(0x17ce, OpcodeEnum.VCMPTRUESD);
		mOpcodes.put(0x17da, OpcodeEnum.VCMPEQ_OSSD);
		mOpcodes.put(0x17e7, OpcodeEnum.VCMPLT_OQSD);
		mOpcodes.put(0x17f4, OpcodeEnum.VCMPLE_OQSD);
		mOpcodes.put(0x1801, OpcodeEnum.VCMPUNORD_SSD);
		mOpcodes.put(0x1810, OpcodeEnum.VCMPNEQ_USSD);
		mOpcodes.put(0x181e, OpcodeEnum.VCMPNLT_UQSD);
		mOpcodes.put(0x182c, OpcodeEnum.VCMPNLE_UQSD);
		mOpcodes.put(0x183a, OpcodeEnum.VCMPORD_SSD);
		mOpcodes.put(0x1847, OpcodeEnum.VCMPEQ_USSD);
		mOpcodes.put(0x1854, OpcodeEnum.VCMPNGE_UQSD);
		mOpcodes.put(0x1862, OpcodeEnum.VCMPNGT_UQSD);
		mOpcodes.put(0x1870, OpcodeEnum.VCMPFALSE_OSSD);
		mOpcodes.put(0x1880, OpcodeEnum.VCMPNEQ_OSSD);
		mOpcodes.put(0x188e, OpcodeEnum.VCMPGE_OQSD);
		mOpcodes.put(0x189b, OpcodeEnum.VCMPGT_OQSD);
		mOpcodes.put(0x18a8, OpcodeEnum.VCMPTRUE_USSD);
		mOpcodes.put(0x18b7, OpcodeEnum.PINSRW);
		mOpcodes.put(0x18bf, OpcodeEnum.VPINSRW);
		mOpcodes.put(0x18c8, OpcodeEnum.PEXTRW);
		mOpcodes.put(0x18d0, OpcodeEnum.VPEXTRW);
		mOpcodes.put(0x18d9, OpcodeEnum.SHUFPS);
		mOpcodes.put(0x18e1, OpcodeEnum.SHUFPD);
		mOpcodes.put(0x18e9, OpcodeEnum.VSHUFPS);
		mOpcodes.put(0x18f2, OpcodeEnum.VSHUFPD);
		mOpcodes.put(0x18fb, OpcodeEnum.CMPXCHG8B);
		mOpcodes.put(0x1906, OpcodeEnum.CMPXCHG16B);
		mOpcodes.put(0x1912, OpcodeEnum.VMPTRST);
		mOpcodes.put(0x191b, OpcodeEnum.ADDSUBPD);
		mOpcodes.put(0x1925, OpcodeEnum.ADDSUBPS);
		mOpcodes.put(0x192f, OpcodeEnum.VADDSUBPD);
		mOpcodes.put(0x193a, OpcodeEnum.VADDSUBPS);
		mOpcodes.put(0x1945, OpcodeEnum.PSRLW);
		mOpcodes.put(0x194c, OpcodeEnum.VPSRLW);
		mOpcodes.put(0x1954, OpcodeEnum.PSRLD);
		mOpcodes.put(0x195b, OpcodeEnum.VPSRLD);
		mOpcodes.put(0x1963, OpcodeEnum.PSRLQ);
		mOpcodes.put(0x196a, OpcodeEnum.VPSRLQ);
		mOpcodes.put(0x1972, OpcodeEnum.PADDQ);
		mOpcodes.put(0x1979, OpcodeEnum.VPADDQ);
		mOpcodes.put(0x1981, OpcodeEnum.PMULLW);
		mOpcodes.put(0x1989, OpcodeEnum.VPMULLW);
		mOpcodes.put(0x1992, OpcodeEnum.MOVQ2DQ);
		mOpcodes.put(0x199b, OpcodeEnum.MOVDQ2Q);
		mOpcodes.put(0x19a4, OpcodeEnum.PMOVMSKB);
		mOpcodes.put(0x19ae, OpcodeEnum.VPMOVMSKB);
		mOpcodes.put(0x19b9, OpcodeEnum.PSUBUSB);
		mOpcodes.put(0x19c2, OpcodeEnum.VPSUBUSB);
		mOpcodes.put(0x19cc, OpcodeEnum.PSUBUSW);
		mOpcodes.put(0x19d5, OpcodeEnum.VPSUBUSW);
		mOpcodes.put(0x19df, OpcodeEnum.PMINUB);
		mOpcodes.put(0x19e7, OpcodeEnum.VPMINUB);
		mOpcodes.put(0x19f0, OpcodeEnum.PAND);
		mOpcodes.put(0x19f6, OpcodeEnum.VPAND);
		mOpcodes.put(0x19fd, OpcodeEnum.PADDUSB);
		mOpcodes.put(0x1a06, OpcodeEnum.VPADDUSW);
		mOpcodes.put(0x1a10, OpcodeEnum.PADDUSW);
		mOpcodes.put(0x1a19, OpcodeEnum.PMAXUB);
		mOpcodes.put(0x1a21, OpcodeEnum.VPMAXUB);
		mOpcodes.put(0x1a2a, OpcodeEnum.PANDN);
		mOpcodes.put(0x1a31, OpcodeEnum.VPANDN);
		mOpcodes.put(0x1a39, OpcodeEnum.PAVGB);
		mOpcodes.put(0x1a40, OpcodeEnum.VPAVGB);
		mOpcodes.put(0x1a48, OpcodeEnum.PSRAW);
		mOpcodes.put(0x1a4f, OpcodeEnum.VPSRAW);
		mOpcodes.put(0x1a57, OpcodeEnum.PSRAD);
		mOpcodes.put(0x1a5e, OpcodeEnum.VPSRAD);
		mOpcodes.put(0x1a66, OpcodeEnum.PAVGW);
		mOpcodes.put(0x1a6d, OpcodeEnum.VPAVGW);
		mOpcodes.put(0x1a75, OpcodeEnum.PMULHUW);
		mOpcodes.put(0x1a7e, OpcodeEnum.VPMULHUW);
		mOpcodes.put(0x1a88, OpcodeEnum.PMULHW);
		mOpcodes.put(0x1a90, OpcodeEnum.VPMULHW);
		mOpcodes.put(0x1a99, OpcodeEnum.CVTTPD2DQ);
		mOpcodes.put(0x1aa4, OpcodeEnum.CVTDQ2PD);
		mOpcodes.put(0x1aae, OpcodeEnum.CVTPD2DQ);
		mOpcodes.put(0x1ab8, OpcodeEnum.VCVTTPD2DQ);
		mOpcodes.put(0x1ac4, OpcodeEnum.VCVTDQ2PD);
		mOpcodes.put(0x1acf, OpcodeEnum.VCVTPD2DQ);
		mOpcodes.put(0x1ada, OpcodeEnum.MOVNTQ);
		mOpcodes.put(0x1ae2, OpcodeEnum.MOVNTDQ);
		mOpcodes.put(0x1aeb, OpcodeEnum.VMOVNTDQ);
		mOpcodes.put(0x1af5, OpcodeEnum.PSUBSB);
		mOpcodes.put(0x1afd, OpcodeEnum.VPSUBSB);
		mOpcodes.put(0x1b06, OpcodeEnum.PSUBSW);
		mOpcodes.put(0x1b0e, OpcodeEnum.VPSUBSW);
		mOpcodes.put(0x1b17, OpcodeEnum.PMINSW);
		mOpcodes.put(0x1b1f, OpcodeEnum.VPMINSW);
		mOpcodes.put(0x1b28, OpcodeEnum.POR);
		mOpcodes.put(0x1b2d, OpcodeEnum.VPOR);
		mOpcodes.put(0x1b33, OpcodeEnum.PADDSB);
		mOpcodes.put(0x1b3b, OpcodeEnum.VPADDSB);
		mOpcodes.put(0x1b44, OpcodeEnum.PADDSW);
		mOpcodes.put(0x1b4c, OpcodeEnum.VPADDSW);
		mOpcodes.put(0x1b55, OpcodeEnum.PMAXSW);
		mOpcodes.put(0x1b5d, OpcodeEnum.VPMAXSW);
		mOpcodes.put(0x1b66, OpcodeEnum.PXOR);
		mOpcodes.put(0x1b6c, OpcodeEnum.VPXOR);
		mOpcodes.put(0x1b73, OpcodeEnum.LDDQU);
		mOpcodes.put(0x1b7a, OpcodeEnum.VLDDQU);
		mOpcodes.put(0x1b82, OpcodeEnum.PSLLW);
		mOpcodes.put(0x1b89, OpcodeEnum.VPSLLW);
		mOpcodes.put(0x1b91, OpcodeEnum.PSLLD);
		mOpcodes.put(0x1b98, OpcodeEnum.VPSLLD);
		mOpcodes.put(0x1ba0, OpcodeEnum.PSLLQ);
		mOpcodes.put(0x1ba7, OpcodeEnum.VPSLLQ);
		mOpcodes.put(0x1baf, OpcodeEnum.PMULUDQ);
		mOpcodes.put(0x1bb8, OpcodeEnum.VPMULUDQ);
		mOpcodes.put(0x1bc2, OpcodeEnum.PMADDWD);
		mOpcodes.put(0x1bcb, OpcodeEnum.VPMADDWD);
		mOpcodes.put(0x1bd5, OpcodeEnum.PSADBW);
		mOpcodes.put(0x1bdd, OpcodeEnum.VPSADBW);
		mOpcodes.put(0x1be6, OpcodeEnum.MASKMOVQ);
		mOpcodes.put(0x1bf0, OpcodeEnum.MASKMOVDQU);
		mOpcodes.put(0x1bfc, OpcodeEnum.VMASKMOVDQU);
		mOpcodes.put(0x1c09, OpcodeEnum.PSUBB);
		mOpcodes.put(0x1c10, OpcodeEnum.VPSUBB);
		mOpcodes.put(0x1c18, OpcodeEnum.PSUBW);
		mOpcodes.put(0x1c1f, OpcodeEnum.VPSUBW);
		mOpcodes.put(0x1c27, OpcodeEnum.PSUBD);
		mOpcodes.put(0x1c2e, OpcodeEnum.VPSUBD);
		mOpcodes.put(0x1c36, OpcodeEnum.PSUBQ);
		mOpcodes.put(0x1c3d, OpcodeEnum.VPSUBQ);
		mOpcodes.put(0x1c45, OpcodeEnum.PADDB);
		mOpcodes.put(0x1c4c, OpcodeEnum.VPADDB);
		mOpcodes.put(0x1c54, OpcodeEnum.PADDW);
		mOpcodes.put(0x1c5b, OpcodeEnum.VPADDW);
		mOpcodes.put(0x1c63, OpcodeEnum.PADDD);
		mOpcodes.put(0x1c6a, OpcodeEnum.VPADDD);
		mOpcodes.put(0x1c72, OpcodeEnum.FNSTENV);
		mOpcodes.put(0x1c7b, OpcodeEnum.FSTENV);
		mOpcodes.put(0x1c83, OpcodeEnum.FNSTCW);
		mOpcodes.put(0x1c8b, OpcodeEnum.FSTCW);
		mOpcodes.put(0x1c92, OpcodeEnum.FNCLEX);
		mOpcodes.put(0x1c9a, OpcodeEnum.FCLEX);
		mOpcodes.put(0x1ca1, OpcodeEnum.FNINIT);
		mOpcodes.put(0x1ca9, OpcodeEnum.FINIT);
		mOpcodes.put(0x1cb0, OpcodeEnum.FNSAVE);
		mOpcodes.put(0x1cb8, OpcodeEnum.FSAVE);
		mOpcodes.put(0x1cbf, OpcodeEnum.FNSTSW);
		mOpcodes.put(0x1cc7, OpcodeEnum.FSTSW);
		mOpcodes.put(0x1cce, OpcodeEnum.PSHUFB);
		mOpcodes.put(0x1cd6, OpcodeEnum.VPSHUFB);
		mOpcodes.put(0x1cdf, OpcodeEnum.PHADDW);
		mOpcodes.put(0x1ce7, OpcodeEnum.VPHADDW);
		mOpcodes.put(0x1cf0, OpcodeEnum.PHADDD);
		mOpcodes.put(0x1cf8, OpcodeEnum.VPHADDD);
		mOpcodes.put(0x1d01, OpcodeEnum.PHADDSW);
		mOpcodes.put(0x1d0a, OpcodeEnum.VPHADDSW);
		mOpcodes.put(0x1d14, OpcodeEnum.PMADDUBSW);
		mOpcodes.put(0x1d1f, OpcodeEnum.VPMADDUBSW);
		mOpcodes.put(0x1d2b, OpcodeEnum.PHSUBW);
		mOpcodes.put(0x1d33, OpcodeEnum.VPHSUBW);
		mOpcodes.put(0x1d3c, OpcodeEnum.PHSUBD);
		mOpcodes.put(0x1d44, OpcodeEnum.VPHSUBD);
		mOpcodes.put(0x1d4d, OpcodeEnum.PHSUBSW);
		mOpcodes.put(0x1d56, OpcodeEnum.VPHSUBSW);
		mOpcodes.put(0x1d60, OpcodeEnum.PSIGNB);
		mOpcodes.put(0x1d68, OpcodeEnum.VPSIGNB);
		mOpcodes.put(0x1d71, OpcodeEnum.PSIGNW);
		mOpcodes.put(0x1d79, OpcodeEnum.VPSIGNW);
		mOpcodes.put(0x1d82, OpcodeEnum.PSIGND);
		mOpcodes.put(0x1d8a, OpcodeEnum.VPSIGND);
		mOpcodes.put(0x1d93, OpcodeEnum.PMULHRSW);
		mOpcodes.put(0x1d9d, OpcodeEnum.VPMULHRSW);
		mOpcodes.put(0x1da8, OpcodeEnum.VPERMILPS);
		mOpcodes.put(0x1db3, OpcodeEnum.VPERMILPD);
		mOpcodes.put(0x1dbe, OpcodeEnum.VTESTPS);
		mOpcodes.put(0x1dc7, OpcodeEnum.VTESTPD);
		mOpcodes.put(0x1dd0, OpcodeEnum.PBLENDVB);
		mOpcodes.put(0x1dda, OpcodeEnum.BLENDVPS);
		mOpcodes.put(0x1de4, OpcodeEnum.BLENDVPD);
		mOpcodes.put(0x1dee, OpcodeEnum.PTEST);
		mOpcodes.put(0x1df5, OpcodeEnum.VPTEST);
		mOpcodes.put(0x1dfd, OpcodeEnum.VBROADCASTSS);
		mOpcodes.put(0x1e0b, OpcodeEnum.VBROADCASTSD);
		mOpcodes.put(0x1e19, OpcodeEnum.VBROADCASTF128);
		mOpcodes.put(0x1e29, OpcodeEnum.PABSB);
		mOpcodes.put(0x1e30, OpcodeEnum.VPABSB);
		mOpcodes.put(0x1e38, OpcodeEnum.PABSW);
		mOpcodes.put(0x1e3f, OpcodeEnum.VPABSW);
		mOpcodes.put(0x1e47, OpcodeEnum.PABSD);
		mOpcodes.put(0x1e4e, OpcodeEnum.VPABSD);
		mOpcodes.put(0x1e56, OpcodeEnum.PMOVSXBW);
		mOpcodes.put(0x1e60, OpcodeEnum.VPMOVSXBW);
		mOpcodes.put(0x1e6b, OpcodeEnum.PMOVSXBD);
		mOpcodes.put(0x1e75, OpcodeEnum.VPMOVSXBD);
		mOpcodes.put(0x1e80, OpcodeEnum.PMOVSXBQ);
		mOpcodes.put(0x1e8a, OpcodeEnum.VPMOVSXBQ);
		mOpcodes.put(0x1e95, OpcodeEnum.PMOVSXWD);
		mOpcodes.put(0x1e9f, OpcodeEnum.VPMOVSXWD);
		mOpcodes.put(0x1eaa, OpcodeEnum.PMOVSXWQ);
		mOpcodes.put(0x1eb4, OpcodeEnum.VPMOVSXWQ);
		mOpcodes.put(0x1ebf, OpcodeEnum.PMOVSXDQ);
		mOpcodes.put(0x1ec9, OpcodeEnum.VPMOVSXDQ);
		mOpcodes.put(0x1ed4, OpcodeEnum.PMULDQ);
		mOpcodes.put(0x1edc, OpcodeEnum.VPMULDQ);
		mOpcodes.put(0x1ee5, OpcodeEnum.PCMPEQQ);
		mOpcodes.put(0x1eee, OpcodeEnum.VPCMPEQQ);
		mOpcodes.put(0x1ef8, OpcodeEnum.MOVNTDQA);
		mOpcodes.put(0x1f02, OpcodeEnum.VMOVNTDQA);
		mOpcodes.put(0x1f0d, OpcodeEnum.PACKUSDW);
		mOpcodes.put(0x1f17, OpcodeEnum.VPACKUSDW);
		mOpcodes.put(0x1f22, OpcodeEnum.VMASKMOVPS);
		mOpcodes.put(0x1f2e, OpcodeEnum.VMASKMOVPD);
		mOpcodes.put(0x1f3a, OpcodeEnum.PMOVZXBW);
		mOpcodes.put(0x1f44, OpcodeEnum.VPMOVZXBW);
		mOpcodes.put(0x1f4f, OpcodeEnum.PMOVZXBD);
		mOpcodes.put(0x1f59, OpcodeEnum.VPMOVZXBD);
		mOpcodes.put(0x1f64, OpcodeEnum.PMOVZXBQ);
		mOpcodes.put(0x1f6e, OpcodeEnum.VPMOVZXBQ);
		mOpcodes.put(0x1f79, OpcodeEnum.PMOVZXWD);
		mOpcodes.put(0x1f83, OpcodeEnum.VPMOVZXWD);
		mOpcodes.put(0x1f8e, OpcodeEnum.PMOVZXWQ);
		mOpcodes.put(0x1f98, OpcodeEnum.VPMOVZXWQ);
		mOpcodes.put(0x1fa3, OpcodeEnum.PMOVZXDQ);
		mOpcodes.put(0x1fad, OpcodeEnum.VPMOVZXDQ);
		mOpcodes.put(0x1fb8, OpcodeEnum.PCMPGTQ);
		mOpcodes.put(0x1fc1, OpcodeEnum.VPCMPGTQ);
		mOpcodes.put(0x1fcb, OpcodeEnum.PMINSB);
		mOpcodes.put(0x1fd3, OpcodeEnum.VPMINSB);
		mOpcodes.put(0x1fdc, OpcodeEnum.PMINSD);
		mOpcodes.put(0x1fe4, OpcodeEnum.VPMINSD);
		mOpcodes.put(0x1fed, OpcodeEnum.PMINUW);
		mOpcodes.put(0x1ff5, OpcodeEnum.VPMINUW);
		mOpcodes.put(0x1ffe, OpcodeEnum.PMINUD);
		mOpcodes.put(0x2006, OpcodeEnum.VPMINUD);
		mOpcodes.put(0x200f, OpcodeEnum.PMAXSB);
		mOpcodes.put(0x2017, OpcodeEnum.VPMAXSB);
		mOpcodes.put(0x2020, OpcodeEnum.PMAXSD);
		mOpcodes.put(0x2028, OpcodeEnum.VPMAXSD);
		mOpcodes.put(0x2031, OpcodeEnum.PMAXUW);
		mOpcodes.put(0x2039, OpcodeEnum.VPMAXUW);
		mOpcodes.put(0x2042, OpcodeEnum.PMAXUD);
		mOpcodes.put(0x204a, OpcodeEnum.VPMAXUD);
		mOpcodes.put(0x2053, OpcodeEnum.PMULLD);
		mOpcodes.put(0x205b, OpcodeEnum.VPMULLD);
		mOpcodes.put(0x2064, OpcodeEnum.PHMINPOSUW);
		mOpcodes.put(0x2070, OpcodeEnum.VPHMINPOSUW);
		mOpcodes.put(0x207d, OpcodeEnum.INVEPT);
		mOpcodes.put(0x2085, OpcodeEnum.INVVPID);
		mOpcodes.put(0x208e, OpcodeEnum.INVPCID);
		mOpcodes.put(0x2097, OpcodeEnum.VFMADDSUB132PS);
		mOpcodes.put(0x20a7, OpcodeEnum.VFMADDSUB132PD);
		mOpcodes.put(0x20b7, OpcodeEnum.VFMSUBADD132PS);
		mOpcodes.put(0x20c7, OpcodeEnum.VFMSUBADD132PD);
		mOpcodes.put(0x20d7, OpcodeEnum.VFMADD132PS);
		mOpcodes.put(0x20e4, OpcodeEnum.VFMADD132PD);
		mOpcodes.put(0x20f1, OpcodeEnum.VFMADD132SS);
		mOpcodes.put(0x20fe, OpcodeEnum.VFMADD132SD);
		mOpcodes.put(0x210b, OpcodeEnum.VFMSUB132PS);
		mOpcodes.put(0x2118, OpcodeEnum.VFMSUB132PD);
		mOpcodes.put(0x2125, OpcodeEnum.VFMSUB132SS);
		mOpcodes.put(0x2132, OpcodeEnum.VFMSUB132SD);
		mOpcodes.put(0x213f, OpcodeEnum.VFNMADD132PS);
		mOpcodes.put(0x214d, OpcodeEnum.VFNMADD132PD);
		mOpcodes.put(0x215b, OpcodeEnum.VFNMADD132SS);
		mOpcodes.put(0x2169, OpcodeEnum.VFNMADD132SD);
		mOpcodes.put(0x2177, OpcodeEnum.VFNMSUB132PS);
		mOpcodes.put(0x2185, OpcodeEnum.VFNMSUB132PD);
		mOpcodes.put(0x2193, OpcodeEnum.VFNMSUB132SS);
		mOpcodes.put(0x21a1, OpcodeEnum.VFNMSUB132SD);
		mOpcodes.put(0x21af, OpcodeEnum.VFMADDSUB213PS);
		mOpcodes.put(0x21bf, OpcodeEnum.VFMADDSUB213PD);
		mOpcodes.put(0x21cf, OpcodeEnum.VFMSUBADD213PS);
		mOpcodes.put(0x21df, OpcodeEnum.VFMSUBADD213PD);
		mOpcodes.put(0x21ef, OpcodeEnum.VFMADD213PS);
		mOpcodes.put(0x21fc, OpcodeEnum.VFMADD213PD);
		mOpcodes.put(0x2209, OpcodeEnum.VFMADD213SS);
		mOpcodes.put(0x2216, OpcodeEnum.VFMADD213SD);
		mOpcodes.put(0x2223, OpcodeEnum.VFMSUB213PS);
		mOpcodes.put(0x2230, OpcodeEnum.VFMSUB213PD);
		mOpcodes.put(0x223d, OpcodeEnum.VFMSUB213SS);
		mOpcodes.put(0x224a, OpcodeEnum.VFMSUB213SD);
		mOpcodes.put(0x2257, OpcodeEnum.VFNMADD213PS);
		mOpcodes.put(0x2265, OpcodeEnum.VFNMADD213PD);
		mOpcodes.put(0x2273, OpcodeEnum.VFNMADD213SS);
		mOpcodes.put(0x2281, OpcodeEnum.VFNMADD213SD);
		mOpcodes.put(0x228f, OpcodeEnum.VFNMSUB213PS);
		mOpcodes.put(0x229d, OpcodeEnum.VFNMSUB213PD);
		mOpcodes.put(0x22ab, OpcodeEnum.VFNMSUB213SS);
		mOpcodes.put(0x22b9, OpcodeEnum.VFNMSUB213SD);
		mOpcodes.put(0x22c7, OpcodeEnum.VFMADDSUB231PS);
		mOpcodes.put(0x22d7, OpcodeEnum.VFMADDSUB231PD);
		mOpcodes.put(0x22e7, OpcodeEnum.VFMSUBADD231PS);
		mOpcodes.put(0x22f7, OpcodeEnum.VFMSUBADD231PD);
		mOpcodes.put(0x2307, OpcodeEnum.VFMADD231PS);
		mOpcodes.put(0x2314, OpcodeEnum.VFMADD231PD);
		mOpcodes.put(0x2321, OpcodeEnum.VFMADD231SS);
		mOpcodes.put(0x232e, OpcodeEnum.VFMADD231SD);
		mOpcodes.put(0x233b, OpcodeEnum.VFMSUB231PS);
		mOpcodes.put(0x2348, OpcodeEnum.VFMSUB231PD);
		mOpcodes.put(0x2355, OpcodeEnum.VFMSUB231SS);
		mOpcodes.put(0x2362, OpcodeEnum.VFMSUB231SD);
		mOpcodes.put(0x236f, OpcodeEnum.VFNMADD231PS);
		mOpcodes.put(0x237d, OpcodeEnum.VFNMADD231PD);
		mOpcodes.put(0x238b, OpcodeEnum.VFNMADD231SS);
		mOpcodes.put(0x2399, OpcodeEnum.VFNMADD231SD);
		mOpcodes.put(0x23a7, OpcodeEnum.VFNMSUB231PS);
		mOpcodes.put(0x23b5, OpcodeEnum.VFNMSUB231PD);
		mOpcodes.put(0x23c3, OpcodeEnum.VFNMSUB231SS);
		mOpcodes.put(0x23d1, OpcodeEnum.VFNMSUB231SD);
		mOpcodes.put(0x23df, OpcodeEnum.AESIMC);
		mOpcodes.put(0x23e7, OpcodeEnum.VAESIMC);
		mOpcodes.put(0x23f0, OpcodeEnum.AESENC);
		mOpcodes.put(0x23f8, OpcodeEnum.VAESENC);
		mOpcodes.put(0x2401, OpcodeEnum.AESENCLAST);
		mOpcodes.put(0x240d, OpcodeEnum.VAESENCLAST);
		mOpcodes.put(0x241a, OpcodeEnum.AESDEC);
		mOpcodes.put(0x2422, OpcodeEnum.VAESDEC);
		mOpcodes.put(0x242b, OpcodeEnum.AESDECLAST);
		mOpcodes.put(0x2437, OpcodeEnum.VAESDECLAST);
		mOpcodes.put(0x2444, OpcodeEnum.MOVBE);
		mOpcodes.put(0x244b, OpcodeEnum.CRC32);
		mOpcodes.put(0x2452, OpcodeEnum.VPERM2F128);
		mOpcodes.put(0x245e, OpcodeEnum.ROUNDPS);
		mOpcodes.put(0x2467, OpcodeEnum.VROUNDPS);
		mOpcodes.put(0x2471, OpcodeEnum.ROUNDPD);
		mOpcodes.put(0x247a, OpcodeEnum.VROUNDPD);
		mOpcodes.put(0x2484, OpcodeEnum.ROUNDSS);
		mOpcodes.put(0x248d, OpcodeEnum.VROUNDSS);
		mOpcodes.put(0x2497, OpcodeEnum.ROUNDSD);
		mOpcodes.put(0x24a0, OpcodeEnum.VROUNDSD);
		mOpcodes.put(0x24aa, OpcodeEnum.BLENDPS);
		mOpcodes.put(0x24b3, OpcodeEnum.VBLENDPS);
		mOpcodes.put(0x24bd, OpcodeEnum.BLENDPD);
		mOpcodes.put(0x24c6, OpcodeEnum.VBLENDPD);
		mOpcodes.put(0x24d0, OpcodeEnum.PBLENDW);
		mOpcodes.put(0x24d9, OpcodeEnum.VPBLENDW);
		mOpcodes.put(0x24e3, OpcodeEnum.PALIGNR);
		mOpcodes.put(0x24ec, OpcodeEnum.VPALIGNR);
		mOpcodes.put(0x24f6, OpcodeEnum.PEXTRB);
		mOpcodes.put(0x24fe, OpcodeEnum.VPEXTRB);
		mOpcodes.put(0x2507, OpcodeEnum.PEXTRD);
		mOpcodes.put(0x250f, OpcodeEnum.PEXTRQ);
		mOpcodes.put(0x2517, OpcodeEnum.VPEXTRD);
		mOpcodes.put(0x2520, OpcodeEnum.VPEXTRQ);
		mOpcodes.put(0x2529, OpcodeEnum.EXTRACTPS);
		mOpcodes.put(0x2534, OpcodeEnum.VEXTRACTPS);
		mOpcodes.put(0x2540, OpcodeEnum.VINSERTF128);
		mOpcodes.put(0x254d, OpcodeEnum.VEXTRACTF128);
		mOpcodes.put(0x255b, OpcodeEnum.PINSRB);
		mOpcodes.put(0x2563, OpcodeEnum.VPINSRB);
		mOpcodes.put(0x256c, OpcodeEnum.INSERTPS);
		mOpcodes.put(0x2576, OpcodeEnum.VINSERTPS);
		mOpcodes.put(0x2581, OpcodeEnum.PINSRD);
		mOpcodes.put(0x2589, OpcodeEnum.PINSRQ);
		mOpcodes.put(0x2591, OpcodeEnum.VPINSRD);
		mOpcodes.put(0x259a, OpcodeEnum.VPINSRQ);
		mOpcodes.put(0x25a3, OpcodeEnum.DPPS);
		mOpcodes.put(0x25a9, OpcodeEnum.VDPPS);
		mOpcodes.put(0x25b0, OpcodeEnum.DPPD);
		mOpcodes.put(0x25b6, OpcodeEnum.VDPPD);
		mOpcodes.put(0x25bd, OpcodeEnum.MPSADBW);
		mOpcodes.put(0x25c6, OpcodeEnum.VMPSADBW);
		mOpcodes.put(0x25d0, OpcodeEnum.PCLMULQDQ);
		mOpcodes.put(0x25db, OpcodeEnum.VPCLMULQDQ);
		mOpcodes.put(0x25e7, OpcodeEnum.VBLENDVPS);
		mOpcodes.put(0x25f2, OpcodeEnum.VBLENDVPD);
		mOpcodes.put(0x25fd, OpcodeEnum.VPBLENDVB);
		mOpcodes.put(0x2608, OpcodeEnum.PCMPESTRM);
		mOpcodes.put(0x2613, OpcodeEnum.VPCMPESTRM);
		mOpcodes.put(0x261f, OpcodeEnum.PCMPESTRI);
		mOpcodes.put(0x262a, OpcodeEnum.VPCMPESTRI);
		mOpcodes.put(0x2636, OpcodeEnum.PCMPISTRM);
		mOpcodes.put(0x2641, OpcodeEnum.VPCMPISTRM);
		mOpcodes.put(0x264d, OpcodeEnum.PCMPISTRI);
		mOpcodes.put(0x2658, OpcodeEnum.VPCMPISTRI);
		mOpcodes.put(0x2664, OpcodeEnum.AESKEYGENASSIST);
		mOpcodes.put(0x2675, OpcodeEnum.VAESKEYGENASSIST);
		mOpcodes.put(0x2687, OpcodeEnum.PSRLDQ);
		mOpcodes.put(0x268f, OpcodeEnum.VPSRLDQ);
		mOpcodes.put(0x2698, OpcodeEnum.PSLLDQ);
		mOpcodes.put(0x26a0, OpcodeEnum.VPSLLDQ);
		mOpcodes.put(0x26a9, OpcodeEnum.FXSAVE);
		mOpcodes.put(0x26b1, OpcodeEnum.FXSAVE64);
		mOpcodes.put(0x26bb, OpcodeEnum.RDFSBASE);
		mOpcodes.put(0x26c5, OpcodeEnum.FXRSTOR);
		mOpcodes.put(0x26ce, OpcodeEnum.FXRSTOR64);
		mOpcodes.put(0x26d9, OpcodeEnum.RDGSBASE);
		mOpcodes.put(0x26e3, OpcodeEnum.LDMXCSR);
		mOpcodes.put(0x26ec, OpcodeEnum.WRFSBASE);
		mOpcodes.put(0x26f6, OpcodeEnum.VLDMXCSR);
		mOpcodes.put(0x2700, OpcodeEnum.STMXCSR);
		mOpcodes.put(0x2709, OpcodeEnum.WRGSBASE);
		mOpcodes.put(0x2713, OpcodeEnum.VSTMXCSR);
		mOpcodes.put(0x271d, OpcodeEnum.VMPTRLD);
		mOpcodes.put(0x2726, OpcodeEnum.VMCLEAR);
		mOpcodes.put(0x272f, OpcodeEnum.VMXON);
		mOpcodes.put(0x2736, OpcodeEnum.MOVSXD);
		mOpcodes.put(0x273e, OpcodeEnum.PAUSE);
		mOpcodes.put(0x2745, OpcodeEnum.WAIT);
		mOpcodes.put(0x274b, OpcodeEnum.RDRAND);
		mOpcodes.put(0x2753, OpcodeEnum._3DNOW);
	}
}
