-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathDisasm.h
1588 lines (1562 loc) · 49.4 KB
/
Disasm.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
//---------------------------------------------------------------------------
#ifndef DisasmH
#define DisasmH
#include <SyncObjs.hpp>
//---------------------------------------------------------------------------
//Encodings
#define ENCODING32 9
#define ENCODING16 10
#define ENCODING64 11
//Registers
#define REG_EAX 0x0
#define REG_ECX 0x1
#define REG_EDX 0x2
#define REG_EBX 0x3
#define REG_ESP 0x4
#define REG_EBP 0x5
#define REG_ESI 0x6
#define REG_EDI 0x7
#define REG_R8D 0x8
#define REG_R9D 0x9
#define REG_R10D 0xA
#define REG_R11D 0xB
#define REG_R12D 0xC
#define REG_R13D 0xD
#define REG_R14D 0xE
#define REG_R15D 0xF
#define REG_RAX 0x10
#define REG_RCX 0x11
#define REG_RDX 0x12
#define REG_RBX 0x13
#define REG_RSP 0x14
#define REG_RBP 0x15
#define REG_RSI 0x16
#define REG_RDI 0x17
#define REG_R8 0x18
#define REG_R9 0x19
#define REG_R10 0x1A
#define REG_R11 0x1B
#define REG_R12 0x1C
#define REG_R13 0x1D
#define REG_R14 0x1E
#define REG_R15 0x1F
#define REG_AX 0x20
#define REG_CX 0x21
#define REG_DX 0x22
#define REG_BX 0x23
#define REG_SP 0x24
#define REG_BP 0x25
#define REG_SI 0x26
#define REG_DI 0x27
#define REG_R8W 0x28
#define REG_R9W 0x29
#define REG_R10W 0x2A
#define REG_R11W 0x2B
#define REG_R12W 0x2C
#define REG_R13W 0x2D
#define REG_R14W 0x2E
#define REG_R15W 0x2F
#define REG_AL 0x30
#define REG_CL 0x31
#define REG_DL 0x32
#define REG_BL 0x33
#define REG_SPL 0x34
#define REG_BPL 0x35
#define REG_SIL 0x36
#define REG_DIL 0x37
#define REG_R8B 0x38
#define REG_R9B 0x39
#define REG_R10B 0x3A
#define REG_R11B 0x3B
#define REG_R12B 0x3C
#define REG_R13B 0x3D
#define REG_R14B 0x3E
#define REG_R15B 0x3F
#define REG_AH 0x40
#define REG_CH 0x41
#define REG_DH 0x42
#define REG_BH 0x43
#define REG_ES 0x4A
#define REG_CS 0x4B
#define REG_SS 0x4C
#define REG_DS 0x4D
#define REG_FS 0x4E
#define REG_GS 0x4F
#define REG_ST0 0x52
#define REG_ST1 0x53
#define REG_ST2 0x54
#define REG_ST3 0x55
#define REG_ST4 0x56
#define REG_ST5 0x57
#define REG_ST6 0x58
#define REG_ST7 0x59
#define REG_MM0 0x5A
#define REG_MM1 0x5B
#define REG_MM2 0x5C
#define REG_MM3 0x5D
#define REG_MM4 0x5E
#define REG_MM5 0x5F
#define REG_MM6 0x60
#define REG_MM7 0x61
#define REG_XMM0 0x62
#define REG_XMM1 0x63
#define REG_XMM2 0x64
#define REG_XMM3 0x65
#define REG_XMM4 0x66
#define REG_XMM5 0x67
#define REG_XMM6 0x68
#define REG_XMM7 0x69
#define REG_XMM8 0x6A
#define REG_XMM9 0x6B
#define REG_XMM10 0x6C
#define REG_XMM11 0x6D
#define REG_XMM12 0x6E
#define REG_XMM13 0x6F
#define REG_XMM14 0x70
#define REG_XMM15 0x71
#define REG_YMM0 0x72
#define REG_YMM1 0x73
#define REG_YMM2 0x74
#define REG_YMM3 0x75
#define REG_YMM4 0x76
#define REG_YMM5 0x77
#define REG_YMM6 0x78
#define REG_YMM7 0x79
#define REG_YMM8 0x7A
#define REG_YMM9 0x7B
#define REG_YMM10 0x7C
#define REG_YMM11 0x7D
#define REG_YMM12 0x7E
#define REG_YMM13 0x7F
#define REG_YMM14 0x80
#define REG_YMM15 0x81
#define REG_CR0 0x82
#define REG_CR1 0x83
#define REG_CR2 0x84
#define REG_CR3 0x85
#define REG_CR4 0x86
#define REG_CR5 0x87
#define REG_CR6 0x88
#define REG_CR7 0x89
#define REG_CR8 0x8A
#define REG_CR9 0x8B
#define REG_CR10 0x8C
#define REG_CR11 0x8D
#define REG_CR12 0x8E
#define REG_CR13 0x8F
#define REG_CR14 0x90
#define REG_CR15 0x91
#define REG_DR0 0x92
#define REG_DR1 0x93
#define REG_DR2 0x94
#define REG_DR3 0x95
#define REG_DR4 0x96
#define REG_DR5 0x97
#define REG_DR6 0x98
#define REG_DR7 0x99
#define REG_DR8 0x9A
#define REG_DR9 0x9B
#define REG_DR10 0x9C
#define REG_DR11 0x9D
#define REG_DR12 0x9E
#define REG_DR13 0x9F
#define REG_DR14 0xA0
#define REG_DR15 0xA1
#define REG_TR0 0xA2
#define REG_TR1 0xA3
#define REG_TR2 0xA4
#define REG_TR3 0xA5
#define REG_TR4 0xA6
#define REG_TR5 0xA7
#define REG_TR6 0xA8
#define REG_TR7 0xA9
//Instruction type
#define itUnknown 0 //Unknown instruction
#define itTransfer 1 //Data transfer instruction
#define itArifm 2 //Ariphmetical instruction
#define itLogic 3 //Logical instruction
#define itControl 4 //Control flow instruction
#define itString 5 //String instruction
#define itFloat 6 //Coprocessor instruction
//Instruction mnemonics
#define IDX_AAA 0x0
#define IDX_AAD 0x1
#define IDX_AADB 0x2
#define IDX_AAM 0x3
#define IDX_AAMB 0x4
#define IDX_AAS 0x5
#define IDX_ADC 0x6
#define IDX_ADD 0x7
#define IDX_ADDPD 0x8
#define IDX_ADDPS 0x9
#define IDX_ADDSD 0xA
#define IDX_ADDSS 0xB
#define IDX_ADDSUBPD 0xC
#define IDX_ADDSUBPS 0xD
#define IDX_AESDEC 0xE
#define IDX_AESDECLAST 0xF
#define IDX_AESENC 0x10
#define IDX_AESENCLAST 0x11
#define IDX_AESIMC 0x12
#define IDX_AESKEYGENASSIST 0x13
#define IDX_AND 0x14
#define IDX_ANDNPD 0x15
#define IDX_ANDNPS 0x16
#define IDX_ANDPD 0x17
#define IDX_ANDPS 0x18
#define IDX_ARPL 0x19
#define IDX_BLENDPD 0x1A
#define IDX_BLENDPS 0x1B
#define IDX_BLENDVPD 0x1C
#define IDX_BLENDVPS 0x1D
#define IDX_BOUND 0x1E
#define IDX_BSF 0x1F
#define IDX_BSR 0x20
#define IDX_BSWAP 0x21
#define IDX_BT 0x22
#define IDX_BTC 0x23
#define IDX_BTR 0x24
#define IDX_BTS 0x25
#define IDX_CALL 0x26
#define IDX_CBW 0x27
#define IDX_CDQ 0x28
#define IDX_CDQE 0x29
#define IDX_CLC 0x2A
#define IDX_CLD 0x2B
#define IDX_CLFLUSH 0x2C
#define IDX_CLGI 0x2D
#define IDX_CLI 0x2E
#define IDX_CLTS 0x2F
#define IDX_CMC 0x30
#define IDX_CMOVA 0x31
#define IDX_CMOVAE 0x32
#define IDX_CMOVB 0x33
#define IDX_CMOVBE 0x34
#define IDX_CMOVE 0x35
#define IDX_CMOVG 0x36
#define IDX_CMOVGE 0x37
#define IDX_CMOVL 0x38
#define IDX_CMOVLE 0x39
#define IDX_CMOVNE 0x3A
#define IDX_CMOVNO 0x3B
#define IDX_CMOVNP 0x3C
#define IDX_CMOVNS 0x3D
#define IDX_CMOVO 0x3E
#define IDX_CMOVP 0x3F
#define IDX_CMOVS 0x40
#define IDX_CMP 0x41
#define IDX_CMPEQPD 0x42
#define IDX_CMPEQPS 0x43
#define IDX_CMPEQSD 0x44
#define IDX_CMPEQSS 0x45
#define IDX_CMPLEPD 0x46
#define IDX_CMPLEPS 0x47
#define IDX_CMPLESD 0x48
#define IDX_CMPLESS 0x49
#define IDX_CMPLTPD 0x4A
#define IDX_CMPLTPS 0x4B
#define IDX_CMPLTSD 0x4C
#define IDX_CMPLTSS 0x4D
#define IDX_CMPNEQPD 0x4E
#define IDX_CMPNEQPS 0x4F
#define IDX_CMPNEQSD 0x50
#define IDX_CMPNEQSS 0x51
#define IDX_CMPNLEPD 0x52
#define IDX_CMPNLEPS 0x53
#define IDX_CMPNLESD 0x54
#define IDX_CMPNLESS 0x55
#define IDX_CMPNLTPD 0x56
#define IDX_CMPNLTPS 0x57
#define IDX_CMPNLTSD 0x58
#define IDX_CMPNLTSS 0x59
#define IDX_CMPORDPD 0x5A
#define IDX_CMPORDPS 0x5B
#define IDX_CMPORDSD 0x5C
#define IDX_CMPORDSS 0x5D
#define IDX_CMPPD 0x5E
#define IDX_CMPPS 0x5F
#define IDX_CMPS 0x60
#define IDX_CMPSD 0x61
#define IDX_CMPSS 0x62
#define IDX_CMPUNORDPD 0x63
#define IDX_CMPUNORDPS 0x64
#define IDX_CMPUNORDSD 0x65
#define IDX_CMPUNORDSS 0x66
#define IDX_CMPXCHG 0x67
#define IDX_CMPXCHG16B 0x68
#define IDX_CMPXCHG8B 0x69
#define IDX_COMISD 0x6A
#define IDX_COMISS 0x6B
#define IDX_CPUID 0x6C
#define IDX_CQO 0x6D
#define IDX_CRC32 0x6E
#define IDX_CVTDQ2PD 0x6F
#define IDX_CVTDQ2PS 0x70
#define IDX_CVTPD2DQ 0x71
#define IDX_CVTPD2PI 0x72
#define IDX_CVTPD2PS 0x73
#define IDX_CVTPI2PD 0x74
#define IDX_CVTPI2PS 0x75
#define IDX_CVTPS2DQ 0x76
#define IDX_CVTPS2PD 0x77
#define IDX_CVTPS2PI 0x78
#define IDX_CVTSD2SI 0x79
#define IDX_CVTSD2SS 0x7A
#define IDX_CVTSI2SD 0x7B
#define IDX_CVTSI2SS 0x7C
#define IDX_CVTSS2SD 0x7D
#define IDX_CVTSS2SI 0x7E
#define IDX_CVTTPD2DQ 0x7F
#define IDX_CVTTPD2PI 0x80
#define IDX_CVTTPS2DQ 0x81
#define IDX_CVTTPS2PI 0x82
#define IDX_CVTTSD2SI 0x83
#define IDX_CVTTSS2SI 0x84
#define IDX_CWD 0x85
#define IDX_CWDE 0x86
#define IDX_DAA 0x87
#define IDX_DAS 0x88
#define IDX_DEC 0x89
#define IDX_DIV 0x8A
#define IDX_DIVPD 0x8B
#define IDX_DIVPS 0x8C
#define IDX_DIVSD 0x8D
#define IDX_DIVSS 0x8E
#define IDX_DPPD 0x8F
#define IDX_DPPS 0x90
#define IDX_EMMS 0x91
#define IDX_ENTER 0x92
#define IDX_EXTRACTPS 0x93
#define IDX_EXTRQ 0x94
#define IDX_F2XM1 0x95
#define IDX_FABS 0x96
#define IDX_FADD 0x97
#define IDX_FADDP 0x98
#define IDX_FBLD 0x99
#define IDX_FBSTP 0x9A
#define IDX_FCHS 0x9B
#define IDX_FCMOVB 0x9C
#define IDX_FCMOVBE 0x9D
#define IDX_FCMOVE 0x9E
#define IDX_FCMOVNB 0x9F
#define IDX_FCMOVNBE 0xA0
#define IDX_FCMOVNE 0xA1
#define IDX_FCMOVNU 0xA2
#define IDX_FCMOVU 0xA3
#define IDX_FCOM 0xA4
#define IDX_FCOM2 0xA5
#define IDX_FCOMI 0xA6
#define IDX_FCOMIP 0xA7
#define IDX_FCOMP 0xA8
#define IDX_FCOMP3 0xA9
#define IDX_FCOMP5 0xAA
#define IDX_FCOMPP 0xAB
#define IDX_FCOS 0xAC
#define IDX_FDECSTP 0xAD
#define IDX_FDISI 0xAE
#define IDX_FDIV 0xAF
#define IDX_FDIVP 0xB0
#define IDX_FDIVR 0xB1
#define IDX_FDIVRP 0xB2
#define IDX_FEMMS 0xB3
#define IDX_FENI 0xB4
#define IDX_FFREE 0xB5
#define IDX_FFREEP 0xB6
#define IDX_FIADD 0xB7
#define IDX_FICOM 0xB8
#define IDX_FICOMP 0xB9
#define IDX_FIDIV 0xBA
#define IDX_FIDIVR 0xBB
#define IDX_FILD 0xBC
#define IDX_FIMUL 0xBD
#define IDX_FINCSTP 0xBE
#define IDX_FIST 0xBF
#define IDX_FISTP 0xC0
#define IDX_FISTTP 0xC1
#define IDX_FISUB 0xC2
#define IDX_FISUBR 0xC3
#define IDX_FLD 0xC4
#define IDX_FLD1 0xC5
#define IDX_FLDCW 0xC6
#define IDX_FLDENV 0xC7
#define IDX_FLDL2E 0xC8
#define IDX_FLDL2T 0xC9
#define IDX_FLDLG2 0xCA
#define IDX_FLDLN2 0xCB
#define IDX_FLDPI 0xCC
#define IDX_FLDZ 0xCD
#define IDX_FMUL 0xCE
#define IDX_FMULP 0xCF
#define IDX_FNCLEX 0xD0
#define IDX_FNINIT 0xD1
#define IDX_FNOP 0xD2
#define IDX_FNSAVE 0xD3
#define IDX_FNSTCW 0xD4
#define IDX_FNSTENV 0xD5
#define IDX_FNSTSW 0xD6
#define IDX_FPATAN 0xD7
#define IDX_FPREM 0xD8
#define IDX_FPREM1 0xD9
#define IDX_FPTAN 0xDA
#define IDX_FRNDINT 0xDB
#define IDX_FRSTOR 0xDC
#define IDX_FSCALE 0xDD
#define IDX_FSETPM 0xDE
#define IDX_FSIN 0xDF
#define IDX_FSINCOS 0xE0
#define IDX_FSQRT 0xE1
#define IDX_FST 0xE2
#define IDX_FSTP 0xE3
#define IDX_FSTP1 0xE4
#define IDX_FSTP8 0xE5
#define IDX_FSTP9 0xE6
#define IDX_FSUB 0xE7
#define IDX_FSUBP 0xE8
#define IDX_FSUBR 0xE9
#define IDX_FSUBRP 0xEA
#define IDX_FTST 0xEB
#define IDX_FUCOM 0xEC
#define IDX_FUCOMI 0xED
#define IDX_FUCOMIP 0xEE
#define IDX_FUCOMP 0xEF
#define IDX_FUCOMPP 0xF0
#define IDX_FXAM 0xF1
#define IDX_FXCH 0xF2
#define IDX_FXCH4 0xF3
#define IDX_FXCH7 0xF4
#define IDX_FXRSTOR 0xF5
#define IDX_FXSAVE 0xF6
#define IDX_FXTRACT 0xF7
#define IDX_FYL2X 0xF8
#define IDX_FYL2XP1 0xF9
#define IDX_GETSEC 0xFA
#define IDX_HADDPD 0xFB
#define IDX_HADDPS 0xFC
#define IDX_HLT 0xFD
#define IDX_HSUBPD 0xFE
#define IDX_HSUBPS 0xFF
#define IDX_IBTS 0x100
#define IDX_IDIV 0x101
#define IDX_IMUL 0x102
#define IDX_IN 0x103
#define IDX_INC 0x104
#define IDX_INS 0x105
#define IDX_INSERTPS 0x106
#define IDX_INSERTQ 0x107
#define IDX_INT 0x108
#define IDX_INTO 0x109
#define IDX_INVD 0x10A
#define IDX_INVEPT 0x10B
#define IDX_INVLPG 0x10C
#define IDX_INVLPGA 0x10D
#define IDX_INVVPID 0x10E
#define IDX_IRET 0x10F
#define IDX_IRETD 0x110
#define IDX_IRETQ 0x111
#define IDX_JA 0x112
#define IDX_JAE 0x113
#define IDX_JB 0x114
#define IDX_JBE 0x115
#define IDX_JCXZ 0x116
#define IDX_JE 0x117
#define IDX_JECXZ 0x118
#define IDX_JG 0x119
#define IDX_JGE 0x11A
#define IDX_JL 0x11B
#define IDX_JLE 0x11C
#define IDX_JMP 0x11D
#define IDX_JMPE 0x11E
#define IDX_JNE 0x11F
#define IDX_JNO 0x120
#define IDX_JNP 0x121
#define IDX_JNS 0x122
#define IDX_JO 0x123
#define IDX_JP 0x124
#define IDX_JRCXZ 0x125
#define IDX_JS 0x126
#define IDX_LAHF 0x127
#define IDX_LAR 0x128
#define IDX_LDDQU 0x129
#define IDX_LDMXCSR 0x12A
#define IDX_LDS 0x12B
#define IDX_LEA 0x12C
#define IDX_LEAVE 0x12D
#define IDX_LES 0x12E
#define IDX_LFENCE 0x12F
#define IDX_LFS 0x130
#define IDX_LGDT 0x131
#define IDX_LGS 0x132
#define IDX_LIDT 0x133
#define IDX_LLDT 0x134
#define IDX_LLWPCB 0x135
#define IDX_LMSW 0x136
#define IDX_LODS 0x137
#define IDX_LOOP 0x138
#define IDX_LOOPE 0x139
#define IDX_LOOPNE 0x13A
#define IDX_LSL 0x13B
#define IDX_LSS 0x13C
#define IDX_LTR 0x13D
#define IDX_LWPINS 0x13E
#define IDX_LWPVAL 0x13F
#define IDX_LZCNT 0x140
#define IDX_MASKMOVDQU 0x141
#define IDX_MASKMOVQ 0x142
#define IDX_MAXPD 0x143
#define IDX_MAXPS 0x144
#define IDX_MAXSD 0x145
#define IDX_MAXSS 0x146
#define IDX_MFENCE 0x147
#define IDX_MINPD 0x148
#define IDX_MINPS 0x149
#define IDX_MINSD 0x14A
#define IDX_MINSS 0x14B
#define IDX_MONITOR 0x14C
#define IDX_MOV 0x14D
#define IDX_MOVAPD 0x14E
#define IDX_MOVAPS 0x14F
#define IDX_MOVBE 0x150
#define IDX_MOVD 0x151
#define IDX_MOVDDUP 0x152
#define IDX_MOVDQ2Q 0x153
#define IDX_MOVDQA 0x154
#define IDX_MOVDQU 0x155
#define IDX_MOVHLPS 0x156
#define IDX_MOVHPD 0x157
#define IDX_MOVHPS 0x158
#define IDX_MOVLHPS 0x159
#define IDX_MOVLPD 0x15A
#define IDX_MOVLPS 0x15B
#define IDX_MOVMSKPD 0x15C
#define IDX_MOVMSKPS 0x15D
#define IDX_MOVNTDQ 0x15E
#define IDX_MOVNTDQA 0x15F
#define IDX_MOVNTI 0x160
#define IDX_MOVNTPD 0x161
#define IDX_MOVNTPS 0x162
#define IDX_MOVNTQ 0x163
#define IDX_MOVNTSD 0x164
#define IDX_MOVNTSS 0x165
#define IDX_MOVQ 0x166
#define IDX_MOVQ2DQ 0x167
#define IDX_MOVS 0x168
#define IDX_MOVSD 0x169
#define IDX_MOVSHDUP 0x16A
#define IDX_MOVSLDUP 0x16B
#define IDX_MOVSS 0x16C
#define IDX_MOVSX 0x16D
#define IDX_MOVSXD 0x16E
#define IDX_MOVUPD 0x16F
#define IDX_MOVUPS 0x170
#define IDX_MOVZX 0x171
#define IDX_MPSADBW 0x172
#define IDX_MUL 0x173
#define IDX_MULPD 0x174
#define IDX_MULPS 0x175
#define IDX_MULSD 0x176
#define IDX_MULSS 0x177
#define IDX_MWAIT 0x178
#define IDX_NEG 0x179
#define IDX_NOP 0x17A
#define IDX_NOT 0x17B
#define IDX_OR 0x17C
#define IDX_ORPD 0x17D
#define IDX_ORPS 0x17E
#define IDX_OUT 0x17F
#define IDX_OUTS 0x180
#define IDX_PABSB 0x181
#define IDX_PABSD 0x182
#define IDX_PABSW 0x183
#define IDX_PACKSSDW 0x184
#define IDX_PACKSSWB 0x185
#define IDX_PACKUSDW 0x186
#define IDX_PACKUSWB 0x187
#define IDX_PADDB 0x188
#define IDX_PADDD 0x189
#define IDX_PADDQ 0x18A
#define IDX_PADDSB 0x18B
#define IDX_PADDSW 0x18C
#define IDX_PADDUSB 0x18D
#define IDX_PADDUSW 0x18E
#define IDX_PADDW 0x18F
#define IDX_PALIGNR 0x190
#define IDX_PAND 0x191
#define IDX_PANDN 0x192
#define IDX_PAUSE 0x193
#define IDX_PAVGB 0x194
#define IDX_PAVGUSB 0x195
#define IDX_PAVGW 0x196
#define IDX_PBLENDVB 0x197
#define IDX_PBLENDW 0x198
#define IDX_PCLMULQDQ 0x199
#define IDX_PCMPEQB 0x19A
#define IDX_PCMPEQD 0x19B
#define IDX_PCMPEQQ 0x19C
#define IDX_PCMPEQW 0x19D
#define IDX_PCMPESTRI 0x19E
#define IDX_PCMPESTRM 0x19F
#define IDX_PCMPGTB 0x1A0
#define IDX_PCMPGTD 0x1A1
#define IDX_PCMPGTQ 0x1A2
#define IDX_PCMPGTW 0x1A3
#define IDX_PCMPISTRI 0x1A4
#define IDX_PCMPISTRM 0x1A5
#define IDX_PEXTRB 0x1A6
#define IDX_PEXTRD 0x1A7
#define IDX_PEXTRQ 0x1A8
#define IDX_PEXTRW 0x1A9
#define IDX_PF2ID 0x1AA
#define IDX_PF2IW 0x1AB
#define IDX_PFACC 0x1AC
#define IDX_PFADD 0x1AD
#define IDX_PFCMPEQ 0x1AE
#define IDX_PFCMPGE 0x1AF
#define IDX_PFCMPGT 0x1B0
#define IDX_PFMAX 0x1B1
#define IDX_PFMIN 0x1B2
#define IDX_PFMUL 0x1B3
#define IDX_PFNACC 0x1B4
#define IDX_PFPNACC 0x1B5
#define IDX_PFRCP 0x1B6
#define IDX_PFRCPIT1 0x1B7
#define IDX_PFRCPIT2 0x1B8
#define IDX_PFRSQIT1 0x1B9
#define IDX_PFRSQRT 0x1BA
#define IDX_PFSUB 0x1BB
#define IDX_PFSUBR 0x1BC
#define IDX_PHADDD 0x1BD
#define IDX_PHADDSW 0x1BE
#define IDX_PHADDW 0x1BF
#define IDX_PHMINPOSUW 0x1C0
#define IDX_PHSUBD 0x1C1
#define IDX_PHSUBSW 0x1C2
#define IDX_PHSUBW 0x1C3
#define IDX_PI2FD 0x1C4
#define IDX_PI2FW 0x1C5
#define IDX_PINSRB 0x1C6
#define IDX_PINSRD 0x1C7
#define IDX_PINSRQ 0x1C8
#define IDX_PINSRW 0x1C9
#define IDX_PMADDUBSW 0x1CA
#define IDX_PMADDWD 0x1CB
#define IDX_PMAXSB 0x1CC
#define IDX_PMAXSD 0x1CD
#define IDX_PMAXSW 0x1CE
#define IDX_PMAXUB 0x1CF
#define IDX_PMAXUD 0x1D0
#define IDX_PMAXUW 0x1D1
#define IDX_PMINSB 0x1D2
#define IDX_PMINSD 0x1D3
#define IDX_PMINSW 0x1D4
#define IDX_PMINUB 0x1D5
#define IDX_PMINUD 0x1D6
#define IDX_PMINUW 0x1D7
#define IDX_PMOVMSKB 0x1D8
#define IDX_PMOVSXBD 0x1D9
#define IDX_PMOVSXBQ 0x1DA
#define IDX_PMOVSXBW 0x1DB
#define IDX_PMOVSXDQ 0x1DC
#define IDX_PMOVSXWD 0x1DD
#define IDX_PMOVSXWQ 0x1DE
#define IDX_PMOVZXBD 0x1DF
#define IDX_PMOVZXBQ 0x1E0
#define IDX_PMOVZXBW 0x1E1
#define IDX_PMOVZXDQ 0x1E2
#define IDX_PMOVZXWD 0x1E3
#define IDX_PMOVZXWQ 0x1E4
#define IDX_PMULDQ 0x1E5
#define IDX_PMULHRSW 0x1E6
#define IDX_PMULHRW 0x1E7
#define IDX_PMULHUW 0x1E8
#define IDX_PMULHW 0x1E9
#define IDX_PMULLD 0x1EA
#define IDX_PMULLW 0x1EB
#define IDX_PMULUDQ 0x1EC
#define IDX_POP 0x1ED
#define IDX_POPA 0x1EE
#define IDX_POPAD 0x1EF
#define IDX_POPCNT 0x1F0
#define IDX_POPF 0x1F1
#define IDX_POPFD 0x1F2
#define IDX_POPFQ 0x1F3
#define IDX_POR 0x1F4
#define IDX_PREFETCH 0x1F5
#define IDX_PREFETCHNTA 0x1F6
#define IDX_PREFETCHT0 0x1F7
#define IDX_PREFETCHT1 0x1F8
#define IDX_PREFETCHT2 0x1F9
#define IDX_PREFETCHW 0x1FA
#define IDX_PSADBW 0x1FB
#define IDX_PSHUFB 0x1FC
#define IDX_PSHUFD 0x1FD
#define IDX_PSHUFHW 0x1FE
#define IDX_PSHUFLW 0x1FF
#define IDX_PSHUFW 0x200
#define IDX_PSIGNB 0x201
#define IDX_PSIGND 0x202
#define IDX_PSIGNW 0x203
#define IDX_PSLLD 0x204
#define IDX_PSLLDQ 0x205
#define IDX_PSLLQ 0x206
#define IDX_PSLLW 0x207
#define IDX_PSRAD 0x208
#define IDX_PSRAW 0x209
#define IDX_PSRLD 0x20A
#define IDX_PSRLDQ 0x20B
#define IDX_PSRLQ 0x20C
#define IDX_PSRLW 0x20D
#define IDX_PSUBB 0x20E
#define IDX_PSUBD 0x20F
#define IDX_PSUBQ 0x210
#define IDX_PSUBSB 0x211
#define IDX_PSUBSW 0x212
#define IDX_PSUBUSB 0x213
#define IDX_PSUBUSW 0x214
#define IDX_PSUBW 0x215
#define IDX_PSWAPD 0x216
#define IDX_PTEST 0x217
#define IDX_PUNPCKHBW 0x218
#define IDX_PUNPCKHDQ 0x219
#define IDX_PUNPCKHQDQ 0x21A
#define IDX_PUNPCKHWD 0x21B
#define IDX_PUNPCKLBW 0x21C
#define IDX_PUNPCKLDQ 0x21D
#define IDX_PUNPCKLQDQ 0x21E
#define IDX_PUNPCKLWD 0x21F
#define IDX_PUSH 0x220
#define IDX_PUSHA 0x221
#define IDX_PUSHAD 0x222
#define IDX_PUSHF 0x223
#define IDX_PUSHFD 0x224
#define IDX_PUSHFQ 0x225
#define IDX_PXOR 0x226
#define IDX_RCL 0x227
#define IDX_RCPPS 0x228
#define IDX_RCPSS 0x229
#define IDX_RCR 0x22A
#define IDX_RDMSR 0x22B
#define IDX_RDPMC 0x22C
#define IDX_RDTSC 0x22D
#define IDX_RDTSCP 0x22E
#define IDX_RET 0x22F
#define IDX_RETF 0x230
#define IDX_RETFQ 0x231
#define IDX_ROL 0x232
#define IDX_ROR 0x233
#define IDX_ROUNDPD 0x234
#define IDX_ROUNDPS 0x235
#define IDX_ROUNDSD 0x236
#define IDX_ROUNDSS 0x237
#define IDX_RSM 0x238
#define IDX_RSQRTPS 0x239
#define IDX_RSQRTSS 0x23A
#define IDX_SAHF 0x23B
#define IDX_SAL 0x23C
#define IDX_SAR 0x23D
#define IDX_SBB 0x23E
#define IDX_SCAS 0x23F
#define IDX_SETA 0x240
#define IDX_SETAE 0x241
#define IDX_SETB 0x242
#define IDX_SETBE 0x243
#define IDX_SETE 0x244
#define IDX_SETG 0x245
#define IDX_SETGE 0x246
#define IDX_SETL 0x247
#define IDX_SETLE 0x248
#define IDX_SETNE 0x249
#define IDX_SETNO 0x24A
#define IDX_SETNP 0x24B
#define IDX_SETNS 0x24C
#define IDX_SETO 0x24D
#define IDX_SETP 0x24E
#define IDX_SETS 0x24F
#define IDX_SFENCE 0x250
#define IDX_SGDT 0x251
#define IDX_SHL 0x252
#define IDX_SHLD 0x253
#define IDX_SHR 0x254
#define IDX_SHRD 0x255
#define IDX_SHUFPD 0x256
#define IDX_SHUFPS 0x257
#define IDX_SIDT 0x258
#define IDX_SKINIT 0x259
#define IDX_SLDT 0x25A
#define IDX_SLWPCB 0x25B
#define IDX_SMSW 0x25C
#define IDX_SQRTPD 0x25D
#define IDX_SQRTPS 0x25E
#define IDX_SQRTSD 0x25F
#define IDX_SQRTSS 0x260
#define IDX_STC 0x261
#define IDX_STD 0x262
#define IDX_STGI 0x263
#define IDX_STI 0x264
#define IDX_STMXCSR 0x265
#define IDX_STOS 0x266
#define IDX_STR 0x267
#define IDX_SUB 0x268
#define IDX_SUBPD 0x269
#define IDX_SUBPS 0x26A
#define IDX_SUBSD 0x26B
#define IDX_SUBSS 0x26C
#define IDX_SWAPGS 0x26D
#define IDX_SYSCALL 0x26E
#define IDX_SYSENTER 0x26F
#define IDX_SYSEXIT 0x270
#define IDX_SYSRET 0x271
#define IDX_SYSRETQ 0x272
#define IDX_TEST 0x273
#define IDX_UCOMISD 0x274
#define IDX_UCOMISS 0x275
#define IDX_UD2 0x276
#define IDX_UNPCKHPD 0x277
#define IDX_UNPCKHPS 0x278
#define IDX_UNPCKLPD 0x279
#define IDX_UNPCKLPS 0x27A
#define IDX_VADDPD 0x27B
#define IDX_VADDPS 0x27C
#define IDX_VADDSD 0x27D
#define IDX_VADDSS 0x27E
#define IDX_VADDSUBPD 0x27F
#define IDX_VADDSUBPS 0x280
#define IDX_VAESDEC 0x281
#define IDX_VAESDECLAST 0x282
#define IDX_VAESENC 0x283
#define IDX_VAESENCLAST 0x284
#define IDX_VAESIMC 0x285
#define IDX_VAESKEYGENASSI 0x286
#define IDX_VANDNPD 0x287
#define IDX_VANDNPS 0x288
#define IDX_VANDPD 0x289
#define IDX_VANDPS 0x28A
#define IDX_VBLENDPD 0x28B
#define IDX_VBLENDPS 0x28C
#define IDX_VBLENDVPD 0x28D
#define IDX_VBLENDVPS 0x28E
#define IDX_VBROADCASTF128 0x28F
#define IDX_VBROADCASTSD 0x290
#define IDX_VBROADCASTSS 0x291
#define IDX_VCMPEQ_OSPD 0x292
#define IDX_VCMPEQ_OSPS 0x293
#define IDX_VCMPEQ_OSSD 0x294
#define IDX_VCMPEQ_OSSS 0x295
#define IDX_VCMPEQ_UQPD 0x296
#define IDX_VCMPEQ_UQPS 0x297
#define IDX_VCMPEQ_UQSD 0x298
#define IDX_VCMPEQ_UQSS 0x299
#define IDX_VCMPEQ_USPD 0x29A
#define IDX_VCMPEQ_USPS 0x29B
#define IDX_VCMPEQ_USSD 0x29C
#define IDX_VCMPEQ_USSS 0x29D
#define IDX_VCMPEQPD 0x29E
#define IDX_VCMPEQPS 0x29F
#define IDX_VCMPEQSD 0x2A0
#define IDX_VCMPEQSS 0x2A1
#define IDX_VCMPFALSE_OSPD 0x2A2
#define IDX_VCMPFALSE_OSPS 0x2A3
#define IDX_VCMPFALSE_OSSD 0x2A4
#define IDX_VCMPFALSE_OSSS 0x2A5
#define IDX_VCMPFALSEPD 0x2A6
#define IDX_VCMPFALSEPS 0x2A7
#define IDX_VCMPFALSESD 0x2A8
#define IDX_VCMPFALSESS 0x2A9
#define IDX_VCMPGE_OQPD 0x2AA
#define IDX_VCMPGE_OQPS 0x2AB
#define IDX_VCMPGE_OQSD 0x2AC
#define IDX_VCMPGE_OQSS 0x2AD
#define IDX_VCMPGEPD 0x2AE
#define IDX_VCMPGEPS 0x2AF
#define IDX_VCMPGESD 0x2B0
#define IDX_VCMPGESS 0x2B1
#define IDX_VCMPGT_OQPD 0x2B2
#define IDX_VCMPGT_OQPS 0x2B3
#define IDX_VCMPGT_OQSD 0x2B4
#define IDX_VCMPGT_OQSS 0x2B5
#define IDX_VCMPGTPD 0x2B6
#define IDX_VCMPGTPS 0x2B7
#define IDX_VCMPGTSD 0x2B8
#define IDX_VCMPGTSS 0x2B9
#define IDX_VCMPLE_OQPD 0x2BA
#define IDX_VCMPLE_OQPS 0x2BB
#define IDX_VCMPLE_OQSD 0x2BC
#define IDX_VCMPLE_OQSS 0x2BD
#define IDX_VCMPLEPD 0x2BE
#define IDX_VCMPLEPS 0x2BF
#define IDX_VCMPLESD 0x2C0
#define IDX_VCMPLESS 0x2C1
#define IDX_VCMPLT_OQPD 0x2C2
#define IDX_VCMPLT_OQPS 0x2C3
#define IDX_VCMPLT_OQSD 0x2C4
#define IDX_VCMPLT_OQSS 0x2C5
#define IDX_VCMPLTPD 0x2C6
#define IDX_VCMPLTPS 0x2C7
#define IDX_VCMPLTSD 0x2C8
#define IDX_VCMPLTSS 0x2C9
#define IDX_VCMPNEQ_OQPD 0x2CA
#define IDX_VCMPNEQ_OQPS 0x2CB
#define IDX_VCMPNEQ_OQSD 0x2CC
#define IDX_VCMPNEQ_OQSS 0x2CD
#define IDX_VCMPNEQ_OSPD 0x2CE
#define IDX_VCMPNEQ_OSPS 0x2CF
#define IDX_VCMPNEQ_OSSD 0x2D0
#define IDX_VCMPNEQ_OSSS 0x2D1
#define IDX_VCMPNEQ_USPD 0x2D2
#define IDX_VCMPNEQ_USPS 0x2D3
#define IDX_VCMPNEQ_USSD 0x2D4
#define IDX_VCMPNEQ_USSS 0x2D5
#define IDX_VCMPNEQPD 0x2D6
#define IDX_VCMPNEQPS 0x2D7
#define IDX_VCMPNEQSD 0x2D8
#define IDX_VCMPNEQSS 0x2D9
#define IDX_VCMPNGE_UQPD 0x2DA
#define IDX_VCMPNGE_UQPS 0x2DB
#define IDX_VCMPNGE_UQSD 0x2DC
#define IDX_VCMPNGE_UQSS 0x2DD
#define IDX_VCMPNGEPD 0x2DE
#define IDX_VCMPNGEPS 0x2DF
#define IDX_VCMPNGESD 0x2E0
#define IDX_VCMPNGESS 0x2E1
#define IDX_VCMPNGT_UQPD 0x2E2
#define IDX_VCMPNGT_UQPS 0x2E3
#define IDX_VCMPNGT_UQSD 0x2E4
#define IDX_VCMPNGT_UQSS 0x2E5
#define IDX_VCMPNGTPD 0x2E6
#define IDX_VCMPNGTPS 0x2E7
#define IDX_VCMPNGTSD 0x2E8
#define IDX_VCMPNGTSS 0x2E9
#define IDX_VCMPNLE_UQPD 0x2EA
#define IDX_VCMPNLE_UQPS 0x2EB
#define IDX_VCMPNLE_UQSD 0x2EC
#define IDX_VCMPNLE_UQSS 0x2ED
#define IDX_VCMPNLEPD 0x2EE
#define IDX_VCMPNLEPS 0x2EF
#define IDX_VCMPNLESD 0x2F0
#define IDX_VCMPNLESS 0x2F1
#define IDX_VCMPNLT_UQPD 0x2F2
#define IDX_VCMPNLT_UQPS 0x2F3
#define IDX_VCMPNLT_UQSD 0x2F4
#define IDX_VCMPNLT_UQSS 0x2F5
#define IDX_VCMPNLTPD 0x2F6
#define IDX_VCMPNLTPS 0x2F7
#define IDX_VCMPNLTSD 0x2F8
#define IDX_VCMPNLTSS 0x2F9
#define IDX_VCMPORD_SPD 0x2FA
#define IDX_VCMPORD_SPS 0x2FB
#define IDX_VCMPORD_SSD 0x2FC
#define IDX_VCMPORD_SSS 0x2FD
#define IDX_VCMPORDPD 0x2FE
#define IDX_VCMPORDPS 0x2FF
#define IDX_VCMPORDSD 0x300
#define IDX_VCMPORDSS 0x301
#define IDX_VCMPPD 0x302
#define IDX_VCMPPS 0x303
#define IDX_VCMPSD 0x304
#define IDX_VCMPSS 0x305
#define IDX_VCMPTRUE_USPD 0x306
#define IDX_VCMPTRUE_USPS 0x307
#define IDX_VCMPTRUE_USSD 0x308
#define IDX_VCMPTRUE_USSS 0x309
#define IDX_VCMPTRUEPD 0x30A
#define IDX_VCMPTRUEPS 0x30B
#define IDX_VCMPTRUESD 0x30C
#define IDX_VCMPTRUESS 0x30D
#define IDX_VCMPUNORD_SPD 0x30E
#define IDX_VCMPUNORD_SPS 0x30F
#define IDX_VCMPUNORD_SSD 0x310
#define IDX_VCMPUNORD_SSS 0x311
#define IDX_VCMPUNORDPD 0x312
#define IDX_VCMPUNORDPS 0x313
#define IDX_VCMPUNORDSD 0x314
#define IDX_VCMPUNORDSS 0x315
#define IDX_VCOMISD 0x316
#define IDX_VCOMISS 0x317
#define IDX_VCVTDQ2PD 0x318
#define IDX_VCVTDQ2PS 0x319
#define IDX_VCVTPD2DQ 0x31A
#define IDX_VCVTPD2PS 0x31B
#define IDX_VCVTPS2DQ 0x31C
#define IDX_VCVTPS2PD 0x31D
#define IDX_VCVTSD2SI 0x31E
#define IDX_VCVTSD2SS 0x31F
#define IDX_VCVTSI2SD 0x320
#define IDX_VCVTSI2SS 0x321
#define IDX_VCVTSS2SD 0x322
#define IDX_VCVTSS2SI 0x323