• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|*                                                                            *|
3|*Assembly Writer Source Fragment                                             *|
4|*                                                                            *|
5|* Automatically generated file, do not edit!                                 *|
6|*                                                                            *|
7\*===----------------------------------------------------------------------===*/
8
9/* Capstone Disassembly Engine, http://www.capstone-engine.org */
10/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2015 */
11
12/// printInstruction - This method is automatically generated by tablegen
13/// from the instruction set description.
14static void printInstruction(MCInst *MI, SStream *O, MCRegisterInfo *MRI)
15{
16  static const uint32_t OpInfo[] = {
17    0U,	// PHI
18    0U,	// INLINEASM
19    0U,	// CFI_INSTRUCTION
20    0U,	// EH_LABEL
21    0U,	// GC_LABEL
22    0U,	// KILL
23    0U,	// EXTRACT_SUBREG
24    0U,	// INSERT_SUBREG
25    0U,	// IMPLICIT_DEF
26    0U,	// SUBREG_TO_REG
27    0U,	// COPY_TO_REGCLASS
28    2566U,	// DBG_VALUE
29    0U,	// REG_SEQUENCE
30    0U,	// COPY
31    2559U,	// BUNDLE
32    2622U,	// LIFETIME_START
33    2546U,	// LIFETIME_END
34    0U,	// STACKMAP
35    0U,	// PATCHPOINT
36    0U,	// LOAD_STACK_GUARD
37    2637U,	// AAA
38    4269U,	// AAD8i8
39    4749U,	// AAM8i8
40    3179U,	// AAS
41    2301U,	// ACQUIRE_MOV16rm
42    2301U,	// ACQUIRE_MOV32rm
43    2301U,	// ACQUIRE_MOV64rm
44    2301U,	// ACQUIRE_MOV8rm
45    5486U,	// ADC16i16
46    139395U,	// ADC16mi
47    139395U,	// ADC16mi8
48    139395U,	// ADC16mr
49    2240643U,	// ADC16ri
50    2240643U,	// ADC16ri8
51    4337795U,	// ADC16rm
52    2240643U,	// ADC16rr
53    2232451U,	// ADC16rr_REV
54    5622U,	// ADC32i32
55    147587U,	// ADC32mi
56    147587U,	// ADC32mi8
57    147587U,	// ADC32mr
58    2240643U,	// ADC32ri
59    2240643U,	// ADC32ri8
60    6434947U,	// ADC32rm
61    2240643U,	// ADC32rr
62    2232451U,	// ADC32rr_REV
63    5770U,	// ADC64i32
64    151683U,	// ADC64mi32
65    151683U,	// ADC64mi8
66    151683U,	// ADC64mr
67    2240643U,	// ADC64ri32
68    2240643U,	// ADC64ri8
69    8532099U,	// ADC64rm
70    2240643U,	// ADC64rr
71    2232451U,	// ADC64rr_REV
72    5384U,	// ADC8i8
73    155779U,	// ADC8mi
74    155779U,	// ADC8mr
75    2240643U,	// ADC8ri
76    10629251U,	// ADC8rm
77    2240643U,	// ADC8rr
78    2232451U,	// ADC8rr_REV
79    6427796U,	// ADCX32rm
80    2233492U,	// ADCX32rr
81    8524948U,	// ADCX64rm
82    2233492U,	// ADCX64rr
83    5495U,	// ADD16i16
84    139451U,	// ADD16mi
85    139451U,	// ADD16mi8
86    139451U,	// ADD16mr
87    2240699U,	// ADD16ri
88    2240699U,	// ADD16ri8
89    0U,	// ADD16ri8_DB
90    0U,	// ADD16ri_DB
91    4337851U,	// ADD16rm
92    2240699U,	// ADD16rr
93    0U,	// ADD16rr_DB
94    2232507U,	// ADD16rr_REV
95    5632U,	// ADD32i32
96    147643U,	// ADD32mi
97    147643U,	// ADD32mi8
98    147643U,	// ADD32mr
99    2240699U,	// ADD32ri
100    2240699U,	// ADD32ri8
101    0U,	// ADD32ri8_DB
102    0U,	// ADD32ri_DB
103    6435003U,	// ADD32rm
104    2240699U,	// ADD32rr
105    0U,	// ADD32rr_DB
106    2232507U,	// ADD32rr_REV
107    5780U,	// ADD64i32
108    151739U,	// ADD64mi32
109    151739U,	// ADD64mi8
110    151739U,	// ADD64mr
111    2240699U,	// ADD64ri32
112    0U,	// ADD64ri32_DB
113    2240699U,	// ADD64ri8
114    0U,	// ADD64ri8_DB
115    8532155U,	// ADD64rm
116    2240699U,	// ADD64rr
117    0U,	// ADD64rr_DB
118    2232507U,	// ADD64rr_REV
119    5393U,	// ADD8i8
120    155835U,	// ADD8mi
121    155835U,	// ADD8mr
122    2240699U,	// ADD8ri
123    2240699U,	// ADD8ri8
124    10629307U,	// ADD8rm
125    2240699U,	// ADD8rr
126    2232507U,	// ADD8rr_REV
127    2576U,	// ADJCALLSTACKDOWN32
128    2576U,	// ADJCALLSTACKDOWN64
129    2594U,	// ADJCALLSTACKUP32
130    2594U,	// ADJCALLSTACKUP64
131    12719270U,	// ADOX32rm
132    14816422U,	// ADOX32rr
133    16913574U,	// ADOX64rm
134    14816422U,	// ADOX64rr
135    5504U,	// AND16i16
136    139500U,	// AND16mi
137    139500U,	// AND16mi8
138    139500U,	// AND16mr
139    2240748U,	// AND16ri
140    2240748U,	// AND16ri8
141    4337900U,	// AND16rm
142    2240748U,	// AND16rr
143    2232556U,	// AND16rr_REV
144    5642U,	// AND32i32
145    147692U,	// AND32mi
146    147692U,	// AND32mi8
147    147692U,	// AND32mr
148    2240748U,	// AND32ri
149    2240748U,	// AND32ri8
150    6435052U,	// AND32rm
151    2240748U,	// AND32rr
152    2232556U,	// AND32rr_REV
153    5790U,	// AND64i32
154    151788U,	// AND64mi32
155    151788U,	// AND64mi8
156    151788U,	// AND64mr
157    2240748U,	// AND64ri32
158    2240748U,	// AND64ri8
159    8532204U,	// AND64rm
160    2240748U,	// AND64rr
161    2232556U,	// AND64rr_REV
162    5402U,	// AND8i8
163    155884U,	// AND8mi
164    155884U,	// AND8mr
165    2240748U,	// AND8ri
166    2240748U,	// AND8ri8
167    10629356U,	// AND8rm
168    2240748U,	// AND8rr
169    2232556U,	// AND8rr_REV
170    81924754U,	// ANDN32rm
171    350360210U,	// ANDN32rr
172    618795666U,	// ANDN64rm
173    350360210U,	// ANDN64rr
174    139887U,	// ARPL16mr
175    14815855U,	// ARPL16rr
176    885134227U,	// BEXTR32rm
177    350360467U,	// BEXTR32rr
178    889328531U,	// BEXTR64rm
179    350360467U,	// BEXTR64rr
180    885134227U,	// BEXTRI32mi
181    350360467U,	// BEXTRI32ri
182    889328531U,	// BEXTRI64mi
183    350360467U,	// BEXTRI64ri
184    12718680U,	// BLCFILL32rm
185    14815832U,	// BLCFILL32rr
186    16912984U,	// BLCFILL64rm
187    14815832U,	// BLCFILL64rr
188    12718613U,	// BLCI32rm
189    14815765U,	// BLCI32rr
190    16912917U,	// BLCI64rm
191    14815765U,	// BLCI64rr
192    12718221U,	// BLCIC32rm
193    14815373U,	// BLCIC32rr
194    16912525U,	// BLCIC64rm
195    14815373U,	// BLCIC64rr
196    12718631U,	// BLCMSK32rm
197    14815783U,	// BLCMSK32rr
198    16912935U,	// BLCMSK64rm
199    14815783U,	// BLCMSK64rr
200    12719010U,	// BLCS32rm
201    14816162U,	// BLCS32rr
202    16913314U,	// BLCS64rm
203    14816162U,	// BLCS64rr
204    12718689U,	// BLSFILL32rm
205    14815841U,	// BLSFILL32rr
206    16912993U,	// BLSFILL64rm
207    14815841U,	// BLSFILL64rr
208    12718625U,	// BLSI32rm
209    14815777U,	// BLSI32rr
210    16912929U,	// BLSI64rm
211    14815777U,	// BLSI64rr
212    12718228U,	// BLSIC32rm
213    14815380U,	// BLSIC32rr
214    16912532U,	// BLSIC64rm
215    14815380U,	// BLSIC64rr
216    12718639U,	// BLSMSK32rm
217    14815791U,	// BLSMSK32rr
218    16912943U,	// BLSMSK64rm
219    14815791U,	// BLSMSK64rr
220    12718974U,	// BLSR32rm
221    14816126U,	// BLSR32rr
222    16913278U,	// BLSR64rm
223    14816126U,	// BLSR64rr
224    12718321U,	// BOUNDS16rm
225    16912625U,	// BOUNDS32rm
226    19010013U,	// BSF16rm
227    14815709U,	// BSF16rr
228    12718557U,	// BSF32rm
229    14815709U,	// BSF32rr
230    16912861U,	// BSF64rm
231    14815709U,	// BSF64rr
232    19010425U,	// BSR16rm
233    14816121U,	// BSR16rr
234    12718969U,	// BSR32rm
235    14816121U,	// BSR32rr
236    16913273U,	// BSR64rm
237    14816121U,	// BSR64rr
238    4804U,	// BSWAP32r
239    4804U,	// BSWAP64r
240    140267U,	// BT16mi8
241    140267U,	// BT16mr
242    14816235U,	// BT16ri8
243    14816235U,	// BT16rr
244    148459U,	// BT32mi8
245    148459U,	// BT32mr
246    14816235U,	// BT32ri8
247    14816235U,	// BT32rr
248    152555U,	// BT64mi8
249    152555U,	// BT64mr
250    14816235U,	// BT64ri8
251    14816235U,	// BT64rr
252    139432U,	// BTC16mi8
253    139432U,	// BTC16mr
254    14815400U,	// BTC16ri8
255    14815400U,	// BTC16rr
256    147624U,	// BTC32mi8
257    147624U,	// BTC32mr
258    14815400U,	// BTC32ri8
259    14815400U,	// BTC32rr
260    151720U,	// BTC64mi8
261    151720U,	// BTC64mr
262    14815400U,	// BTC64ri8
263    14815400U,	// BTC64rr
264    140164U,	// BTR16mi8
265    140164U,	// BTR16mr
266    14816132U,	// BTR16ri8
267    14816132U,	// BTR16rr
268    148356U,	// BTR32mi8
269    148356U,	// BTR32mr
270    14816132U,	// BTR32ri8
271    14816132U,	// BTR32rr
272    152452U,	// BTR64mi8
273    152452U,	// BTR64mr
274    14816132U,	// BTR64ri8
275    14816132U,	// BTR64rr
276    140249U,	// BTS16mi8
277    140249U,	// BTS16mr
278    14816217U,	// BTS16ri8
279    14816217U,	// BTS16rr
280    148441U,	// BTS32mi8
281    148441U,	// BTS32mr
282    14816217U,	// BTS32ri8
283    14816217U,	// BTS32rr
284    152537U,	// BTS64mi8
285    152537U,	// BTS64mr
286    14816217U,	// BTS64ri8
287    14816217U,	// BTS64rr
288    885133851U,	// BZHI32rm
289    350360091U,	// BZHI32rr
290    889328155U,	// BZHI64rm
291    350360091U,	// BZHI64rr
292    8786U,	// CALL16m
293    4690U,	// CALL16r
294    16978U,	// CALL32m
295    4690U,	// CALL32r
296    21074U,	// CALL64m
297    29266U,	// CALL64pcrel32
298    4690U,	// CALL64r
299    29266U,	// CALLpcrel16
300    29266U,	// CALLpcrel32
301    3378U,	// CBW
302    3099U,	// CDQ
303    2853U,	// CDQE
304    2706U,	// CLAC
305    2738U,	// CLC
306    2788U,	// CLD
307    2944U,	// CLGI
308    2954U,	// CLI
309    3322U,	// CLTS
310    2742U,	// CMC
311    4329519U,	// CMOVA16rm
312    2232367U,	// CMOVA16rr
313    6426671U,	// CMOVA32rm
314    2232367U,	// CMOVA32rr
315    8523823U,	// CMOVA64rm
316    2232367U,	// CMOVA64rr
317    4329773U,	// CMOVAE16rm
318    2232621U,	// CMOVAE16rr
319    6426925U,	// CMOVAE32rm
320    2232621U,	// CMOVAE32rr
321    8524077U,	// CMOVAE64rm
322    2232621U,	// CMOVAE64rr
323    4329596U,	// CMOVB16rm
324    2232444U,	// CMOVB16rr
325    6426748U,	// CMOVB32rm
326    2232444U,	// CMOVB32rr
327    8523900U,	// CMOVB64rm
328    2232444U,	// CMOVB64rr
329    4329793U,	// CMOVBE16rm
330    2232641U,	// CMOVBE16rr
331    6426945U,	// CMOVBE32rm
332    2232641U,	// CMOVBE32rr
333    8524097U,	// CMOVBE64rm
334    2232641U,	// CMOVBE64rr
335    4329942U,	// CMOVE16rm
336    2232790U,	// CMOVE16rr
337    6427094U,	// CMOVE32rm
338    2232790U,	// CMOVE32rr
339    8524246U,	// CMOVE64rm
340    2232790U,	// CMOVE64rr
341    4329992U,	// CMOVG16rm
342    2232840U,	// CMOVG16rr
343    6427144U,	// CMOVG32rm
344    2232840U,	// CMOVG32rr
345    8524296U,	// CMOVG64rm
346    2232840U,	// CMOVG64rr
347    4329813U,	// CMOVGE16rm
348    2232661U,	// CMOVGE16rr
349    6426965U,	// CMOVGE32rm
350    2232661U,	// CMOVGE32rr
351    8524117U,	// CMOVGE64rm
352    2232661U,	// CMOVGE64rr
353    4330118U,	// CMOVL16rm
354    2232966U,	// CMOVL16rr
355    6427270U,	// CMOVL32rm
356    2232966U,	// CMOVL32rr
357    8524422U,	// CMOVL64rm
358    2232966U,	// CMOVL64rr
359    4329837U,	// CMOVLE16rm
360    2232685U,	// CMOVLE16rr
361    6426989U,	// CMOVLE32rm
362    2232685U,	// CMOVLE32rr
363    8524141U,	// CMOVLE64rm
364    2232685U,	// CMOVLE64rr
365    4329865U,	// CMOVNE16rm
366    2232713U,	// CMOVNE16rr
367    6427017U,	// CMOVNE32rm
368    2232713U,	// CMOVNE32rr
369    8524169U,	// CMOVNE64rm
370    2232713U,	// CMOVNE64rr
371    4330159U,	// CMOVNO16rm
372    2233007U,	// CMOVNO16rr
373    6427311U,	// CMOVNO32rm
374    2233007U,	// CMOVNO32rr
375    8524463U,	// CMOVNO64rm
376    2233007U,	// CMOVNO64rr
377    4330220U,	// CMOVNP16rm
378    2233068U,	// CMOVNP16rr
379    6427372U,	// CMOVNP32rm
380    2233068U,	// CMOVNP32rr
381    8524524U,	// CMOVNP64rm
382    2233068U,	// CMOVNP64rr
383    4330444U,	// CMOVNS16rm
384    2233292U,	// CMOVNS16rr
385    6427596U,	// CMOVNS32rm
386    2233292U,	// CMOVNS32rr
387    8524748U,	// CMOVNS64rm
388    2233292U,	// CMOVNS64rr
389    4330173U,	// CMOVO16rm
390    2233021U,	// CMOVO16rr
391    6427325U,	// CMOVO32rm
392    2233021U,	// CMOVO32rr
393    8524477U,	// CMOVO64rm
394    2233021U,	// CMOVO64rr
395    4330266U,	// CMOVP16rm
396    2233114U,	// CMOVP16rr
397    6427418U,	// CMOVP32rm
398    2233114U,	// CMOVP32rr
399    8524570U,	// CMOVP64rm
400    2233114U,	// CMOVP64rr
401    4330468U,	// CMOVS16rm
402    2233316U,	// CMOVS16rr
403    6427620U,	// CMOVS32rm
404    2233316U,	// CMOVS32rr
405    8524772U,	// CMOVS64rm
406    2233316U,	// CMOVS64rr
407    2105U,	// CMOV_FR32
408    2264U,	// CMOV_FR64
409    1984U,	// CMOV_GR16
410    1964U,	// CMOV_GR32
411    2283U,	// CMOV_GR8
412    2085U,	// CMOV_RFP32
413    2244U,	// CMOV_RFP64
414    2004U,	// CMOV_RFP80
415    2044U,	// CMOV_V16F32
416    2124U,	// CMOV_V2F64
417    2184U,	// CMOV_V2I64
418    2024U,	// CMOV_V4F32
419    2144U,	// CMOV_V4F64
420    2204U,	// CMOV_V4I64
421    2065U,	// CMOV_V8F32
422    2164U,	// CMOV_V8F64
423    2224U,	// CMOV_V8I64
424    5531U,	// CMP16i16
425    139989U,	// CMP16mi
426    139989U,	// CMP16mi8
427    139989U,	// CMP16mr
428    14815957U,	// CMP16ri
429    14815957U,	// CMP16ri8
430    19010261U,	// CMP16rm
431    14815957U,	// CMP16rr
432    14815957U,	// CMP16rr_REV
433    5696U,	// CMP32i32
434    148181U,	// CMP32mi
435    148181U,	// CMP32mi8
436    148181U,	// CMP32mr
437    14815957U,	// CMP32ri
438    14815957U,	// CMP32ri8
439    12718805U,	// CMP32rm
440    14815957U,	// CMP32rr
441    14815957U,	// CMP32rr_REV
442    5811U,	// CMP64i32
443    152277U,	// CMP64mi32
444    152277U,	// CMP64mi8
445    152277U,	// CMP64mr
446    14815957U,	// CMP64ri32
447    14815957U,	// CMP64ri8
448    16913109U,	// CMP64rm
449    14815957U,	// CMP64rr
450    14815957U,	// CMP64rr_REV
451    5419U,	// CMP8i8
452    156373U,	// CMP8mi
453    156373U,	// CMP8mr
454    14815957U,	// CMP8ri
455    21107413U,	// CMP8rm
456    14815957U,	// CMP8rr
457    14815957U,	// CMP8rr_REV
458    32867U,	// CMPSB
459    37131U,	// CMPSL
460    41775U,	// CMPSQ
461    46214U,	// CMPSW
462    49206U,	// CMPXCHG16B
463    139757U,	// CMPXCHG16rm
464    14815725U,	// CMPXCHG16rr
465    147949U,	// CMPXCHG32rm
466    14815725U,	// CMPXCHG32rr
467    152045U,	// CMPXCHG64rm
468    14815725U,	// CMPXCHG64rr
469    20546U,	// CMPXCHG8B
470    156141U,	// CMPXCHG8rm
471    14815725U,	// CMPXCHG8rr
472    2782U,	// CPUID32
473    2782U,	// CPUID64
474    3075U,	// CQO
475    2829U,	// CWD
476    2833U,	// CWDE
477    2641U,	// DAA
478    3183U,	// DAS
479    2531U,	// DATA16_PREFIX
480    8328U,	// DEC16m
481    4232U,	// DEC16r
482    4232U,	// DEC32_16r
483    4232U,	// DEC32_32r
484    16520U,	// DEC32m
485    4232U,	// DEC32r
486    8328U,	// DEC64_16m
487    4232U,	// DEC64_16r
488    16520U,	// DEC64_32m
489    4232U,	// DEC64_32r
490    20616U,	// DEC64m
491    4232U,	// DEC64r
492    24712U,	// DEC8m
493    4232U,	// DEC8r
494    9309U,	// DIV16m
495    5213U,	// DIV16r
496    17501U,	// DIV32m
497    5213U,	// DIV32r
498    21597U,	// DIV64m
499    5213U,	// DIV64r
500    25693U,	// DIV8m
501    5213U,	// DIV8r
502    5923U,	// EH_RETURN
503    5923U,	// EH_RETURN64
504    2354U,	// EH_SjLj_LongJmp32
505    2444U,	// EH_SjLj_LongJmp64
506    2373U,	// EH_SjLj_SetJmp32
507    2463U,	// EH_SjLj_SetJmp64
508    29450U,	// EH_SjLj_Setup
509    14816085U,	// ENTER
510    275025U,	// FARCALL16i
511    53841U,	// FARCALL16m
512    275025U,	// FARCALL32i
513    53841U,	// FARCALL32m
514    53841U,	// FARCALL64
515    275162U,	// FARJMP16i
516    53978U,	// FARJMP16m
517    275162U,	// FARJMP32i
518    53978U,	// FARJMP32m
519    53978U,	// FARJMP64
520    3037U,	// FSETPM
521    2726U,	// GETSEC
522    3347U,	// HLT
523    9308U,	// IDIV16m
524    5212U,	// IDIV16r
525    17500U,	// IDIV32m
526    5212U,	// IDIV32r
527    21596U,	// IDIV64m
528    5212U,	// IDIV64r
529    25692U,	// IDIV8m
530    5212U,	// IDIV8r
531    8832U,	// IMUL16m
532    4736U,	// IMUL16r
533    4330112U,	// IMUL16rm
534    891425408U,	// IMUL16rmi
535    891425408U,	// IMUL16rmi8
536    2232960U,	// IMUL16rr
537    350360192U,	// IMUL16rri
538    350360192U,	// IMUL16rri8
539    17024U,	// IMUL32m
540    4736U,	// IMUL32r
541    6427264U,	// IMUL32rm
542    885133952U,	// IMUL32rmi
543    885133952U,	// IMUL32rmi8
544    2232960U,	// IMUL32rr
545    350360192U,	// IMUL32rri
546    350360192U,	// IMUL32rri8
547    21120U,	// IMUL64m
548    4736U,	// IMUL64r
549    8524416U,	// IMUL64rm
550    889328256U,	// IMUL64rmi32
551    889328256U,	// IMUL64rmi8
552    2232960U,	// IMUL64rr
553    350360192U,	// IMUL64rri32
554    350360192U,	// IMUL64rri8
555    25216U,	// IMUL8m
556    4736U,	// IMUL8r
557    5523U,	// IN16ri
558    3544U,	// IN16rr
559    5687U,	// IN32ri
560    3554U,	// IN32rr
561    5411U,	// IN8ri
562    3534U,	// IN8rr
563    8355U,	// INC16m
564    4259U,	// INC16r
565    4259U,	// INC32_16r
566    4259U,	// INC32_32r
567    16547U,	// INC32m
568    4259U,	// INC32r
569    8355U,	// INC64_16m
570    4259U,	// INC64_16r
571    16547U,	// INC64_32m
572    4259U,	// INC64_32r
573    20643U,	// INC64m
574    4259U,	// INC64r
575    24739U,	// INC8m
576    4259U,	// INC8r
577    450646U,	// INSB
578    454910U,	// INSL
579    459897U,	// INSW
580    5158U,	// INT
581    2349U,	// INT1
582    2439U,	// INT3
583    3079U,	// INTO
584    2824U,	// INVD
585    23204912U,	// INVEPT32
586    23204912U,	// INVEPT64
587    25082U,	// INVLPG
588    3500U,	// INVLPGA32
589    3517U,	// INVLPGA64
590    23204040U,	// INVPCID32
591    23204040U,	// INVPCID64
592    23204049U,	// INVVPID32
593    23204049U,	// INVVPID64
594    3327U,	// IRET16
595    2812U,	// IRET32
596    3142U,	// IRET64
597    2610U,	// Int_MemBarrier
598    28961U,	// JAE_1
599    28961U,	// JAE_2
600    28961U,	// JAE_4
601    28709U,	// JA_1
602    28709U,	// JA_2
603    28709U,	// JA_4
604    28981U,	// JBE_1
605    28981U,	// JBE_2
606    28981U,	// JBE_4
607    28754U,	// JB_1
608    28754U,	// JB_2
609    28754U,	// JB_4
610    29907U,	// JCXZ
611    29900U,	// JECXZ_32
612    29900U,	// JECXZ_64
613    29021U,	// JE_1
614    29021U,	// JE_2
615    29021U,	// JE_4
616    29001U,	// JGE_1
617    29001U,	// JGE_2
618    29001U,	// JGE_4
619    29174U,	// JG_1
620    29174U,	// JG_2
621    29174U,	// JG_4
622    29025U,	// JLE_1
623    29025U,	// JLE_2
624    29025U,	// JLE_4
625    29261U,	// JL_1
626    29261U,	// JL_2
627    29261U,	// JL_4
628    8923U,	// JMP16m
629    4827U,	// JMP16r
630    17115U,	// JMP32m
631    4827U,	// JMP32r
632    21211U,	// JMP64m
633    4827U,	// JMP64r
634    29403U,	// JMP_1
635    29403U,	// JMP_2
636    29403U,	// JMP_4
637    29045U,	// JNE_1
638    29045U,	// JNE_2
639    29045U,	// JNE_4
640    29347U,	// JNO_1
641    29347U,	// JNO_2
642    29347U,	// JNO_4
643    29408U,	// JNP_1
644    29408U,	// JNP_2
645    29408U,	// JNP_4
646    29632U,	// JNS_1
647    29632U,	// JNS_2
648    29632U,	// JNS_4
649    29343U,	// JO_1
650    29343U,	// JO_2
651    29343U,	// JO_4
652    29393U,	// JP_1
653    29393U,	// JP_2
654    29393U,	// JP_4
655    29913U,	// JRCXZ
656    29628U,	// JS_1
657    29628U,	// JS_2
658    29628U,	// JS_4
659    2909U,	// LAHF
660    19010374U,	// LAR16rm
661    14816070U,	// LAR16rr
662    19010374U,	// LAR32rm
663    14816070U,	// LAR32rr
664    19010374U,	// LAR64rm
665    14816070U,	// LAR64rr
666    139757U,	// LCMPXCHG16
667    49206U,	// LCMPXCHG16B
668    147949U,	// LCMPXCHG32
669    152045U,	// LCMPXCHG64
670    156141U,	// LCMPXCHG8
671    20546U,	// LCMPXCHG8B
672    25301928U,	// LDS16rm
673    25301928U,	// LDS32rm
674    19009568U,	// LEA16r
675    12718112U,	// LEA32r
676    12718112U,	// LEA64_32r
677    16912416U,	// LEA64r
678    2896U,	// LEAVE
679    2896U,	// LEAVE64
680    25301933U,	// LES16rm
681    25301933U,	// LES32rm
682    25301938U,	// LFS16rm
683    25301938U,	// LFS32rm
684    25301938U,	// LFS64rm
685    54255U,	// LGDT16m
686    54255U,	// LGDT32m
687    54255U,	// LGDT64m
688    25301943U,	// LGS16rm
689    25301943U,	// LGS32rm
690    25301943U,	// LGS64rm
691    54267U,	// LIDT16m
692    54267U,	// LIDT32m
693    54267U,	// LIDT64m
694    9223U,	// LLDT16m
695    5127U,	// LLDT16r
696    9325U,	// LMSW16m
697    5229U,	// LMSW16r
698    139451U,	// LOCK_ADD16mi
699    139451U,	// LOCK_ADD16mi8
700    139451U,	// LOCK_ADD16mr
701    147643U,	// LOCK_ADD32mi
702    147643U,	// LOCK_ADD32mi8
703    147643U,	// LOCK_ADD32mr
704    151739U,	// LOCK_ADD64mi32
705    151739U,	// LOCK_ADD64mi8
706    151739U,	// LOCK_ADD64mr
707    155835U,	// LOCK_ADD8mi
708    155835U,	// LOCK_ADD8mr
709    139500U,	// LOCK_AND16mi
710    139500U,	// LOCK_AND16mi8
711    139500U,	// LOCK_AND16mr
712    147692U,	// LOCK_AND32mi
713    147692U,	// LOCK_AND32mi8
714    147692U,	// LOCK_AND32mr
715    151788U,	// LOCK_AND64mi32
716    151788U,	// LOCK_AND64mi8
717    151788U,	// LOCK_AND64mr
718    155884U,	// LOCK_AND8mi
719    155884U,	// LOCK_AND8mr
720    8328U,	// LOCK_DEC16m
721    16520U,	// LOCK_DEC32m
722    20616U,	// LOCK_DEC64m
723    24712U,	// LOCK_DEC8m
724    8355U,	// LOCK_INC16m
725    16547U,	// LOCK_INC32m
726    20643U,	// LOCK_INC64m
727    24739U,	// LOCK_INC8m
728    140130U,	// LOCK_OR16mi
729    140130U,	// LOCK_OR16mi8
730    140130U,	// LOCK_OR16mr
731    148322U,	// LOCK_OR32mi
732    148322U,	// LOCK_OR32mi8
733    148322U,	// LOCK_OR32mr
734    152418U,	// LOCK_OR64mi32
735    152418U,	// LOCK_OR64mi8
736    152418U,	// LOCK_OR64mr
737    156514U,	// LOCK_OR8mi
738    156514U,	// LOCK_OR8mr
739    2977U,	// LOCK_PREFIX
740    139383U,	// LOCK_SUB16mi
741    139383U,	// LOCK_SUB16mi8
742    139383U,	// LOCK_SUB16mr
743    147575U,	// LOCK_SUB32mi
744    147575U,	// LOCK_SUB32mi8
745    147575U,	// LOCK_SUB32mr
746    151671U,	// LOCK_SUB64mi32
747    151671U,	// LOCK_SUB64mi8
748    151671U,	// LOCK_SUB64mr
749    155767U,	// LOCK_SUB8mi
750    155767U,	// LOCK_SUB8mr
751    140142U,	// LOCK_XOR16mi
752    140142U,	// LOCK_XOR16mi8
753    140142U,	// LOCK_XOR16mr
754    148334U,	// LOCK_XOR32mi
755    148334U,	// LOCK_XOR32mi8
756    148334U,	// LOCK_XOR32mr
757    152430U,	// LOCK_XOR64mi32
758    152430U,	// LOCK_XOR64mi8
759    152430U,	// LOCK_XOR64mr
760    156526U,	// LOCK_XOR8mi
761    156526U,	// LOCK_XOR8mr
762    70900U,	// LODSB
763    75296U,	// LODSL
764    79561U,	// LODSQ
765    83415U,	// LODSW
766    29433U,	// LOOP
767    29073U,	// LOOPE
768    29050U,	// LOOPNE
769    4578U,	// LRETIL
770    4897U,	// LRETIQ
771    4578U,	// LRETIW
772    2930U,	// LRETL
773    3116U,	// LRETQ
774    2930U,	// LRETW
775    19010165U,	// LSL16rm
776    14815861U,	// LSL16rr
777    12718709U,	// LSL32rm
778    14815861U,	// LSL32rr
779    16913013U,	// LSL64rm
780    14815861U,	// LSL64rr
781    25301972U,	// LSS16rm
782    25301972U,	// LSS32rm
783    25301972U,	// LSS64rm
784    9097U,	// LTRm
785    5001U,	// LTRr
786    86202U,	// LXADD16
787    90298U,	// LXADD32
788    94394U,	// LXADD64
789    98490U,	// LXADD8
790    19010584U,	// LZCNT16rm
791    14816280U,	// LZCNT16rr
792    12719128U,	// LZCNT32rm
793    14816280U,	// LZCNT32rr
794    16913432U,	// LZCNT64rm
795    14816280U,	// LZCNT64rr
796    3029U,	// MONTMUL
797    0U,	// MORESTACK_RET
798    0U,	// MORESTACK_RET_RESTORE_R10
799    627810U,	// MOV16ao16
800    627810U,	// MOV16ao16_16
801    140386U,	// MOV16mi
802    140386U,	// MOV16mr
803    140386U,	// MOV16ms
804    103875U,	// MOV16o16a
805    103875U,	// MOV16o16a_16
806    14816354U,	// MOV16ri
807    14816354U,	// MOV16ri_alt
808    19010658U,	// MOV16rm
809    14816354U,	// MOV16rr
810    14816354U,	// MOV16rr_REV
811    14816354U,	// MOV16rs
812    19010658U,	// MOV16sm
813    14816354U,	// MOV16sr
814    762978U,	// MOV32ao32
815    762978U,	// MOV32ao32_16
816    14816354U,	// MOV32cr
817    14816354U,	// MOV32dr
818    148578U,	// MOV32mi
819    148578U,	// MOV32mr
820    140386U,	// MOV32ms
821    108140U,	// MOV32o32a
822    108140U,	// MOV32o32a_16
823    0U,	// MOV32r0
824    14816354U,	// MOV32rc
825    14816354U,	// MOV32rd
826    14816354U,	// MOV32ri
827    0U,	// MOV32ri64
828    14816354U,	// MOV32ri_alt
829    12719202U,	// MOV32rm
830    14816354U,	// MOV32rr
831    14816354U,	// MOV32rr_REV
832    14816354U,	// MOV32rs
833    19010658U,	// MOV32sm
834    14816354U,	// MOV32sr
835    627610U,	// MOV64ao16
836    762778U,	// MOV64ao32
837    897946U,	// MOV64ao64
838    1033114U,	// MOV64ao8
839    14816354U,	// MOV64cr
840    14816354U,	// MOV64dr
841    152674U,	// MOV64mi32
842    152674U,	// MOV64mr
843    140386U,	// MOV64ms
844    103853U,	// MOV64o16a
845    108116U,	// MOV64o32a
846    112351U,	// MOV64o64a
847    116029U,	// MOV64o8a
848    14816354U,	// MOV64rc
849    14816354U,	// MOV64rd
850    14816154U,	// MOV64ri
851    14816354U,	// MOV64ri32
852    16913506U,	// MOV64rm
853    14816354U,	// MOV64rr
854    14816354U,	// MOV64rr_REV
855    14816354U,	// MOV64rs
856    19010658U,	// MOV64sm
857    14816354U,	// MOV64sr
858    1033314U,	// MOV8ao8
859    1033314U,	// MOV8ao8_16
860    156770U,	// MOV8mi
861    156770U,	// MOV8mr
862    134374498U,	// MOV8mr_NOREX
863    116051U,	// MOV8o8a
864    116051U,	// MOV8o8a_16
865    14816354U,	// MOV8ri
866    14816354U,	// MOV8ri_alt
867    21107810U,	// MOV8rm
868    155325538U,	// MOV8rm_NOREX
869    14816354U,	// MOV8rr
870    149034082U,	// MOV8rr_NOREX
871    14816354U,	// MOV8rr_REV
872    139586U,	// MOVBE16mr
873    19009858U,	// MOVBE16rm
874    147778U,	// MOVBE32mr
875    12718402U,	// MOVBE32rm
876    151874U,	// MOVBE64mr
877    16912706U,	// MOVBE64rm
878    0U,	// MOVPC32r
879    27451498U,	// MOVSB
880    29552914U,	// MOVSL
881    31707958U,	// MOVSQ
882    33752205U,	// MOVSW
883    21107902U,	// MOVSX16rm8
884    14816446U,	// MOVSX16rr8
885    19010750U,	// MOVSX32rm16
886    21107902U,	// MOVSX32rm8
887    14816446U,	// MOVSX32rr16
888    14816446U,	// MOVSX32rr8
889    14815513U,	// MOVSX64_NOREXrr32
890    19010750U,	// MOVSX64rm16
891    12718361U,	// MOVSX64rm32
892    21107902U,	// MOVSX64rm8
893    14816446U,	// MOVSX64rr16
894    14815513U,	// MOVSX64rr32
895    14816446U,	// MOVSX64rr8
896    21107909U,	// MOVZX16rm8
897    14816453U,	// MOVZX16rr8
898    21107909U,	// MOVZX32_NOREXrm8
899    14816453U,	// MOVZX32_NOREXrr8
900    19010757U,	// MOVZX32rm16
901    21107909U,	// MOVZX32rm8
902    14816453U,	// MOVZX32rr16
903    14816453U,	// MOVZX32rr8
904    19010757U,	// MOVZX64rm16_Q
905    21107909U,	// MOVZX64rm8_Q
906    14816453U,	// MOVZX64rr16_Q
907    14816453U,	// MOVZX64rr8_Q
908    8833U,	// MUL16m
909    4737U,	// MUL16r
910    17025U,	// MUL32m
911    4737U,	// MUL32r
912    21121U,	// MUL64m
913    4737U,	// MUL64r
914    25217U,	// MUL8m
915    4737U,	// MUL8r
916    81925280U,	// MULX32rm
917    350360736U,	// MULX32rr
918    618796192U,	// MULX64rm
919    350360736U,	// MULX64rr
920    8680U,	// NEG16m
921    4584U,	// NEG16r
922    16872U,	// NEG32m
923    4584U,	// NEG32r
924    20968U,	// NEG64m
925    4584U,	// NEG64r
926    25064U,	// NEG8m
927    4584U,	// NEG8r
928    3095U,	// NOOP
929    8948U,	// NOOP18_16m4
930    8948U,	// NOOP18_16m5
931    8948U,	// NOOP18_16m6
932    8948U,	// NOOP18_16m7
933    4852U,	// NOOP18_16r4
934    4852U,	// NOOP18_16r5
935    4852U,	// NOOP18_16r6
936    4852U,	// NOOP18_16r7
937    17140U,	// NOOP18_m4
938    17140U,	// NOOP18_m5
939    17140U,	// NOOP18_m6
940    17140U,	// NOOP18_m7
941    4852U,	// NOOP18_r4
942    4852U,	// NOOP18_r5
943    4852U,	// NOOP18_r6
944    4852U,	// NOOP18_r7
945    35795700U,	// NOOP19rr
946    17140U,	// NOOPL
947    17140U,	// NOOPL_19
948    17140U,	// NOOPL_1a
949    17140U,	// NOOPL_1b
950    17140U,	// NOOPL_1c
951    17140U,	// NOOPL_1d
952    17140U,	// NOOPL_1e
953    8948U,	// NOOPW
954    8948U,	// NOOPW_19
955    8948U,	// NOOPW_1a
956    8948U,	// NOOPW_1b
957    8948U,	// NOOPW_1c
958    8948U,	// NOOPW_1d
959    8948U,	// NOOPW_1e
960    9259U,	// NOT16m
961    5163U,	// NOT16r
962    17451U,	// NOT32m
963    5163U,	// NOT32r
964    21547U,	// NOT64m
965    5163U,	// NOT64r
966    25643U,	// NOT8m
967    5163U,	// NOT8r
968    5541U,	// OR16i16
969    140130U,	// OR16mi
970    140130U,	// OR16mi8
971    140130U,	// OR16mr
972    2241378U,	// OR16ri
973    2241378U,	// OR16ri8
974    4338530U,	// OR16rm
975    2241378U,	// OR16rr
976    2233186U,	// OR16rr_REV
977    5707U,	// OR32i32
978    148322U,	// OR32mi
979    148322U,	// OR32mi8
980    148322U,	// OR32mr
981    148322U,	// OR32mrLocked
982    2241378U,	// OR32ri
983    2241378U,	// OR32ri8
984    6435682U,	// OR32rm
985    2241378U,	// OR32rr
986    2233186U,	// OR32rr_REV
987    5846U,	// OR64i32
988    152418U,	// OR64mi32
989    152418U,	// OR64mi8
990    152418U,	// OR64mr
991    2241378U,	// OR64ri32
992    2241378U,	// OR64ri8
993    8532834U,	// OR64rm
994    2241378U,	// OR64rr
995    2233186U,	// OR64rr_REV
996    5429U,	// OR8i8
997    156514U,	// OR8mi
998    156514U,	// OR8mr
999    2241378U,	// OR8ri
1000    2241378U,	// OR8ri8
1001    10629986U,	// OR8rm
1002    2241378U,	// OR8rr
1003    2233186U,	// OR8rr_REV
1004    529489U,	// OUT16ir
1005    3402U,	// OUT16rr
1006    660561U,	// OUT32ir
1007    3456U,	// OUT32rr
1008    922705U,	// OUT8ir
1009    2982U,	// OUT8rr
1010    71415U,	// OUTSB
1011    75522U,	// OUTSL
1012    83725U,	// OUTSW
1013    81924811U,	// PDEP32rm
1014    350360267U,	// PDEP32rr
1015    618795723U,	// PDEP64rm
1016    350360267U,	// PDEP64rr
1017    81925206U,	// PEXT32rm
1018    350360662U,	// PEXT32rr
1019    618796118U,	// PEXT64rm
1020    350360662U,	// PEXT64rr
1021    4863U,	// POP16r
1022    8959U,	// POP16rmm
1023    4863U,	// POP16rmr
1024    4863U,	// POP32r
1025    17151U,	// POP32rmm
1026    4863U,	// POP32rmr
1027    4863U,	// POP64r
1028    21247U,	// POP64rmm
1029    4863U,	// POP64rmr
1030    3372U,	// POPA16
1031    3000U,	// POPA32
1032    3203U,	// POPDS16
1033    3203U,	// POPDS32
1034    3218U,	// POPES16
1035    3218U,	// POPES32
1036    2925U,	// POPF16
1037    2776U,	// POPF32
1038    3110U,	// POPF64
1039    3233U,	// POPFS16
1040    3233U,	// POPFS32
1041    3233U,	// POPFS64
1042    3248U,	// POPGS16
1043    3248U,	// POPGS32
1044    3248U,	// POPGS64
1045    3315U,	// POPSS16
1046    3315U,	// POPSS32
1047    4623U,	// PUSH16i8
1048    4623U,	// PUSH16r
1049    8719U,	// PUSH16rmm
1050    4623U,	// PUSH16rmr
1051    4623U,	// PUSH32i8
1052    4623U,	// PUSH32r
1053    16911U,	// PUSH32rmm
1054    4623U,	// PUSH32rmr
1055    4623U,	// PUSH64i16
1056    4623U,	// PUSH64i32
1057    4623U,	// PUSH64i8
1058    4623U,	// PUSH64r
1059    21007U,	// PUSH64rmm
1060    4623U,	// PUSH64rmr
1061    3365U,	// PUSHA16
1062    2993U,	// PUSHA32
1063    3187U,	// PUSHCS16
1064    3187U,	// PUSHCS32
1065    3195U,	// PUSHDS16
1066    3195U,	// PUSHDS32
1067    3210U,	// PUSHES16
1068    3210U,	// PUSHES32
1069    2919U,	// PUSHF16
1070    2769U,	// PUSHF32
1071    3103U,	// PUSHF64
1072    3225U,	// PUSHFS16
1073    3225U,	// PUSHFS32
1074    3225U,	// PUSHFS64
1075    3240U,	// PUSHGS16
1076    3240U,	// PUSHGS32
1077    3240U,	// PUSHGS64
1078    3307U,	// PUSHSS16
1079    3307U,	// PUSHSS32
1080    4623U,	// PUSHi16
1081    4623U,	// PUSHi32
1082    1057347U,	// RCL16m1
1083    1188419U,	// RCL16mCL
1084    139843U,	// RCL16mi
1085    1053251U,	// RCL16r1
1086    1184323U,	// RCL16rCL
1087    2232899U,	// RCL16ri
1088    1065539U,	// RCL32m1
1089    1196611U,	// RCL32mCL
1090    148035U,	// RCL32mi
1091    1053251U,	// RCL32r1
1092    1184323U,	// RCL32rCL
1093    2232899U,	// RCL32ri
1094    1069635U,	// RCL64m1
1095    1200707U,	// RCL64mCL
1096    152131U,	// RCL64mi
1097    1053251U,	// RCL64r1
1098    1184323U,	// RCL64rCL
1099    2232899U,	// RCL64ri
1100    1073731U,	// RCL8m1
1101    1204803U,	// RCL8mCL
1102    156227U,	// RCL8mi
1103    1053251U,	// RCL8r1
1104    1184323U,	// RCL8rCL
1105    2232899U,	// RCL8ri
1106    1057616U,	// RCR16m1
1107    1188688U,	// RCR16mCL
1108    140112U,	// RCR16mi
1109    1053520U,	// RCR16r1
1110    1184592U,	// RCR16rCL
1111    2233168U,	// RCR16ri
1112    1065808U,	// RCR32m1
1113    1196880U,	// RCR32mCL
1114    148304U,	// RCR32mi
1115    1053520U,	// RCR32r1
1116    1184592U,	// RCR32rCL
1117    2233168U,	// RCR32ri
1118    1069904U,	// RCR64m1
1119    1200976U,	// RCR64mCL
1120    152400U,	// RCR64mi
1121    1053520U,	// RCR64r1
1122    1184592U,	// RCR64rCL
1123    2233168U,	// RCR64ri
1124    1074000U,	// RCR8m1
1125    1205072U,	// RCR8mCL
1126    156496U,	// RCR8mi
1127    1053520U,	// RCR8r1
1128    1184592U,	// RCR8rCL
1129    2233168U,	// RCR8ri
1130    4504U,	// RDFSBASE
1131    4504U,	// RDFSBASE64
1132    4524U,	// RDGSBASE
1133    4524U,	// RDGSBASE64
1134    3157U,	// RDMSR
1135    2746U,	// RDPMC
1136    4329U,	// RDRAND16r
1137    4329U,	// RDRAND32r
1138    4329U,	// RDRAND64r
1139    4288U,	// RDSEED16r
1140    4288U,	// RDSEED32r
1141    4288U,	// RDSEED64r
1142    2759U,	// RDTSC
1143    3084U,	// RDTSCP
1144    2322U,	// RELEASE_MOV16mr
1145    2322U,	// RELEASE_MOV32mr
1146    2322U,	// RELEASE_MOV64mr
1147    2322U,	// RELEASE_MOV8mr
1148    2847U,	// REPNE_PREFIX
1149    2690U,	// REP_MOVSB_32
1150    2690U,	// REP_MOVSB_64
1151    2802U,	// REP_MOVSD_32
1152    2802U,	// REP_MOVSD_64
1153    3132U,	// REP_MOVSQ_64
1154    3392U,	// REP_MOVSW_32
1155    3392U,	// REP_MOVSW_64
1156    3091U,	// REP_PREFIX
1157    2680U,	// REP_STOSB_32
1158    2680U,	// REP_STOSB_64
1159    2792U,	// REP_STOSD_32
1160    2792U,	// REP_STOSD_64
1161    3122U,	// REP_STOSQ_64
1162    3382U,	// REP_STOSW_32
1163    3382U,	// REP_STOSW_64
1164    5139U,	// RETIL
1165    5139U,	// RETIQ
1166    5139U,	// RETIW
1167    3328U,	// RETL
1168    3328U,	// RETQ
1169    3328U,	// RETW
1170    2525U,	// REX64_PREFIX
1171    1057386U,	// ROL16m1
1172    1188458U,	// ROL16mCL
1173    139882U,	// ROL16mi
1174    1053290U,	// ROL16r1
1175    1184362U,	// ROL16rCL
1176    2232938U,	// ROL16ri
1177    1065578U,	// ROL32m1
1178    1196650U,	// ROL32mCL
1179    148074U,	// ROL32mi
1180    1053290U,	// ROL32r1
1181    1184362U,	// ROL32rCL
1182    2232938U,	// ROL32ri
1183    1069674U,	// ROL64m1
1184    1200746U,	// ROL64mCL
1185    152170U,	// ROL64mi
1186    1053290U,	// ROL64r1
1187    1184362U,	// ROL64rCL
1188    2232938U,	// ROL64ri
1189    1073770U,	// ROL8m1
1190    1204842U,	// ROL8mCL
1191    156266U,	// ROL8mi
1192    1053290U,	// ROL8r1
1193    1184362U,	// ROL8rCL
1194    2232938U,	// ROL8ri
1195    1057633U,	// ROR16m1
1196    1188705U,	// ROR16mCL
1197    140129U,	// ROR16mi
1198    1053537U,	// ROR16r1
1199    1184609U,	// ROR16rCL
1200    2233185U,	// ROR16ri
1201    1065825U,	// ROR32m1
1202    1196897U,	// ROR32mCL
1203    148321U,	// ROR32mi
1204    1053537U,	// ROR32r1
1205    1184609U,	// ROR32rCL
1206    2233185U,	// ROR32ri
1207    1069921U,	// ROR64m1
1208    1200993U,	// ROR64mCL
1209    152417U,	// ROR64mi
1210    1053537U,	// ROR64r1
1211    1184609U,	// ROR64rCL
1212    2233185U,	// ROR64ri
1213    1074017U,	// ROR8m1
1214    1205089U,	// ROR8mCL
1215    156513U,	// ROR8mi
1216    1053537U,	// ROR8r1
1217    1184609U,	// ROR8rCL
1218    2233185U,	// ROR8ri
1219    885134520U,	// RORX32mi
1220    350360760U,	// RORX32ri
1221    889328824U,	// RORX64mi
1222    350360760U,	// RORX64ri
1223    3044U,	// RSM
1224    2914U,	// SAHF
1225    1057342U,	// SAL16m1
1226    1188414U,	// SAL16mCL
1227    139838U,	// SAL16mi
1228    1053246U,	// SAL16r1
1229    1184318U,	// SAL16rCL
1230    2232894U,	// SAL16ri
1231    1065534U,	// SAL32m1
1232    1196606U,	// SAL32mCL
1233    148030U,	// SAL32mi
1234    1053246U,	// SAL32r1
1235    1184318U,	// SAL32rCL
1236    2232894U,	// SAL32ri
1237    1069630U,	// SAL64m1
1238    1200702U,	// SAL64mCL
1239    152126U,	// SAL64mi
1240    1053246U,	// SAL64r1
1241    1184318U,	// SAL64rCL
1242    2232894U,	// SAL64ri
1243    1073726U,	// SAL8m1
1244    1204798U,	// SAL8mCL
1245    156222U,	// SAL8mi
1246    1053246U,	// SAL8r1
1247    1184318U,	// SAL8rCL
1248    2232894U,	// SAL8ri
1249    2733U,	// SALC
1250    1057611U,	// SAR16m1
1251    1188683U,	// SAR16mCL
1252    140107U,	// SAR16mi
1253    1053515U,	// SAR16r1
1254    1184587U,	// SAR16rCL
1255    2233163U,	// SAR16ri
1256    1065803U,	// SAR32m1
1257    1196875U,	// SAR32mCL
1258    148299U,	// SAR32mi
1259    1053515U,	// SAR32r1
1260    1184587U,	// SAR32rCL
1261    2233163U,	// SAR32ri
1262    1069899U,	// SAR64m1
1263    1200971U,	// SAR64mCL
1264    152395U,	// SAR64mi
1265    1053515U,	// SAR64r1
1266    1184587U,	// SAR64rCL
1267    2233163U,	// SAR64ri
1268    1073995U,	// SAR8m1
1269    1205067U,	// SAR8mCL
1270    156491U,	// SAR8mi
1271    1053515U,	// SAR8r1
1272    1184587U,	// SAR8rCL
1273    2233163U,	// SAR8ri
1274    885134508U,	// SARX32rm
1275    350360748U,	// SARX32rr
1276    889328812U,	// SARX64rm
1277    350360748U,	// SARX64rr
1278    5468U,	// SBB16i16
1279    139341U,	// SBB16mi
1280    139341U,	// SBB16mi8
1281    139341U,	// SBB16mr
1282    2240589U,	// SBB16ri
1283    2240589U,	// SBB16ri8
1284    4337741U,	// SBB16rm
1285    2240589U,	// SBB16rr
1286    2232397U,	// SBB16rr_REV
1287    5602U,	// SBB32i32
1288    147533U,	// SBB32mi
1289    147533U,	// SBB32mi8
1290    147533U,	// SBB32mr
1291    2240589U,	// SBB32ri
1292    2240589U,	// SBB32ri8
1293    6434893U,	// SBB32rm
1294    2240589U,	// SBB32rr
1295    2232397U,	// SBB32rr_REV
1296    5750U,	// SBB64i32
1297    151629U,	// SBB64mi32
1298    151629U,	// SBB64mi8
1299    151629U,	// SBB64mr
1300    2240589U,	// SBB64ri32
1301    2240589U,	// SBB64ri8
1302    8532045U,	// SBB64rm
1303    2240589U,	// SBB64rr
1304    2232397U,	// SBB64rr_REV
1305    5344U,	// SBB8i8
1306    155725U,	// SBB8mi
1307    155725U,	// SBB8mr
1308    2240589U,	// SBB8ri
1309    10629197U,	// SBB8rm
1310    2240589U,	// SBB8rr
1311    2232397U,	// SBB8rr_REV
1312    58601U,	// SCASB
1313    62996U,	// SCASL
1314    120509U,	// SCASQ
1315    67020U,	// SCASW
1316    3262U,	// SEG_ALLOCA_32
1317    3262U,	// SEG_ALLOCA_64
1318    2879U,	// SEH_EndPrologue
1319    2865U,	// SEH_Epilogue
1320    6001U,	// SEH_PushFrame
1321    6046U,	// SEH_PushReg
1322    14817168U,	// SEH_SaveReg
1323    14817082U,	// SEH_SaveXMM
1324    14817153U,	// SEH_SetFrame
1325    5984U,	// SEH_StackAlloc
1326    24870U,	// SETAEm
1327    4390U,	// SETAEr
1328    24617U,	// SETAm
1329    4137U,	// SETAr
1330    24890U,	// SETBEm
1331    4410U,	// SETBEr
1332    0U,	// SETB_C16r
1333    0U,	// SETB_C32r
1334    0U,	// SETB_C64r
1335    0U,	// SETB_C8r
1336    24689U,	// SETBm
1337    4209U,	// SETBr
1338    25024U,	// SETEm
1339    4544U,	// SETEr
1340    24910U,	// SETGEm
1341    4430U,	// SETGEr
1342    25090U,	// SETGm
1343    4610U,	// SETGr
1344    24934U,	// SETLEm
1345    4454U,	// SETLEr
1346    25210U,	// SETLm
1347    4730U,	// SETLr
1348    24962U,	// SETNEm
1349    4482U,	// SETNEr
1350    25256U,	// SETNOm
1351    4776U,	// SETNOr
1352    25317U,	// SETNPm
1353    4837U,	// SETNPr
1354    25541U,	// SETNSm
1355    5061U,	// SETNSr
1356    25271U,	// SETOm
1357    4791U,	// SETOr
1358    25348U,	// SETPm
1359    4868U,	// SETPr
1360    25566U,	// SETSm
1361    5086U,	// SETSr
1362    54261U,	// SGDT16m
1363    54261U,	// SGDT32m
1364    54261U,	// SGDT64m
1365    1057352U,	// SHL16m1
1366    1188424U,	// SHL16mCL
1367    139848U,	// SHL16mi
1368    1053256U,	// SHL16r1
1369    1184328U,	// SHL16rCL
1370    2232904U,	// SHL16ri
1371    1065544U,	// SHL32m1
1372    1196616U,	// SHL32mCL
1373    148040U,	// SHL32mi
1374    1053256U,	// SHL32r1
1375    1184328U,	// SHL32rCL
1376    2232904U,	// SHL32ri
1377    1069640U,	// SHL64m1
1378    1200712U,	// SHL64mCL
1379    152136U,	// SHL64mi
1380    1053256U,	// SHL64r1
1381    1184328U,	// SHL64rCL
1382    2232904U,	// SHL64ri
1383    1073736U,	// SHL8m1
1384    1204808U,	// SHL8mCL
1385    156232U,	// SHL8mi
1386    1053256U,	// SHL8r1
1387    1184328U,	// SHL8rCL
1388    2232904U,	// SHL8ri
1389    201466074U,	// SHLD16mrCL
1390    872554714U,	// SHLD16mri8
1391    203559130U,	// SHLD16rrCL
1392    1143083226U,	// SHLD16rri8
1393    201474266U,	// SHLD32mrCL
1394    872562906U,	// SHLD32mri8
1395    203559130U,	// SHLD32rrCL
1396    1143083226U,	// SHLD32rri8
1397    201478362U,	// SHLD64mrCL
1398    872567002U,	// SHLD64mri8
1399    203559130U,	// SHLD64rrCL
1400    1143083226U,	// SHLD64rri8
1401    885134490U,	// SHLX32rm
1402    350360730U,	// SHLX32rr
1403    889328794U,	// SHLX64rm
1404    350360730U,	// SHLX64rr
1405    1057628U,	// SHR16m1
1406    1188700U,	// SHR16mCL
1407    140124U,	// SHR16mi
1408    1053532U,	// SHR16r1
1409    1184604U,	// SHR16rCL
1410    2233180U,	// SHR16ri
1411    1065820U,	// SHR32m1
1412    1196892U,	// SHR32mCL
1413    148316U,	// SHR32mi
1414    1053532U,	// SHR32r1
1415    1184604U,	// SHR32rCL
1416    2233180U,	// SHR32ri
1417    1069916U,	// SHR64m1
1418    1200988U,	// SHR64mCL
1419    152412U,	// SHR64mi
1420    1053532U,	// SHR64r1
1421    1184604U,	// SHR64rCL
1422    2233180U,	// SHR64ri
1423    1074012U,	// SHR8m1
1424    1205084U,	// SHR8mCL
1425    156508U,	// SHR8mi
1426    1053532U,	// SHR8r1
1427    1184604U,	// SHR8rCL
1428    2233180U,	// SHR8ri
1429    201466104U,	// SHRD16mrCL
1430    872554744U,	// SHRD16mri8
1431    203559160U,	// SHRD16rrCL
1432    1143083256U,	// SHRD16rri8
1433    201474296U,	// SHRD32mrCL
1434    872562936U,	// SHRD32mri8
1435    203559160U,	// SHRD32rrCL
1436    1143083256U,	// SHRD32rri8
1437    201478392U,	// SHRD64mrCL
1438    872567032U,	// SHRD64mri8
1439    203559160U,	// SHRD64rrCL
1440    1143083256U,	// SHRD64rri8
1441    885134514U,	// SHRX32rm
1442    350360754U,	// SHRX32rr
1443    889328818U,	// SHRX64rm
1444    350360754U,	// SHRX64rr
1445    54273U,	// SIDT16m
1446    54273U,	// SIDT32m
1447    54273U,	// SIDT64m
1448    3445U,	// SKINIT
1449    9229U,	// SLDT16m
1450    5133U,	// SLDT16r
1451    5133U,	// SLDT32r
1452    9229U,	// SLDT64m
1453    5133U,	// SLDT64r
1454    9331U,	// SMSW16m
1455    5235U,	// SMSW16r
1456    5235U,	// SMSW32r
1457    5235U,	// SMSW64r
1458    2711U,	// STAC
1459    2765U,	// STC
1460    2818U,	// STD
1461    2949U,	// STGI
1462    2958U,	// STI
1463    974940U,	// STOSB
1464    717060U,	// STOSL
1465    906024U,	// STOSQ
1466    590975U,	// STOSW
1467    5006U,	// STR16r
1468    5006U,	// STR32r
1469    5006U,	// STR64r
1470    9102U,	// STRm
1471    5477U,	// SUB16i16
1472    139383U,	// SUB16mi
1473    139383U,	// SUB16mi8
1474    139383U,	// SUB16mr
1475    2240631U,	// SUB16ri
1476    2240631U,	// SUB16ri8
1477    4337783U,	// SUB16rm
1478    2240631U,	// SUB16rr
1479    2232439U,	// SUB16rr_REV
1480    5612U,	// SUB32i32
1481    147575U,	// SUB32mi
1482    147575U,	// SUB32mi8
1483    147575U,	// SUB32mr
1484    2240631U,	// SUB32ri
1485    2240631U,	// SUB32ri8
1486    6434935U,	// SUB32rm
1487    2240631U,	// SUB32rr
1488    2232439U,	// SUB32rr_REV
1489    5760U,	// SUB64i32
1490    151671U,	// SUB64mi32
1491    151671U,	// SUB64mi8
1492    151671U,	// SUB64mr
1493    2240631U,	// SUB64ri32
1494    2240631U,	// SUB64ri8
1495    8532087U,	// SUB64rm
1496    2240631U,	// SUB64rr
1497    2232439U,	// SUB64rr_REV
1498    5375U,	// SUB8i8
1499    155767U,	// SUB8mi
1500    155767U,	// SUB8mr
1501    2240631U,	// SUB8ri
1502    2240631U,	// SUB8ri8
1503    10629239U,	// SUB8rm
1504    2240631U,	// SUB8rr
1505    2232439U,	// SUB8rr_REV
1506    3255U,	// SWAPGS
1507    3021U,	// SYSCALL
1508    3148U,	// SYSENTER
1509    3339U,	// SYSEXIT
1510    3339U,	// SYSEXIT64
1511    3332U,	// SYSRET
1512    3332U,	// SYSRET64
1513    12718235U,	// T1MSKC32rm
1514    14815387U,	// T1MSKC32rr
1515    16912539U,	// T1MSKC64rm
1516    14815387U,	// T1MSKC64rr
1517    1340123U,	// TAILJMPd
1518    1340123U,	// TAILJMPd64
1519    1327835U,	// TAILJMPm
1520    1331931U,	// TAILJMPm64
1521    0U,	// TAILJMPr
1522    1315547U,	// TAILJMPr64
1523    0U,	// TCRETURNdi
1524    0U,	// TCRETURNdi64
1525    0U,	// TCRETURNmi
1526    0U,	// TCRETURNmi64
1527    0U,	// TCRETURNri
1528    0U,	// TCRETURNri64
1529    5561U,	// TEST16i16
1530    140354U,	// TEST16mi
1531    140354U,	// TEST16mi_alt
1532    14816322U,	// TEST16ri
1533    14816322U,	// TEST16ri_alt
1534    140354U,	// TEST16rm
1535    14816322U,	// TEST16rr
1536    5729U,	// TEST32i32
1537    148546U,	// TEST32mi
1538    148546U,	// TEST32mi_alt
1539    14816322U,	// TEST32ri
1540    14816322U,	// TEST32ri_alt
1541    148546U,	// TEST32rm
1542    14816322U,	// TEST32rr
1543    5868U,	// TEST64i32
1544    152642U,	// TEST64mi32
1545    152642U,	// TEST64mi32_alt
1546    14816322U,	// TEST64ri32
1547    14816322U,	// TEST64ri32_alt
1548    152642U,	// TEST64rm
1549    14816322U,	// TEST64rr
1550    5449U,	// TEST8i8
1551    156738U,	// TEST8mi
1552    156738U,	// TEST8mi_alt
1553    14816322U,	// TEST8ri
1554    0U,	// TEST8ri_NOREX
1555    14816322U,	// TEST8ri_alt
1556    156738U,	// TEST8rm
1557    14816322U,	// TEST8rr
1558    2391U,	// TLSCall_32
1559    2481U,	// TLSCall_64
1560    2404U,	// TLS_addr32
1561    2494U,	// TLS_addr64
1562    2417U,	// TLS_base_addr32
1563    2507U,	// TLS_base_addr64
1564    2435U,	// TRAP
1565    19010591U,	// TZCNT16rm
1566    14816287U,	// TZCNT16rr
1567    12719135U,	// TZCNT32rm
1568    14816287U,	// TZCNT32rr
1569    16913439U,	// TZCNT64rm
1570    14816287U,	// TZCNT64rr
1571    12718647U,	// TZMSK32rm
1572    14815799U,	// TZMSK32rr
1573    16912951U,	// TZMSK64rm
1574    14815799U,	// TZMSK64rr
1575    2645U,	// UD2B
1576    3041007384U,	// VAARG_64
1577    350361416U,	// VASTART_SAVE_XMM_REGS
1578    9075U,	// VERRm
1579    4979U,	// VERRr
1580    9319U,	// VERWm
1581    5223U,	// VERWr
1582    3014U,	// VMCALL
1583    21309U,	// VMCLEARm
1584    2752U,	// VMFUNC
1585    2935U,	// VMLAUNCH
1586    3413U,	// VMLOAD32
1587    3468U,	// VMLOAD64
1588    3006U,	// VMMCALL
1589    20704U,	// VMPTRLDm
1590    21576U,	// VMPTRSTm
1591    147634U,	// VMREAD32rm
1592    14815410U,	// VMREAD32rr
1593    151730U,	// VMREAD64rm
1594    14815410U,	// VMREAD64rr
1595    2838U,	// VMRESUME
1596    3435U,	// VMRUN32
1597    3490U,	// VMRUN64
1598    3424U,	// VMSAVE32
1599    3479U,	// VMSAVE64
1600    12718534U,	// VMWRITE32rm
1601    14815686U,	// VMWRITE32rr
1602    16912838U,	// VMWRITE64rm
1603    14815686U,	// VMWRITE64rr
1604    2902U,	// VMXOFF
1605    21144U,	// VMXON
1606    29266U,	// W64ALLOCA
1607    2822U,	// WBINVD
1608    3048U,	// WIN_ALLOCA
1609    2962U,	// WIN_FTOL_32
1610    2962U,	// WIN_FTOL_64
1611    4514U,	// WRFSBASE
1612    4514U,	// WRFSBASE64
1613    4534U,	// WRGSBASE
1614    4534U,	// WRGSBASE64
1615    3163U,	// WRMSR
1616    139450U,	// XADD16rm
1617    14815418U,	// XADD16rr
1618    147642U,	// XADD32rm
1619    14815418U,	// XADD32rr
1620    151738U,	// XADD64rm
1621    14815418U,	// XADD64rr
1622    155834U,	// XADD8rm
1623    14815418U,	// XADD8rr
1624    5513U,	// XCHG16ar
1625    86512U,	// XCHG16rm
1626    123376U,	// XCHG16rr
1627    5676U,	// XCHG32ar
1628    5676U,	// XCHG32ar64
1629    90608U,	// XCHG32rm
1630    123376U,	// XCHG32rr
1631    5800U,	// XCHG64ar
1632    94704U,	// XCHG64rm
1633    123376U,	// XCHG64rr
1634    98800U,	// XCHG8rm
1635    123376U,	// XCHG8rr
1636    2716U,	// XCRYPTCBC
1637    2660U,	// XCRYPTCFB
1638    3169U,	// XCRYPTCTR
1639    2650U,	// XCRYPTECB
1640    2670U,	// XCRYPTOFB
1641    3351U,	// XGETBV
1642    2700U,	// XLAT
1643    5540U,	// XOR16i16
1644    140142U,	// XOR16mi
1645    140142U,	// XOR16mi8
1646    140142U,	// XOR16mr
1647    2241390U,	// XOR16ri
1648    2241390U,	// XOR16ri8
1649    4338542U,	// XOR16rm
1650    2241390U,	// XOR16rr
1651    2233198U,	// XOR16rr_REV
1652    5706U,	// XOR32i32
1653    148334U,	// XOR32mi
1654    148334U,	// XOR32mi8
1655    148334U,	// XOR32mr
1656    2241390U,	// XOR32ri
1657    2241390U,	// XOR32ri8
1658    6435694U,	// XOR32rm
1659    2241390U,	// XOR32rr
1660    2233198U,	// XOR32rr_REV
1661    5845U,	// XOR64i32
1662    152430U,	// XOR64mi32
1663    152430U,	// XOR64mi8
1664    152430U,	// XOR64mr
1665    2241390U,	// XOR64ri32
1666    2241390U,	// XOR64ri8
1667    8532846U,	// XOR64rm
1668    2241390U,	// XOR64rr
1669    2233198U,	// XOR64rr_REV
1670    5428U,	// XOR8i8
1671    156526U,	// XOR8mi
1672    156526U,	// XOR8mr
1673    2241390U,	// XOR8ri
1674    2241390U,	// XOR8ri8
1675    10629998U,	// XOR8rm
1676    2241390U,	// XOR8rr
1677    2233198U,	// XOR8rr_REV
1678    54118U,	// XRSTOR
1679    53258U,	// XRSTOR64
1680    53711U,	// XSAVE
1681    53249U,	// XSAVE64
1682    54328U,	// XSAVEOPT
1683    53268U,	// XSAVEOPT64
1684    3358U,	// XSETBV
1685    2343U,	// XSHA1
1686    2538U,	// XSHA256
1687    2858U,	// XSTORE
1688    0U
1689  };
1690
1691#ifndef CAPSTONE_DIET
1692  static char AsmStrs[] = {
1693  /* 0 */ 'x', 's', 'a', 'v', 'e', '6', '4', 9, 0,
1694  /* 9 */ 'x', 'r', 's', 't', 'o', 'r', '6', '4', 9, 0,
1695  /* 19 */ 'x', 's', 'a', 'v', 'e', 'o', 'p', 't', '6', '4', 9, 0,
1696  /* 31 */ 'l', 'e', 'a', 9, 0,
1697  /* 36 */ 'j', 'a', 9, 0,
1698  /* 40 */ 's', 'e', 't', 'a', 9, 0,
1699  /* 46 */ 'c', 'm', 'o', 'v', 'a', 9, 0,
1700  /* 53 */ 'c', 'm', 'p', 'x', 'c', 'h', 'g', '1', '6', 'b', 9, 0,
1701  /* 65 */ 'c', 'm', 'p', 'x', 'c', 'h', 'g', '8', 'b', 9, 0,
1702  /* 76 */ 's', 'b', 'b', 9, 0,
1703  /* 81 */ 'j', 'b', 9, 0,
1704  /* 85 */ 'i', 'n', 's', 'b', 9, 0,
1705  /* 91 */ 's', 't', 'o', 's', 'b', 9, 0,
1706  /* 98 */ 'c', 'm', 'p', 's', 'b', 9, 0,
1707  /* 105 */ 'm', 'o', 'v', 's', 'b', 9, 0,
1708  /* 112 */ 's', 'e', 't', 'b', 9, 0,
1709  /* 118 */ 's', 'u', 'b', 9, 0,
1710  /* 123 */ 'c', 'm', 'o', 'v', 'b', 9, 0,
1711  /* 130 */ 'a', 'd', 'c', 9, 0,
1712  /* 135 */ 'd', 'e', 'c', 9, 0,
1713  /* 140 */ 'b', 'l', 'c', 'i', 'c', 9, 0,
1714  /* 147 */ 'b', 'l', 's', 'i', 'c', 9, 0,
1715  /* 154 */ 't', '1', 'm', 's', 'k', 'c', 9, 0,
1716  /* 162 */ 'i', 'n', 'c', 9, 0,
1717  /* 167 */ 'b', 't', 'c', 9, 0,
1718  /* 172 */ 'a', 'a', 'd', 9, 0,
1719  /* 177 */ 'v', 'm', 'r', 'e', 'a', 'd', 9, 0,
1720  /* 185 */ 'x', 'a', 'd', 'd', 9, 0,
1721  /* 191 */ 'r', 'd', 's', 'e', 'e', 'd', 9, 0,
1722  /* 199 */ 'i', 'n', 'v', 'p', 'c', 'i', 'd', 9, 0,
1723  /* 208 */ 'i', 'n', 'v', 'v', 'p', 'i', 'd', 9, 0,
1724  /* 217 */ 's', 'h', 'l', 'd', 9, 0,
1725  /* 223 */ 'v', 'm', 'p', 't', 'r', 'l', 'd', 9, 0,
1726  /* 232 */ 'r', 'd', 'r', 'a', 'n', 'd', 9, 0,
1727  /* 240 */ 'b', 'o', 'u', 'n', 'd', 9, 0,
1728  /* 247 */ 's', 'h', 'r', 'd', 9, 0,
1729  /* 253 */ 'i', 'n', 's', 'd', 9, 0,
1730  /* 259 */ 's', 't', 'o', 's', 'd', 9, 0,
1731  /* 266 */ 'c', 'm', 'p', 's', 'd', 9, 0,
1732  /* 273 */ 'm', 'o', 'v', 's', 'd', 9, 0,
1733  /* 280 */ 'm', 'o', 'v', 's', 'x', 'd', 9, 0,
1734  /* 288 */ 'j', 'a', 'e', 9, 0,
1735  /* 293 */ 's', 'e', 't', 'a', 'e', 9, 0,
1736  /* 300 */ 'c', 'm', 'o', 'v', 'a', 'e', 9, 0,
1737  /* 308 */ 'j', 'b', 'e', 9, 0,
1738  /* 313 */ 's', 'e', 't', 'b', 'e', 9, 0,
1739  /* 320 */ 'c', 'm', 'o', 'v', 'b', 'e', 9, 0,
1740  /* 328 */ 'j', 'g', 'e', 9, 0,
1741  /* 333 */ 's', 'e', 't', 'g', 'e', 9, 0,
1742  /* 340 */ 'c', 'm', 'o', 'v', 'g', 'e', 9, 0,
1743  /* 348 */ 'j', 'e', 9, 0,
1744  /* 352 */ 'j', 'l', 'e', 9, 0,
1745  /* 357 */ 's', 'e', 't', 'l', 'e', 9, 0,
1746  /* 364 */ 'c', 'm', 'o', 'v', 'l', 'e', 9, 0,
1747  /* 372 */ 'j', 'n', 'e', 9, 0,
1748  /* 377 */ 'l', 'o', 'o', 'p', 'n', 'e', 9, 0,
1749  /* 385 */ 's', 'e', 't', 'n', 'e', 9, 0,
1750  /* 392 */ 'c', 'm', 'o', 'v', 'n', 'e', 9, 0,
1751  /* 400 */ 'l', 'o', 'o', 'p', 'e', 9, 0,
1752  /* 407 */ 'r', 'd', 'f', 's', 'b', 'a', 's', 'e', 9, 0,
1753  /* 417 */ 'w', 'r', 'f', 's', 'b', 'a', 's', 'e', 9, 0,
1754  /* 427 */ 'r', 'd', 'g', 's', 'b', 'a', 's', 'e', 9, 0,
1755  /* 437 */ 'w', 'r', 'g', 's', 'b', 'a', 's', 'e', 9, 0,
1756  /* 447 */ 's', 'e', 't', 'e', 9, 0,
1757  /* 453 */ 'v', 'm', 'w', 'r', 'i', 't', 'e', 9, 0,
1758  /* 462 */ 'x', 's', 'a', 'v', 'e', 9, 0,
1759  /* 469 */ 'c', 'm', 'o', 'v', 'e', 9, 0,
1760  /* 476 */ 'b', 's', 'f', 9, 0,
1761  /* 481 */ 'r', 'e', 't', 'f', 9, 0,
1762  /* 487 */ 'n', 'e', 'g', 9, 0,
1763  /* 492 */ 'c', 'm', 'p', 'x', 'c', 'h', 'g', 9, 0,
1764  /* 501 */ 'j', 'g', 9, 0,
1765  /* 505 */ 'i', 'n', 'v', 'l', 'p', 'g', 9, 0,
1766  /* 513 */ 's', 'e', 't', 'g', 9, 0,
1767  /* 519 */ 'c', 'm', 'o', 'v', 'g', 9, 0,
1768  /* 526 */ 'p', 'u', 's', 'h', 9, 0,
1769  /* 532 */ 'b', 'l', 'c', 'i', 9, 0,
1770  /* 538 */ 'b', 'z', 'h', 'i', 9, 0,
1771  /* 544 */ 'b', 'l', 's', 'i', 9, 0,
1772  /* 550 */ 'b', 'l', 'c', 'm', 's', 'k', 9, 0,
1773  /* 558 */ 'b', 'l', 's', 'm', 's', 'k', 9, 0,
1774  /* 566 */ 't', 'z', 'm', 's', 'k', 9, 0,
1775  /* 573 */ 's', 'a', 'l', 9, 0,
1776  /* 578 */ 'r', 'c', 'l', 9, 0,
1777  /* 583 */ 's', 'h', 'l', 9, 0,
1778  /* 588 */ 'j', 'l', 9, 0,
1779  /* 592 */ 'l', 'c', 'a', 'l', 'l', 9, 0,
1780  /* 599 */ 'b', 'l', 'c', 'f', 'i', 'l', 'l', 9, 0,
1781  /* 608 */ 'b', 'l', 's', 'f', 'i', 'l', 'l', 9, 0,
1782  /* 617 */ 'r', 'o', 'l', 9, 0,
1783  /* 622 */ 'a', 'r', 'p', 'l', 9, 0,
1784  /* 628 */ 'l', 's', 'l', 9, 0,
1785  /* 633 */ 's', 'e', 't', 'l', 9, 0,
1786  /* 639 */ 'i', 'm', 'u', 'l', 9, 0,
1787  /* 645 */ 'c', 'm', 'o', 'v', 'l', 9, 0,
1788  /* 652 */ 'a', 'a', 'm', 9, 0,
1789  /* 657 */ 'a', 'n', 'd', 'n', 9, 0,
1790  /* 663 */ 'v', 'm', 'x', 'o', 'n', 9, 0,
1791  /* 670 */ 'j', 'o', 9, 0,
1792  /* 674 */ 'j', 'n', 'o', 9, 0,
1793  /* 679 */ 's', 'e', 't', 'n', 'o', 9, 0,
1794  /* 686 */ 'c', 'm', 'o', 'v', 'n', 'o', 9, 0,
1795  /* 694 */ 's', 'e', 't', 'o', 9, 0,
1796  /* 700 */ 'c', 'm', 'o', 'v', 'o', 9, 0,
1797  /* 707 */ 'b', 's', 'w', 'a', 'p', 9, 0,
1798  /* 714 */ 'p', 'd', 'e', 'p', 9, 0,
1799  /* 720 */ 'j', 'p', 9, 0,
1800  /* 724 */ 'c', 'm', 'p', 9, 0,
1801  /* 729 */ 'l', 'j', 'm', 'p', 9, 0,
1802  /* 735 */ 'j', 'n', 'p', 9, 0,
1803  /* 740 */ 's', 'e', 't', 'n', 'p', 9, 0,
1804  /* 747 */ 'c', 'm', 'o', 'v', 'n', 'p', 9, 0,
1805  /* 755 */ 'n', 'o', 'p', 9, 0,
1806  /* 760 */ 'l', 'o', 'o', 'p', 9, 0,
1807  /* 766 */ 'p', 'o', 'p', 9, 0,
1808  /* 771 */ 's', 'e', 't', 'p', 9, 0,
1809  /* 777 */ '#', 'E', 'H', '_', 'S', 'j', 'L', 'j', '_', 'S', 'e', 't', 'u', 'p', 9, 0,
1810  /* 793 */ 'c', 'm', 'o', 'v', 'p', 9, 0,
1811  /* 800 */ 'r', 'e', 't', 'f', 'q', 9, 0,
1812  /* 807 */ 's', 't', 'o', 's', 'q', 9, 0,
1813  /* 814 */ 'c', 'm', 'p', 's', 'q', 9, 0,
1814  /* 821 */ 'm', 'o', 'v', 's', 'q', 9, 0,
1815  /* 828 */ 'v', 'm', 'c', 'l', 'e', 'a', 'r', 9, 0,
1816  /* 837 */ 'l', 'a', 'r', 9, 0,
1817  /* 842 */ 's', 'a', 'r', 9, 0,
1818  /* 847 */ 'r', 'c', 'r', 9, 0,
1819  /* 852 */ 'e', 'n', 't', 'e', 'r', 9, 0,
1820  /* 859 */ 's', 'h', 'r', 9, 0,
1821  /* 864 */ 'r', 'o', 'r', 9, 0,
1822  /* 869 */ 'x', 'r', 's', 't', 'o', 'r', 9, 0,
1823  /* 877 */ 'x', 'o', 'r', 9, 0,
1824  /* 882 */ 'v', 'e', 'r', 'r', 9, 0,
1825  /* 888 */ 'b', 's', 'r', 9, 0,
1826  /* 893 */ 'b', 'l', 's', 'r', 9, 0,
1827  /* 899 */ 'b', 't', 'r', 9, 0,
1828  /* 904 */ 'l', 't', 'r', 9, 0,
1829  /* 909 */ 's', 't', 'r', 9, 0,
1830  /* 914 */ 'b', 'e', 'x', 't', 'r', 9, 0,
1831  /* 921 */ 'm', 'o', 'v', 'a', 'b', 's', 9, 0,
1832  /* 929 */ 'b', 'l', 'c', 's', 9, 0,
1833  /* 935 */ 'l', 'd', 's', 9, 0,
1834  /* 940 */ 'l', 'e', 's', 9, 0,
1835  /* 945 */ 'l', 'f', 's', 9, 0,
1836  /* 950 */ 'l', 'g', 's', 9, 0,
1837  /* 955 */ 'j', 's', 9, 0,
1838  /* 959 */ 'j', 'n', 's', 9, 0,
1839  /* 964 */ 's', 'e', 't', 'n', 's', 9, 0,
1840  /* 971 */ 'c', 'm', 'o', 'v', 'n', 's', 9, 0,
1841  /* 979 */ 'l', 's', 's', 9, 0,
1842  /* 984 */ 'b', 't', 's', 9, 0,
1843  /* 989 */ 's', 'e', 't', 's', 9, 0,
1844  /* 995 */ 'c', 'm', 'o', 'v', 's', 9, 0,
1845  /* 1002 */ 'b', 't', 9, 0,
1846  /* 1006 */ 'l', 'g', 'd', 't', 9, 0,
1847  /* 1012 */ 's', 'g', 'd', 't', 9, 0,
1848  /* 1018 */ 'l', 'i', 'd', 't', 9, 0,
1849  /* 1024 */ 's', 'i', 'd', 't', 9, 0,
1850  /* 1030 */ 'l', 'l', 'd', 't', 9, 0,
1851  /* 1036 */ 's', 'l', 'd', 't', 9, 0,
1852  /* 1042 */ 'r', 'e', 't', 9, 0,
1853  /* 1047 */ 'l', 'z', 'c', 'n', 't', 9, 0,
1854  /* 1054 */ 't', 'z', 'c', 'n', 't', 9, 0,
1855  /* 1061 */ 'i', 'n', 't', 9, 0,
1856  /* 1066 */ 'n', 'o', 't', 9, 0,
1857  /* 1071 */ 'i', 'n', 'v', 'e', 'p', 't', 9, 0,
1858  /* 1079 */ 'x', 's', 'a', 'v', 'e', 'o', 'p', 't', 9, 0,
1859  /* 1089 */ 't', 'e', 's', 't', 9, 0,
1860  /* 1095 */ 'v', 'm', 'p', 't', 'r', 's', 't', 9, 0,
1861  /* 1104 */ 'o', 'u', 't', 9, 0,
1862  /* 1109 */ 'p', 'e', 'x', 't', 9, 0,
1863  /* 1115 */ 'i', 'd', 'i', 'v', 9, 0,
1864  /* 1121 */ 'm', 'o', 'v', 9, 0,
1865  /* 1126 */ 'v', 'e', 'r', 'w', 9, 0,
1866  /* 1132 */ 'l', 'm', 's', 'w', 9, 0,
1867  /* 1138 */ 's', 'm', 's', 'w', 9, 0,
1868  /* 1144 */ 'i', 'n', 's', 'w', 9, 0,
1869  /* 1150 */ 's', 't', 'o', 's', 'w', 9, 0,
1870  /* 1157 */ 'c', 'm', 'p', 's', 'w', 9, 0,
1871  /* 1164 */ 'm', 'o', 'v', 's', 'w', 9, 0,
1872  /* 1171 */ 'a', 'd', 'c', 'x', 9, 0,
1873  /* 1177 */ 's', 'h', 'l', 'x', 9, 0,
1874  /* 1183 */ 'm', 'u', 'l', 'x', 9, 0,
1875  /* 1189 */ 'a', 'd', 'o', 'x', 9, 0,
1876  /* 1195 */ 's', 'a', 'r', 'x', 9, 0,
1877  /* 1201 */ 's', 'h', 'r', 'x', 9, 0,
1878  /* 1207 */ 'r', 'o', 'r', 'x', 9, 0,
1879  /* 1213 */ 'm', 'o', 'v', 's', 'x', 9, 0,
1880  /* 1220 */ 'm', 'o', 'v', 'z', 'x', 9, 0,
1881  /* 1227 */ 'j', 'e', 'c', 'x', 'z', 9, 0,
1882  /* 1234 */ 'j', 'c', 'x', 'z', 9, 0,
1883  /* 1240 */ 'j', 'r', 'c', 'x', 'z', 9, 0,
1884  /* 1247 */ 's', 'b', 'b', 9, 'a', 'l', ',', 32, 0,
1885  /* 1256 */ 's', 'c', 'a', 's', 'b', 9, 'a', 'l', ',', 32, 0,
1886  /* 1267 */ 'l', 'o', 'd', 's', 'b', 9, 'a', 'l', ',', 32, 0,
1887  /* 1278 */ 's', 'u', 'b', 9, 'a', 'l', ',', 32, 0,
1888  /* 1287 */ 'a', 'd', 'c', 9, 'a', 'l', ',', 32, 0,
1889  /* 1296 */ 'a', 'd', 'd', 9, 'a', 'l', ',', 32, 0,
1890  /* 1305 */ 'a', 'n', 'd', 9, 'a', 'l', ',', 32, 0,
1891  /* 1314 */ 'i', 'n', 9, 'a', 'l', ',', 32, 0,
1892  /* 1322 */ 'c', 'm', 'p', 9, 'a', 'l', ',', 32, 0,
1893  /* 1331 */ 'x', 'o', 'r', 9, 'a', 'l', ',', 32, 0,
1894  /* 1340 */ 'm', 'o', 'v', 'a', 'b', 's', 9, 'a', 'l', ',', 32, 0,
1895  /* 1352 */ 't', 'e', 's', 't', 9, 'a', 'l', ',', 32, 0,
1896  /* 1362 */ 'm', 'o', 'v', 9, 'a', 'l', ',', 32, 0,
1897  /* 1371 */ 's', 'b', 'b', 9, 'a', 'x', ',', 32, 0,
1898  /* 1380 */ 's', 'u', 'b', 9, 'a', 'x', ',', 32, 0,
1899  /* 1389 */ 'a', 'd', 'c', 9, 'a', 'x', ',', 32, 0,
1900  /* 1398 */ 'a', 'd', 'd', 9, 'a', 'x', ',', 32, 0,
1901  /* 1407 */ 'a', 'n', 'd', 9, 'a', 'x', ',', 32, 0,
1902  /* 1416 */ 'x', 'c', 'h', 'g', 9, 'a', 'x', ',', 32, 0,
1903  /* 1426 */ 'i', 'n', 9, 'a', 'x', ',', 32, 0,
1904  /* 1434 */ 'c', 'm', 'p', 9, 'a', 'x', ',', 32, 0,
1905  /* 1443 */ 'x', 'o', 'r', 9, 'a', 'x', ',', 32, 0,
1906  /* 1452 */ 'm', 'o', 'v', 'a', 'b', 's', 9, 'a', 'x', ',', 32, 0,
1907  /* 1464 */ 't', 'e', 's', 't', 9, 'a', 'x', ',', 32, 0,
1908  /* 1474 */ 'm', 'o', 'v', 9, 'a', 'x', ',', 32, 0,
1909  /* 1483 */ 's', 'c', 'a', 's', 'w', 9, 'a', 'x', ',', 32, 0,
1910  /* 1494 */ 'l', 'o', 'd', 's', 'w', 9, 'a', 'x', ',', 32, 0,
1911  /* 1505 */ 's', 'b', 'b', 9, 'e', 'a', 'x', ',', 32, 0,
1912  /* 1515 */ 's', 'u', 'b', 9, 'e', 'a', 'x', ',', 32, 0,
1913  /* 1525 */ 'a', 'd', 'c', 9, 'e', 'a', 'x', ',', 32, 0,
1914  /* 1535 */ 'a', 'd', 'd', 9, 'e', 'a', 'x', ',', 32, 0,
1915  /* 1545 */ 'a', 'n', 'd', 9, 'e', 'a', 'x', ',', 32, 0,
1916  /* 1555 */ 's', 'c', 'a', 's', 'd', 9, 'e', 'a', 'x', ',', 32, 0,
1917  /* 1567 */ 'l', 'o', 'd', 's', 'd', 9, 'e', 'a', 'x', ',', 32, 0,
1918  /* 1579 */ 'x', 'c', 'h', 'g', 9, 'e', 'a', 'x', ',', 32, 0,
1919  /* 1590 */ 'i', 'n', 9, 'e', 'a', 'x', ',', 32, 0,
1920  /* 1599 */ 'c', 'm', 'p', 9, 'e', 'a', 'x', ',', 32, 0,
1921  /* 1609 */ 'x', 'o', 'r', 9, 'e', 'a', 'x', ',', 32, 0,
1922  /* 1619 */ 'm', 'o', 'v', 'a', 'b', 's', 9, 'e', 'a', 'x', ',', 32, 0,
1923  /* 1632 */ 't', 'e', 's', 't', 9, 'e', 'a', 'x', ',', 32, 0,
1924  /* 1643 */ 'm', 'o', 'v', 9, 'e', 'a', 'x', ',', 32, 0,
1925  /* 1653 */ 's', 'b', 'b', 9, 'r', 'a', 'x', ',', 32, 0,
1926  /* 1663 */ 's', 'u', 'b', 9, 'r', 'a', 'x', ',', 32, 0,
1927  /* 1673 */ 'a', 'd', 'c', 9, 'r', 'a', 'x', ',', 32, 0,
1928  /* 1683 */ 'a', 'd', 'd', 9, 'r', 'a', 'x', ',', 32, 0,
1929  /* 1693 */ 'a', 'n', 'd', 9, 'r', 'a', 'x', ',', 32, 0,
1930  /* 1703 */ 'x', 'c', 'h', 'g', 9, 'r', 'a', 'x', ',', 32, 0,
1931  /* 1714 */ 'c', 'm', 'p', 9, 'r', 'a', 'x', ',', 32, 0,
1932  /* 1724 */ 's', 'c', 'a', 's', 'q', 9, 'r', 'a', 'x', ',', 32, 0,
1933  /* 1736 */ 'l', 'o', 'd', 's', 'q', 9, 'r', 'a', 'x', ',', 32, 0,
1934  /* 1748 */ 'x', 'o', 'r', 9, 'r', 'a', 'x', ',', 32, 0,
1935  /* 1758 */ 'm', 'o', 'v', 'a', 'b', 's', 9, 'r', 'a', 'x', ',', 32, 0,
1936  /* 1771 */ 't', 'e', 's', 't', 9, 'r', 'a', 'x', ',', 32, 0,
1937  /* 1782 */ 'o', 'u', 't', 's', 'b', 9, 'd', 'x', ',', 32, 0,
1938  /* 1793 */ 'o', 'u', 't', 's', 'd', 9, 'd', 'x', ',', 32, 0,
1939  /* 1804 */ 'o', 'u', 't', 's', 'w', 9, 'd', 'x', ',', 32, 0,
1940  /* 1815 */ '#', 'V', 'A', 'A', 'R', 'G', '_', '6', '4', 32, 0,
1941  /* 1826 */ 'r', 'e', 't', 9, '#', 'e', 'h', '_', 'r', 'e', 't', 'u', 'r', 'n', ',', 32, 'a', 'd', 'd', 'r', ':', 32, 0,
1942  /* 1849 */ '#', 'S', 'E', 'H', '_', 'S', 'a', 'v', 'e', 'X', 'M', 'M', 32, 0,
1943  /* 1863 */ '#', 'V', 'A', 'S', 'T', 'A', 'R', 'T', '_', 'S', 'A', 'V', 'E', '_', 'X', 'M', 'M', '_', 'R', 'E', 'G', 'S', 32, 0,
1944  /* 1887 */ '#', 'S', 'E', 'H', '_', 'S', 't', 'a', 'c', 'k', 'A', 'l', 'l', 'o', 'c', 32, 0,
1945  /* 1904 */ '#', 'S', 'E', 'H', '_', 'P', 'u', 's', 'h', 'F', 'r', 'a', 'm', 'e', 32, 0,
1946  /* 1920 */ '#', 'S', 'E', 'H', '_', 'S', 'e', 't', 'F', 'r', 'a', 'm', 'e', 32, 0,
1947  /* 1935 */ '#', 'S', 'E', 'H', '_', 'S', 'a', 'v', 'e', 'R', 'e', 'g', 32, 0,
1948  /* 1949 */ '#', 'S', 'E', 'H', '_', 'P', 'u', 's', 'h', 'R', 'e', 'g', 32, 0,
1949  /* 1963 */ '#', 'C', 'M', 'O', 'V', '_', 'G', 'R', '3', '2', '*', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1950  /* 1983 */ '#', 'C', 'M', 'O', 'V', '_', 'G', 'R', '1', '6', '*', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1951  /* 2003 */ '#', 'C', 'M', 'O', 'V', '_', 'R', 'F', 'P', '8', '0', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1952  /* 2023 */ '#', 'C', 'M', 'O', 'V', '_', 'V', '4', 'F', '3', '2', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1953  /* 2043 */ '#', 'C', 'M', 'O', 'V', '_', 'V', '1', '6', 'F', '3', '2', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1954  /* 2064 */ '#', 'C', 'M', 'O', 'V', '_', 'V', '8', 'F', '3', '2', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1955  /* 2084 */ '#', 'C', 'M', 'O', 'V', '_', 'R', 'F', 'P', '3', '2', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1956  /* 2104 */ '#', 'C', 'M', 'O', 'V', '_', 'F', 'R', '3', '2', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1957  /* 2123 */ '#', 'C', 'M', 'O', 'V', '_', 'V', '2', 'F', '6', '4', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1958  /* 2143 */ '#', 'C', 'M', 'O', 'V', '_', 'V', '4', 'F', '6', '4', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1959  /* 2163 */ '#', 'C', 'M', 'O', 'V', '_', 'V', '8', 'F', '6', '4', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1960  /* 2183 */ '#', 'C', 'M', 'O', 'V', '_', 'V', '2', 'I', '6', '4', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1961  /* 2203 */ '#', 'C', 'M', 'O', 'V', '_', 'V', '4', 'I', '6', '4', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1962  /* 2223 */ '#', 'C', 'M', 'O', 'V', '_', 'V', '8', 'I', '6', '4', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1963  /* 2243 */ '#', 'C', 'M', 'O', 'V', '_', 'R', 'F', 'P', '6', '4', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1964  /* 2263 */ '#', 'C', 'M', 'O', 'V', '_', 'F', 'R', '6', '4', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1965  /* 2282 */ '#', 'C', 'M', 'O', 'V', '_', 'G', 'R', '8', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1966  /* 2300 */ '#', 'A', 'C', 'Q', 'U', 'I', 'R', 'E', '_', 'M', 'O', 'V', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1967  /* 2321 */ '#', 'R', 'E', 'L', 'E', 'A', 'S', 'E', '_', 'M', 'O', 'V', 32, 'P', 'S', 'E', 'U', 'D', 'O', '!', 0,
1968  /* 2342 */ 'x', 's', 'h', 'a', '1', 0,
1969  /* 2348 */ 'i', 'n', 't', '1', 0,
1970  /* 2353 */ '#', 'E', 'H', '_', 'S', 'J', 'L', 'J', '_', 'L', 'O', 'N', 'G', 'J', 'M', 'P', '3', '2', 0,
1971  /* 2372 */ '#', 'E', 'H', '_', 'S', 'J', 'L', 'J', '_', 'S', 'E', 'T', 'J', 'M', 'P', '3', '2', 0,
1972  /* 2390 */ '#', 32, 'T', 'L', 'S', 'C', 'a', 'l', 'l', '_', '3', '2', 0,
1973  /* 2403 */ '#', 32, 'T', 'L', 'S', '_', 'a', 'd', 'd', 'r', '3', '2', 0,
1974  /* 2416 */ '#', 32, 'T', 'L', 'S', '_', 'b', 'a', 's', 'e', '_', 'a', 'd', 'd', 'r', '3', '2', 0,
1975  /* 2434 */ 'u', 'd', '2', 0,
1976  /* 2438 */ 'i', 'n', 't', '3', 0,
1977  /* 2443 */ '#', 'E', 'H', '_', 'S', 'J', 'L', 'J', '_', 'L', 'O', 'N', 'G', 'J', 'M', 'P', '6', '4', 0,
1978  /* 2462 */ '#', 'E', 'H', '_', 'S', 'J', 'L', 'J', '_', 'S', 'E', 'T', 'J', 'M', 'P', '6', '4', 0,
1979  /* 2480 */ '#', 32, 'T', 'L', 'S', 'C', 'a', 'l', 'l', '_', '6', '4', 0,
1980  /* 2493 */ '#', 32, 'T', 'L', 'S', '_', 'a', 'd', 'd', 'r', '6', '4', 0,
1981  /* 2506 */ '#', 32, 'T', 'L', 'S', '_', 'b', 'a', 's', 'e', '_', 'a', 'd', 'd', 'r', '6', '4', 0,
1982  /* 2524 */ 'r', 'e', 'x', '6', '4', 0,
1983  /* 2530 */ 'd', 'a', 't', 'a', '1', '6', 0,
1984  /* 2537 */ 'x', 's', 'h', 'a', '2', '5', '6', 0,
1985  /* 2545 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'E', 'N', 'D', 0,
1986  /* 2558 */ 'B', 'U', 'N', 'D', 'L', 'E', 0,
1987  /* 2565 */ 'D', 'B', 'G', '_', 'V', 'A', 'L', 'U', 'E', 0,
1988  /* 2575 */ '#', 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'D', 'O', 'W', 'N', 0,
1989  /* 2593 */ '#', 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'U', 'P', 0,
1990  /* 2609 */ '#', 'M', 'E', 'M', 'B', 'A', 'R', 'R', 'I', 'E', 'R', 0,
1991  /* 2621 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'S', 'T', 'A', 'R', 'T', 0,
1992  /* 2636 */ 'a', 'a', 'a', 0,
1993  /* 2640 */ 'd', 'a', 'a', 0,
1994  /* 2644 */ 'u', 'd', '2', 'b', 0,
1995  /* 2649 */ 'x', 'c', 'r', 'y', 'p', 't', 'e', 'c', 'b', 0,
1996  /* 2659 */ 'x', 'c', 'r', 'y', 'p', 't', 'c', 'f', 'b', 0,
1997  /* 2669 */ 'x', 'c', 'r', 'y', 'p', 't', 'o', 'f', 'b', 0,
1998  /* 2679 */ 'r', 'e', 'p', 32, 's', 't', 'o', 's', 'b', 0,
1999  /* 2689 */ 'r', 'e', 'p', 32, 'm', 'o', 'v', 's', 'b', 0,
2000  /* 2699 */ 'x', 'l', 'a', 't', 'b', 0,
2001  /* 2705 */ 'c', 'l', 'a', 'c', 0,
2002  /* 2710 */ 's', 't', 'a', 'c', 0,
2003  /* 2715 */ 'x', 'c', 'r', 'y', 'p', 't', 'c', 'b', 'c', 0,
2004  /* 2725 */ 'g', 'e', 't', 's', 'e', 'c', 0,
2005  /* 2732 */ 's', 'a', 'l', 'c', 0,
2006  /* 2737 */ 'c', 'l', 'c', 0,
2007  /* 2741 */ 'c', 'm', 'c', 0,
2008  /* 2745 */ 'r', 'd', 'p', 'm', 'c', 0,
2009  /* 2751 */ 'v', 'm', 'f', 'u', 'n', 'c', 0,
2010  /* 2758 */ 'r', 'd', 't', 's', 'c', 0,
2011  /* 2764 */ 's', 't', 'c', 0,
2012  /* 2768 */ 'p', 'u', 's', 'h', 'f', 'd', 0,
2013  /* 2775 */ 'p', 'o', 'p', 'f', 'd', 0,
2014  /* 2781 */ 'c', 'p', 'u', 'i', 'd', 0,
2015  /* 2787 */ 'c', 'l', 'd', 0,
2016  /* 2791 */ 'r', 'e', 'p', 32, 's', 't', 'o', 's', 'd', 0,
2017  /* 2801 */ 'r', 'e', 'p', 32, 'm', 'o', 'v', 's', 'd', 0,
2018  /* 2811 */ 'i', 'r', 'e', 't', 'd', 0,
2019  /* 2817 */ 's', 't', 'd', 0,
2020  /* 2821 */ 'w', 'b', 'i', 'n', 'v', 'd', 0,
2021  /* 2828 */ 'c', 'w', 'd', 0,
2022  /* 2832 */ 'c', 'w', 'd', 'e', 0,
2023  /* 2837 */ 'v', 'm', 'r', 'e', 's', 'u', 'm', 'e', 0,
2024  /* 2846 */ 'r', 'e', 'p', 'n', 'e', 0,
2025  /* 2852 */ 'c', 'd', 'q', 'e', 0,
2026  /* 2857 */ 'x', 's', 't', 'o', 'r', 'e', 0,
2027  /* 2864 */ '#', 'S', 'E', 'H', '_', 'E', 'p', 'i', 'l', 'o', 'g', 'u', 'e', 0,
2028  /* 2878 */ '#', 'S', 'E', 'H', '_', 'E', 'n', 'd', 'P', 'r', 'o', 'l', 'o', 'g', 'u', 'e', 0,
2029  /* 2895 */ 'l', 'e', 'a', 'v', 'e', 0,
2030  /* 2901 */ 'v', 'm', 'x', 'o', 'f', 'f', 0,
2031  /* 2908 */ 'l', 'a', 'h', 'f', 0,
2032  /* 2913 */ 's', 'a', 'h', 'f', 0,
2033  /* 2918 */ 'p', 'u', 's', 'h', 'f', 0,
2034  /* 2924 */ 'p', 'o', 'p', 'f', 0,
2035  /* 2929 */ 'r', 'e', 't', 'f', 0,
2036  /* 2934 */ 'v', 'm', 'l', 'a', 'u', 'n', 'c', 'h', 0,
2037  /* 2943 */ 'c', 'l', 'g', 'i', 0,
2038  /* 2948 */ 's', 't', 'g', 'i', 0,
2039  /* 2953 */ 'c', 'l', 'i', 0,
2040  /* 2957 */ 's', 't', 'i', 0,
2041  /* 2961 */ '#', 32, 'w', 'i', 'n', '3', '2', 32, 'f', 'p', 't', 'o', 'u', 'i', 0,
2042  /* 2976 */ 'l', 'o', 'c', 'k', 0,
2043  /* 2981 */ 'o', 'u', 't', 9, 'd', 'x', ',', 32, 'a', 'l', 0,
2044  /* 2992 */ 'p', 'u', 's', 'h', 'a', 'l', 0,
2045  /* 2999 */ 'p', 'o', 'p', 'a', 'l', 0,
2046  /* 3005 */ 'v', 'm', 'm', 'c', 'a', 'l', 'l', 0,
2047  /* 3013 */ 'v', 'm', 'c', 'a', 'l', 'l', 0,
2048  /* 3020 */ 's', 'y', 's', 'c', 'a', 'l', 'l', 0,
2049  /* 3028 */ 'm', 'o', 'n', 't', 'm', 'u', 'l', 0,
2050  /* 3036 */ 'f', 's', 'e', 't', 'p', 'm', 0,
2051  /* 3043 */ 'r', 's', 'm', 0,
2052  /* 3047 */ '#', 32, 'd', 'y', 'n', 'a', 'm', 'i', 'c', 32, 's', 't', 'a', 'c', 'k', 32, 'a', 'l', 'l', 'o', 'c', 'a', 't', 'i', 'o', 'n', 0,
2053  /* 3074 */ 'c', 'q', 'o', 0,
2054  /* 3078 */ 'i', 'n', 't', 'o', 0,
2055  /* 3083 */ 'r', 'd', 't', 's', 'c', 'p', 0,
2056  /* 3090 */ 'r', 'e', 'p', 0,
2057  /* 3094 */ 'n', 'o', 'p', 0,
2058  /* 3098 */ 'c', 'd', 'q', 0,
2059  /* 3102 */ 'p', 'u', 's', 'h', 'f', 'q', 0,
2060  /* 3109 */ 'p', 'o', 'p', 'f', 'q', 0,
2061  /* 3115 */ 'r', 'e', 't', 'f', 'q', 0,
2062  /* 3121 */ 'r', 'e', 'p', 32, 's', 't', 'o', 's', 'q', 0,
2063  /* 3131 */ 'r', 'e', 'p', 32, 'm', 'o', 'v', 's', 'q', 0,
2064  /* 3141 */ 'i', 'r', 'e', 't', 'q', 0,
2065  /* 3147 */ 's', 'y', 's', 'e', 'n', 't', 'e', 'r', 0,
2066  /* 3156 */ 'r', 'd', 'm', 's', 'r', 0,
2067  /* 3162 */ 'w', 'r', 'm', 's', 'r', 0,
2068  /* 3168 */ 'x', 'c', 'r', 'y', 'p', 't', 'c', 't', 'r', 0,
2069  /* 3178 */ 'a', 'a', 's', 0,
2070  /* 3182 */ 'd', 'a', 's', 0,
2071  /* 3186 */ 'p', 'u', 's', 'h', 9, 'c', 's', 0,
2072  /* 3194 */ 'p', 'u', 's', 'h', 9, 'd', 's', 0,
2073  /* 3202 */ 'p', 'o', 'p', 9, 'd', 's', 0,
2074  /* 3209 */ 'p', 'u', 's', 'h', 9, 'e', 's', 0,
2075  /* 3217 */ 'p', 'o', 'p', 9, 'e', 's', 0,
2076  /* 3224 */ 'p', 'u', 's', 'h', 9, 'f', 's', 0,
2077  /* 3232 */ 'p', 'o', 'p', 9, 'f', 's', 0,
2078  /* 3239 */ 'p', 'u', 's', 'h', 9, 'g', 's', 0,
2079  /* 3247 */ 'p', 'o', 'p', 9, 'g', 's', 0,
2080  /* 3254 */ 's', 'w', 'a', 'p', 'g', 's', 0,
2081  /* 3261 */ '#', 32, 'v', 'a', 'r', 'i', 'a', 'b', 'l', 'e', 32, 's', 'i', 'z', 'e', 'd', 32, 'a', 'l', 'l', 'o', 'c', 'a', 32, 'f', 'o', 'r', 32, 's', 'e', 'g', 'm', 'e', 'n', 't', 'e', 'd', 32, 's', 't', 'a', 'c', 'k', 's', 0,
2082  /* 3306 */ 'p', 'u', 's', 'h', 9, 's', 's', 0,
2083  /* 3314 */ 'p', 'o', 'p', 9, 's', 's', 0,
2084  /* 3321 */ 'c', 'l', 't', 's', 0,
2085  /* 3326 */ 'i', 'r', 'e', 't', 0,
2086  /* 3331 */ 's', 'y', 's', 'r', 'e', 't', 0,
2087  /* 3338 */ 's', 'y', 's', 'e', 'x', 'i', 't', 0,
2088  /* 3346 */ 'h', 'l', 't', 0,
2089  /* 3350 */ 'x', 'g', 'e', 't', 'b', 'v', 0,
2090  /* 3357 */ 'x', 's', 'e', 't', 'b', 'v', 0,
2091  /* 3364 */ 'p', 'u', 's', 'h', 'a', 'w', 0,
2092  /* 3371 */ 'p', 'o', 'p', 'a', 'w', 0,
2093  /* 3377 */ 'c', 'b', 'w', 0,
2094  /* 3381 */ 'r', 'e', 'p', 32, 's', 't', 'o', 's', 'w', 0,
2095  /* 3391 */ 'r', 'e', 'p', 32, 'm', 'o', 'v', 's', 'w', 0,
2096  /* 3401 */ 'o', 'u', 't', 9, 'd', 'x', ',', 32, 'a', 'x', 0,
2097  /* 3412 */ 'v', 'm', 'l', 'o', 'a', 'd', 9, 'e', 'a', 'x', 0,
2098  /* 3423 */ 'v', 'm', 's', 'a', 'v', 'e', 9, 'e', 'a', 'x', 0,
2099  /* 3434 */ 'v', 'm', 'r', 'u', 'n', 9, 'e', 'a', 'x', 0,
2100  /* 3444 */ 's', 'k', 'i', 'n', 'i', 't', 9, 'e', 'a', 'x', 0,
2101  /* 3455 */ 'o', 'u', 't', 9, 'd', 'x', ',', 32, 'e', 'a', 'x', 0,
2102  /* 3467 */ 'v', 'm', 'l', 'o', 'a', 'd', 9, 'r', 'a', 'x', 0,
2103  /* 3478 */ 'v', 'm', 's', 'a', 'v', 'e', 9, 'r', 'a', 'x', 0,
2104  /* 3489 */ 'v', 'm', 'r', 'u', 'n', 9, 'r', 'a', 'x', 0,
2105  /* 3499 */ 'i', 'n', 'v', 'l', 'p', 'g', 'a', 9, 'e', 'a', 'x', ',', 32, 'e', 'c', 'x', 0,
2106  /* 3516 */ 'i', 'n', 'v', 'l', 'p', 'g', 'a', 9, 'r', 'a', 'x', ',', 32, 'e', 'c', 'x', 0,
2107  /* 3533 */ 'i', 'n', 9, 'a', 'l', ',', 32, 'd', 'x', 0,
2108  /* 3543 */ 'i', 'n', 9, 'a', 'x', ',', 32, 'd', 'x', 0,
2109  /* 3553 */ 'i', 'n', 9, 'e', 'a', 'x', ',', 32, 'd', 'x', 0,
2110  };
2111#endif
2112
2113  // Emit the opcode for the instruction.
2114  uint32_t Bits = OpInfo[MCInst_getOpcode(MI)];
2115  // assert(Bits != 0 && "Cannot print this instruction.");
2116#ifndef CAPSTONE_DIET
2117  SStream_concat0(O, AsmStrs+(Bits & 4095)-1);
2118#endif
2119
2120  // Fragment 0 encoded into 5 bits for 31 unique commands.
2121  //printf("Frag-0: %"PRIu64"\n", (Bits >> 12) & 31);
2122  switch ((Bits >> 12) & 31) {
2123  default:   // unreachable.
2124  case 0:
2125    // DBG_VALUE, BUNDLE, LIFETIME_START, LIFETIME_END, AAA, AAS, ACQUIRE_MOV...
2126    return;
2127    break;
2128  case 1:
2129    // AAD8i8, AAM8i8, ADC16i16, ADC16rr_REV, ADC32i32, ADC32rr_REV, ADC64i32...
2130    printOperand(MI, 0, O);
2131    break;
2132  case 2:
2133    // ADC16mi, ADC16mi8, ADC16mr, ADD16mi, ADD16mi8, ADD16mr, AND16mi, AND16...
2134    printi16mem(MI, 0, O);
2135    break;
2136  case 3:
2137    // ADC16ri, ADC16ri8, ADC16rm, ADC16rr, ADC32ri, ADC32ri8, ADC32rm, ADC32...
2138    printOperand(MI, 1, O);
2139    break;
2140  case 4:
2141    // ADC32mi, ADC32mi8, ADC32mr, ADD32mi, ADD32mi8, ADD32mr, AND32mi, AND32...
2142    printi32mem(MI, 0, O);
2143    break;
2144  case 5:
2145    // ADC64mi32, ADC64mi8, ADC64mr, ADD64mi32, ADD64mi8, ADD64mr, AND64mi32,...
2146    printi64mem(MI, 0, O);
2147    break;
2148  case 6:
2149    // ADC8mi, ADC8mr, ADD8mi, ADD8mr, AND8mi, AND8mr, CMP8mi, CMP8mr, CMPXCH...
2150    printi8mem(MI, 0, O);
2151    break;
2152  case 7:
2153    // CALL64pcrel32, CALLpcrel16, CALLpcrel32, EH_SjLj_Setup, JAE_1, JAE_2, ...
2154    printPCRelImm(MI, 0, O);
2155    break;
2156  case 8:
2157    // CMPSB
2158    printSrcIdx8(MI, 1, O);
2159    SStream_concat0(O, ", ");
2160    printDstIdx8(MI, 0, O);
2161    return;
2162    break;
2163  case 9:
2164    // CMPSL
2165    printSrcIdx32(MI, 1, O);
2166    SStream_concat0(O, ", ");
2167    printDstIdx32(MI, 0, O);
2168    return;
2169    break;
2170  case 10:
2171    // CMPSQ
2172    printSrcIdx64(MI, 1, O);
2173    SStream_concat0(O, ", ");
2174    printDstIdx64(MI, 0, O);
2175    return;
2176    break;
2177  case 11:
2178    // CMPSW
2179    printSrcIdx16(MI, 1, O);
2180    SStream_concat0(O, ", ");
2181    printDstIdx16(MI, 0, O);
2182    return;
2183    break;
2184  case 12:
2185    // CMPXCHG16B, LCMPXCHG16B
2186    printi128mem(MI, 0, O);
2187    return;
2188    break;
2189  case 13:
2190    // FARCALL16m, FARCALL32m, FARCALL64, FARJMP16m, FARJMP32m, FARJMP64, LGD...
2191    printopaquemem(MI, 0, O);
2192    return;
2193    break;
2194  case 14:
2195    // INSB, MOVSB, SCASB, STOSB
2196    printDstIdx8(MI, 0, O);
2197    break;
2198  case 15:
2199    // INSL, MOVSL, SCASL, STOSL
2200    printDstIdx32(MI, 0, O);
2201    break;
2202  case 16:
2203    // INSW, MOVSW, SCASW, STOSW
2204    printDstIdx16(MI, 0, O);
2205    break;
2206  case 17:
2207    // LODSB, OUTSB
2208    printSrcIdx8(MI, 0, O);
2209    return;
2210    break;
2211  case 18:
2212    // LODSL, OUTSL
2213    printSrcIdx32(MI, 0, O);
2214    return;
2215    break;
2216  case 19:
2217    // LODSQ
2218    printSrcIdx64(MI, 0, O);
2219    return;
2220    break;
2221  case 20:
2222    // LODSW, OUTSW
2223    printSrcIdx16(MI, 0, O);
2224    return;
2225    break;
2226  case 21:
2227    // LXADD16, XCHG16rm
2228    printi16mem(MI, 2, O);
2229    SStream_concat0(O, ", ");
2230    printOperand(MI, 1, O);
2231    return;
2232    break;
2233  case 22:
2234    // LXADD32, XCHG32rm
2235    printi32mem(MI, 2, O);
2236    SStream_concat0(O, ", ");
2237    printOperand(MI, 1, O);
2238    return;
2239    break;
2240  case 23:
2241    // LXADD64, XCHG64rm
2242    printi64mem(MI, 2, O);
2243    SStream_concat0(O, ", ");
2244    printOperand(MI, 1, O);
2245    return;
2246    break;
2247  case 24:
2248    // LXADD8, XCHG8rm
2249    printi8mem(MI, 2, O);
2250    SStream_concat0(O, ", ");
2251    printOperand(MI, 1, O);
2252    return;
2253    break;
2254  case 25:
2255    // MOV16ao16, MOV16ao16_16, MOV16o16a, MOV16o16a_16, MOV64ao16, MOV64o16a
2256    printMemOffs16(MI, 0, O);
2257    break;
2258  case 26:
2259    // MOV32ao32, MOV32ao32_16, MOV32o32a, MOV32o32a_16, MOV64ao32, MOV64o32a
2260    printMemOffs32(MI, 0, O);
2261    break;
2262  case 27:
2263    // MOV64ao64, MOV64o64a
2264    printMemOffs64(MI, 0, O);
2265    break;
2266  case 28:
2267    // MOV64ao8, MOV64o8a, MOV8ao8, MOV8ao8_16, MOV8o8a, MOV8o8a_16
2268    printMemOffs8(MI, 0, O);
2269    break;
2270  case 29:
2271    // MOVSQ, SCASQ, STOSQ
2272    printDstIdx64(MI, 0, O);
2273    break;
2274  case 30:
2275    // XCHG16rr, XCHG32rr, XCHG64rr, XCHG8rr
2276    printOperand(MI, 2, O);
2277    SStream_concat0(O, ", ");
2278    printOperand(MI, 1, O);
2279    return;
2280    break;
2281  }
2282
2283
2284  // Fragment 1 encoded into 4 bits for 11 unique commands.
2285  //printf("Frag-1: %"PRIu64"\n", (Bits >> 17) & 15);
2286  switch ((Bits >> 17) & 15) {
2287  default:   // unreachable.
2288  case 0:
2289    // AAD8i8, AAM8i8, ADC16i16, ADC32i32, ADC64i32, ADC8i8, ADD16i16, ADD32i...
2290    return;
2291    break;
2292  case 1:
2293    // ADC16mi, ADC16mi8, ADC16mr, ADC16ri, ADC16ri8, ADC16rm, ADC16rr, ADC16...
2294    SStream_concat0(O, ", ");
2295    break;
2296  case 2:
2297    // FARCALL16i, FARCALL32i, FARJMP16i, FARJMP32i
2298    SStream_concat0(O, ":");
2299    printOperand(MI, 0, O);
2300    return;
2301    break;
2302  case 3:
2303    // INSB, INSL, INSW
2304    SStream_concat0(O, ", dx");
2305    op_addReg(MI, X86_REG_DX);
2306    return;
2307    break;
2308  case 4:
2309    // MOV16ao16, MOV16ao16_16, MOV64ao16, OUT16ir, STOSW
2310    SStream_concat0(O, ", ax");
2311    op_addReg(MI, X86_REG_AX);
2312    return;
2313    break;
2314  case 5:
2315    // MOV32ao32, MOV32ao32_16, MOV64ao32, OUT32ir, STOSL
2316    SStream_concat0(O, ", eax");
2317    op_addReg(MI, X86_REG_EAX);
2318    return;
2319    break;
2320  case 6:
2321    // MOV64ao64, STOSQ
2322    SStream_concat0(O, ", rax");
2323    op_addReg(MI, X86_REG_RAX);
2324    return;
2325    break;
2326  case 7:
2327    // MOV64ao8, MOV8ao8, MOV8ao8_16, OUT8ir, STOSB
2328    SStream_concat0(O, ", al");
2329    op_addReg(MI, X86_REG_AL);
2330    return;
2331    break;
2332  case 8:
2333    // RCL16m1, RCL16r1, RCL32m1, RCL32r1, RCL64m1, RCL64r1, RCL8m1, RCL8r1, ...
2334    SStream_concat0(O, ", 1");
2335    op_addImm(MI, 1);
2336    return;
2337    break;
2338  case 9:
2339    // RCL16mCL, RCL16rCL, RCL32mCL, RCL32rCL, RCL64mCL, RCL64rCL, RCL8mCL, R...
2340    SStream_concat0(O, ", cl");
2341    op_addReg(MI, X86_REG_CL);
2342    return;
2343    break;
2344  case 10:
2345    // TAILJMPd, TAILJMPd64, TAILJMPm, TAILJMPm64, TAILJMPr64
2346    return;
2347    break;
2348  }
2349
2350
2351  // Fragment 2 encoded into 5 bits for 18 unique commands.
2352  //printf("Frag-2: %"PRIu64"\n", (Bits >> 21) & 31);
2353  switch ((Bits >> 21) & 31) {
2354  default:   // unreachable.
2355  case 0:
2356    // ADC16mi, ADC16mi8, ADC16mr, ADC32mi, ADC32mi8, ADC32mr, ADC64mi32, ADC...
2357    printOperand(MI, 5, O);
2358    break;
2359  case 1:
2360    // ADC16ri, ADC16ri8, ADC16rr, ADC16rr_REV, ADC32ri, ADC32ri8, ADC32rr, A...
2361    printOperand(MI, 2, O);
2362    break;
2363  case 2:
2364    // ADC16rm, ADD16rm, AND16rm, CMOVA16rm, CMOVAE16rm, CMOVB16rm, CMOVBE16r...
2365    printi16mem(MI, 2, O);
2366    return;
2367    break;
2368  case 3:
2369    // ADC32rm, ADCX32rm, ADD32rm, AND32rm, CMOVA32rm, CMOVAE32rm, CMOVB32rm,...
2370    printi32mem(MI, 2, O);
2371    return;
2372    break;
2373  case 4:
2374    // ADC64rm, ADCX64rm, ADD64rm, AND64rm, CMOVA64rm, CMOVAE64rm, CMOVB64rm,...
2375    printi64mem(MI, 2, O);
2376    return;
2377    break;
2378  case 5:
2379    // ADC8rm, ADD8rm, AND8rm, OR8rm, SBB8rm, SUB8rm, XOR8rm
2380    printi8mem(MI, 2, O);
2381    return;
2382    break;
2383  case 6:
2384    // ADOX32rm, BEXTR32rm, BEXTRI32mi, BLCFILL32rm, BLCI32rm, BLCIC32rm, BLC...
2385    printi32mem(MI, 1, O);
2386    break;
2387  case 7:
2388    // ADOX32rr, ADOX64rr, ANDN32rm, ANDN32rr, ANDN64rm, ANDN64rr, ARPL16rr, ...
2389    printOperand(MI, 1, O);
2390    break;
2391  case 8:
2392    // ADOX64rm, BEXTR64rm, BEXTRI64mi, BLCFILL64rm, BLCI64rm, BLCIC64rm, BLC...
2393    printi64mem(MI, 1, O);
2394    break;
2395  case 9:
2396    // BSF16rm, BSR16rm, CMP16rm, IMUL16rmi, IMUL16rmi8, LAR16rm, LAR32rm, LA...
2397    printi16mem(MI, 1, O);
2398    break;
2399  case 10:
2400    // CMP8rm, MOV8rm, MOV8rm_NOREX, MOVSX16rm8, MOVSX32rm8, MOVSX64rm8, MOVZ...
2401    printi8mem(MI, 1, O);
2402    break;
2403  case 11:
2404    // INVEPT32, INVEPT64, INVPCID32, INVPCID64, INVVPID32, INVVPID64
2405    printi128mem(MI, 1, O);
2406    return;
2407    break;
2408  case 12:
2409    // LDS16rm, LDS32rm, LES16rm, LES32rm, LFS16rm, LFS32rm, LFS64rm, LGS16rm...
2410    printopaquemem(MI, 1, O);
2411    return;
2412    break;
2413  case 13:
2414    // MOVSB
2415    printSrcIdx8(MI, 1, O);
2416    return;
2417    break;
2418  case 14:
2419    // MOVSL
2420    printSrcIdx32(MI, 1, O);
2421    return;
2422    break;
2423  case 15:
2424    // MOVSQ
2425    printSrcIdx64(MI, 1, O);
2426    return;
2427    break;
2428  case 16:
2429    // MOVSW
2430    printSrcIdx16(MI, 1, O);
2431    return;
2432    break;
2433  case 17:
2434    // NOOP19rr
2435    printOperand(MI, 0, O);
2436    return;
2437    break;
2438  }
2439
2440
2441  // Fragment 3 encoded into 2 bits for 4 unique commands.
2442  //printf("Frag-3: %"PRIu64"\n", (Bits >> 26) & 3);
2443  switch ((Bits >> 26) & 3) {
2444  default:   // unreachable.
2445  case 0:
2446    // ADC16mi, ADC16mi8, ADC16mr, ADC16ri, ADC16ri8, ADC16rr, ADC16rr_REV, A...
2447    return;
2448    break;
2449  case 1:
2450    // ANDN32rm, ANDN32rr, ANDN64rm, ANDN64rr, BEXTR32rm, BEXTR32rr, BEXTR64r...
2451    SStream_concat0(O, ", ");
2452    break;
2453  case 2:
2454    // MOV8mr_NOREX, MOV8rm_NOREX, MOV8rr_NOREX
2455    return;
2456    break;
2457  case 3:
2458    // SHLD16mrCL, SHLD16rrCL, SHLD32mrCL, SHLD32rrCL, SHLD64mrCL, SHLD64rrCL...
2459    SStream_concat0(O, ", cl");
2460    op_addReg(MI, X86_REG_CL);
2461    return;
2462    break;
2463  }
2464
2465
2466  // Fragment 4 encoded into 3 bits for 5 unique commands.
2467  //printf("Frag-4: %"PRIu64"\n", (Bits >> 28) & 7);
2468  switch ((Bits >> 28) & 7) {
2469  default:   // unreachable.
2470  case 0:
2471    // ANDN32rm, MULX32rm, PDEP32rm, PEXT32rm
2472    printi32mem(MI, 2, O);
2473    return;
2474    break;
2475  case 1:
2476    // ANDN32rr, ANDN64rr, BEXTR32rr, BEXTR64rr, BEXTRI32ri, BEXTRI64ri, BZHI...
2477    printOperand(MI, 2, O);
2478    return;
2479    break;
2480  case 2:
2481    // ANDN64rm, MULX64rm, PDEP64rm, PEXT64rm
2482    printi64mem(MI, 2, O);
2483    return;
2484    break;
2485  case 3:
2486    // BEXTR32rm, BEXTR64rm, BEXTRI32mi, BEXTRI64mi, BZHI32rm, BZHI64rm, IMUL...
2487    printOperand(MI, 6, O);
2488    break;
2489  case 4:
2490    // SHLD16rri8, SHLD32rri8, SHLD64rri8, SHRD16rri8, SHRD32rri8, SHRD64rri8
2491    printOperand(MI, 3, O);
2492    return;
2493    break;
2494  }
2495
2496
2497  // Fragment 5 encoded into 1 bits for 2 unique commands.
2498  //printf("Frag-5: %"PRIu64"\n", (Bits >> 31) & 1);
2499  if ((Bits >> 31) & 1) {
2500    // VAARG_64
2501    SStream_concat0(O, ", ");
2502    printOperand(MI, 7, O);
2503    SStream_concat0(O, ", ");
2504    printOperand(MI, 8, O);
2505    return;
2506  } else {
2507    // BEXTR32rm, BEXTR64rm, BEXTRI32mi, BEXTRI64mi, BZHI32rm, BZHI64rm, IMUL...
2508    return;
2509  }
2510}
2511
2512
2513/// getRegisterName - This method is automatically generated by tblgen
2514/// from the register set description.  This returns the assembler name
2515/// for the specified register.
2516static char *getRegisterName(unsigned RegNo)
2517{
2518  // assert(RegNo && RegNo < 234 && "Invalid register number!");
2519
2520#ifndef CAPSTONE_DIET
2521  static char AsmStrs[] = {
2522  /* 0 */ 's', 't', '(', '0', ')', 0,
2523  /* 6 */ 's', 't', '(', '1', ')', 0,
2524  /* 12 */ 's', 't', '(', '2', ')', 0,
2525  /* 18 */ 's', 't', '(', '3', ')', 0,
2526  /* 24 */ 's', 't', '(', '4', ')', 0,
2527  /* 30 */ 's', 't', '(', '5', ')', 0,
2528  /* 36 */ 's', 't', '(', '6', ')', 0,
2529  /* 42 */ 's', 't', '(', '7', ')', 0,
2530  /* 48 */ 'x', 'm', 'm', '1', '0', 0,
2531  /* 54 */ 'y', 'm', 'm', '1', '0', 0,
2532  /* 60 */ 'z', 'm', 'm', '1', '0', 0,
2533  /* 66 */ 'c', 'r', '1', '0', 0,
2534  /* 71 */ 'x', 'm', 'm', '2', '0', 0,
2535  /* 77 */ 'y', 'm', 'm', '2', '0', 0,
2536  /* 83 */ 'z', 'm', 'm', '2', '0', 0,
2537  /* 89 */ 'x', 'm', 'm', '3', '0', 0,
2538  /* 95 */ 'y', 'm', 'm', '3', '0', 0,
2539  /* 101 */ 'z', 'm', 'm', '3', '0', 0,
2540  /* 107 */ 'k', '0', 0,
2541  /* 110 */ 'x', 'm', 'm', '0', 0,
2542  /* 115 */ 'y', 'm', 'm', '0', 0,
2543  /* 120 */ 'z', 'm', 'm', '0', 0,
2544  /* 125 */ 'f', 'p', '0', 0,
2545  /* 129 */ 'c', 'r', '0', 0,
2546  /* 133 */ 'd', 'r', '0', 0,
2547  /* 137 */ 'x', 'm', 'm', '1', '1', 0,
2548  /* 143 */ 'y', 'm', 'm', '1', '1', 0,
2549  /* 149 */ 'z', 'm', 'm', '1', '1', 0,
2550  /* 155 */ 'c', 'r', '1', '1', 0,
2551  /* 160 */ 'x', 'm', 'm', '2', '1', 0,
2552  /* 166 */ 'y', 'm', 'm', '2', '1', 0,
2553  /* 172 */ 'z', 'm', 'm', '2', '1', 0,
2554  /* 178 */ 'x', 'm', 'm', '3', '1', 0,
2555  /* 184 */ 'y', 'm', 'm', '3', '1', 0,
2556  /* 190 */ 'z', 'm', 'm', '3', '1', 0,
2557  /* 196 */ 'k', '1', 0,
2558  /* 199 */ 'x', 'm', 'm', '1', 0,
2559  /* 204 */ 'y', 'm', 'm', '1', 0,
2560  /* 209 */ 'z', 'm', 'm', '1', 0,
2561  /* 214 */ 'f', 'p', '1', 0,
2562  /* 218 */ 'c', 'r', '1', 0,
2563  /* 222 */ 'd', 'r', '1', 0,
2564  /* 226 */ 'x', 'm', 'm', '1', '2', 0,
2565  /* 232 */ 'y', 'm', 'm', '1', '2', 0,
2566  /* 238 */ 'z', 'm', 'm', '1', '2', 0,
2567  /* 244 */ 'c', 'r', '1', '2', 0,
2568  /* 249 */ 'x', 'm', 'm', '2', '2', 0,
2569  /* 255 */ 'y', 'm', 'm', '2', '2', 0,
2570  /* 261 */ 'z', 'm', 'm', '2', '2', 0,
2571  /* 267 */ 'k', '2', 0,
2572  /* 270 */ 'x', 'm', 'm', '2', 0,
2573  /* 275 */ 'y', 'm', 'm', '2', 0,
2574  /* 280 */ 'z', 'm', 'm', '2', 0,
2575  /* 285 */ 'f', 'p', '2', 0,
2576  /* 289 */ 'c', 'r', '2', 0,
2577  /* 293 */ 'd', 'r', '2', 0,
2578  /* 297 */ 'x', 'm', 'm', '1', '3', 0,
2579  /* 303 */ 'y', 'm', 'm', '1', '3', 0,
2580  /* 309 */ 'z', 'm', 'm', '1', '3', 0,
2581  /* 315 */ 'c', 'r', '1', '3', 0,
2582  /* 320 */ 'x', 'm', 'm', '2', '3', 0,
2583  /* 326 */ 'y', 'm', 'm', '2', '3', 0,
2584  /* 332 */ 'z', 'm', 'm', '2', '3', 0,
2585  /* 338 */ 'k', '3', 0,
2586  /* 341 */ 'x', 'm', 'm', '3', 0,
2587  /* 346 */ 'y', 'm', 'm', '3', 0,
2588  /* 351 */ 'z', 'm', 'm', '3', 0,
2589  /* 356 */ 'f', 'p', '3', 0,
2590  /* 360 */ 'c', 'r', '3', 0,
2591  /* 364 */ 'd', 'r', '3', 0,
2592  /* 368 */ 'x', 'm', 'm', '1', '4', 0,
2593  /* 374 */ 'y', 'm', 'm', '1', '4', 0,
2594  /* 380 */ 'z', 'm', 'm', '1', '4', 0,
2595  /* 386 */ 'c', 'r', '1', '4', 0,
2596  /* 391 */ 'x', 'm', 'm', '2', '4', 0,
2597  /* 397 */ 'y', 'm', 'm', '2', '4', 0,
2598  /* 403 */ 'z', 'm', 'm', '2', '4', 0,
2599  /* 409 */ 'k', '4', 0,
2600  /* 412 */ 'x', 'm', 'm', '4', 0,
2601  /* 417 */ 'y', 'm', 'm', '4', 0,
2602  /* 422 */ 'z', 'm', 'm', '4', 0,
2603  /* 427 */ 'f', 'p', '4', 0,
2604  /* 431 */ 'c', 'r', '4', 0,
2605  /* 435 */ 'd', 'r', '4', 0,
2606  /* 439 */ 'x', 'm', 'm', '1', '5', 0,
2607  /* 445 */ 'y', 'm', 'm', '1', '5', 0,
2608  /* 451 */ 'z', 'm', 'm', '1', '5', 0,
2609  /* 457 */ 'c', 'r', '1', '5', 0,
2610  /* 462 */ 'x', 'm', 'm', '2', '5', 0,
2611  /* 468 */ 'y', 'm', 'm', '2', '5', 0,
2612  /* 474 */ 'z', 'm', 'm', '2', '5', 0,
2613  /* 480 */ 'k', '5', 0,
2614  /* 483 */ 'x', 'm', 'm', '5', 0,
2615  /* 488 */ 'y', 'm', 'm', '5', 0,
2616  /* 493 */ 'z', 'm', 'm', '5', 0,
2617  /* 498 */ 'f', 'p', '5', 0,
2618  /* 502 */ 'c', 'r', '5', 0,
2619  /* 506 */ 'd', 'r', '5', 0,
2620  /* 510 */ 'x', 'm', 'm', '1', '6', 0,
2621  /* 516 */ 'y', 'm', 'm', '1', '6', 0,
2622  /* 522 */ 'z', 'm', 'm', '1', '6', 0,
2623  /* 528 */ 'x', 'm', 'm', '2', '6', 0,
2624  /* 534 */ 'y', 'm', 'm', '2', '6', 0,
2625  /* 540 */ 'z', 'm', 'm', '2', '6', 0,
2626  /* 546 */ 'k', '6', 0,
2627  /* 549 */ 'x', 'm', 'm', '6', 0,
2628  /* 554 */ 'y', 'm', 'm', '6', 0,
2629  /* 559 */ 'z', 'm', 'm', '6', 0,
2630  /* 564 */ 'f', 'p', '6', 0,
2631  /* 568 */ 'c', 'r', '6', 0,
2632  /* 572 */ 'd', 'r', '6', 0,
2633  /* 576 */ 'x', 'm', 'm', '1', '7', 0,
2634  /* 582 */ 'y', 'm', 'm', '1', '7', 0,
2635  /* 588 */ 'z', 'm', 'm', '1', '7', 0,
2636  /* 594 */ 'x', 'm', 'm', '2', '7', 0,
2637  /* 600 */ 'y', 'm', 'm', '2', '7', 0,
2638  /* 606 */ 'z', 'm', 'm', '2', '7', 0,
2639  /* 612 */ 'k', '7', 0,
2640  /* 615 */ 'x', 'm', 'm', '7', 0,
2641  /* 620 */ 'y', 'm', 'm', '7', 0,
2642  /* 625 */ 'z', 'm', 'm', '7', 0,
2643  /* 630 */ 'f', 'p', '7', 0,
2644  /* 634 */ 'c', 'r', '7', 0,
2645  /* 638 */ 'd', 'r', '7', 0,
2646  /* 642 */ 'x', 'm', 'm', '1', '8', 0,
2647  /* 648 */ 'y', 'm', 'm', '1', '8', 0,
2648  /* 654 */ 'z', 'm', 'm', '1', '8', 0,
2649  /* 660 */ 'x', 'm', 'm', '2', '8', 0,
2650  /* 666 */ 'y', 'm', 'm', '2', '8', 0,
2651  /* 672 */ 'z', 'm', 'm', '2', '8', 0,
2652  /* 678 */ 'x', 'm', 'm', '8', 0,
2653  /* 683 */ 'y', 'm', 'm', '8', 0,
2654  /* 688 */ 'z', 'm', 'm', '8', 0,
2655  /* 693 */ 'c', 'r', '8', 0,
2656  /* 697 */ 'x', 'm', 'm', '1', '9', 0,
2657  /* 703 */ 'y', 'm', 'm', '1', '9', 0,
2658  /* 709 */ 'z', 'm', 'm', '1', '9', 0,
2659  /* 715 */ 'x', 'm', 'm', '2', '9', 0,
2660  /* 721 */ 'y', 'm', 'm', '2', '9', 0,
2661  /* 727 */ 'z', 'm', 'm', '2', '9', 0,
2662  /* 733 */ 'x', 'm', 'm', '9', 0,
2663  /* 738 */ 'y', 'm', 'm', '9', 0,
2664  /* 743 */ 'z', 'm', 'm', '9', 0,
2665  /* 748 */ 'c', 'r', '9', 0,
2666  /* 752 */ 'r', '1', '0', 'b', 0,
2667  /* 757 */ 'r', '1', '1', 'b', 0,
2668  /* 762 */ 'r', '1', '2', 'b', 0,
2669  /* 767 */ 'r', '1', '3', 'b', 0,
2670  /* 772 */ 'r', '1', '4', 'b', 0,
2671  /* 777 */ 'r', '1', '5', 'b', 0,
2672  /* 782 */ 'r', '8', 'b', 0,
2673  /* 786 */ 'r', '9', 'b', 0,
2674  /* 790 */ 'r', '1', '0', 'd', 0,
2675  /* 795 */ 'r', '1', '1', 'd', 0,
2676  /* 800 */ 'r', '1', '2', 'd', 0,
2677  /* 805 */ 'r', '1', '3', 'd', 0,
2678  /* 810 */ 'r', '1', '4', 'd', 0,
2679  /* 815 */ 'r', '1', '5', 'd', 0,
2680  /* 820 */ 'r', '8', 'd', 0,
2681  /* 824 */ 'r', '9', 'd', 0,
2682  /* 828 */ 'a', 'h', 0,
2683  /* 831 */ 'b', 'h', 0,
2684  /* 834 */ 'c', 'h', 0,
2685  /* 837 */ 'd', 'h', 0,
2686  /* 840 */ 'e', 'd', 'i', 0,
2687  /* 844 */ 'r', 'd', 'i', 0,
2688  /* 848 */ 'e', 's', 'i', 0,
2689  /* 852 */ 'r', 's', 'i', 0,
2690  /* 856 */ 'a', 'l', 0,
2691  /* 859 */ 'b', 'l', 0,
2692  /* 862 */ 'c', 'l', 0,
2693  /* 865 */ 'd', 'l', 0,
2694  /* 868 */ 'd', 'i', 'l', 0,
2695  /* 872 */ 's', 'i', 'l', 0,
2696  /* 876 */ 'b', 'p', 'l', 0,
2697  /* 880 */ 's', 'p', 'l', 0,
2698  /* 884 */ 'e', 'b', 'p', 0,
2699  /* 888 */ 'r', 'b', 'p', 0,
2700  /* 892 */ 'e', 'i', 'p', 0,
2701  /* 896 */ 'r', 'i', 'p', 0,
2702  /* 900 */ 'e', 's', 'p', 0,
2703  /* 904 */ 'r', 's', 'p', 0,
2704  /* 908 */ 'c', 's', 0,
2705  /* 911 */ 'd', 's', 0,
2706  /* 914 */ 'e', 's', 0,
2707  /* 917 */ 'f', 's', 0,
2708  /* 920 */ 'f', 'l', 'a', 'g', 's', 0,
2709  /* 926 */ 's', 's', 0,
2710  /* 929 */ 'r', '1', '0', 'w', 0,
2711  /* 934 */ 'r', '1', '1', 'w', 0,
2712  /* 939 */ 'r', '1', '2', 'w', 0,
2713  /* 944 */ 'r', '1', '3', 'w', 0,
2714  /* 949 */ 'r', '1', '4', 'w', 0,
2715  /* 954 */ 'r', '1', '5', 'w', 0,
2716  /* 959 */ 'r', '8', 'w', 0,
2717  /* 963 */ 'r', '9', 'w', 0,
2718  /* 967 */ 'f', 'p', 's', 'w', 0,
2719  /* 972 */ 'e', 'a', 'x', 0,
2720  /* 976 */ 'r', 'a', 'x', 0,
2721  /* 980 */ 'e', 'b', 'x', 0,
2722  /* 984 */ 'r', 'b', 'x', 0,
2723  /* 988 */ 'e', 'c', 'x', 0,
2724  /* 992 */ 'r', 'c', 'x', 0,
2725  /* 996 */ 'e', 'd', 'x', 0,
2726  /* 1000 */ 'r', 'd', 'x', 0,
2727  /* 1004 */ 'e', 'i', 'z', 0,
2728  /* 1008 */ 'r', 'i', 'z', 0,
2729  };
2730
2731  static const uint32_t RegAsmOffset[] = {
2732    828, 856, 973, 831, 859, 885, 876, 981, 834, 862, 908, 989, 837, 841,
2733    868, 865, 911, 997, 972, 884, 980, 988, 840, 996, 920, 892, 1004, 914,
2734    848, 900, 967, 917, 923, 893, 976, 888, 984, 992, 844, 1000, 896, 1008,
2735    852, 904, 849, 872, 901, 880, 926, 129, 218, 289, 360, 431, 502, 568,
2736    634, 693, 748, 66, 155, 244, 315, 386, 457, 133, 222, 293, 364, 435,
2737    506, 572, 638, 125, 214, 285, 356, 427, 498, 564, 630, 107, 196, 267,
2738    338, 409, 480, 546, 612, 111, 200, 271, 342, 413, 484, 550, 616, 694,
2739    749, 67, 156, 245, 316, 387, 458, 0, 6, 12, 18, 24, 30, 36,
2740    42, 110, 199, 270, 341, 412, 483, 549, 615, 678, 733, 48, 137, 226,
2741    297, 368, 439, 510, 576, 642, 697, 71, 160, 249, 320, 391, 462, 528,
2742    594, 660, 715, 89, 178, 115, 204, 275, 346, 417, 488, 554, 620, 683,
2743    738, 54, 143, 232, 303, 374, 445, 516, 582, 648, 703, 77, 166, 255,
2744    326, 397, 468, 534, 600, 666, 721, 95, 184, 120, 209, 280, 351, 422,
2745    493, 559, 625, 688, 743, 60, 149, 238, 309, 380, 451, 522, 588, 654,
2746    709, 83, 172, 261, 332, 403, 474, 540, 606, 672, 727, 101, 190, 782,
2747    786, 752, 757, 762, 767, 772, 777, 820, 824, 790, 795, 800, 805, 810,
2748    815, 959, 963, 929, 934, 939, 944, 949, 954,
2749  };
2750
2751  //int i;
2752  //for (i = 0; i < sizeof(RegAsmOffset)/4; i++)
2753  //     printf("%s = %u\n", AsmStrs+RegAsmOffset[i], i + 1);
2754  //printf("*************************\n");
2755  return AsmStrs+RegAsmOffset[RegNo-1];
2756#else
2757  return NULL;
2758#endif
2759}
2760
2761#ifdef PRINT_ALIAS_INSTR
2762#undef PRINT_ALIAS_INSTR
2763
2764#ifndef CAPSTONE_DIET
2765
2766static void printCustomAliasOperand(MCInst *MI, unsigned OpIdx,
2767  unsigned PrintMethodIdx, SStream *OS)
2768{
2769}
2770
2771static char *printAliasInstr(MCInst *MI, SStream *OS, void *info)
2772{
2773  #define GETREGCLASS_CONTAIN(_class, _reg) MCRegisterClass_contains(MCRegisterInfo_getRegClass(MRI, _class), MCOperand_getReg(MCInst_getOperand(MI, _reg)))
2774  const char *AsmString;
2775  char *tmp, *AsmMnem, *AsmOps, *c;
2776  int OpIdx, PrintMethodIdx;
2777  switch (MCInst_getOpcode(MI)) {
2778  default: return NULL;
2779  case X86_AAD8i8:
2780    if (MCInst_getNumOperands(MI) == 1 &&
2781        MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
2782        MCOperand_getImm(MCInst_getOperand(MI, 0)) == 10) {
2783      // (AAD8i8 10)
2784      AsmString = "aad";
2785      break;
2786    }
2787    return NULL;
2788  case X86_AAM8i8:
2789    if (MCInst_getNumOperands(MI) == 1 &&
2790        MCOperand_isImm(MCInst_getOperand(MI, 0)) &&
2791        MCOperand_getImm(MCInst_getOperand(MI, 0)) == 10) {
2792      // (AAM8i8 10)
2793      AsmString = "aam";
2794      break;
2795    }
2796    return NULL;
2797  case X86_XSTORE:
2798    if (MCInst_getNumOperands(MI) == 0) {
2799      // (XSTORE)
2800      AsmString = "xstorerng";
2801      break;
2802    }
2803    return NULL;
2804  }
2805
2806  tmp = cs_strdup(AsmString);
2807  AsmMnem = tmp;
2808  for(AsmOps = tmp; *AsmOps; AsmOps++) {
2809    if (*AsmOps == ' ' || *AsmOps == '\t') {
2810      *AsmOps = '\0';
2811      AsmOps++;
2812      break;
2813    }
2814  }
2815  SStream_concat0(OS, AsmMnem);
2816  if (*AsmOps) {
2817    SStream_concat0(OS, "\t");
2818    for (c = AsmOps; *c; c++) {
2819      if (*c == '$') {
2820        c += 1;
2821        if (*c == (char)0xff) {
2822          c += 1;
2823          OpIdx = *c - 1;
2824          c += 1;
2825          PrintMethodIdx = *c - 1;
2826          printCustomAliasOperand(MI, OpIdx, PrintMethodIdx, OS);
2827        } else
2828          printOperand(MI, *c - 1, OS);
2829      } else {
2830        SStream_concat(OS, "%c", *c);
2831      }
2832    }
2833  }
2834  return tmp;
2835}
2836
2837#endif
2838
2839#endif // PRINT_ALIAS_INSTR
2840