contrast-agent 3.8.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (500) hide show
  1. checksums.yaml +7 -0
  2. data/.clang-format +5 -0
  3. data/.dockerignore +10 -0
  4. data/.gitignore +58 -0
  5. data/.gitmodules +6 -0
  6. data/.rspec +6 -0
  7. data/.simplecov +4 -0
  8. data/Gemfile +7 -0
  9. data/LICENSE.txt +12 -0
  10. data/Rakefile +15 -0
  11. data/exe/contrast_service +29 -0
  12. data/ext/build_funchook.rb +48 -0
  13. data/ext/cs__assess_active_record_named/cs__active_record_named.c +47 -0
  14. data/ext/cs__assess_active_record_named/cs__active_record_named.h +10 -0
  15. data/ext/cs__assess_active_record_named/extconf.rb +2 -0
  16. data/ext/cs__assess_array/cs__assess_array.c +38 -0
  17. data/ext/cs__assess_array/cs__assess_array.h +9 -0
  18. data/ext/cs__assess_array/extconf.rb +2 -0
  19. data/ext/cs__assess_basic_object/cs__assess_basic_object.c +50 -0
  20. data/ext/cs__assess_basic_object/cs__assess_basic_object.h +17 -0
  21. data/ext/cs__assess_basic_object/extconf.rb +2 -0
  22. data/ext/cs__assess_fiber_track/cs__assess_fiber_track.c +86 -0
  23. data/ext/cs__assess_fiber_track/cs__assess_fiber_track.h +34 -0
  24. data/ext/cs__assess_fiber_track/extconf.rb +2 -0
  25. data/ext/cs__assess_hash/cs__assess_hash.c +64 -0
  26. data/ext/cs__assess_hash/cs__assess_hash.h +24 -0
  27. data/ext/cs__assess_hash/extconf.rb +2 -0
  28. data/ext/cs__assess_kernel/cs__assess_kernel.c +36 -0
  29. data/ext/cs__assess_kernel/cs__assess_kernel.h +10 -0
  30. data/ext/cs__assess_kernel/extconf.rb +2 -0
  31. data/ext/cs__assess_marshal_module/cs__assess_marshal_module.c +47 -0
  32. data/ext/cs__assess_marshal_module/cs__assess_marshal_module.h +18 -0
  33. data/ext/cs__assess_marshal_module/extconf.rb +2 -0
  34. data/ext/cs__assess_module/cs__assess_module.c +78 -0
  35. data/ext/cs__assess_module/cs__assess_module.h +25 -0
  36. data/ext/cs__assess_module/extconf.rb +2 -0
  37. data/ext/cs__assess_regexp/cs__assess_regexp.c +48 -0
  38. data/ext/cs__assess_regexp/cs__assess_regexp.h +22 -0
  39. data/ext/cs__assess_regexp/extconf.rb +2 -0
  40. data/ext/cs__assess_regexp_track/cs__assess_regexp_track.c +63 -0
  41. data/ext/cs__assess_regexp_track/cs__assess_regexp_track.h +29 -0
  42. data/ext/cs__assess_regexp_track/extconf.rb +2 -0
  43. data/ext/cs__assess_string/cs__assess_string.c +38 -0
  44. data/ext/cs__assess_string/cs__assess_string.h +19 -0
  45. data/ext/cs__assess_string/extconf.rb +2 -0
  46. data/ext/cs__assess_string_interpolation26/cs__assess_string_interpolation26.c +31 -0
  47. data/ext/cs__assess_string_interpolation26/cs__assess_string_interpolation26.h +13 -0
  48. data/ext/cs__assess_string_interpolation26/extconf.rb +2 -0
  49. data/ext/cs__common/cs__common.c +60 -0
  50. data/ext/cs__common/cs__common.h +28 -0
  51. data/ext/cs__common/extconf.rb +20 -0
  52. data/ext/cs__contrast_patch/cs__contrast_patch.c +445 -0
  53. data/ext/cs__contrast_patch/cs__contrast_patch.h +196 -0
  54. data/ext/cs__contrast_patch/extconf.rb +2 -0
  55. data/ext/cs__protect_kernel/cs__protect_kernel.c +37 -0
  56. data/ext/cs__protect_kernel/cs__protect_kernel.h +11 -0
  57. data/ext/cs__protect_kernel/extconf.rb +2 -0
  58. data/ext/cs__scope/cs__scope.c +96 -0
  59. data/ext/cs__scope/cs__scope.h +33 -0
  60. data/ext/cs__scope/extconf.rb +2 -0
  61. data/ext/extconf_common.rb +49 -0
  62. data/funchook/LICENSE +360 -0
  63. data/funchook/Makefile +29 -0
  64. data/funchook/Makefile.in +29 -0
  65. data/funchook/README.md +121 -0
  66. data/funchook/appveyor.yml +42 -0
  67. data/funchook/autogen.sh +3 -0
  68. data/funchook/autom4te.cache/output.0 +4976 -0
  69. data/funchook/autom4te.cache/requests +78 -0
  70. data/funchook/autom4te.cache/traces.0 +364 -0
  71. data/funchook/config.guess +1530 -0
  72. data/funchook/config.log +490 -0
  73. data/funchook/config.status +1016 -0
  74. data/funchook/config.sub +1773 -0
  75. data/funchook/configure +4976 -0
  76. data/funchook/configure.ac +59 -0
  77. data/funchook/distorm/COPYING +26 -0
  78. data/funchook/distorm/MANIFEST +25 -0
  79. data/funchook/distorm/MANIFEST.in +4 -0
  80. data/funchook/distorm/README.md +12 -0
  81. data/funchook/distorm/disOps/disOps.py +795 -0
  82. data/funchook/distorm/disOps/x86db.py +404 -0
  83. data/funchook/distorm/disOps/x86header.py +247 -0
  84. data/funchook/distorm/disOps/x86sets.py +1664 -0
  85. data/funchook/distorm/examples/cs/TestdiStorm/Program.cs +79 -0
  86. data/funchook/distorm/examples/cs/TestdiStorm/Properties/AssemblyInfo.cs +36 -0
  87. data/funchook/distorm/examples/cs/TestdiStorm/TestdiStorm.csproj +69 -0
  88. data/funchook/distorm/examples/cs/distorm-net.sln +26 -0
  89. data/funchook/distorm/examples/cs/distorm-net/CodeInfo.cs +23 -0
  90. data/funchook/distorm/examples/cs/distorm-net/DecodedInst.cs +15 -0
  91. data/funchook/distorm/examples/cs/distorm-net/DecodedResult.cs +14 -0
  92. data/funchook/distorm/examples/cs/distorm-net/DecomposedInst.cs +36 -0
  93. data/funchook/distorm/examples/cs/distorm-net/DecomposedResult.cs +14 -0
  94. data/funchook/distorm/examples/cs/distorm-net/Opcodes.cs +1268 -0
  95. data/funchook/distorm/examples/cs/distorm-net/Opcodes.tt +37 -0
  96. data/funchook/distorm/examples/cs/distorm-net/Operand.cs +25 -0
  97. data/funchook/distorm/examples/cs/distorm-net/Properties/AssemblyInfo.cs +36 -0
  98. data/funchook/distorm/examples/cs/distorm-net/diStorm3.cs +411 -0
  99. data/funchook/distorm/examples/cs/distorm-net/distorm-net.csproj +80 -0
  100. data/funchook/distorm/examples/cs/readme +3 -0
  101. data/funchook/distorm/examples/ddk/README +48 -0
  102. data/funchook/distorm/examples/ddk/distorm.ini +11 -0
  103. data/funchook/distorm/examples/ddk/dummy.c +15 -0
  104. data/funchook/distorm/examples/ddk/main.c +91 -0
  105. data/funchook/distorm/examples/ddk/makefile +1 -0
  106. data/funchook/distorm/examples/ddk/sources +10 -0
  107. data/funchook/distorm/examples/java/Makefile +23 -0
  108. data/funchook/distorm/examples/java/distorm/src/Main.java +43 -0
  109. data/funchook/distorm/examples/java/distorm/src/diStorm3/CodeInfo.java +27 -0
  110. data/funchook/distorm/examples/java/distorm/src/diStorm3/DecodedInst.java +32 -0
  111. data/funchook/distorm/examples/java/distorm/src/diStorm3/DecodedResult.java +11 -0
  112. data/funchook/distorm/examples/java/distorm/src/diStorm3/DecomposedInst.java +89 -0
  113. data/funchook/distorm/examples/java/distorm/src/diStorm3/DecomposedResult.java +11 -0
  114. data/funchook/distorm/examples/java/distorm/src/diStorm3/OpcodeEnum.java +131 -0
  115. data/funchook/distorm/examples/java/distorm/src/diStorm3/Opcodes.java +1123 -0
  116. data/funchook/distorm/examples/java/distorm/src/diStorm3/Operand.java +24 -0
  117. data/funchook/distorm/examples/java/distorm/src/diStorm3/distorm3.java +41 -0
  118. data/funchook/distorm/examples/java/jdistorm.c +405 -0
  119. data/funchook/distorm/examples/java/jdistorm.h +40 -0
  120. data/funchook/distorm/examples/java/jdistorm.sln +20 -0
  121. data/funchook/distorm/examples/java/jdistorm.vcproj +208 -0
  122. data/funchook/distorm/examples/linux/Makefile +15 -0
  123. data/funchook/distorm/examples/linux/main.c +181 -0
  124. data/funchook/distorm/examples/tests/Makefile +15 -0
  125. data/funchook/distorm/examples/tests/main.cpp +42 -0
  126. data/funchook/distorm/examples/tests/main.py +66 -0
  127. data/funchook/distorm/examples/tests/test_distorm3.py +1672 -0
  128. data/funchook/distorm/examples/tests/tests.sln +20 -0
  129. data/funchook/distorm/examples/tests/tests.vcxproj +82 -0
  130. data/funchook/distorm/examples/tests/tests.vcxproj.filters +22 -0
  131. data/funchook/distorm/examples/win32/disasm.sln +25 -0
  132. data/funchook/distorm/examples/win32/disasm.vcxproj +201 -0
  133. data/funchook/distorm/examples/win32/disasm.vcxproj.filters +14 -0
  134. data/funchook/distorm/examples/win32/main.cpp +163 -0
  135. data/funchook/distorm/include/distorm.h +482 -0
  136. data/funchook/distorm/include/mnemonics.h +301 -0
  137. data/funchook/distorm/make/linux/Makefile +28 -0
  138. data/funchook/distorm/make/mac/Makefile +24 -0
  139. data/funchook/distorm/make/win32/cdistorm.vcxproj +239 -0
  140. data/funchook/distorm/make/win32/cdistorm.vcxproj.filters +80 -0
  141. data/funchook/distorm/make/win32/distorm.sln +25 -0
  142. data/funchook/distorm/make/win32/resource.h +14 -0
  143. data/funchook/distorm/make/win32/resource.rc +99 -0
  144. data/funchook/distorm/python/distorm3/__init__.py +957 -0
  145. data/funchook/distorm/python/distorm3/sample.py +51 -0
  146. data/funchook/distorm/setup.cfg +10 -0
  147. data/funchook/distorm/setup.py +266 -0
  148. data/funchook/distorm/src/config.h +169 -0
  149. data/funchook/distorm/src/decoder.c +641 -0
  150. data/funchook/distorm/src/decoder.h +33 -0
  151. data/funchook/distorm/src/distorm.c +413 -0
  152. data/funchook/distorm/src/instructions.c +597 -0
  153. data/funchook/distorm/src/instructions.h +463 -0
  154. data/funchook/distorm/src/insts.c +7939 -0
  155. data/funchook/distorm/src/insts.h +64 -0
  156. data/funchook/distorm/src/mnemonics.c +284 -0
  157. data/funchook/distorm/src/operands.c +1290 -0
  158. data/funchook/distorm/src/operands.h +28 -0
  159. data/funchook/distorm/src/prefix.c +368 -0
  160. data/funchook/distorm/src/prefix.h +64 -0
  161. data/funchook/distorm/src/textdefs.c +172 -0
  162. data/funchook/distorm/src/textdefs.h +57 -0
  163. data/funchook/distorm/src/wstring.c +47 -0
  164. data/funchook/distorm/src/wstring.h +35 -0
  165. data/funchook/distorm/src/x86defs.h +82 -0
  166. data/funchook/include/funchook.h +123 -0
  167. data/funchook/install-sh +527 -0
  168. data/funchook/src/Makefile +70 -0
  169. data/funchook/src/Makefile.in +70 -0
  170. data/funchook/src/__strerror.h +109 -0
  171. data/funchook/src/config.h +101 -0
  172. data/funchook/src/config.h.in +100 -0
  173. data/funchook/src/decoder.o +0 -0
  174. data/funchook/src/distorm.o +0 -0
  175. data/funchook/src/funchook.c +440 -0
  176. data/funchook/src/funchook.o +0 -0
  177. data/funchook/src/funchook_internal.h +155 -0
  178. data/funchook/src/funchook_io.c +182 -0
  179. data/funchook/src/funchook_io.h +64 -0
  180. data/funchook/src/funchook_io.o +0 -0
  181. data/funchook/src/funchook_syscall.S +134 -0
  182. data/funchook/src/funchook_syscall.o +0 -0
  183. data/funchook/src/funchook_unix.c +480 -0
  184. data/funchook/src/funchook_unix.o +0 -0
  185. data/funchook/src/funchook_windows.c +397 -0
  186. data/funchook/src/funchook_x86.c +622 -0
  187. data/funchook/src/funchook_x86.o +0 -0
  188. data/funchook/src/instructions.o +0 -0
  189. data/funchook/src/insts.o +0 -0
  190. data/funchook/src/libfunchook.so +0 -0
  191. data/funchook/src/mnemonics.o +0 -0
  192. data/funchook/src/operands.o +0 -0
  193. data/funchook/src/os_func.c +115 -0
  194. data/funchook/src/os_func.h +75 -0
  195. data/funchook/src/os_func.o +0 -0
  196. data/funchook/src/os_func_unix.c +94 -0
  197. data/funchook/src/os_func_unix.o +0 -0
  198. data/funchook/src/os_func_windows.c +32 -0
  199. data/funchook/src/prefix.o +0 -0
  200. data/funchook/src/printf_base.c +1688 -0
  201. data/funchook/src/printf_base.h +46 -0
  202. data/funchook/src/printf_base.o +0 -0
  203. data/funchook/src/textdefs.o +0 -0
  204. data/funchook/src/wstring.o +0 -0
  205. data/funchook/test/Makefile +43 -0
  206. data/funchook/test/Makefile.in +43 -0
  207. data/funchook/test/funchook_test +0 -0
  208. data/funchook/test/libfunchook_test.c +25 -0
  209. data/funchook/test/libfunchook_test.so +0 -0
  210. data/funchook/test/libfunchook_test2.c +18 -0
  211. data/funchook/test/suffix.list +600 -0
  212. data/funchook/test/test_main.c +430 -0
  213. data/funchook/test/test_main.o +0 -0
  214. data/funchook/test/x86_64_test.S +10 -0
  215. data/funchook/test/x86_64_test.o +0 -0
  216. data/funchook/test/x86_test.S +339 -0
  217. data/funchook/win32/config.h +1 -0
  218. data/funchook/win32/funchook.sln +52 -0
  219. data/funchook/win32/funchook.vcxproj +188 -0
  220. data/funchook/win32/funchook.vcxproj.filters +84 -0
  221. data/funchook/win32/funchook_test.vcxproj +170 -0
  222. data/funchook/win32/funchook_test.vcxproj.filters +22 -0
  223. data/funchook/win32/funchook_test_dll.vcxproj +184 -0
  224. data/funchook/win32/funchook_test_dll.vcxproj.filters +30 -0
  225. data/funchook/win32/funchook_test_exe.def +3 -0
  226. data/lib/contrast-agent.rb +8 -0
  227. data/lib/contrast.rb +57 -0
  228. data/lib/contrast/agent.rb +80 -0
  229. data/lib/contrast/agent/assess.rb +45 -0
  230. data/lib/contrast/agent/assess/adjusted_span.rb +25 -0
  231. data/lib/contrast/agent/assess/class_reverter.rb +82 -0
  232. data/lib/contrast/agent/assess/contrast_event.rb +398 -0
  233. data/lib/contrast/agent/assess/frozen_properties.rb +41 -0
  234. data/lib/contrast/agent/assess/insulator.rb +53 -0
  235. data/lib/contrast/agent/assess/policy/dynamic_source_factory.rb +78 -0
  236. data/lib/contrast/agent/assess/policy/patcher.rb +85 -0
  237. data/lib/contrast/agent/assess/policy/policy.rb +116 -0
  238. data/lib/contrast/agent/assess/policy/policy_node.rb +289 -0
  239. data/lib/contrast/agent/assess/policy/policy_scanner.rb +44 -0
  240. data/lib/contrast/agent/assess/policy/preshift.rb +94 -0
  241. data/lib/contrast/agent/assess/policy/propagation_method.rb +260 -0
  242. data/lib/contrast/agent/assess/policy/propagation_node.rb +127 -0
  243. data/lib/contrast/agent/assess/policy/propagator.rb +35 -0
  244. data/lib/contrast/agent/assess/policy/propagator/append.rb +54 -0
  245. data/lib/contrast/agent/assess/policy/propagator/base.rb +37 -0
  246. data/lib/contrast/agent/assess/policy/propagator/center.rb +73 -0
  247. data/lib/contrast/agent/assess/policy/propagator/custom.rb +36 -0
  248. data/lib/contrast/agent/assess/policy/propagator/database_write.rb +62 -0
  249. data/lib/contrast/agent/assess/policy/propagator/insert.rb +55 -0
  250. data/lib/contrast/agent/assess/policy/propagator/keep.rb +26 -0
  251. data/lib/contrast/agent/assess/policy/propagator/next.rb +42 -0
  252. data/lib/contrast/agent/assess/policy/propagator/prepend.rb +50 -0
  253. data/lib/contrast/agent/assess/policy/propagator/remove.rb +76 -0
  254. data/lib/contrast/agent/assess/policy/propagator/replace.rb +27 -0
  255. data/lib/contrast/agent/assess/policy/propagator/reverse.rb +38 -0
  256. data/lib/contrast/agent/assess/policy/propagator/select.rb +86 -0
  257. data/lib/contrast/agent/assess/policy/propagator/splat.rb +60 -0
  258. data/lib/contrast/agent/assess/policy/propagator/split.rb +49 -0
  259. data/lib/contrast/agent/assess/policy/propagator/substitution.rb +169 -0
  260. data/lib/contrast/agent/assess/policy/propagator/trim.rb +81 -0
  261. data/lib/contrast/agent/assess/policy/rewriter_patch.rb +79 -0
  262. data/lib/contrast/agent/assess/policy/source_method.rb +209 -0
  263. data/lib/contrast/agent/assess/policy/source_node.rb +62 -0
  264. data/lib/contrast/agent/assess/policy/trigger_method.rb +209 -0
  265. data/lib/contrast/agent/assess/policy/trigger_node.rb +198 -0
  266. data/lib/contrast/agent/assess/policy/trigger_validation/ssrf_validator.rb +77 -0
  267. data/lib/contrast/agent/assess/policy/trigger_validation/trigger_validation.rb +31 -0
  268. data/lib/contrast/agent/assess/policy/trigger_validation/xss_validator.rb +40 -0
  269. data/lib/contrast/agent/assess/properties.rb +392 -0
  270. data/lib/contrast/agent/assess/rule.rb +18 -0
  271. data/lib/contrast/agent/assess/rule/base.rb +72 -0
  272. data/lib/contrast/agent/assess/rule/csrf.rb +66 -0
  273. data/lib/contrast/agent/assess/rule/csrf/csrf_action.rb +28 -0
  274. data/lib/contrast/agent/assess/rule/csrf/csrf_applicator.rb +69 -0
  275. data/lib/contrast/agent/assess/rule/csrf/csrf_watcher.rb +132 -0
  276. data/lib/contrast/agent/assess/rule/provider.rb +21 -0
  277. data/lib/contrast/agent/assess/rule/provider/hardcoded_key.rb +62 -0
  278. data/lib/contrast/agent/assess/rule/provider/hardcoded_password.rb +73 -0
  279. data/lib/contrast/agent/assess/rule/provider/hardcoded_value_rule.rb +121 -0
  280. data/lib/contrast/agent/assess/rule/redos.rb +68 -0
  281. data/lib/contrast/agent/assess/rule/response_scanning_rule.rb +47 -0
  282. data/lib/contrast/agent/assess/rule/response_watcher.rb +36 -0
  283. data/lib/contrast/agent/assess/rule/watcher.rb +36 -0
  284. data/lib/contrast/agent/assess/tag.rb +151 -0
  285. data/lib/contrast/agent/at_exit_hook.rb +33 -0
  286. data/lib/contrast/agent/class_reopener.rb +195 -0
  287. data/lib/contrast/agent/deadzone/policy/deadzone_node.rb +26 -0
  288. data/lib/contrast/agent/deadzone/policy/policy.rb +57 -0
  289. data/lib/contrast/agent/disable_reaction.rb +24 -0
  290. data/lib/contrast/agent/exclusion_matcher.rb +190 -0
  291. data/lib/contrast/agent/feature_state.rb +379 -0
  292. data/lib/contrast/agent/inventory/policy/policy.rb +32 -0
  293. data/lib/contrast/agent/inventory/policy/trigger_node.rb +22 -0
  294. data/lib/contrast/agent/logger_manager.rb +116 -0
  295. data/lib/contrast/agent/middleware.rb +352 -0
  296. data/lib/contrast/agent/module_data.rb +16 -0
  297. data/lib/contrast/agent/patching/policy/after_load_patch.rb +37 -0
  298. data/lib/contrast/agent/patching/policy/after_load_patcher.rb +58 -0
  299. data/lib/contrast/agent/patching/policy/method_policy.rb +94 -0
  300. data/lib/contrast/agent/patching/policy/module_policy.rb +116 -0
  301. data/lib/contrast/agent/patching/policy/patch.rb +312 -0
  302. data/lib/contrast/agent/patching/policy/patch_status.rb +192 -0
  303. data/lib/contrast/agent/patching/policy/patcher.rb +310 -0
  304. data/lib/contrast/agent/patching/policy/policy.rb +138 -0
  305. data/lib/contrast/agent/patching/policy/policy_node.rb +80 -0
  306. data/lib/contrast/agent/patching/policy/policy_unpatcher.rb +28 -0
  307. data/lib/contrast/agent/patching/policy/trigger_node.rb +81 -0
  308. data/lib/contrast/agent/protect/policy/policy.rb +37 -0
  309. data/lib/contrast/agent/protect/policy/trigger_node.rb +23 -0
  310. data/lib/contrast/agent/protect/rule.rb +58 -0
  311. data/lib/contrast/agent/protect/rule/base.rb +300 -0
  312. data/lib/contrast/agent/protect/rule/base_service.rb +88 -0
  313. data/lib/contrast/agent/protect/rule/cmd_injection.rb +156 -0
  314. data/lib/contrast/agent/protect/rule/csrf.rb +118 -0
  315. data/lib/contrast/agent/protect/rule/csrf/csrf_evaluator.rb +103 -0
  316. data/lib/contrast/agent/protect/rule/csrf/csrf_token_injector.rb +85 -0
  317. data/lib/contrast/agent/protect/rule/default_scanner.rb +300 -0
  318. data/lib/contrast/agent/protect/rule/deserialization.rb +193 -0
  319. data/lib/contrast/agent/protect/rule/http_method_tampering.rb +80 -0
  320. data/lib/contrast/agent/protect/rule/no_sqli.rb +101 -0
  321. data/lib/contrast/agent/protect/rule/no_sqli/mongo_no_sql_scanner.rb +40 -0
  322. data/lib/contrast/agent/protect/rule/path_traversal.rb +143 -0
  323. data/lib/contrast/agent/protect/rule/sqli.rb +101 -0
  324. data/lib/contrast/agent/protect/rule/sqli/default_sql_scanner.rb +16 -0
  325. data/lib/contrast/agent/protect/rule/sqli/mysql_sql_scanner.rb +38 -0
  326. data/lib/contrast/agent/protect/rule/sqli/postgres_sql_scanner.rb +22 -0
  327. data/lib/contrast/agent/protect/rule/sqli/sqlite_sql_scanner.rb +19 -0
  328. data/lib/contrast/agent/protect/rule/unsafe_file_upload.rb +20 -0
  329. data/lib/contrast/agent/protect/rule/xss.rb +24 -0
  330. data/lib/contrast/agent/protect/rule/xxe.rb +120 -0
  331. data/lib/contrast/agent/protect/rule/xxe/entity_wrapper.rb +82 -0
  332. data/lib/contrast/agent/railtie.rb +30 -0
  333. data/lib/contrast/agent/reaction_processor.rb +47 -0
  334. data/lib/contrast/agent/request.rb +493 -0
  335. data/lib/contrast/agent/request_context.rb +225 -0
  336. data/lib/contrast/agent/require_state.rb +61 -0
  337. data/lib/contrast/agent/response.rb +215 -0
  338. data/lib/contrast/agent/rewriter.rb +244 -0
  339. data/lib/contrast/agent/scope.rb +28 -0
  340. data/lib/contrast/agent/service_heartbeat.rb +37 -0
  341. data/lib/contrast/agent/settings_state.rb +148 -0
  342. data/lib/contrast/agent/socket_client.rb +125 -0
  343. data/lib/contrast/agent/thread.rb +26 -0
  344. data/lib/contrast/agent/tracepoint_hook.rb +51 -0
  345. data/lib/contrast/agent/version.rb +8 -0
  346. data/lib/contrast/api.rb +17 -0
  347. data/lib/contrast/api/.gitkeep +0 -0
  348. data/lib/contrast/api/connection_status.rb +49 -0
  349. data/lib/contrast/api/socket.rb +43 -0
  350. data/lib/contrast/api/speedracer.rb +206 -0
  351. data/lib/contrast/api/tcp_socket.rb +31 -0
  352. data/lib/contrast/api/unix_socket.rb +25 -0
  353. data/lib/contrast/common_agent_configuration.rb +86 -0
  354. data/lib/contrast/components/agent.rb +85 -0
  355. data/lib/contrast/components/app_context.rb +188 -0
  356. data/lib/contrast/components/assess.rb +67 -0
  357. data/lib/contrast/components/config.rb +135 -0
  358. data/lib/contrast/components/contrast_service.rb +113 -0
  359. data/lib/contrast/components/heap_dump.rb +34 -0
  360. data/lib/contrast/components/interface.rb +178 -0
  361. data/lib/contrast/components/inventory.rb +23 -0
  362. data/lib/contrast/components/logger.rb +92 -0
  363. data/lib/contrast/components/protect.rb +38 -0
  364. data/lib/contrast/components/sampling.rb +41 -0
  365. data/lib/contrast/components/scope.rb +106 -0
  366. data/lib/contrast/components/settings.rb +140 -0
  367. data/lib/contrast/config.rb +33 -0
  368. data/lib/contrast/config/agent_configuration.rb +24 -0
  369. data/lib/contrast/config/application_configuration.rb +27 -0
  370. data/lib/contrast/config/assess_configuration.rb +22 -0
  371. data/lib/contrast/config/assess_rules_configuration.rb +18 -0
  372. data/lib/contrast/config/base_configuration.rb +105 -0
  373. data/lib/contrast/config/default_value.rb +16 -0
  374. data/lib/contrast/config/exception_configuration.rb +21 -0
  375. data/lib/contrast/config/heap_dump_configuration.rb +23 -0
  376. data/lib/contrast/config/inventory_configuration.rb +20 -0
  377. data/lib/contrast/config/logger_configuration.rb +20 -0
  378. data/lib/contrast/config/protect_configuration.rb +20 -0
  379. data/lib/contrast/config/protect_rule_configuration.rb +37 -0
  380. data/lib/contrast/config/protect_rules_configuration.rb +30 -0
  381. data/lib/contrast/config/root_configuration.rb +26 -0
  382. data/lib/contrast/config/ruby_configuration.rb +39 -0
  383. data/lib/contrast/config/sampling_configuration.rb +22 -0
  384. data/lib/contrast/config/server_configuration.rb +23 -0
  385. data/lib/contrast/config/service_configuration.rb +22 -0
  386. data/lib/contrast/configuration.rb +214 -0
  387. data/lib/contrast/core_extensions/assess.rb +51 -0
  388. data/lib/contrast/core_extensions/assess/array.rb +58 -0
  389. data/lib/contrast/core_extensions/assess/assess_extension.rb +145 -0
  390. data/lib/contrast/core_extensions/assess/basic_object.rb +15 -0
  391. data/lib/contrast/core_extensions/assess/erb.rb +42 -0
  392. data/lib/contrast/core_extensions/assess/exec_trigger.rb +48 -0
  393. data/lib/contrast/core_extensions/assess/fiber.rb +125 -0
  394. data/lib/contrast/core_extensions/assess/hash.rb +22 -0
  395. data/lib/contrast/core_extensions/assess/kernel.rb +95 -0
  396. data/lib/contrast/core_extensions/assess/module.rb +14 -0
  397. data/lib/contrast/core_extensions/assess/regexp.rb +206 -0
  398. data/lib/contrast/core_extensions/assess/string.rb +75 -0
  399. data/lib/contrast/core_extensions/assess/tilt_template_trigger.rb +73 -0
  400. data/lib/contrast/core_extensions/delegator.rb +14 -0
  401. data/lib/contrast/core_extensions/eval_trigger.rb +52 -0
  402. data/lib/contrast/core_extensions/inventory.rb +22 -0
  403. data/lib/contrast/core_extensions/inventory/datastores.rb +37 -0
  404. data/lib/contrast/core_extensions/module.rb +42 -0
  405. data/lib/contrast/core_extensions/object.rb +27 -0
  406. data/lib/contrast/core_extensions/protect.rb +20 -0
  407. data/lib/contrast/core_extensions/protect/applies_command_injection_rule.rb +70 -0
  408. data/lib/contrast/core_extensions/protect/applies_deserialization_rule.rb +58 -0
  409. data/lib/contrast/core_extensions/protect/applies_no_sqli_rule.rb +81 -0
  410. data/lib/contrast/core_extensions/protect/applies_path_traversal_rule.rb +119 -0
  411. data/lib/contrast/core_extensions/protect/applies_sqli_rule.rb +63 -0
  412. data/lib/contrast/core_extensions/protect/applies_xxe_rule.rb +141 -0
  413. data/lib/contrast/core_extensions/protect/kernel.rb +30 -0
  414. data/lib/contrast/core_extensions/protect/psych.rb +7 -0
  415. data/lib/contrast/core_extensions/thread.rb +31 -0
  416. data/lib/contrast/internal_exception.rb +8 -0
  417. data/lib/contrast/rails_extensions/assess/action_controller_inheritance.rb +48 -0
  418. data/lib/contrast/rails_extensions/assess/active_record.rb +32 -0
  419. data/lib/contrast/rails_extensions/assess/active_record_named.rb +61 -0
  420. data/lib/contrast/rails_extensions/assess/configuration.rb +26 -0
  421. data/lib/contrast/rails_extensions/buffer.rb +30 -0
  422. data/lib/contrast/rails_extensions/rack.rb +45 -0
  423. data/lib/contrast/security_exception.rb +14 -0
  424. data/lib/contrast/sinatra_extensions/assess/cookie.rb +26 -0
  425. data/lib/contrast/sinatra_extensions/inventory/sinatra_base.rb +59 -0
  426. data/lib/contrast/tasks/service.rb +95 -0
  427. data/lib/contrast/utils/assess/sampling_util.rb +96 -0
  428. data/lib/contrast/utils/assess/tracking_util.rb +39 -0
  429. data/lib/contrast/utils/boolean_util.rb +33 -0
  430. data/lib/contrast/utils/cache.rb +69 -0
  431. data/lib/contrast/utils/class_util.rb +58 -0
  432. data/lib/contrast/utils/comment_range.rb +19 -0
  433. data/lib/contrast/utils/data_store_util.rb +23 -0
  434. data/lib/contrast/utils/duck_utils.rb +58 -0
  435. data/lib/contrast/utils/env_configuration_item.rb +52 -0
  436. data/lib/contrast/utils/environment_util.rb +152 -0
  437. data/lib/contrast/utils/freeze_util.rb +36 -0
  438. data/lib/contrast/utils/gemfile_reader.rb +191 -0
  439. data/lib/contrast/utils/hash_digest.rb +148 -0
  440. data/lib/contrast/utils/heap_dump_util.rb +113 -0
  441. data/lib/contrast/utils/invalid_configuration_util.rb +88 -0
  442. data/lib/contrast/utils/inventory_util.rb +126 -0
  443. data/lib/contrast/utils/io_util.rb +61 -0
  444. data/lib/contrast/utils/object_share.rb +117 -0
  445. data/lib/contrast/utils/operating_environment.rb +38 -0
  446. data/lib/contrast/utils/os.rb +49 -0
  447. data/lib/contrast/utils/path_util.rb +151 -0
  448. data/lib/contrast/utils/performs_logging.rb +152 -0
  449. data/lib/contrast/utils/preflight_util.rb +13 -0
  450. data/lib/contrast/utils/prevent_serialization.rb +52 -0
  451. data/lib/contrast/utils/rack_assess_session_cookie.rb +104 -0
  452. data/lib/contrast/utils/rails_assess_configuration.rb +95 -0
  453. data/lib/contrast/utils/random_util.rb +22 -0
  454. data/lib/contrast/utils/resource_loader.rb +23 -0
  455. data/lib/contrast/utils/ruby_ast_rewriter.rb +74 -0
  456. data/lib/contrast/utils/scope_util.rb +99 -0
  457. data/lib/contrast/utils/service_response_util.rb +116 -0
  458. data/lib/contrast/utils/service_sender_util.rb +98 -0
  459. data/lib/contrast/utils/sha256_builder.rb +69 -0
  460. data/lib/contrast/utils/sinatra_helper.rb +49 -0
  461. data/lib/contrast/utils/stack_trace_utils.rb +209 -0
  462. data/lib/contrast/utils/string_utils.rb +72 -0
  463. data/lib/contrast/utils/tag_util.rb +139 -0
  464. data/lib/contrast/utils/thread_tracker.rb +54 -0
  465. data/lib/contrast/utils/timer.rb +78 -0
  466. data/resources/assess/policy.json +1673 -0
  467. data/resources/csrf/inject.js +44 -0
  468. data/resources/deadzone/policy.json +55 -0
  469. data/resources/factory-bot-spec/spec_helper.rb +30 -0
  470. data/resources/inventory/policy.json +110 -0
  471. data/resources/protect/policy.json +417 -0
  472. data/resources/rubocops/kernel/catch_cop.rb +37 -0
  473. data/resources/rubocops/kernel/require_cop.rb +37 -0
  474. data/resources/rubocops/kernel/require_relative_cop.rb +33 -0
  475. data/resources/rubocops/module/autoload_cop.rb +37 -0
  476. data/resources/rubocops/module/const_defined_cop.rb +37 -0
  477. data/resources/rubocops/module/const_get_cop.rb +37 -0
  478. data/resources/rubocops/module/const_set_cop.rb +37 -0
  479. data/resources/rubocops/module/constants_cop.rb +37 -0
  480. data/resources/rubocops/module/name_cop.rb +37 -0
  481. data/resources/rubocops/object/class_cop.rb +37 -0
  482. data/resources/rubocops/object/freeze_cop.rb +37 -0
  483. data/resources/rubocops/object/frozen_cop.rb +37 -0
  484. data/resources/rubocops/object/is_a_cop.rb +37 -0
  485. data/resources/rubocops/object/method_cop.rb +37 -0
  486. data/resources/rubocops/object/respond_to_cop.rb +37 -0
  487. data/resources/rubocops/object/singleton_class_cop.rb +37 -0
  488. data/resources/rubocops/regexp/spelling_cop.rb +44 -0
  489. data/resources/rubocops/thread/new_cop.rb +39 -0
  490. data/resources/ruby-spec/ancestors_spec.rb +70 -0
  491. data/resources/ruby-spec/modulo_spec.rb +831 -0
  492. data/resources/ruby-spec/parameters_spec.rb +261 -0
  493. data/resources/ruby-spec/ruby_spec_spec_helper.rb +35 -0
  494. data/resources/test_marker.txt +1 -0
  495. data/ruby-agent.gemspec +129 -0
  496. data/service_executables/.gitkeep +0 -0
  497. data/service_executables/VERSION +1 -0
  498. data/service_executables/linux/contrast-service +0 -0
  499. data/service_executables/mac/contrast-service +0 -0
  500. metadata +945 -0
@@ -0,0 +1,11 @@
1
+ package diStorm3;
2
+
3
+ public class DecomposedResult {
4
+ public DecomposedResult(int maxInstructions) {
5
+ mMaxInstructions = maxInstructions;
6
+ mInstructions = null;
7
+ }
8
+
9
+ public DecomposedInst[] mInstructions;
10
+ private int mMaxInstructions;
11
+ }
@@ -0,0 +1,131 @@
1
+ package diStorm3;
2
+
3
+ public enum OpcodeEnum {
4
+ UNDEFINED, SLDT, POPA, UNPCKHPS, POPF, CMPLTSS, VMOVSD, PFPNACC, VMOVMSKPD,
5
+ INVLPGA, UNPCKHPD, SYSEXIT, PFSUB, CMPLTSD, VPMULHUW, VPHSUBSW, VCMPNGEPS,
6
+ VMOVSS, ARPL, FICOMP, RETF, FCHS, CMPLEPS, PUNPCKHDQ, VAESDEC, FUCOM, VCMPORDPS,
7
+ PSUBUSW, PXOR, VPABSB, WRMSR, VCMPEQ_UQPS, VFMADDSUB231PD, PFMAX, VCMPNEQ_OSSS,
8
+ VFNMADD213PD, MOVNTI, PFCMPGT, VFNMADD231SS, ROUNDPD, VCMPGTPS, VRCPSS, VFNMADD132SS,
9
+ VCMPNGEPD, VFMSUB213PD, VCMPNEQ_OSSD, VPSLLDQ, PFCMPGE, VCMPGTPD, CVTDQ2PD,
10
+ CMPLESD, JNS, VDIVSD, JNP, EXTRACTPS, PMOVZXBQ, JNZ, FCOMI, VPUNPCKHWD, PMOVZXBD,
11
+ VMOVNTDQ, PMOVSXWD, POPCNT, JNO, FNSAVE, LOOP, VMOVMSKPS, FLDL2T, CMPS, FSUB,
12
+ DIVPS, PHSUBD, CMPEQSS, CMC, CVTTPS2DQ, DIVPD, VMOVD, CALL_FAR, PMULHRSW, VPMULHRSW,
13
+ PHSUBW, CMPEQSD, XADD, CMOVBE, CMP, SBB, VHADDPS, FXRSTOR64, INVVPID, LSL,
14
+ VCMPNEQ_USSS, VHADDPD, LSS, VFMSUB132PD, LAHF, PFACC, PFRCPIT2, VPUNPCKLBW,
15
+ PFRCPIT1, PCMPGTQ, FYL2X, VCMPORD_SSD, PSRLD, SFENCE, CVTPS2DQ, PBLENDW, VFMSUBADD213PS,
16
+ PCMPGTB, PCMPGTD, VAESENC, VMOVSHDUP, MPSADBW, VCMPNLE_UQPD, VMMCALL, INSERTQ,
17
+ VFNMADD213SS, CVTPI2PD, INT, VPERMILPS, HLT, PHMINPOSUW, FCMOVNU, INVPCID,
18
+ INS, FCOMIP, CVTPI2PS, VFNMADD213SD, PACKUSWB, CBW, VMSAVE, PUSHF, NOT, FCMOVNB,
19
+ NOP, FSQRT, VPERMILPD, INC, UD2, VPCMPEQW, PCMPISTRM, VPCMPEQQ, CMPNLEPS, VCMPEQ_USSD,
20
+ VCMPUNORDPD, FADDP, RET, VPCMPEQD, VPMINSD, VPINSRB, VPCMPEQB, ADDSUBPD, VFMADDSUB231PS,
21
+ VCMPEQ_USSS, PSIGNW, VPMOVSXDQ, VPMAXSD, SETG, VPMAXSB, SETA, SETB, STMXCSR,
22
+ SETL, MOVNTQ, SETO, ANDNPD, BSR, VMOVDDUP, VPMAXSW, PSIGND, SETP, PSIGNB, LFS,
23
+ SETS, VCMPUNORDSS, ANDNPS, VMXON, VANDPS, XSETBV, OUT, LTR, VPINSRD, TZCNT,
24
+ VCVTTSS2SI, VPSRLDQ, FDECSTP, PSRLDQ, VCMPGE_OQSD, PSLLDQ, FCOS, FXTRACT, VCMPGE_OQSS,
25
+ VMOVNTDQA, VCMPNGT_UQPD, FMUL, VCMPGT_OQPS, FCOMPP, PF2ID, CWD, VCMPUNORD_SPS,
26
+ CMOVLE, VPSHUFHW, VCMPGT_OQPD, PHADDSW, PF2IW, VMOVNTPD, FCOMP, UNPCKLPS, MASKMOVDQU,
27
+ FCMOVBE, VCMPLT_OQPD, VMAXSD, VCMPNLTPD, PREFETCHT2, PREFETCHT1, PREFETCHT0,
28
+ UNPCKLPD, CVTTSS2SI, DIV, PMOVSXDQ, VCMPGESS, CDQE, VSTMXCSR, FISUBR, VPMINSB,
29
+ VFMSUB213PS, VCMPLT_OQPS, CMPLESS, VPMINSW, FSTENV, VCMPGESD, VPTEST, FISUB,
30
+ STD, VPACKSSDW, XOR, VMULPD, STC, STI, LDMXCSR, CMPLTPD, ORPS, VPACKUSDW, FSUBP,
31
+ STR, FSUBR, CMPLTPS, VFMADD231SD, PAUSE, CVTPD2DQ, RSM, VSQRTSD, VORPS, VFMADDSUB213PS,
32
+ AESENC, VCMPEQ_UQPD, VUNPCKHPS, PMADDUBSW, VCMPNLE_UQPS, VPSLLW, MASKMOVQ,
33
+ CALL, VSQRTSS, PADDUSB, VMREAD, XSAVEOPT64, VUNPCKHPD, VSUBPS, VCVTSS2SD, VAESDECLAST,
34
+ HSUBPS, VCVTSS2SI, VPBLENDVB, VCMPGTSD, FILD, VCOMISS, HSUBPD, VFNMSUB231SS,
35
+ VPSRAD, VCMPNLEPS, SAL, SYSCALL, VRSQRTSS, VPINSRQ, WRGSBASE, VPSHUFD, PMOVSXBW,
36
+ VPSRAW, VCMPNLEPD, FADD, SAR, XEND, AESKEYGENASSIST, PACKSSDW, VFMADD213SS,
37
+ VMOVDQA, VMOVSLDUP, FRNDINT, PMULLW, DIVSD, MOVMSKPS, VPMAXUW, VDIVPD, VPMOVSXBW,
38
+ PMOVSXWQ, PMULLD, VMOVDQU, VFNMSUB213SD, CMOVAE, VCMPEQ_OSPD, VDIVPS, JAE,
39
+ MOVMSKPD, DIVSS, FSAVE, PCMPEQQ, VPSHUFLW, PCMPEQW, VLDMXCSR, VFMSUB132SS,
40
+ CMPORDPD, RCPSS, VPSLLD, IDIV, VCMPORDPD, PCMPEQB, PCMPEQD, VPSLLQ, VPMOVZXBQ,
41
+ VFMSUBADD213PD, VBLENDVPD, CMPORDPS, PUNPCKLQDQ, VPAND, VCMPNEQ_OQPD, HADDPD,
42
+ VADDSUBPS, VSHUFPD, VSUBSD, VSQRTPS, MOVSHDUP, VFNMADD231SD, VMLAUNCH, VMASKMOVPD,
43
+ HADDPS, VCMPNEQ_OQPS, PUNPCKLWD, VCMPNGT_UQSS, VSQRTPD, VSUBSS, VSHUFPS, VCMPNEQSS,
44
+ VLDDQU, VCMPLT_OQSS, RDRAND, PADDSW, VCMPEQ_USPS, ORPD, PANDN, FPTAN, FIDIV,
45
+ VCMPLT_OQSD, VMPTRLD, VFMSUB231PS, VCMPNEQSD, VPMULDQ, LOOPNZ, VCMPUNORDPS,
46
+ SHR, SHRD, MONITOR, XABORT, AESENCLAST, MOVSD, VPINSRW, VMLOAD, MOVLHPS, VMOVLPD,
47
+ MOVQ2DQ, SQRTSS, VDPPS, SUBSS, MOVSX, VMOVLHPS, VMOVLPS, VPUNPCKHDQ, VCVTPD2DQ,
48
+ SHL, MOVSS, PINSRQ, PFNACC, MOVDQU, OUTS, PSUBB, BTS, BTR, VCMPNEQ_USSD, SGDT,
49
+ VFMADD231SS, FSCALE, PSUBW, CMPNLTPD, PACKUSDW, LAR, BTC, VFNMADD132SD, VCMPNGTPD,
50
+ VPMOVZXBW, VFMSUB132SD, AESIMC, FCOM, VPMOVZXBD, VADDSUBPD, FINIT, CMPORDSS,
51
+ WBINVD, PAND, VPALIGNR, CMPORDSD, VPXOR, JBE, FXAM, XSAVEOPT, MUL, VPMINUB,
52
+ VPADDSW, PMAXSW, VINSERTPS, VCMPEQPD, FFREE, VMASKMOVPS, CMPXCHG8B, PMAXSD,
53
+ VPADDSB, PUSH, VPCLMULQDQ, VCMPEQPS, PFRSQIT1, ROUNDPS, SETNO, XGETBV, PMINSD,
54
+ PADDB, FPREM1, CLD, FIMUL, XORPD, CLC, FSTP, BLENDPD, PADDUSW, FNINIT, SETNZ,
55
+ PADDQ, XORPS, VFNMSUB213SS, SETNS, FIADD, SETNP, VPUNPCKHQDQ, SUBPS, CMPNLTSD,
56
+ LLDT, VFMSUB213SD, PTEST, VFNMSUB132PD, GETSEC, VPSIGND, JCXZ, CMPNLTSS, SETGE,
57
+ CMPEQPS, PSADBW, MOVSXD, VFNMSUB132PS, AAD, VAESENCLAST, PUNPCKHQDQ, MOVLPD,
58
+ VPADDUSW, VCMPFALSEPS, AAM, VPUNPCKLQDQ, MINSS, PADDD, VCMPFALSEPD, VPUNPCKLWD,
59
+ MOVLPS, CLGI, AAS, LODS, CMOVNP, MINSD, CLI, CVTTSD2SI, FICOM, PMOVZXBW, ADDPD,
60
+ PREFETCHW, VCMPNEQ_USPS, VXORPD, POR, POP, VPERM2F128, LOOPZ, MOVNTDQ, INT1,
61
+ CMPXCHG, VBROADCASTF128, VCMPNGE_UQPD, PHADDW, VXORPS, VCMPNEQ_USPD, ADDPS,
62
+ PFMUL, LGDT, VERR, VERW, VHSUBPD, VPMULLW, VMOVUPS, INTO, FCLEX, VHSUBPS, CVTSD2SS,
63
+ FLDPI, PABSW, VMAXPD, JMP_FAR, VPACKUSWB, FUCOMPP, VMOVUPD, PSWAPD, PADDW,
64
+ PSLLD, SWAPGS, MOVSLDUP, CVTSI2SS, VCMPTRUESD, CMPUNORDSS, VCVTTPS2DQ, SQRTSD,
65
+ VBROADCASTSD, PSUBD, TEST, LGS, VCMPTRUESS, SYSENTER, CVTSI2SD, VCMPNLESD,
66
+ VTESTPD, JZ, VDIVSS, VORPD, JP, JS, JL, RSQRTSS, VTESTPS, JO, VMAXPS, PSUBUSB,
67
+ JG, VBROADCASTSS, JA, JB, CWDE, VCMPLEPD, VMWRITE, VCMPLEPS, PMOVMSKB, INSERTPS,
68
+ PCMPESTRI, WAIT, VCMPFALSE_OSPD, PCMPESTRM, PUNPCKLDQ, MULSS, VSUBPD, CMPEQPD,
69
+ VCMPNEQ_OQSD, VCOMISD, VMINSS, VPADDD, RDMSR, VPSIGNW, JECXZ, MULSD, ENTER,
70
+ MOVBE, VZEROALL, _3DNOW, VMINSD, VCMPNEQ_OQSS, PFSUBR, VCMPGEPS, VPSUBUSB,
71
+ VFMSUB231SD, PMAXUD, FXSAVE, FISTTP, VCMPGEPD, BLENDPS, VCMPLESD, FCMOVNBE,
72
+ VFMSUB231SS, VBLENDVPS, VMPSADBW, VPSUBUSW, VCMPLTSD, MOVNTDQA, SHUFPD, SUBPD,
73
+ SQRTPD, VMOVHPD, VMCALL, VFMADD132PD, LEAVE, SHUFPS, VCMPEQ_OSPS, VPCMPESTRI,
74
+ VCMPLTSS, VPCMPESTRM, VFMADD132PS, LIDT, F2XM1, VMOVHPS, PMOVZXDQ, VZEROUPPER,
75
+ SQRTPS, VANDNPS, VPADDQ, FPREM, VPADDW, PALIGNR, PMINSB, PCMPGTW, SHLD, LDS,
76
+ VPADDB, VMRUN, RDFSBASE, VANDNPD, XLAT, XCHG, FINCSTP, MOVDQ2Q, PMINSW, SMSW,
77
+ VPSIGNB, XRSTOR, VBLENDPD, JGE, VCMPNLT_UQPS, VCMPORDSD, VBLENDPS, FTST, CVTTPD2DQ,
78
+ VCMPORDSS, VCMPNLT_UQPD, VFNMSUB132SS, XRSTOR64, AND, VRSQRTPS, CLFLUSH, PSHUFB,
79
+ FLDENV, MOV, PSHUFD, JLE, FEDISI, VMFUNC, VPCMPGTW, PFCMPEQ, VCMPORD_SSS, PSHUFW,
80
+ VPEXTRB, VCVTDQ2PD, VMOVQ, FLDL2E, VPEXTRD, VPHSUBW, VFNMSUB213PS, VFMADD213PD,
81
+ STGI, FPATAN, VPEXTRQ, FST, INT_3, FIST, VMCLEAR, PMOVSXBQ, AAA, VPHSUBD, CVTTPS2PI,
82
+ CMPNEQPS, VCMPGE_OQPD, LDDQU, RSQRTPS, VADDPD, PFRCP, CVTSS2SD, VFNMSUB132SD,
83
+ FDIVRP, FBLD, CPUID, RDTSC, VPBLENDW, VCVTPS2DQ, VPOR, VADDPS, PI2FW, MINPS,
84
+ VCMPEQ_OSSD, VPMULUDQ, MAXSD, VPMULLD, FIDIVR, VUCOMISS, MOVDDUP, VPSHUFB,
85
+ PHSUBSW, VPCMPISTRI, MAXSS, VPAVGB, VCMPFALSE_OSSS, MINPD, FYL2XP1, VUCOMISD,
86
+ VFNMSUB231PD, VCMPNGE_UQSD, ADDSD, VMXOFF, PSRLQ, VCMPNEQPS, PSRLW, PSRAD,
87
+ SIDT, PACKSSWB, XSAVE, VCMPNEQPD, CDQ, ADDSS, VCMPNGE_UQSS, CRC32, VAESIMC,
88
+ PMAXSB, VEXTRACTPS, VCMPNLT_UQSD, VPSUBB, VPMOVZXWQ, VCMPNEQ_OSPS, MOVNTSS,
89
+ VEXTRACTF128, PADDSB, IMUL, RCR, VCMPUNORD_SPD, RCL, MOVNTSD, VCMPNEQ_OSPD,
90
+ VCMPNLT_UQSS, SUBSD, SCAS, PCLMULQDQ, PFRSQRT, PINSRD, FSUBRP, PUSHA, VPMAXUB,
91
+ CMPUNORDPS, VPMAXUD, FABS, VPMOVSXBQ, VCMPTRUEPD, FEMMS, VCMPEQ_OSSS, VFMADD213SD,
92
+ VPMOVSXBD, CMPUNORDPD, VMPTRST, CMPXCHG16B, VCMPTRUEPS, VCMPNGTPS, FNCLEX,
93
+ CMPNEQSD, VCMPEQ_UQSD, FCMOVU, EXTRQ, DPPD, CMOVGE, PINSRB, VCMPEQ_UQSS, VPMADDUBSW,
94
+ CMPNEQSS, VFMADD231PD, FSIN, IN, FCMOVE, FLDCW, DPPS, FCMOVB, VPSRLW, LFENCE,
95
+ CVTSD2SI, SETAE, CMOVNZ, VPSRLQ, FMULP, VMOVAPD, VCMPLE_OQSS, CMOVNS, FCMOVNE,
96
+ CMOVNO, VPMULHW, VPSRLD, CVTPS2PH, CVTPS2PI, PHADDD, CVTPS2PD, VPABSW, VCMPLE_OQSD,
97
+ VMOVAPS, VPSUBW, PMULHRW, MOVAPS, PFMIN, MOVD, MOVHPS, MULPS, VCMPLTPS, BT,
98
+ MOVAPD, VCMPNGE_UQPS, JRCXZ, MULPD, MOVS, INVLPG, MOVQ, VMINPD, PABSD, SAHF,
99
+ VCMPTRUE_USPS, PI2FD, PABSB, VROUNDSD, VPANDN, VPUNPCKLDQ, FDIVP, PSUBQ, FDIVR,
100
+ FDIV, VCMPTRUE_USPD, PREFETCH, EMMS, VMINPS, VFMADD231PS, VFNMSUB213PD, CVTSS2SI,
101
+ MOVHPD, CMOVZ, VPAVGW, CQO, VPSUBD, CMOVP, VCMPEQSS, CMOVS, PMOVSXBD, VROUNDSS,
102
+ VPSUBQ, CMOVL, ADDSUBPS, CMOVO, CMOVA, CMOVB, PUNPCKHBW, PCMPISTRI, CMOVG,
103
+ VPMOVMSKB, AESDECLAST, MOVUPD, VFMSUBADD132PD, VPSADBW, XBEGIN, VROUNDPD, LMSW,
104
+ INVEPT, MOVZX, ANDPS, VFMSUBADD132PS, MOVUPS, VCMPGTSS, PMULHUW, VDPPD, PEXTRD,
105
+ VCMPFALSESS, RDGSBASE, OR, VPEXTRW, VPSUBSB, FXRSTOR, CLTS, VCMPNGT_UQSD, VCMPNGTSS,
106
+ FRSTOR, VCMPFALSESD, FLDLN2, VINSERTF128, VPSUBSW, PMULUDQ, DEC, VCMPFALSE_OSPS,
107
+ FLD, VPMOVZXDQ, ROUNDSS, VCVTSI2SS, PEXTRW, FXSAVE64, ROL, VFMADD132SD, CMPLEPD,
108
+ VCVTSD2SS, FUCOMP, JMP, VCMPEQSD, CVTDQ2PS, VCMPGT_OQSS, FUCOMI, LZCNT, VRCPPS,
109
+ PMAXUB, VPHADDD, VCVTSI2SD, VCMPGT_OQSD, ROR, INVD, VCVTSD2SI, AESDEC, CMPNLESD,
110
+ SETLE, VFMSUBADD231PS, VFNMADD231PS, XSAVE64, PUNPCKHWD, VPMOVSXWD, CVTPD2PS,
111
+ VMOVHLPS, VFMSUBADD231PD, CVTPD2PI, CMPNLESS, PMULDQ, VPMOVSXWQ, VCMPNLTSD,
112
+ VFMSUB132PS, VFNMADD231PD, FSTSW, RDTSCP, MFENCE, VFMADD132SS, PMINUD, FENI,
113
+ BOUND, VROUNDPS, PSHUFLW, VMULSS, VCMPFALSE_OSSD, VCVTDQ2PS, VCMPLESS, FNOP,
114
+ CMPNLTPS, VCMPNLTPS, FLDLG2, SYSRET, FSTCW, VFMSUB213SS, SKINIT, VANDPD, FLDZ,
115
+ SUB, VPHADDW, NEG, PMINUW, MAXPD, VCMPORD_SPS, STOS, VFNMSUB231SD, VCMPUNORDSD,
116
+ PAVGUSB, VCMPORD_SPD, MAXPS, PMINUB, VMASKMOVDQU, FBSTP, PINSRW, VPMOVZXWD,
117
+ VPMINUW, VCMPNLE_UQSD, SALC, PEXTRB, VUNPCKLPS, VCMPNLE_UQSS, MOVDQA, VCMPNLTSS,
118
+ PSLLQ, VMOVNTPS, VPMINUD, PREFETCHNTA, VUNPCKLPD, CVTPH2PS, VAESKEYGENASSIST,
119
+ PSUBSW, VCMPNGESD, FNSTENV, FNSTSW, CMPNEQPD, PAVGW, MOVNTPD, VCMPEQ_USPD,
120
+ FSETPM, BLENDVPS, VFMADDSUB213PD, ADD, VCMPNGESS, ADC, PSUBSB, BLENDVPD, VPUNPCKHBW,
121
+ RDPMC, MOVNTPS, BSF, VCMPLTPD, PAVGB, LEA, VCVTTPD2DQ, VPCMPGTB, VPCMPGTD,
122
+ FLD1, VPMADDWD, VCMPUNORD_SSD, LES, SETZ, VPCMPGTQ, VMULSD, VFMADD213PS, VCMPNLESS,
123
+ MOVHLPS, VPHMINPOSUW, VPABSD, PSRAW, PFADD, VFMADDSUB132PD, COMISD, VCMPGE_OQPS,
124
+ VMAXSS, CMPUNORDSD, FSINCOS, COMISS, VFMADDSUB132PS, RCPPS, VFNMADD132PD, FXCH,
125
+ DAA, SETBE, VCVTPS2PD, PMADDWD, ANDPD, VCMPLE_OQPS, VCMPNGTSD, VFNMSUB231PS,
126
+ FUCOMIP, VMULPS, VFNMADD132PS, WRFSBASE, DAS, VCMPLE_OQPD, IRET, BSWAP, PUNPCKLBW,
127
+ PMAXUW, VPCMPISTRM, PSLLW, VCMPUNORD_SSS, VFNMADD213PS, VCVTTSD2SI, VFMSUB231PD,
128
+ VCMPNGT_UQPS, FNSTCW, ROUNDSD, CMPNLEPD, PEXTRQ, PMULHW, VPHADDSW, FISTP, PMOVZXWQ,
129
+ VCVTPD2PS, VCMPTRUE_USSS, VADDSD, PBLENDVB, VMRESUME, UCOMISD, PMOVZXWD, CVTTPD2PI,
130
+ UCOMISS, VPACKSSWB, VADDSS, PSHUFHW, VCMPTRUE_USSD, MWAIT
131
+ }
@@ -0,0 +1,1123 @@
1
+ package diStorm3;
2
+
3
+ import java.util.HashMap;
4
+ import java.util.Map;
5
+
6
+ public class Opcodes {
7
+ private static Map<Integer, OpcodeEnum> mOpcodes;
8
+
9
+ public static OpcodeEnum lookup(int op)
10
+ {
11
+ return mOpcodes.get(op);
12
+ }
13
+
14
+ static {
15
+ mOpcodes.put(0, OpcodeEnum.UNDEFINED);
16
+ mOpcodes.put(0x679, OpcodeEnum.SLDT);
17
+ mOpcodes.put(0x62, OpcodeEnum.POPA);
18
+ mOpcodes.put(0x904, OpcodeEnum.UNPCKHPS);
19
+ mOpcodes.put(0x115, OpcodeEnum.POPF);
20
+ mOpcodes.put(0x11cf, OpcodeEnum.CMPLTSS);
21
+ mOpcodes.put(0x875, OpcodeEnum.VMOVSD);
22
+ mOpcodes.put(0x79f, OpcodeEnum.PFPNACC);
23
+ mOpcodes.put(0xb2a, OpcodeEnum.VMOVMSKPD);
24
+ mOpcodes.put(0x74d, OpcodeEnum.INVLPGA);
25
+ mOpcodes.put(0x90e, OpcodeEnum.UNPCKHPD);
26
+ mOpcodes.put(0x270, OpcodeEnum.SYSEXIT);
27
+ mOpcodes.put(0x7c8, OpcodeEnum.PFSUB);
28
+ mOpcodes.put(0x121e, OpcodeEnum.CMPLTSD);
29
+ mOpcodes.put(0x1a73, OpcodeEnum.VPMULHUW);
30
+ mOpcodes.put(0x1d4b, OpcodeEnum.VPHSUBSW);
31
+ mOpcodes.put(0x12c8, OpcodeEnum.VCMPNGEPS);
32
+ mOpcodes.put(0x86d, OpcodeEnum.VMOVSS);
33
+ mOpcodes.put(0x6f, OpcodeEnum.ARPL);
34
+ mOpcodes.put(0x53a, OpcodeEnum.FICOMP);
35
+ mOpcodes.put(0x162, OpcodeEnum.RETF);
36
+ mOpcodes.put(0x45d, OpcodeEnum.FCHS);
37
+ mOpcodes.put(0x113a, OpcodeEnum.CMPLEPS);
38
+ mOpcodes.put(0xf08, OpcodeEnum.PUNPCKHDQ);
39
+ mOpcodes.put(0x2417, OpcodeEnum.VAESDEC);
40
+ mOpcodes.put(0x5fe, OpcodeEnum.FUCOM);
41
+ mOpcodes.put(0x12b0, OpcodeEnum.VCMPORDPS);
42
+ mOpcodes.put(0x19c1, OpcodeEnum.PSUBUSW);
43
+ mOpcodes.put(0x1b5b, OpcodeEnum.PXOR);
44
+ mOpcodes.put(0x1e25, OpcodeEnum.VPABSB);
45
+ mOpcodes.put(0x24a, OpcodeEnum.WRMSR);
46
+ mOpcodes.put(0x12bb, OpcodeEnum.VCMPEQ_UQPS);
47
+ mOpcodes.put(0x22cc, OpcodeEnum.VFMADDSUB231PD);
48
+ mOpcodes.put(0x7df, OpcodeEnum.PFMAX);
49
+ mOpcodes.put(0x16e3, OpcodeEnum.VCMPNEQ_OSSS);
50
+ mOpcodes.put(0x225a, OpcodeEnum.VFNMADD213PD);
51
+ mOpcodes.put(0x3b8, OpcodeEnum.MOVNTI);
52
+ mOpcodes.put(0x7d6, OpcodeEnum.PFCMPGT);
53
+ mOpcodes.put(0x2380, OpcodeEnum.VFNMADD231SS);
54
+ mOpcodes.put(0x2466, OpcodeEnum.ROUNDPD);
55
+ mOpcodes.put(0x1303, OpcodeEnum.VCMPGTPS);
56
+ mOpcodes.put(0xbb5, OpcodeEnum.VRCPSS);
57
+ mOpcodes.put(0x2150, OpcodeEnum.VFNMADD132SS);
58
+ mOpcodes.put(0x145a, OpcodeEnum.VCMPNGEPD);
59
+ mOpcodes.put(0x2225, OpcodeEnum.VFMSUB213PD);
60
+ mOpcodes.put(0x1875, OpcodeEnum.VCMPNEQ_OSSD);
61
+ mOpcodes.put(0x2695, OpcodeEnum.VPSLLDQ);
62
+ mOpcodes.put(0x7a8, OpcodeEnum.PFCMPGE);
63
+ mOpcodes.put(0x1495, OpcodeEnum.VCMPGTPD);
64
+ mOpcodes.put(0x1a99, OpcodeEnum.CVTDQ2PD);
65
+ mOpcodes.put(0x1227, OpcodeEnum.CMPLESD);
66
+ mOpcodes.put(0xae, OpcodeEnum.JNS);
67
+ mOpcodes.put(0xdee, OpcodeEnum.VDIVSD);
68
+ mOpcodes.put(0xb7, OpcodeEnum.JNP);
69
+ mOpcodes.put(0x251e, OpcodeEnum.EXTRACTPS);
70
+ mOpcodes.put(0x1f59, OpcodeEnum.PMOVZXBQ);
71
+ mOpcodes.put(0x9c, OpcodeEnum.JNZ);
72
+ mOpcodes.put(0x5e8, OpcodeEnum.FCOMI);
73
+ mOpcodes.put(0xefc, OpcodeEnum.VPUNPCKHWD);
74
+ mOpcodes.put(0x1f44, OpcodeEnum.PMOVZXBD);
75
+ mOpcodes.put(0x1ae0, OpcodeEnum.VMOVNTDQ);
76
+ mOpcodes.put(0x1e8a, OpcodeEnum.PMOVSXWD);
77
+ mOpcodes.put(0x1108, OpcodeEnum.POPCNT);
78
+ mOpcodes.put(0x8a, OpcodeEnum.JNO);
79
+ mOpcodes.put(0x1ca5, OpcodeEnum.FNSAVE);
80
+ mOpcodes.put(0x1a5, OpcodeEnum.LOOP);
81
+ mOpcodes.put(0xb1f, OpcodeEnum.VMOVMSKPS);
82
+ mOpcodes.put(0x47b, OpcodeEnum.FLDL2T);
83
+ mOpcodes.put(0x12d, OpcodeEnum.CMPS);
84
+ mOpcodes.put(0x418, OpcodeEnum.FSUB);
85
+ mOpcodes.put(0xdba, OpcodeEnum.DIVPS);
86
+ mOpcodes.put(0x1d31, OpcodeEnum.PHSUBD);
87
+ mOpcodes.put(0x11c6, OpcodeEnum.CMPEQSS);
88
+ mOpcodes.put(0x1e7, OpcodeEnum.CMC);
89
+ mOpcodes.put(0xd15, OpcodeEnum.CVTTPS2DQ);
90
+ mOpcodes.put(0xdc1, OpcodeEnum.DIVPD);
91
+ mOpcodes.put(0xf72, OpcodeEnum.VMOVD);
92
+ mOpcodes.put(0x104, OpcodeEnum.CALL_FAR);
93
+ mOpcodes.put(0x1d88, OpcodeEnum.PMULHRSW);
94
+ mOpcodes.put(0x1d92, OpcodeEnum.VPMULHRSW);
95
+ mOpcodes.put(0x1d20, OpcodeEnum.PHSUBW);
96
+ mOpcodes.put(0x1215, OpcodeEnum.CMPEQSD);
97
+ mOpcodes.put(0x3b2, OpcodeEnum.XADD);
98
+ mOpcodes.put(0x2ae, OpcodeEnum.CMOVBE);
99
+ mOpcodes.put(0x47, OpcodeEnum.CMP);
100
+ mOpcodes.put(0x24, OpcodeEnum.SBB);
101
+ mOpcodes.put(0x1084, OpcodeEnum.VHADDPS);
102
+ mOpcodes.put(0x26c3, OpcodeEnum.FXRSTOR64);
103
+ mOpcodes.put(0x207a, OpcodeEnum.INVVPID);
104
+ mOpcodes.put(0x20f, OpcodeEnum.LSL);
105
+ mOpcodes.put(0x1673, OpcodeEnum.VCMPNEQ_USSS);
106
+ mOpcodes.put(0x107b, OpcodeEnum.VHADDPD);
107
+ mOpcodes.put(0x38b, OpcodeEnum.LSS);
108
+ mOpcodes.put(0x210d, OpcodeEnum.VFMSUB132PD);
109
+ mOpcodes.put(0x121, OpcodeEnum.LAHF);
110
+ mOpcodes.put(0x802, OpcodeEnum.PFACC);
111
+ mOpcodes.put(0x819, OpcodeEnum.PFRCPIT2);
112
+ mOpcodes.put(0xe3d, OpcodeEnum.VPUNPCKLBW);
113
+ mOpcodes.put(0x7e6, OpcodeEnum.PFRCPIT1);
114
+ mOpcodes.put(0x1fad, OpcodeEnum.PCMPGTQ);
115
+ mOpcodes.put(0x4af, OpcodeEnum.FYL2X);
116
+ mOpcodes.put(0x182f, OpcodeEnum.VCMPORD_SSD);
117
+ mOpcodes.put(0x1949, OpcodeEnum.PSRLD);
118
+ mOpcodes.put(0x10f7, OpcodeEnum.SFENCE);
119
+ mOpcodes.put(0xd0b, OpcodeEnum.CVTPS2DQ);
120
+ mOpcodes.put(0x24c5, OpcodeEnum.PBLENDW);
121
+ mOpcodes.put(0x21c4, OpcodeEnum.VFMSUBADD213PS);
122
+ mOpcodes.put(0xe8c, OpcodeEnum.PCMPGTB);
123
+ mOpcodes.put(0xeb2, OpcodeEnum.PCMPGTD);
124
+ mOpcodes.put(0x23ed, OpcodeEnum.VAESENC);
125
+ mOpcodes.put(0x96d, OpcodeEnum.VMOVSHDUP);
126
+ mOpcodes.put(0x25b2, OpcodeEnum.MPSADBW);
127
+ mOpcodes.put(0x14fd, OpcodeEnum.VCMPNLE_UQPD);
128
+ mOpcodes.put(0x720, OpcodeEnum.VMMCALL);
129
+ mOpcodes.put(0x1045, OpcodeEnum.INSERTQ);
130
+ mOpcodes.put(0x2268, OpcodeEnum.VFNMADD213SS);
131
+ mOpcodes.put(0x9d5, OpcodeEnum.CVTPI2PD);
132
+ mOpcodes.put(0x16f, OpcodeEnum.INT);
133
+ mOpcodes.put(0x1d9d, OpcodeEnum.VPERMILPS);
134
+ mOpcodes.put(0x1e2, OpcodeEnum.HLT);
135
+ mOpcodes.put(0x2059, OpcodeEnum.PHMINPOSUW);
136
+ mOpcodes.put(0x5c1, OpcodeEnum.FCMOVNU);
137
+ mOpcodes.put(0x2083, OpcodeEnum.INVPCID);
138
+ mOpcodes.put(0x7b, OpcodeEnum.INS);
139
+ mOpcodes.put(0x657, OpcodeEnum.FCOMIP);
140
+ mOpcodes.put(0x9cb, OpcodeEnum.CVTPI2PS);
141
+ mOpcodes.put(0x2276, OpcodeEnum.VFNMADD213SD);
142
+ mOpcodes.put(0xec5, OpcodeEnum.PACKUSWB);
143
+ mOpcodes.put(0xe4, OpcodeEnum.CBW);
144
+ mOpcodes.put(0x731, OpcodeEnum.VMSAVE);
145
+ mOpcodes.put(0x10e, OpcodeEnum.PUSHF);
146
+ mOpcodes.put(0x65f, OpcodeEnum.NOT);
147
+ mOpcodes.put(0x5a5, OpcodeEnum.FCMOVNB);
148
+ mOpcodes.put(0x245, OpcodeEnum.NOP);
149
+ mOpcodes.put(0x4f8, OpcodeEnum.FSQRT);
150
+ mOpcodes.put(0x1da8, OpcodeEnum.VPERMILPD);
151
+ mOpcodes.put(0x51, OpcodeEnum.INC);
152
+ mOpcodes.put(0x239, OpcodeEnum.UD2);
153
+ mOpcodes.put(0xffd, OpcodeEnum.VPCMPEQW);
154
+ mOpcodes.put(0x262b, OpcodeEnum.PCMPISTRM);
155
+ mOpcodes.put(0x1ee3, OpcodeEnum.VPCMPEQQ);
156
+ mOpcodes.put(0x1163, OpcodeEnum.CMPNLEPS);
157
+ mOpcodes.put(0x183c, OpcodeEnum.VCMPEQ_USSD);
158
+ mOpcodes.put(0x1414, OpcodeEnum.VCMPUNORDPD);
159
+ mOpcodes.put(0x60d, OpcodeEnum.FADDP);
160
+ mOpcodes.put(0x145, OpcodeEnum.RET);
161
+ mOpcodes.put(0x1010, OpcodeEnum.VPCMPEQD);
162
+ mOpcodes.put(0x1fd9, OpcodeEnum.VPMINSD);
163
+ mOpcodes.put(0x2558, OpcodeEnum.VPINSRB);
164
+ mOpcodes.put(0xfea, OpcodeEnum.VPCMPEQB);
165
+ mOpcodes.put(0x1910, OpcodeEnum.ADDSUBPD);
166
+ mOpcodes.put(0x22bc, OpcodeEnum.VFMADDSUB231PS);
167
+ mOpcodes.put(0x16aa, OpcodeEnum.VCMPEQ_USSS);
168
+ mOpcodes.put(0x1d66, OpcodeEnum.PSIGNW);
169
+ mOpcodes.put(0x1ebe, OpcodeEnum.VPMOVSXDQ);
170
+ mOpcodes.put(0x201d, OpcodeEnum.VPMAXSD);
171
+ mOpcodes.put(0x35b, OpcodeEnum.SETG);
172
+ mOpcodes.put(0x200c, OpcodeEnum.VPMAXSB);
173
+ mOpcodes.put(0x327, OpcodeEnum.SETA);
174
+ mOpcodes.put(0x306, OpcodeEnum.SETB);
175
+ mOpcodes.put(0x26f5, OpcodeEnum.STMXCSR);
176
+ mOpcodes.put(0x347, OpcodeEnum.SETL);
177
+ mOpcodes.put(0x1acf, OpcodeEnum.MOVNTQ);
178
+ mOpcodes.put(0x2f9, OpcodeEnum.SETO);
179
+ mOpcodes.put(0xbe3, OpcodeEnum.ANDNPD);
180
+ mOpcodes.put(0x111c, OpcodeEnum.BSR);
181
+ mOpcodes.put(0x8d0, OpcodeEnum.VMOVDDUP);
182
+ mOpcodes.put(0x1b52, OpcodeEnum.VPMAXSW);
183
+ mOpcodes.put(0x1d77, OpcodeEnum.PSIGND);
184
+ mOpcodes.put(0x33a, OpcodeEnum.SETP);
185
+ mOpcodes.put(0x1d55, OpcodeEnum.PSIGNB);
186
+ mOpcodes.put(0x395, OpcodeEnum.LFS);
187
+ mOpcodes.put(0x32d, OpcodeEnum.SETS);
188
+ mOpcodes.put(0x15a6, OpcodeEnum.VCMPUNORDSS);
189
+ mOpcodes.put(0xbdb, OpcodeEnum.ANDNPS);
190
+ mOpcodes.put(0x2724, OpcodeEnum.VMXON);
191
+ mOpcodes.put(0xbcb, OpcodeEnum.VANDPS);
192
+ mOpcodes.put(0x703, OpcodeEnum.XSETBV);
193
+ mOpcodes.put(0x1c3, OpcodeEnum.OUT);
194
+ mOpcodes.put(0x68a, OpcodeEnum.LTR);
195
+ mOpcodes.put(0x2586, OpcodeEnum.VPINSRD);
196
+ mOpcodes.put(0x1115, OpcodeEnum.TZCNT);
197
+ mOpcodes.put(0xa6d, OpcodeEnum.VCVTTSS2SI);
198
+ mOpcodes.put(0x2684, OpcodeEnum.VPSRLDQ);
199
+ mOpcodes.put(0x4d6, OpcodeEnum.FDECSTP);
200
+ mOpcodes.put(0x267c, OpcodeEnum.PSRLDQ);
201
+ mOpcodes.put(0x1883, OpcodeEnum.VCMPGE_OQSD);
202
+ mOpcodes.put(0x268d, OpcodeEnum.PSLLDQ);
203
+ mOpcodes.put(0x51f, OpcodeEnum.FCOS);
204
+ mOpcodes.put(0x4c5, OpcodeEnum.FXTRACT);
205
+ mOpcodes.put(0x16f1, OpcodeEnum.VCMPGE_OQSS);
206
+ mOpcodes.put(0x1ef7, OpcodeEnum.VMOVNTDQA);
207
+ mOpcodes.put(0x1533, OpcodeEnum.VCMPNGT_UQPD);
208
+ mOpcodes.put(0x405, OpcodeEnum.FMUL);
209
+ mOpcodes.put(0x13da, OpcodeEnum.VCMPGT_OQPS);
210
+ mOpcodes.put(0x61b, OpcodeEnum.FCOMPP);
211
+ mOpcodes.put(0x790, OpcodeEnum.PF2ID);
212
+ mOpcodes.put(0xf5, OpcodeEnum.CWD);
213
+ mOpcodes.put(0x1340, OpcodeEnum.VCMPUNORD_SPS);
214
+ mOpcodes.put(0x2ea, OpcodeEnum.CMOVLE);
215
+ mOpcodes.put(0xfcd, OpcodeEnum.VPSHUFHW);
216
+ mOpcodes.put(0x156c, OpcodeEnum.VCMPGT_OQPD);
217
+ mOpcodes.put(0x1cf6, OpcodeEnum.PHADDSW);
218
+ mOpcodes.put(0x789, OpcodeEnum.PF2IW);
219
+ mOpcodes.put(0xa37, OpcodeEnum.VMOVNTPD);
220
+ mOpcodes.put(0x411, OpcodeEnum.FCOMP);
221
+ mOpcodes.put(0x8da, OpcodeEnum.UNPCKLPS);
222
+ mOpcodes.put(0x1be5, OpcodeEnum.MASKMOVDQU);
223
+ mOpcodes.put(0x570, OpcodeEnum.FCMOVBE);
224
+ mOpcodes.put(0x14b8, OpcodeEnum.VCMPLT_OQPD);
225
+ mOpcodes.put(0xe2a, OpcodeEnum.VMAXSD);
226
+ mOpcodes.put(0x142c, OpcodeEnum.VCMPNLTPD);
227
+ mOpcodes.put(0x99d, OpcodeEnum.PREFETCHT2);
228
+ mOpcodes.put(0x991, OpcodeEnum.PREFETCHT1);
229
+ mOpcodes.put(0x985, OpcodeEnum.PREFETCHT0);
230
+ mOpcodes.put(0x8e4, OpcodeEnum.UNPCKLPD);
231
+ mOpcodes.put(0xa57, OpcodeEnum.CVTTSS2SI);
232
+ mOpcodes.put(0x66e, OpcodeEnum.DIV);
233
+ mOpcodes.put(0x1eb4, OpcodeEnum.PMOVSXDQ);
234
+ mOpcodes.put(0x161d, OpcodeEnum.VCMPGESS);
235
+ mOpcodes.put(0xef, OpcodeEnum.CDQE);
236
+ mOpcodes.put(0x2708, OpcodeEnum.VSTMXCSR);
237
+ mOpcodes.put(0x549, OpcodeEnum.FISUBR);
238
+ mOpcodes.put(0x1fc8, OpcodeEnum.VPMINSB);
239
+ mOpcodes.put(0x2218, OpcodeEnum.VFMSUB213PS);
240
+ mOpcodes.put(0x1326, OpcodeEnum.VCMPLT_OQPS);
241
+ mOpcodes.put(0x11d8, OpcodeEnum.CMPLESS);
242
+ mOpcodes.put(0x1b14, OpcodeEnum.VPMINSW);
243
+ mOpcodes.put(0x1c70, OpcodeEnum.FSTENV);
244
+ mOpcodes.put(0x17af, OpcodeEnum.VCMPGESD);
245
+ mOpcodes.put(0x1dea, OpcodeEnum.VPTEST);
246
+ mOpcodes.put(0x542, OpcodeEnum.FISUB);
247
+ mOpcodes.put(0x205, OpcodeEnum.STD);
248
+ mOpcodes.put(0xf29, OpcodeEnum.VPACKSSDW);
249
+ mOpcodes.put(0x3d, OpcodeEnum.XOR);
250
+ mOpcodes.put(0xc95, OpcodeEnum.VMULPD);
251
+ mOpcodes.put(0x1f1, OpcodeEnum.STC);
252
+ mOpcodes.put(0x1fb, OpcodeEnum.STI);
253
+ mOpcodes.put(0x26d8, OpcodeEnum.LDMXCSR);
254
+ mOpcodes.put(0x1180, OpcodeEnum.CMPLTPD);
255
+ mOpcodes.put(0xbfd, OpcodeEnum.ORPS);
256
+ mOpcodes.put(0x1f0c, OpcodeEnum.VPACKUSDW);
257
+ mOpcodes.put(0x62b, OpcodeEnum.FSUBP);
258
+ mOpcodes.put(0x67f, OpcodeEnum.STR);
259
+ mOpcodes.put(0x41e, OpcodeEnum.FSUBR);
260
+ mOpcodes.put(0x1131, OpcodeEnum.CMPLTPS);
261
+ mOpcodes.put(0x2323, OpcodeEnum.VFMADD231SD);
262
+ mOpcodes.put(0x2733, OpcodeEnum.PAUSE);
263
+ mOpcodes.put(0x1aa3, OpcodeEnum.CVTPD2DQ);
264
+ mOpcodes.put(0x372, OpcodeEnum.RSM);
265
+ mOpcodes.put(0xb70, OpcodeEnum.VSQRTSD);
266
+ mOpcodes.put(0xc09, OpcodeEnum.VORPS);
267
+ mOpcodes.put(0x21a4, OpcodeEnum.VFMADDSUB213PS);
268
+ mOpcodes.put(0x23e5, OpcodeEnum.AESENC);
269
+ mOpcodes.put(0x144d, OpcodeEnum.VCMPEQ_UQPD);
270
+ mOpcodes.put(0x918, OpcodeEnum.VUNPCKHPS);
271
+ mOpcodes.put(0x1d09, OpcodeEnum.PMADDUBSW);
272
+ mOpcodes.put(0x136b, OpcodeEnum.VCMPNLE_UQPS);
273
+ mOpcodes.put(0x1b7e, OpcodeEnum.VPSLLW);
274
+ mOpcodes.put(0x1bdb, OpcodeEnum.MASKMOVQ);
275
+ mOpcodes.put(0x1c8, OpcodeEnum.CALL);
276
+ mOpcodes.put(0xb67, OpcodeEnum.VSQRTSS);
277
+ mOpcodes.put(0x19f2, OpcodeEnum.PADDUSB);
278
+ mOpcodes.put(0x1036, OpcodeEnum.VMREAD);
279
+ mOpcodes.put(0x10eb, OpcodeEnum.XSAVEOPT64);
280
+ mOpcodes.put(0x923, OpcodeEnum.VUNPCKHPD);
281
+ mOpcodes.put(0xd5e, OpcodeEnum.VSUBPS);
282
+ mOpcodes.put(0xceb, OpcodeEnum.VCVTSS2SD);
283
+ mOpcodes.put(0x242c, OpcodeEnum.VAESDECLAST);
284
+ mOpcodes.put(0x1095, OpcodeEnum.HSUBPS);
285
+ mOpcodes.put(0xaad, OpcodeEnum.VCVTSS2SI);
286
+ mOpcodes.put(0x25f2, OpcodeEnum.VPBLENDVB);
287
+ mOpcodes.put(0x17b9, OpcodeEnum.VCMPGTSD);
288
+ mOpcodes.put(0x58a, OpcodeEnum.FILD);
289
+ mOpcodes.put(0xaf9, OpcodeEnum.VCOMISS);
290
+ mOpcodes.put(0x108d, OpcodeEnum.HSUBPD);
291
+ mOpcodes.put(0x23b8, OpcodeEnum.VFNMSUB231SS);
292
+ mOpcodes.put(0x1a53, OpcodeEnum.VPSRAD);
293
+ mOpcodes.put(0x12a5, OpcodeEnum.VCMPNLEPS);
294
+ mOpcodes.put(0x3e5, OpcodeEnum.SAL);
295
+ mOpcodes.put(0x214, OpcodeEnum.SYSCALL);
296
+ mOpcodes.put(0xb95, OpcodeEnum.VRSQRTSS);
297
+ mOpcodes.put(0x258f, OpcodeEnum.VPINSRQ);
298
+ mOpcodes.put(0x26fe, OpcodeEnum.WRGSBASE);
299
+ mOpcodes.put(0xfc4, OpcodeEnum.VPSHUFD);
300
+ mOpcodes.put(0x1e4b, OpcodeEnum.PMOVSXBW);
301
+ mOpcodes.put(0x1a44, OpcodeEnum.VPSRAW);
302
+ mOpcodes.put(0x1437, OpcodeEnum.VCMPNLEPD);
303
+ mOpcodes.put(0x3ff, OpcodeEnum.FADD);
304
+ mOpcodes.put(0x3ea, OpcodeEnum.SAR);
305
+ mOpcodes.put(0x713, OpcodeEnum.XEND);
306
+ mOpcodes.put(0x2659, OpcodeEnum.AESKEYGENASSIST);
307
+ mOpcodes.put(0xf1f, OpcodeEnum.PACKSSDW);
308
+ mOpcodes.put(0x21fe, OpcodeEnum.VFMADD213SS);
309
+ mOpcodes.put(0xf90, OpcodeEnum.VMOVDQA);
310
+ mOpcodes.put(0x8c5, OpcodeEnum.VMOVSLDUP);
311
+ mOpcodes.put(0x508, OpcodeEnum.FRNDINT);
312
+ mOpcodes.put(0x1976, OpcodeEnum.PMULLW);
313
+ mOpcodes.put(0xdcf, OpcodeEnum.DIVSD);
314
+ mOpcodes.put(0xb0b, OpcodeEnum.MOVMSKPS);
315
+ mOpcodes.put(0x202e, OpcodeEnum.VPMAXUW);
316
+ mOpcodes.put(0xdde, OpcodeEnum.VDIVPD);
317
+ mOpcodes.put(0x1e55, OpcodeEnum.VPMOVSXBW);
318
+ mOpcodes.put(0x1e9f, OpcodeEnum.PMOVSXWQ);
319
+ mOpcodes.put(0x2048, OpcodeEnum.PMULLD);
320
+ mOpcodes.put(0xf99, OpcodeEnum.VMOVDQU);
321
+ mOpcodes.put(0x22ae, OpcodeEnum.VFNMSUB213SD);
322
+ mOpcodes.put(0x297, OpcodeEnum.CMOVAE);
323
+ mOpcodes.put(0x14ab, OpcodeEnum.VCMPEQ_OSPD);
324
+ mOpcodes.put(0xdd6, OpcodeEnum.VDIVPS);
325
+ mOpcodes.put(0x93, OpcodeEnum.JAE);
326
+ mOpcodes.put(0xb15, OpcodeEnum.MOVMSKPD);
327
+ mOpcodes.put(0xdc8, OpcodeEnum.DIVSS);
328
+ mOpcodes.put(0x1cad, OpcodeEnum.FSAVE);
329
+ mOpcodes.put(0x1eda, OpcodeEnum.PCMPEQQ);
330
+ mOpcodes.put(0xfd7, OpcodeEnum.VPSHUFLW);
331
+ mOpcodes.put(0xff4, OpcodeEnum.PCMPEQW);
332
+ mOpcodes.put(0x26eb, OpcodeEnum.VLDMXCSR);
333
+ mOpcodes.put(0x211a, OpcodeEnum.VFMSUB132SS);
334
+ mOpcodes.put(0x11bc, OpcodeEnum.CMPORDPD);
335
+ mOpcodes.put(0xba6, OpcodeEnum.RCPSS);
336
+ mOpcodes.put(0x1b8d, OpcodeEnum.VPSLLD);
337
+ mOpcodes.put(0x673, OpcodeEnum.IDIV);
338
+ mOpcodes.put(0x1442, OpcodeEnum.VCMPORDPD);
339
+ mOpcodes.put(0xfe1, OpcodeEnum.PCMPEQB);
340
+ mOpcodes.put(0x1007, OpcodeEnum.PCMPEQD);
341
+ mOpcodes.put(0x1b9c, OpcodeEnum.VPSLLQ);
342
+ mOpcodes.put(0x1f63, OpcodeEnum.VPMOVZXBQ);
343
+ mOpcodes.put(0x21d4, OpcodeEnum.VFMSUBADD213PD);
344
+ mOpcodes.put(0x25e7, OpcodeEnum.VBLENDVPD);
345
+ mOpcodes.put(0x116d, OpcodeEnum.CMPORDPS);
346
+ mOpcodes.put(0xf34, OpcodeEnum.PUNPCKLQDQ);
347
+ mOpcodes.put(0x19eb, OpcodeEnum.VPAND);
348
+ mOpcodes.put(0x147d, OpcodeEnum.VCMPNEQ_OQPD);
349
+ mOpcodes.put(0x106b, OpcodeEnum.HADDPD);
350
+ mOpcodes.put(0x192f, OpcodeEnum.VADDSUBPS);
351
+ mOpcodes.put(0x18e7, OpcodeEnum.VSHUFPD);
352
+ mOpcodes.put(0xd76, OpcodeEnum.VSUBSD);
353
+ mOpcodes.put(0xb55, OpcodeEnum.VSQRTPS);
354
+ mOpcodes.put(0x947, OpcodeEnum.MOVSHDUP);
355
+ mOpcodes.put(0x238e, OpcodeEnum.VFNMADD231SD);
356
+ mOpcodes.put(0x6cf, OpcodeEnum.VMLAUNCH);
357
+ mOpcodes.put(0x1f23, OpcodeEnum.VMASKMOVPD);
358
+ mOpcodes.put(0x1073, OpcodeEnum.HADDPS);
359
+ mOpcodes.put(0x12eb, OpcodeEnum.VCMPNEQ_OQPS);
360
+ mOpcodes.put(0xe49, OpcodeEnum.PUNPCKLWD);
361
+ mOpcodes.put(0x16c5, OpcodeEnum.VCMPNGT_UQSS);
362
+ mOpcodes.put(0xb5e, OpcodeEnum.VSQRTPD);
363
+ mOpcodes.put(0xd6e, OpcodeEnum.VSUBSS);
364
+ mOpcodes.put(0x18de, OpcodeEnum.VSHUFPS);
365
+ mOpcodes.put(0x15b3, OpcodeEnum.VCMPNEQSS);
366
+ mOpcodes.put(0x1b6f, OpcodeEnum.VLDDQU);
367
+ mOpcodes.put(0x164a, OpcodeEnum.VCMPLT_OQSS);
368
+ mOpcodes.put(0x2740, OpcodeEnum.RDRAND);
369
+ mOpcodes.put(0x1b39, OpcodeEnum.PADDSW);
370
+ mOpcodes.put(0x1386, OpcodeEnum.VCMPEQ_USPS);
371
+ mOpcodes.put(0xc03, OpcodeEnum.ORPD);
372
+ mOpcodes.put(0x1a1f, OpcodeEnum.PANDN);
373
+ mOpcodes.put(0x4b6, OpcodeEnum.FPTAN);
374
+ mOpcodes.put(0x551, OpcodeEnum.FIDIV);
375
+ mOpcodes.put(0x17dc, OpcodeEnum.VCMPLT_OQSD);
376
+ mOpcodes.put(0x2712, OpcodeEnum.VMPTRLD);
377
+ mOpcodes.put(0x2330, OpcodeEnum.VFMSUB231PS);
378
+ mOpcodes.put(0x1745, OpcodeEnum.VCMPNEQSD);
379
+ mOpcodes.put(0x1ed1, OpcodeEnum.VPMULDQ);
380
+ mOpcodes.put(0x196, OpcodeEnum.LOOPNZ);
381
+ mOpcodes.put(0x1282, OpcodeEnum.VCMPUNORDPS);
382
+ mOpcodes.put(0x3e0, OpcodeEnum.SHR);
383
+ mOpcodes.put(0x37c, OpcodeEnum.SHRD);
384
+ mOpcodes.put(0x6eb, OpcodeEnum.MONITOR);
385
+ mOpcodes.put(0x3ef, OpcodeEnum.XABORT);
386
+ mOpcodes.put(0x23f6, OpcodeEnum.AESENCLAST);
387
+ mOpcodes.put(0x854, OpcodeEnum.MOVSD);
388
+ mOpcodes.put(0x18b4, OpcodeEnum.VPINSRW);
389
+ mOpcodes.put(0x729, OpcodeEnum.VMLOAD);
390
+ mOpcodes.put(0x92e, OpcodeEnum.MOVLHPS);
391
+ mOpcodes.put(0x8bc, OpcodeEnum.VMOVLPD);
392
+ mOpcodes.put(0x1987, OpcodeEnum.MOVQ2DQ);
393
+ mOpcodes.put(0xb45, OpcodeEnum.SQRTSS);
394
+ mOpcodes.put(0x259e, OpcodeEnum.VDPPS);
395
+ mOpcodes.put(0xd50, OpcodeEnum.SUBSS);
396
+ mOpcodes.put(0x3ab, OpcodeEnum.MOVSX);
397
+ mOpcodes.put(0x951, OpcodeEnum.VMOVLHPS);
398
+ mOpcodes.put(0x8b3, OpcodeEnum.VMOVLPS);
399
+ mOpcodes.put(0xf13, OpcodeEnum.VPUNPCKHDQ);
400
+ mOpcodes.put(0x1ac4, OpcodeEnum.VCVTPD2DQ);
401
+ mOpcodes.put(0x3db, OpcodeEnum.SHL);
402
+ mOpcodes.put(0x84d, OpcodeEnum.MOVSS);
403
+ mOpcodes.put(0x257e, OpcodeEnum.PINSRQ);
404
+ mOpcodes.put(0x797, OpcodeEnum.PFNACC);
405
+ mOpcodes.put(0xf88, OpcodeEnum.MOVDQU);
406
+ mOpcodes.put(0x80, OpcodeEnum.OUTS);
407
+ mOpcodes.put(0x1bfe, OpcodeEnum.PSUBB);
408
+ mOpcodes.put(0x377, OpcodeEnum.BTS);
409
+ mOpcodes.put(0x390, OpcodeEnum.BTR);
410
+ mOpcodes.put(0x1805, OpcodeEnum.VCMPNEQ_USSD);
411
+ mOpcodes.put(0x69b, OpcodeEnum.SGDT);
412
+ mOpcodes.put(0x2316, OpcodeEnum.VFMADD231SS);
413
+ mOpcodes.put(0x511, OpcodeEnum.FSCALE);
414
+ mOpcodes.put(0x1c0d, OpcodeEnum.PSUBW);
415
+ mOpcodes.put(0x11a8, OpcodeEnum.CMPNLTPD);
416
+ mOpcodes.put(0x1f02, OpcodeEnum.PACKUSDW);
417
+ mOpcodes.put(0x20a, OpcodeEnum.LAR);
418
+ mOpcodes.put(0x3a6, OpcodeEnum.BTC);
419
+ mOpcodes.put(0x215e, OpcodeEnum.VFNMADD132SD);
420
+ mOpcodes.put(0x1465, OpcodeEnum.VCMPNGTPD);
421
+ mOpcodes.put(0x1f39, OpcodeEnum.VPMOVZXBW);
422
+ mOpcodes.put(0x2127, OpcodeEnum.VFMSUB132SD);
423
+ mOpcodes.put(0x23d4, OpcodeEnum.AESIMC);
424
+ mOpcodes.put(0x40b, OpcodeEnum.FCOM);
425
+ mOpcodes.put(0x1f4e, OpcodeEnum.VPMOVZXBD);
426
+ mOpcodes.put(0x1924, OpcodeEnum.VADDSUBPD);
427
+ mOpcodes.put(0x1c9e, OpcodeEnum.FINIT);
428
+ mOpcodes.put(0x120b, OpcodeEnum.CMPORDSS);
429
+ mOpcodes.put(0x231, OpcodeEnum.WBINVD);
430
+ mOpcodes.put(0x19e5, OpcodeEnum.PAND);
431
+ mOpcodes.put(0x24e1, OpcodeEnum.VPALIGNR);
432
+ mOpcodes.put(0x125a, OpcodeEnum.CMPORDSD);
433
+ mOpcodes.put(0x1b61, OpcodeEnum.VPXOR);
434
+ mOpcodes.put(0xa1, OpcodeEnum.JBE);
435
+ mOpcodes.put(0x46f, OpcodeEnum.FXAM);
436
+ mOpcodes.put(0x10e1, OpcodeEnum.XSAVEOPT);
437
+ mOpcodes.put(0x669, OpcodeEnum.MUL);
438
+ mOpcodes.put(0x19dc, OpcodeEnum.VPMINUB);
439
+ mOpcodes.put(0x1b41, OpcodeEnum.VPADDSW);
440
+ mOpcodes.put(0x1b4a, OpcodeEnum.PMAXSW);
441
+ mOpcodes.put(0x256b, OpcodeEnum.VINSERTPS);
442
+ mOpcodes.put(0x13f6, OpcodeEnum.VCMPEQPD);
443
+ mOpcodes.put(0x5f7, OpcodeEnum.FFREE);
444
+ mOpcodes.put(0x1f17, OpcodeEnum.VMASKMOVPS);
445
+ mOpcodes.put(0x18f0, OpcodeEnum.CMPXCHG8B);
446
+ mOpcodes.put(0x2015, OpcodeEnum.PMAXSD);
447
+ mOpcodes.put(0x1b30, OpcodeEnum.VPADDSB);
448
+ mOpcodes.put(0x10, OpcodeEnum.PUSH);
449
+ mOpcodes.put(0x25d0, OpcodeEnum.VPCLMULQDQ);
450
+ mOpcodes.put(0x1264, OpcodeEnum.VCMPEQPS);
451
+ mOpcodes.put(0x7f0, OpcodeEnum.PFRSQIT1);
452
+ mOpcodes.put(0x2453, OpcodeEnum.ROUNDPS);
453
+ mOpcodes.put(0x2ff, OpcodeEnum.SETNO);
454
+ mOpcodes.put(0x6fb, OpcodeEnum.XGETBV);
455
+ mOpcodes.put(0x1fd1, OpcodeEnum.PMINSD);
456
+ mOpcodes.put(0x1c3a, OpcodeEnum.PADDB);
457
+ mOpcodes.put(0x4ce, OpcodeEnum.FPREM1);
458
+ mOpcodes.put(0x200, OpcodeEnum.CLD);
459
+ mOpcodes.put(0x52c, OpcodeEnum.FIMUL);
460
+ mOpcodes.put(0xc1e, OpcodeEnum.XORPD);
461
+ mOpcodes.put(0x1ec, OpcodeEnum.CLC);
462
+ mOpcodes.put(0x43c, OpcodeEnum.FSTP);
463
+ mOpcodes.put(0x24b2, OpcodeEnum.BLENDPD);
464
+ mOpcodes.put(0x1a05, OpcodeEnum.PADDUSW);
465
+ mOpcodes.put(0x1c96, OpcodeEnum.FNINIT);
466
+ mOpcodes.put(0x319, OpcodeEnum.SETNZ);
467
+ mOpcodes.put(0x1967, OpcodeEnum.PADDQ);
468
+ mOpcodes.put(0xc17, OpcodeEnum.XORPS);
469
+ mOpcodes.put(0x22a0, OpcodeEnum.VFNMSUB213SS);
470
+ mOpcodes.put(0x333, OpcodeEnum.SETNS);
471
+ mOpcodes.put(0x525, OpcodeEnum.FIADD);
472
+ mOpcodes.put(0x340, OpcodeEnum.SETNP);
473
+ mOpcodes.put(0xf59, OpcodeEnum.VPUNPCKHQDQ);
474
+ mOpcodes.put(0xd42, OpcodeEnum.SUBPS);
475
+ mOpcodes.put(0x1246, OpcodeEnum.CMPNLTSD);
476
+ mOpcodes.put(0x684, OpcodeEnum.LLDT);
477
+ mOpcodes.put(0x223f, OpcodeEnum.VFMSUB213SD);
478
+ mOpcodes.put(0x1de3, OpcodeEnum.PTEST);
479
+ mOpcodes.put(0x217a, OpcodeEnum.VFNMSUB132PD);
480
+ mOpcodes.put(0x279, OpcodeEnum.GETSEC);
481
+ mOpcodes.put(0x1d7f, OpcodeEnum.VPSIGND);
482
+ mOpcodes.put(0x1ab, OpcodeEnum.JCXZ);
483
+ mOpcodes.put(0x11f7, OpcodeEnum.CMPNLTSS);
484
+ mOpcodes.put(0x34d, OpcodeEnum.SETGE);
485
+ mOpcodes.put(0x1128, OpcodeEnum.CMPEQPS);
486
+ mOpcodes.put(0x1bca, OpcodeEnum.PSADBW);
487
+ mOpcodes.put(0x272b, OpcodeEnum.MOVSXD);
488
+ mOpcodes.put(0x216c, OpcodeEnum.VFNMSUB132PS);
489
+ mOpcodes.put(0x185, OpcodeEnum.AAD);
490
+ mOpcodes.put(0x2402, OpcodeEnum.VAESENCLAST);
491
+ mOpcodes.put(0xf4d, OpcodeEnum.PUNPCKHQDQ);
492
+ mOpcodes.put(0x88e, OpcodeEnum.MOVLPD);
493
+ mOpcodes.put(0x19fb, OpcodeEnum.VPADDUSW);
494
+ mOpcodes.put(0x12de, OpcodeEnum.VCMPFALSEPS);
495
+ mOpcodes.put(0x180, OpcodeEnum.AAM);
496
+ mOpcodes.put(0xf40, OpcodeEnum.VPUNPCKLQDQ);
497
+ mOpcodes.put(0xd8c, OpcodeEnum.MINSS);
498
+ mOpcodes.put(0x1c58, OpcodeEnum.PADDD);
499
+ mOpcodes.put(0x1470, OpcodeEnum.VCMPFALSEPD);
500
+ mOpcodes.put(0xe54, OpcodeEnum.VPUNPCKLWD);
501
+ mOpcodes.put(0x886, OpcodeEnum.MOVLPS);
502
+ mOpcodes.put(0x73f, OpcodeEnum.CLGI);
503
+ mOpcodes.put(0x4c, OpcodeEnum.AAS);
504
+ mOpcodes.put(0x139, OpcodeEnum.LODS);
505
+ mOpcodes.put(0x2d3, OpcodeEnum.CMOVNP);
506
+ mOpcodes.put(0xd93, OpcodeEnum.MINSD);
507
+ mOpcodes.put(0x1f6, OpcodeEnum.CLI);
508
+ mOpcodes.put(0xa62, OpcodeEnum.CVTTSD2SI);
509
+ mOpcodes.put(0x533, OpcodeEnum.FICOM);
510
+ mOpcodes.put(0x1f2f, OpcodeEnum.PMOVZXBW);
511
+ mOpcodes.put(0xc3c, OpcodeEnum.ADDPD);
512
+ mOpcodes.put(0x770, OpcodeEnum.PREFETCHW);
513
+ mOpcodes.put(0x134f, OpcodeEnum.VCMPNEQ_USPS);
514
+ mOpcodes.put(0xc2d, OpcodeEnum.VXORPD);
515
+ mOpcodes.put(0x1b1d, OpcodeEnum.POR);
516
+ mOpcodes.put(0x16, OpcodeEnum.POP);
517
+ mOpcodes.put(0x2447, OpcodeEnum.VPERM2F128);
518
+ mOpcodes.put(0x19e, OpcodeEnum.LOOPZ);
519
+ mOpcodes.put(0x1ad7, OpcodeEnum.MOVNTDQ);
520
+ mOpcodes.put(0x1dc, OpcodeEnum.INT1);
521
+ mOpcodes.put(0x382, OpcodeEnum.CMPXCHG);
522
+ mOpcodes.put(0x1e0e, OpcodeEnum.VBROADCASTF128);
523
+ mOpcodes.put(0x1525, OpcodeEnum.VCMPNGE_UQPD);
524
+ mOpcodes.put(0x1cd4, OpcodeEnum.PHADDW);
525
+ mOpcodes.put(0xc25, OpcodeEnum.VXORPS);
526
+ mOpcodes.put(0x14e1, OpcodeEnum.VCMPNEQ_USPD);
527
+ mOpcodes.put(0xc35, OpcodeEnum.ADDPS);
528
+ mOpcodes.put(0x812, OpcodeEnum.PFMUL);
529
+ mOpcodes.put(0x6a7, OpcodeEnum.LGDT);
530
+ mOpcodes.put(0x68f, OpcodeEnum.VERR);
531
+ mOpcodes.put(0x695, OpcodeEnum.VERW);
532
+ mOpcodes.put(0x109d, OpcodeEnum.VHSUBPD);
533
+ mOpcodes.put(0x197e, OpcodeEnum.VPMULLW);
534
+ mOpcodes.put(0x85b, OpcodeEnum.VMOVUPS);
535
+ mOpcodes.put(0x174, OpcodeEnum.INTO);
536
+ mOpcodes.put(0x1c8f, OpcodeEnum.FCLEX);
537
+ mOpcodes.put(0x10a6, OpcodeEnum.VHSUBPS);
538
+ mOpcodes.put(0xccb, OpcodeEnum.CVTSD2SS);
539
+ mOpcodes.put(0x48b, OpcodeEnum.FLDPI);
540
+ mOpcodes.put(0x1e2d, OpcodeEnum.PABSW);
541
+ mOpcodes.put(0xe1a, OpcodeEnum.VMAXPD);
542
+ mOpcodes.put(0x1d3, OpcodeEnum.JMP_FAR);
543
+ mOpcodes.put(0xecf, OpcodeEnum.VPACKUSWB);
544
+ mOpcodes.put(0x581, OpcodeEnum.FUCOMPP);
545
+ mOpcodes.put(0x864, OpcodeEnum.VMOVUPD);
546
+ mOpcodes.put(0x82c, OpcodeEnum.PSWAPD);
547
+ mOpcodes.put(0x1c49, OpcodeEnum.PADDW);
548
+ mOpcodes.put(0x1b86, OpcodeEnum.PSLLD);
549
+ mOpcodes.put(0x756, OpcodeEnum.SWAPGS);
550
+ mOpcodes.put(0x896, OpcodeEnum.MOVSLDUP);
551
+ mOpcodes.put(0x9df, OpcodeEnum.CVTSI2SS);
552
+ mOpcodes.put(0x17c3, OpcodeEnum.VCMPTRUESD);
553
+ mOpcodes.put(0x11e1, OpcodeEnum.CMPUNORDSS);
554
+ mOpcodes.put(0xd36, OpcodeEnum.VCVTTPS2DQ);
555
+ mOpcodes.put(0xb4d, OpcodeEnum.SQRTSD);
556
+ mOpcodes.put(0x1e00, OpcodeEnum.VBROADCASTSD);
557
+ mOpcodes.put(0x1c1c, OpcodeEnum.PSUBD);
558
+ mOpcodes.put(0xce, OpcodeEnum.TEST);
559
+ mOpcodes.put(0x39a, OpcodeEnum.LGS);
560
+ mOpcodes.put(0x1631, OpcodeEnum.VCMPTRUESS);
561
+ mOpcodes.put(0x266, OpcodeEnum.SYSENTER);
562
+ mOpcodes.put(0x9e9, OpcodeEnum.CVTSI2SD);
563
+ mOpcodes.put(0x175b, OpcodeEnum.VCMPNLESD);
564
+ mOpcodes.put(0x1dbc, OpcodeEnum.VTESTPD);
565
+ mOpcodes.put(0x98, OpcodeEnum.JZ);
566
+ mOpcodes.put(0xde6, OpcodeEnum.VDIVSS);
567
+ mOpcodes.put(0xc10, OpcodeEnum.VORPD);
568
+ mOpcodes.put(0xb3, OpcodeEnum.JP);
569
+ mOpcodes.put(0xaa, OpcodeEnum.JS);
570
+ mOpcodes.put(0xbc, OpcodeEnum.JL);
571
+ mOpcodes.put(0xb82, OpcodeEnum.RSQRTSS);
572
+ mOpcodes.put(0x1db3, OpcodeEnum.VTESTPS);
573
+ mOpcodes.put(0x86, OpcodeEnum.JO);
574
+ mOpcodes.put(0xe12, OpcodeEnum.VMAXPS);
575
+ mOpcodes.put(0x19ae, OpcodeEnum.PSUBUSB);
576
+ mOpcodes.put(0xca, OpcodeEnum.JG);
577
+ mOpcodes.put(0x1df2, OpcodeEnum.VBROADCASTSS);
578
+ mOpcodes.put(0xa6, OpcodeEnum.JA);
579
+ mOpcodes.put(0x8f, OpcodeEnum.JB);
580
+ mOpcodes.put(0xe9, OpcodeEnum.CWDE);
581
+ mOpcodes.put(0x140a, OpcodeEnum.VCMPLEPD);
582
+ mOpcodes.put(0x104e, OpcodeEnum.VMWRITE);
583
+ mOpcodes.put(0x1278, OpcodeEnum.VCMPLEPS);
584
+ mOpcodes.put(0x1999, OpcodeEnum.PMOVMSKB);
585
+ mOpcodes.put(0x2561, OpcodeEnum.INSERTPS);
586
+ mOpcodes.put(0x2614, OpcodeEnum.PCMPESTRI);
587
+ mOpcodes.put(0x273a, OpcodeEnum.WAIT);
588
+ mOpcodes.put(0x1541, OpcodeEnum.VCMPFALSE_OSPD);
589
+ mOpcodes.put(0x25fd, OpcodeEnum.PCMPESTRM);
590
+ mOpcodes.put(0xe60, OpcodeEnum.PUNPCKLDQ);
591
+ mOpcodes.put(0xc7f, OpcodeEnum.MULSS);
592
+ mOpcodes.put(0xd66, OpcodeEnum.VSUBPD);
593
+ mOpcodes.put(0x1177, OpcodeEnum.CMPEQPD);
594
+ mOpcodes.put(0x17a1, OpcodeEnum.VCMPNEQ_OQSD);
595
+ mOpcodes.put(0xb02, OpcodeEnum.VCOMISD);
596
+ mOpcodes.put(0xdaa, OpcodeEnum.VMINSS);
597
+ mOpcodes.put(0x1c5f, OpcodeEnum.VPADDD);
598
+ mOpcodes.put(0x258, OpcodeEnum.RDMSR);
599
+ mOpcodes.put(0x1d6e, OpcodeEnum.VPSIGNW);
600
+ mOpcodes.put(0x1b1, OpcodeEnum.JECXZ);
601
+ mOpcodes.put(0xc86, OpcodeEnum.MULSD);
602
+ mOpcodes.put(0x154, OpcodeEnum.ENTER);
603
+ mOpcodes.put(0x2439, OpcodeEnum.MOVBE);
604
+ mOpcodes.put(0x102c, OpcodeEnum.VZEROALL);
605
+ mOpcodes.put(0x2748, OpcodeEnum._3DNOW);
606
+ mOpcodes.put(0xdb2, OpcodeEnum.VMINSD);
607
+ mOpcodes.put(0x160f, OpcodeEnum.VCMPNEQ_OQSS);
608
+ mOpcodes.put(0x7fa, OpcodeEnum.PFSUBR);
609
+ mOpcodes.put(0x12f9, OpcodeEnum.VCMPGEPS);
610
+ mOpcodes.put(0x19b7, OpcodeEnum.VPSUBUSB);
611
+ mOpcodes.put(0x2357, OpcodeEnum.VFMSUB231SD);
612
+ mOpcodes.put(0x2037, OpcodeEnum.PMAXUD);
613
+ mOpcodes.put(0x269e, OpcodeEnum.FXSAVE);
614
+ mOpcodes.put(0x590, OpcodeEnum.FISTTP);
615
+ mOpcodes.put(0x148b, OpcodeEnum.VCMPGEPD);
616
+ mOpcodes.put(0x249f, OpcodeEnum.BLENDPS);
617
+ mOpcodes.put(0x172e, OpcodeEnum.VCMPLESD);
618
+ mOpcodes.put(0x5b7, OpcodeEnum.FCMOVNBE);
619
+ mOpcodes.put(0x234a, OpcodeEnum.VFMSUB231SS);
620
+ mOpcodes.put(0x25dc, OpcodeEnum.VBLENDVPS);
621
+ mOpcodes.put(0x25bb, OpcodeEnum.VMPSADBW);
622
+ mOpcodes.put(0x19ca, OpcodeEnum.VPSUBUSW);
623
+ mOpcodes.put(0x1724, OpcodeEnum.VCMPLTSD);
624
+ mOpcodes.put(0x1eed, OpcodeEnum.MOVNTDQA);
625
+ mOpcodes.put(0x18d6, OpcodeEnum.SHUFPD);
626
+ mOpcodes.put(0xd49, OpcodeEnum.SUBPD);
627
+ mOpcodes.put(0xb3d, OpcodeEnum.SQRTPD);
628
+ mOpcodes.put(0x964, OpcodeEnum.VMOVHPD);
629
+ mOpcodes.put(0x6c7, OpcodeEnum.VMCALL);
630
+ mOpcodes.put(0x20d9, OpcodeEnum.VFMADD132PD);
631
+ mOpcodes.put(0x15b, OpcodeEnum.LEAVE);
632
+ mOpcodes.put(0x18ce, OpcodeEnum.SHUFPS);
633
+ mOpcodes.put(0x1319, OpcodeEnum.VCMPEQ_OSPS);
634
+ mOpcodes.put(0x261f, OpcodeEnum.VPCMPESTRI);
635
+ mOpcodes.put(0x1592, OpcodeEnum.VCMPLTSS);
636
+ mOpcodes.put(0x2608, OpcodeEnum.VPCMPESTRM);
637
+ mOpcodes.put(0x20cc, OpcodeEnum.VFMADD132PS);
638
+ mOpcodes.put(0x6ad, OpcodeEnum.LIDT);
639
+ mOpcodes.put(0x4a8, OpcodeEnum.F2XM1);
640
+ mOpcodes.put(0x95b, OpcodeEnum.VMOVHPS);
641
+ mOpcodes.put(0x1f98, OpcodeEnum.PMOVZXDQ);
642
+ mOpcodes.put(0x1020, OpcodeEnum.VZEROUPPER);
643
+ mOpcodes.put(0xb35, OpcodeEnum.SQRTPS);
644
+ mOpcodes.put(0xbeb, OpcodeEnum.VANDNPS);
645
+ mOpcodes.put(0x196e, OpcodeEnum.VPADDQ);
646
+ mOpcodes.put(0x4e8, OpcodeEnum.FPREM);
647
+ mOpcodes.put(0x1c50, OpcodeEnum.VPADDW);
648
+ mOpcodes.put(0x24d8, OpcodeEnum.PALIGNR);
649
+ mOpcodes.put(0x1fc0, OpcodeEnum.PMINSB);
650
+ mOpcodes.put(0xe9f, OpcodeEnum.PCMPGTW);
651
+ mOpcodes.put(0x36c, OpcodeEnum.SHLD);
652
+ mOpcodes.put(0x14f, OpcodeEnum.LDS);
653
+ mOpcodes.put(0x1c41, OpcodeEnum.VPADDB);
654
+ mOpcodes.put(0x719, OpcodeEnum.VMRUN);
655
+ mOpcodes.put(0x26b0, OpcodeEnum.RDFSBASE);
656
+ mOpcodes.put(0xbf4, OpcodeEnum.VANDNPD);
657
+ mOpcodes.put(0x190, OpcodeEnum.XLAT);
658
+ mOpcodes.put(0xd4, OpcodeEnum.XCHG);
659
+ mOpcodes.put(0x4df, OpcodeEnum.FINCSTP);
660
+ mOpcodes.put(0x1990, OpcodeEnum.MOVDQ2Q);
661
+ mOpcodes.put(0x1b0c, OpcodeEnum.PMINSW);
662
+ mOpcodes.put(0x6b3, OpcodeEnum.SMSW);
663
+ mOpcodes.put(0x1d5d, OpcodeEnum.VPSIGNB);
664
+ mOpcodes.put(0x10c7, OpcodeEnum.XRSTOR);
665
+ mOpcodes.put(0x24bb, OpcodeEnum.VBLENDPD);
666
+ mOpcodes.put(0xc0, OpcodeEnum.JGE);
667
+ mOpcodes.put(0x135d, OpcodeEnum.VCMPNLT_UQPS);
668
+ mOpcodes.put(0x1766, OpcodeEnum.VCMPORDSD);
669
+ mOpcodes.put(0x24a8, OpcodeEnum.VBLENDPS);
670
+ mOpcodes.put(0x469, OpcodeEnum.FTST);
671
+ mOpcodes.put(0x1a8e, OpcodeEnum.CVTTPD2DQ);
672
+ mOpcodes.put(0x15d4, OpcodeEnum.VCMPORDSS);
673
+ mOpcodes.put(0x14ef, OpcodeEnum.VCMPNLT_UQPD);
674
+ mOpcodes.put(0x2188, OpcodeEnum.VFNMSUB132SS);
675
+ mOpcodes.put(0x10cf, OpcodeEnum.XRSTOR64);
676
+ mOpcodes.put(0x29, OpcodeEnum.AND);
677
+ mOpcodes.put(0xb8b, OpcodeEnum.VRSQRTPS);
678
+ mOpcodes.put(0x10ff, OpcodeEnum.CLFLUSH);
679
+ mOpcodes.put(0x1cc3, OpcodeEnum.PSHUFB);
680
+ mOpcodes.put(0x442, OpcodeEnum.FLDENV);
681
+ mOpcodes.put(0xda, OpcodeEnum.MOV);
682
+ mOpcodes.put(0xfaa, OpcodeEnum.PSHUFD);
683
+ mOpcodes.put(0xc5, OpcodeEnum.JLE);
684
+ mOpcodes.put(0x5d0, OpcodeEnum.FEDISI);
685
+ mOpcodes.put(0x70b, OpcodeEnum.VMFUNC);
686
+ mOpcodes.put(0xea8, OpcodeEnum.VPCMPGTW);
687
+ mOpcodes.put(0x809, OpcodeEnum.PFCMPEQ);
688
+ mOpcodes.put(0x169d, OpcodeEnum.VCMPORD_SSS);
689
+ mOpcodes.put(0xfa2, OpcodeEnum.PSHUFW);
690
+ mOpcodes.put(0x24f3, OpcodeEnum.VPEXTRB);
691
+ mOpcodes.put(0x1ab9, OpcodeEnum.VCVTDQ2PD);
692
+ mOpcodes.put(0xf79, OpcodeEnum.VMOVQ);
693
+ mOpcodes.put(0x483, OpcodeEnum.FLDL2E);
694
+ mOpcodes.put(0x250c, OpcodeEnum.VPEXTRD);
695
+ mOpcodes.put(0x1d28, OpcodeEnum.VPHSUBW);
696
+ mOpcodes.put(0x2284, OpcodeEnum.VFNMSUB213PS);
697
+ mOpcodes.put(0x21f1, OpcodeEnum.VFMADD213PD);
698
+ mOpcodes.put(0x739, OpcodeEnum.STGI);
699
+ mOpcodes.put(0x4bd, OpcodeEnum.FPATAN);
700
+ mOpcodes.put(0x2515, OpcodeEnum.VPEXTRQ);
701
+ mOpcodes.put(0x437, OpcodeEnum.FST);
702
+ mOpcodes.put(0x168, OpcodeEnum.INT_3);
703
+ mOpcodes.put(0x598, OpcodeEnum.FIST);
704
+ mOpcodes.put(0x271b, OpcodeEnum.VMCLEAR);
705
+ mOpcodes.put(0x1e75, OpcodeEnum.PMOVSXBQ);
706
+ mOpcodes.put(0x42, OpcodeEnum.AAA);
707
+ mOpcodes.put(0x1d39, OpcodeEnum.VPHSUBD);
708
+ mOpcodes.put(0xa41, OpcodeEnum.CVTTPS2PI);
709
+ mOpcodes.put(0x114f, OpcodeEnum.CMPNEQPS);
710
+ mOpcodes.put(0x155f, OpcodeEnum.VCMPGE_OQPD);
711
+ mOpcodes.put(0x1b68, OpcodeEnum.LDDQU);
712
+ mOpcodes.put(0xb79, OpcodeEnum.RSQRTPS);
713
+ mOpcodes.put(0xc59, OpcodeEnum.VADDPD);
714
+ mOpcodes.put(0x7b8, OpcodeEnum.PFRCP);
715
+ mOpcodes.put(0xcc1, OpcodeEnum.CVTSS2SD);
716
+ mOpcodes.put(0x2196, OpcodeEnum.VFNMSUB132SD);
717
+ mOpcodes.put(0x632, OpcodeEnum.FDIVRP);
718
+ mOpcodes.put(0x641, OpcodeEnum.FBLD);
719
+ mOpcodes.put(0x361, OpcodeEnum.CPUID);
720
+ mOpcodes.put(0x251, OpcodeEnum.RDTSC);
721
+ mOpcodes.put(0x24ce, OpcodeEnum.VPBLENDW);
722
+ mOpcodes.put(0xd2b, OpcodeEnum.VCVTPS2DQ);
723
+ mOpcodes.put(0x1b22, OpcodeEnum.VPOR);
724
+ mOpcodes.put(0xc51, OpcodeEnum.VADDPS);
725
+ mOpcodes.put(0x77b, OpcodeEnum.PI2FW);
726
+ mOpcodes.put(0xd7e, OpcodeEnum.MINPS);
727
+ mOpcodes.put(0x17cf, OpcodeEnum.VCMPEQ_OSSD);
728
+ mOpcodes.put(0x1bad, OpcodeEnum.VPMULUDQ);
729
+ mOpcodes.put(0xe0b, OpcodeEnum.MAXSD);
730
+ mOpcodes.put(0x2050, OpcodeEnum.VPMULLD);
731
+ mOpcodes.put(0x558, OpcodeEnum.FIDIVR);
732
+ mOpcodes.put(0xad5, OpcodeEnum.VUCOMISS);
733
+ mOpcodes.put(0x8a0, OpcodeEnum.MOVDDUP);
734
+ mOpcodes.put(0x1ccb, OpcodeEnum.VPSHUFB);
735
+ mOpcodes.put(0x1d42, OpcodeEnum.PHSUBSW);
736
+ mOpcodes.put(0x264d, OpcodeEnum.VPCMPISTRI);
737
+ mOpcodes.put(0xe04, OpcodeEnum.MAXSS);
738
+ mOpcodes.put(0x1a35, OpcodeEnum.VPAVGB);
739
+ mOpcodes.put(0x16d3, OpcodeEnum.VCMPFALSE_OSSS);
740
+ mOpcodes.put(0xd85, OpcodeEnum.MINPD);
741
+ mOpcodes.put(0x4ef, OpcodeEnum.FYL2XP1);
742
+ mOpcodes.put(0xadf, OpcodeEnum.VUCOMISD);
743
+ mOpcodes.put(0x23aa, OpcodeEnum.VFNMSUB231PD);
744
+ mOpcodes.put(0x1849, OpcodeEnum.VCMPNGE_UQSD);
745
+ mOpcodes.put(0xc4a, OpcodeEnum.ADDSD);
746
+ mOpcodes.put(0x6e3, OpcodeEnum.VMXOFF);
747
+ mOpcodes.put(0x1958, OpcodeEnum.PSRLQ);
748
+ mOpcodes.put(0x128f, OpcodeEnum.VCMPNEQPS);
749
+ mOpcodes.put(0x193a, OpcodeEnum.PSRLW);
750
+ mOpcodes.put(0x1a4c, OpcodeEnum.PSRAD);
751
+ mOpcodes.put(0x6a1, OpcodeEnum.SIDT);
752
+ mOpcodes.put(0xe77, OpcodeEnum.PACKSSWB);
753
+ mOpcodes.put(0x10af, OpcodeEnum.XSAVE);
754
+ mOpcodes.put(0x1421, OpcodeEnum.VCMPNEQPD);
755
+ mOpcodes.put(0xfa, OpcodeEnum.CDQ);
756
+ mOpcodes.put(0xc43, OpcodeEnum.ADDSS);
757
+ mOpcodes.put(0x16b7, OpcodeEnum.VCMPNGE_UQSS);
758
+ mOpcodes.put(0x2440, OpcodeEnum.CRC32);
759
+ mOpcodes.put(0x23dc, OpcodeEnum.VAESIMC);
760
+ mOpcodes.put(0x2004, OpcodeEnum.PMAXSB);
761
+ mOpcodes.put(0x2529, OpcodeEnum.VEXTRACTPS);
762
+ mOpcodes.put(0x1813, OpcodeEnum.VCMPNLT_UQSD);
763
+ mOpcodes.put(0x1c05, OpcodeEnum.VPSUBB);
764
+ mOpcodes.put(0x1f8d, OpcodeEnum.VPMOVZXWQ);
765
+ mOpcodes.put(0x13bf, OpcodeEnum.VCMPNEQ_OSPS);
766
+ mOpcodes.put(0xa1b, OpcodeEnum.MOVNTSS);
767
+ mOpcodes.put(0x2542, OpcodeEnum.VEXTRACTF128);
768
+ mOpcodes.put(0x1b28, OpcodeEnum.PADDSB);
769
+ mOpcodes.put(0x75, OpcodeEnum.IMUL);
770
+ mOpcodes.put(0x3d6, OpcodeEnum.RCR);
771
+ mOpcodes.put(0x14d2, OpcodeEnum.VCMPUNORD_SPD);
772
+ mOpcodes.put(0x3d1, OpcodeEnum.RCL);
773
+ mOpcodes.put(0xa24, OpcodeEnum.MOVNTSD);
774
+ mOpcodes.put(0x1551, OpcodeEnum.VCMPNEQ_OSPD);
775
+ mOpcodes.put(0x1681, OpcodeEnum.VCMPNLT_UQSS);
776
+ mOpcodes.put(0xd57, OpcodeEnum.SUBSD);
777
+ mOpcodes.put(0x13f, OpcodeEnum.SCAS);
778
+ mOpcodes.put(0x25c5, OpcodeEnum.PCLMULQDQ);
779
+ mOpcodes.put(0x7bf, OpcodeEnum.PFRSQRT);
780
+ mOpcodes.put(0x2576, OpcodeEnum.PINSRD);
781
+ mOpcodes.put(0x623, OpcodeEnum.FSUBRP);
782
+ mOpcodes.put(0x5b, OpcodeEnum.PUSHA);
783
+ mOpcodes.put(0x1a16, OpcodeEnum.VPMAXUB);
784
+ mOpcodes.put(0x1143, OpcodeEnum.CMPUNORDPS);
785
+ mOpcodes.put(0x203f, OpcodeEnum.VPMAXUD);
786
+ mOpcodes.put(0x463, OpcodeEnum.FABS);
787
+ mOpcodes.put(0x1e7f, OpcodeEnum.VPMOVSXBQ);
788
+ mOpcodes.put(0x149f, OpcodeEnum.VCMPTRUEPD);
789
+ mOpcodes.put(0x23e, OpcodeEnum.FEMMS);
790
+ mOpcodes.put(0x163d, OpcodeEnum.VCMPEQ_OSSS);
791
+ mOpcodes.put(0x220b, OpcodeEnum.VFMADD213SD);
792
+ mOpcodes.put(0x1e6a, OpcodeEnum.VPMOVSXBD);
793
+ mOpcodes.put(0x1192, OpcodeEnum.CMPUNORDPD);
794
+ mOpcodes.put(0x1907, OpcodeEnum.VMPTRST);
795
+ mOpcodes.put(0x18fb, OpcodeEnum.CMPXCHG16B);
796
+ mOpcodes.put(0x130d, OpcodeEnum.VCMPTRUEPS);
797
+ mOpcodes.put(0x12d3, OpcodeEnum.VCMPNGTPS);
798
+ mOpcodes.put(0x1c87, OpcodeEnum.FNCLEX);
799
+ mOpcodes.put(0x123c, OpcodeEnum.CMPNEQSD);
800
+ mOpcodes.put(0x1771, OpcodeEnum.VCMPEQ_UQSD);
801
+ mOpcodes.put(0x579, OpcodeEnum.FCMOVU);
802
+ mOpcodes.put(0x103e, OpcodeEnum.EXTRQ);
803
+ mOpcodes.put(0x25a5, OpcodeEnum.DPPD);
804
+ mOpcodes.put(0x2e2, OpcodeEnum.CMOVGE);
805
+ mOpcodes.put(0x2550, OpcodeEnum.PINSRB);
806
+ mOpcodes.put(0x15df, OpcodeEnum.VCMPEQ_UQSS);
807
+ mOpcodes.put(0x1d14, OpcodeEnum.VPMADDUBSW);
808
+ mOpcodes.put(0x11ed, OpcodeEnum.CMPNEQSS);
809
+ mOpcodes.put(0x2309, OpcodeEnum.VFMADD231PD);
810
+ mOpcodes.put(0x519, OpcodeEnum.FSIN);
811
+ mOpcodes.put(0x1bf, OpcodeEnum.IN);
812
+ mOpcodes.put(0x568, OpcodeEnum.FCMOVE);
813
+ mOpcodes.put(0x44a, OpcodeEnum.FLDCW);
814
+ mOpcodes.put(0x2598, OpcodeEnum.DPPS);
815
+ mOpcodes.put(0x560, OpcodeEnum.FCMOVB);
816
+ mOpcodes.put(0x1941, OpcodeEnum.VPSRLW);
817
+ mOpcodes.put(0x10bf, OpcodeEnum.LFENCE);
818
+ mOpcodes.put(0xaa3, OpcodeEnum.CVTSD2SI);
819
+ mOpcodes.put(0x30c, OpcodeEnum.SETAE);
820
+ mOpcodes.put(0x2a6, OpcodeEnum.CMOVNZ);
821
+ mOpcodes.put(0x195f, OpcodeEnum.VPSRLQ);
822
+ mOpcodes.put(0x614, OpcodeEnum.FMULP);
823
+ mOpcodes.put(0x9c2, OpcodeEnum.VMOVAPD);
824
+ mOpcodes.put(0x1657, OpcodeEnum.VCMPLE_OQSS);
825
+ mOpcodes.put(0x2c4, OpcodeEnum.CMOVNS);
826
+ mOpcodes.put(0x5ae, OpcodeEnum.FCMOVNE);
827
+ mOpcodes.put(0x288, OpcodeEnum.CMOVNO);
828
+ mOpcodes.put(0x1a85, OpcodeEnum.VPMULHW);
829
+ mOpcodes.put(0x1950, OpcodeEnum.VPSRLD);
830
+ mOpcodes.put(0x1061, OpcodeEnum.CVTPS2PH);
831
+ mOpcodes.put(0xa85, OpcodeEnum.CVTPS2PI);
832
+ mOpcodes.put(0x1ce5, OpcodeEnum.PHADDD);
833
+ mOpcodes.put(0xcad, OpcodeEnum.CVTPS2PD);
834
+ mOpcodes.put(0x1e34, OpcodeEnum.VPABSW);
835
+ mOpcodes.put(0x17e9, OpcodeEnum.VCMPLE_OQSD);
836
+ mOpcodes.put(0x9b9, OpcodeEnum.VMOVAPS);
837
+ mOpcodes.put(0x1c14, OpcodeEnum.VPSUBW);
838
+ mOpcodes.put(0x823, OpcodeEnum.PMULHRW);
839
+ mOpcodes.put(0x9a9, OpcodeEnum.MOVAPS);
840
+ mOpcodes.put(0x7b1, OpcodeEnum.PFMIN);
841
+ mOpcodes.put(0xf66, OpcodeEnum.MOVD);
842
+ mOpcodes.put(0x937, OpcodeEnum.MOVHPS);
843
+ mOpcodes.put(0xc71, OpcodeEnum.MULPS);
844
+ mOpcodes.put(0x126e, OpcodeEnum.VCMPLTPS);
845
+ mOpcodes.put(0x368, OpcodeEnum.BT);
846
+ mOpcodes.put(0x9b1, OpcodeEnum.MOVAPD);
847
+ mOpcodes.put(0x1393, OpcodeEnum.VCMPNGE_UQPS);
848
+ mOpcodes.put(0x1b8, OpcodeEnum.JRCXZ);
849
+ mOpcodes.put(0xc78, OpcodeEnum.MULPD);
850
+ mOpcodes.put(0x127, OpcodeEnum.MOVS);
851
+ mOpcodes.put(0x6bf, OpcodeEnum.INVLPG);
852
+ mOpcodes.put(0xf6c, OpcodeEnum.MOVQ);
853
+ mOpcodes.put(0xda2, OpcodeEnum.VMINPD);
854
+ mOpcodes.put(0x1e3c, OpcodeEnum.PABSD);
855
+ mOpcodes.put(0x11b, OpcodeEnum.SAHF);
856
+ mOpcodes.put(0x13e7, OpcodeEnum.VCMPTRUE_USPS);
857
+ mOpcodes.put(0x782, OpcodeEnum.PI2FD);
858
+ mOpcodes.put(0x1e1e, OpcodeEnum.PABSB);
859
+ mOpcodes.put(0x2495, OpcodeEnum.VROUNDSD);
860
+ mOpcodes.put(0x1a26, OpcodeEnum.VPANDN);
861
+ mOpcodes.put(0xe6b, OpcodeEnum.VPUNPCKLDQ);
862
+ mOpcodes.put(0x63a, OpcodeEnum.FDIVP);
863
+ mOpcodes.put(0x1c2b, OpcodeEnum.PSUBQ);
864
+ mOpcodes.put(0x42b, OpcodeEnum.FDIVR);
865
+ mOpcodes.put(0x425, OpcodeEnum.FDIV);
866
+ mOpcodes.put(0x1579, OpcodeEnum.VCMPTRUE_USPD);
867
+ mOpcodes.put(0x766, OpcodeEnum.PREFETCH);
868
+ mOpcodes.put(0x101a, OpcodeEnum.EMMS);
869
+ mOpcodes.put(0xd9a, OpcodeEnum.VMINPS);
870
+ mOpcodes.put(0x22fc, OpcodeEnum.VFMADD231PS);
871
+ mOpcodes.put(0x2292, OpcodeEnum.VFNMSUB213PD);
872
+ mOpcodes.put(0xa99, OpcodeEnum.CVTSS2SI);
873
+ mOpcodes.put(0x93f, OpcodeEnum.MOVHPD);
874
+ mOpcodes.put(0x29f, OpcodeEnum.CMOVZ);
875
+ mOpcodes.put(0x1a62, OpcodeEnum.VPAVGW);
876
+ mOpcodes.put(0xff, OpcodeEnum.CQO);
877
+ mOpcodes.put(0x1c23, OpcodeEnum.VPSUBD);
878
+ mOpcodes.put(0x2cc, OpcodeEnum.CMOVP);
879
+ mOpcodes.put(0x1588, OpcodeEnum.VCMPEQSS);
880
+ mOpcodes.put(0x2bd, OpcodeEnum.CMOVS);
881
+ mOpcodes.put(0x1e60, OpcodeEnum.PMOVSXBD);
882
+ mOpcodes.put(0x2482, OpcodeEnum.VROUNDSS);
883
+ mOpcodes.put(0x1c32, OpcodeEnum.VPSUBQ);
884
+ mOpcodes.put(0x2db, OpcodeEnum.CMOVL);
885
+ mOpcodes.put(0x191a, OpcodeEnum.ADDSUBPS);
886
+ mOpcodes.put(0x281, OpcodeEnum.CMOVO);
887
+ mOpcodes.put(0x2b6, OpcodeEnum.CMOVA);
888
+ mOpcodes.put(0x290, OpcodeEnum.CMOVB);
889
+ mOpcodes.put(0xeda, OpcodeEnum.PUNPCKHBW);
890
+ mOpcodes.put(0x2642, OpcodeEnum.PCMPISTRI);
891
+ mOpcodes.put(0x2f2, OpcodeEnum.CMOVG);
892
+ mOpcodes.put(0x19a3, OpcodeEnum.VPMOVMSKB);
893
+ mOpcodes.put(0x2420, OpcodeEnum.AESDECLAST);
894
+ mOpcodes.put(0x845, OpcodeEnum.MOVUPD);
895
+ mOpcodes.put(0x20bc, OpcodeEnum.VFMSUBADD132PD);
896
+ mOpcodes.put(0x1bd2, OpcodeEnum.VPSADBW);
897
+ mOpcodes.put(0x3f7, OpcodeEnum.XBEGIN);
898
+ mOpcodes.put(0x246f, OpcodeEnum.VROUNDPD);
899
+ mOpcodes.put(0x6b9, OpcodeEnum.LMSW);
900
+ mOpcodes.put(0x2072, OpcodeEnum.INVEPT);
901
+ mOpcodes.put(0x39f, OpcodeEnum.MOVZX);
902
+ mOpcodes.put(0xbbd, OpcodeEnum.ANDPS);
903
+ mOpcodes.put(0x20ac, OpcodeEnum.VFMSUBADD132PS);
904
+ mOpcodes.put(0x83d, OpcodeEnum.MOVUPS);
905
+ mOpcodes.put(0x1627, OpcodeEnum.VCMPGTSS);
906
+ mOpcodes.put(0x1a6a, OpcodeEnum.PMULHUW);
907
+ mOpcodes.put(0x25ab, OpcodeEnum.VDPPD);
908
+ mOpcodes.put(0x24fc, OpcodeEnum.PEXTRD);
909
+ mOpcodes.put(0x1602, OpcodeEnum.VCMPFALSESS);
910
+ mOpcodes.put(0x26ce, OpcodeEnum.RDGSBASE);
911
+ mOpcodes.put(0x1b, OpcodeEnum.OR);
912
+ mOpcodes.put(0x18c5, OpcodeEnum.VPEXTRW);
913
+ mOpcodes.put(0x1af2, OpcodeEnum.VPSUBSB);
914
+ mOpcodes.put(0x26ba, OpcodeEnum.FXRSTOR);
915
+ mOpcodes.put(0x21d, OpcodeEnum.CLTS);
916
+ mOpcodes.put(0x1857, OpcodeEnum.VCMPNGT_UQSD);
917
+ mOpcodes.put(0x15f7, OpcodeEnum.VCMPNGTSS);
918
+ mOpcodes.put(0x5ef, OpcodeEnum.FRSTOR);
919
+ mOpcodes.put(0x1794, OpcodeEnum.VCMPFALSESD);
920
+ mOpcodes.put(0x49a, OpcodeEnum.FLDLN2);
921
+ mOpcodes.put(0x2535, OpcodeEnum.VINSERTF128);
922
+ mOpcodes.put(0x1b03, OpcodeEnum.VPSUBSW);
923
+ mOpcodes.put(0x1ba4, OpcodeEnum.PMULUDQ);
924
+ mOpcodes.put(0x56, OpcodeEnum.DEC);
925
+ mOpcodes.put(0x13af, OpcodeEnum.VCMPFALSE_OSPS);
926
+ mOpcodes.put(0x432, OpcodeEnum.FLD);
927
+ mOpcodes.put(0x1fa2, OpcodeEnum.VPMOVZXDQ);
928
+ mOpcodes.put(0x2479, OpcodeEnum.ROUNDSS);
929
+ mOpcodes.put(0x9f3, OpcodeEnum.VCVTSI2SS);
930
+ mOpcodes.put(0x18bd, OpcodeEnum.PEXTRW);
931
+ mOpcodes.put(0x26a6, OpcodeEnum.FXSAVE64);
932
+ mOpcodes.put(0x3c7, OpcodeEnum.ROL);
933
+ mOpcodes.put(0x20f3, OpcodeEnum.VFMADD132SD);
934
+ mOpcodes.put(0x1189, OpcodeEnum.CMPLEPD);
935
+ mOpcodes.put(0xcf6, OpcodeEnum.VCVTSD2SS);
936
+ mOpcodes.put(0x605, OpcodeEnum.FUCOMP);
937
+ mOpcodes.put(0x1ce, OpcodeEnum.JMP);
938
+ mOpcodes.put(0x171a, OpcodeEnum.VCMPEQSD);
939
+ mOpcodes.put(0xd01, OpcodeEnum.CVTDQ2PS);
940
+ mOpcodes.put(0x16fe, OpcodeEnum.VCMPGT_OQSS);
941
+ mOpcodes.put(0x5e0, OpcodeEnum.FUCOMI);
942
+ mOpcodes.put(0x1121, OpcodeEnum.LZCNT);
943
+ mOpcodes.put(0xbad, OpcodeEnum.VRCPPS);
944
+ mOpcodes.put(0x1a0e, OpcodeEnum.PMAXUB);
945
+ mOpcodes.put(0x1ced, OpcodeEnum.VPHADDD);
946
+ mOpcodes.put(0x9fe, OpcodeEnum.VCVTSI2SD);
947
+ mOpcodes.put(0x1890, OpcodeEnum.VCMPGT_OQSD);
948
+ mOpcodes.put(0x3cc, OpcodeEnum.ROR);
949
+ mOpcodes.put(0x22b, OpcodeEnum.INVD);
950
+ mOpcodes.put(0xab8, OpcodeEnum.VCVTSD2SI);
951
+ mOpcodes.put(0x240f, OpcodeEnum.AESDEC);
952
+ mOpcodes.put(0x1250, OpcodeEnum.CMPNLESD);
953
+ mOpcodes.put(0x354, OpcodeEnum.SETLE);
954
+ mOpcodes.put(0x22dc, OpcodeEnum.VFMSUBADD231PS);
955
+ mOpcodes.put(0x2364, OpcodeEnum.VFNMADD231PS);
956
+ mOpcodes.put(0x10b6, OpcodeEnum.XSAVE64);
957
+ mOpcodes.put(0xef1, OpcodeEnum.PUNPCKHWD);
958
+ mOpcodes.put(0x1e94, OpcodeEnum.VPMOVSXWD);
959
+ mOpcodes.put(0xcb7, OpcodeEnum.CVTPD2PS);
960
+ mOpcodes.put(0x8a9, OpcodeEnum.VMOVHLPS);
961
+ mOpcodes.put(0x22ec, OpcodeEnum.VFMSUBADD231PD);
962
+ mOpcodes.put(0xa8f, OpcodeEnum.CVTPD2PI);
963
+ mOpcodes.put(0x1201, OpcodeEnum.CMPNLESS);
964
+ mOpcodes.put(0x1ec9, OpcodeEnum.PMULDQ);
965
+ mOpcodes.put(0x1ea9, OpcodeEnum.VPMOVSXWQ);
966
+ mOpcodes.put(0x1750, OpcodeEnum.VCMPNLTSD);
967
+ mOpcodes.put(0x2100, OpcodeEnum.VFMSUB132PS);
968
+ mOpcodes.put(0x2372, OpcodeEnum.VFNMADD231PD);
969
+ mOpcodes.put(0x1cbc, OpcodeEnum.FSTSW);
970
+ mOpcodes.put(0x75e, OpcodeEnum.RDTSCP);
971
+ mOpcodes.put(0x10d9, OpcodeEnum.MFENCE);
972
+ mOpcodes.put(0x20e6, OpcodeEnum.VFMADD132SS);
973
+ mOpcodes.put(0x1ff3, OpcodeEnum.PMINUD);
974
+ mOpcodes.put(0x5ca, OpcodeEnum.FENI);
975
+ mOpcodes.put(0x68, OpcodeEnum.BOUND);
976
+ mOpcodes.put(0x245c, OpcodeEnum.VROUNDPS);
977
+ mOpcodes.put(0xfbb, OpcodeEnum.PSHUFLW);
978
+ mOpcodes.put(0xc9d, OpcodeEnum.VMULSS);
979
+ mOpcodes.put(0x1865, OpcodeEnum.VCMPFALSE_OSSD);
980
+ mOpcodes.put(0xd20, OpcodeEnum.VCVTDQ2PS);
981
+ mOpcodes.put(0x159c, OpcodeEnum.VCMPLESS);
982
+ mOpcodes.put(0x457, OpcodeEnum.FNOP);
983
+ mOpcodes.put(0x1159, OpcodeEnum.CMPNLTPS);
984
+ mOpcodes.put(0x129a, OpcodeEnum.VCMPNLTPS);
985
+ mOpcodes.put(0x492, OpcodeEnum.FLDLG2);
986
+ mOpcodes.put(0x223, OpcodeEnum.SYSRET);
987
+ mOpcodes.put(0x1c80, OpcodeEnum.FSTCW);
988
+ mOpcodes.put(0x2232, OpcodeEnum.VFMSUB213SS);
989
+ mOpcodes.put(0x745, OpcodeEnum.SKINIT);
990
+ mOpcodes.put(0xbd3, OpcodeEnum.VANDPD);
991
+ mOpcodes.put(0x4a2, OpcodeEnum.FLDZ);
992
+ mOpcodes.put(0x33, OpcodeEnum.SUB);
993
+ mOpcodes.put(0x1cdc, OpcodeEnum.VPHADDW);
994
+ mOpcodes.put(0x664, OpcodeEnum.NEG);
995
+ mOpcodes.put(0x1fe2, OpcodeEnum.PMINUW);
996
+ mOpcodes.put(0xdfd, OpcodeEnum.MAXPD);
997
+ mOpcodes.put(0x1379, OpcodeEnum.VCMPORD_SPS);
998
+ mOpcodes.put(0x133, OpcodeEnum.STOS);
999
+ mOpcodes.put(0x23c6, OpcodeEnum.VFNMSUB231SD);
1000
+ mOpcodes.put(0x1738, OpcodeEnum.VCMPUNORDSD);
1001
+ mOpcodes.put(0x834, OpcodeEnum.PAVGUSB);
1002
+ mOpcodes.put(0x150b, OpcodeEnum.VCMPORD_SPD);
1003
+ mOpcodes.put(0xdf6, OpcodeEnum.MAXPS);
1004
+ mOpcodes.put(0x19d4, OpcodeEnum.PMINUB);
1005
+ mOpcodes.put(0x1bf1, OpcodeEnum.VMASKMOVDQU);
1006
+ mOpcodes.put(0x647, OpcodeEnum.FBSTP);
1007
+ mOpcodes.put(0x18ac, OpcodeEnum.PINSRW);
1008
+ mOpcodes.put(0x1f78, OpcodeEnum.VPMOVZXWD);
1009
+ mOpcodes.put(0x1fea, OpcodeEnum.VPMINUW);
1010
+ mOpcodes.put(0x1821, OpcodeEnum.VCMPNLE_UQSD);
1011
+ mOpcodes.put(0x18a, OpcodeEnum.SALC);
1012
+ mOpcodes.put(0x24eb, OpcodeEnum.PEXTRB);
1013
+ mOpcodes.put(0x8ee, OpcodeEnum.VUNPCKLPS);
1014
+ mOpcodes.put(0x168f, OpcodeEnum.VCMPNLE_UQSS);
1015
+ mOpcodes.put(0xf80, OpcodeEnum.MOVDQA);
1016
+ mOpcodes.put(0x15be, OpcodeEnum.VCMPNLTSS);
1017
+ mOpcodes.put(0x1b95, OpcodeEnum.PSLLQ);
1018
+ mOpcodes.put(0xa2d, OpcodeEnum.VMOVNTPS);
1019
+ mOpcodes.put(0x1ffb, OpcodeEnum.VPMINUD);
1020
+ mOpcodes.put(0x978, OpcodeEnum.PREFETCHNTA);
1021
+ mOpcodes.put(0x8f9, OpcodeEnum.VUNPCKLPD);
1022
+ mOpcodes.put(0x1057, OpcodeEnum.CVTPH2PS);
1023
+ mOpcodes.put(0x266a, OpcodeEnum.VAESKEYGENASSIST);
1024
+ mOpcodes.put(0x1afb, OpcodeEnum.PSUBSW);
1025
+ mOpcodes.put(0x177e, OpcodeEnum.VCMPNGESD);
1026
+ mOpcodes.put(0x1c67, OpcodeEnum.FNSTENV);
1027
+ mOpcodes.put(0x1cb4, OpcodeEnum.FNSTSW);
1028
+ mOpcodes.put(0x119e, OpcodeEnum.CMPNEQPD);
1029
+ mOpcodes.put(0x1a5b, OpcodeEnum.PAVGW);
1030
+ mOpcodes.put(0xa12, OpcodeEnum.MOVNTPD);
1031
+ mOpcodes.put(0x1518, OpcodeEnum.VCMPEQ_USPD);
1032
+ mOpcodes.put(0x5d8, OpcodeEnum.FSETPM);
1033
+ mOpcodes.put(0x1dcf, OpcodeEnum.BLENDVPS);
1034
+ mOpcodes.put(0x21b4, OpcodeEnum.VFMADDSUB213PD);
1035
+ mOpcodes.put(0xb, OpcodeEnum.ADD);
1036
+ mOpcodes.put(0x15ec, OpcodeEnum.VCMPNGESS);
1037
+ mOpcodes.put(0x1f, OpcodeEnum.ADC);
1038
+ mOpcodes.put(0x1aea, OpcodeEnum.PSUBSB);
1039
+ mOpcodes.put(0x1dd9, OpcodeEnum.BLENDVPD);
1040
+ mOpcodes.put(0xee5, OpcodeEnum.VPUNPCKHBW);
1041
+ mOpcodes.put(0x25f, OpcodeEnum.RDPMC);
1042
+ mOpcodes.put(0xa09, OpcodeEnum.MOVNTPS);
1043
+ mOpcodes.put(0x1110, OpcodeEnum.BSF);
1044
+ mOpcodes.put(0x1400, OpcodeEnum.VCMPLTPD);
1045
+ mOpcodes.put(0x1a2e, OpcodeEnum.PAVGB);
1046
+ mOpcodes.put(0xdf, OpcodeEnum.LEA);
1047
+ mOpcodes.put(0x1aad, OpcodeEnum.VCVTTPD2DQ);
1048
+ mOpcodes.put(0xe95, OpcodeEnum.VPCMPGTB);
1049
+ mOpcodes.put(0xebb, OpcodeEnum.VPCMPGTD);
1050
+ mOpcodes.put(0x475, OpcodeEnum.FLD1);
1051
+ mOpcodes.put(0x1bc0, OpcodeEnum.VPMADDWD);
1052
+ mOpcodes.put(0x17f6, OpcodeEnum.VCMPUNORD_SSD);
1053
+ mOpcodes.put(0x14a, OpcodeEnum.LES);
1054
+ mOpcodes.put(0x313, OpcodeEnum.SETZ);
1055
+ mOpcodes.put(0x1fb6, OpcodeEnum.VPCMPGTQ);
1056
+ mOpcodes.put(0xca5, OpcodeEnum.VMULSD);
1057
+ mOpcodes.put(0x21e4, OpcodeEnum.VFMADD213PS);
1058
+ mOpcodes.put(0x15c9, OpcodeEnum.VCMPNLESS);
1059
+ mOpcodes.put(0x87d, OpcodeEnum.MOVHLPS);
1060
+ mOpcodes.put(0x2065, OpcodeEnum.VPHMINPOSUW);
1061
+ mOpcodes.put(0x1e43, OpcodeEnum.VPABSD);
1062
+ mOpcodes.put(0x1a3d, OpcodeEnum.PSRAW);
1063
+ mOpcodes.put(0x7cf, OpcodeEnum.PFADD);
1064
+ mOpcodes.put(0x209c, OpcodeEnum.VFMADDSUB132PD);
1065
+ mOpcodes.put(0xaf1, OpcodeEnum.COMISD);
1066
+ mOpcodes.put(0x13cd, OpcodeEnum.VCMPGE_OQPS);
1067
+ mOpcodes.put(0xe22, OpcodeEnum.VMAXSS);
1068
+ mOpcodes.put(0x1230, OpcodeEnum.CMPUNORDSD);
1069
+ mOpcodes.put(0x4ff, OpcodeEnum.FSINCOS);
1070
+ mOpcodes.put(0xae9, OpcodeEnum.COMISS);
1071
+ mOpcodes.put(0x208c, OpcodeEnum.VFMADDSUB132PS);
1072
+ mOpcodes.put(0xb9f, OpcodeEnum.RCPPS);
1073
+ mOpcodes.put(0x2142, OpcodeEnum.VFNMADD132PD);
1074
+ mOpcodes.put(0x451, OpcodeEnum.FXCH);
1075
+ mOpcodes.put(0x2e, OpcodeEnum.DAA);
1076
+ mOpcodes.put(0x320, OpcodeEnum.SETBE);
1077
+ mOpcodes.put(0xcd5, OpcodeEnum.VCVTPS2PD);
1078
+ mOpcodes.put(0x1bb7, OpcodeEnum.PMADDWD);
1079
+ mOpcodes.put(0xbc4, OpcodeEnum.ANDPD);
1080
+ mOpcodes.put(0x1333, OpcodeEnum.VCMPLE_OQPS);
1081
+ mOpcodes.put(0x1789, OpcodeEnum.VCMPNGTSD);
1082
+ mOpcodes.put(0x239c, OpcodeEnum.VFNMSUB231PS);
1083
+ mOpcodes.put(0x64e, OpcodeEnum.FUCOMIP);
1084
+ mOpcodes.put(0xc8d, OpcodeEnum.VMULPS);
1085
+ mOpcodes.put(0x2134, OpcodeEnum.VFNMADD132PS);
1086
+ mOpcodes.put(0x26e1, OpcodeEnum.WRFSBASE);
1087
+ mOpcodes.put(0x38, OpcodeEnum.DAS);
1088
+ mOpcodes.put(0x14c5, OpcodeEnum.VCMPLE_OQPD);
1089
+ mOpcodes.put(0x17a, OpcodeEnum.IRET);
1090
+ mOpcodes.put(0x3c0, OpcodeEnum.BSWAP);
1091
+ mOpcodes.put(0xe32, OpcodeEnum.PUNPCKLBW);
1092
+ mOpcodes.put(0x2026, OpcodeEnum.PMAXUW);
1093
+ mOpcodes.put(0x2636, OpcodeEnum.VPCMPISTRM);
1094
+ mOpcodes.put(0x1b77, OpcodeEnum.PSLLW);
1095
+ mOpcodes.put(0x1664, OpcodeEnum.VCMPUNORD_SSS);
1096
+ mOpcodes.put(0x224c, OpcodeEnum.VFNMADD213PS);
1097
+ mOpcodes.put(0xa79, OpcodeEnum.VCVTTSD2SI);
1098
+ mOpcodes.put(0x233d, OpcodeEnum.VFMSUB231PD);
1099
+ mOpcodes.put(0x13a1, OpcodeEnum.VCMPNGT_UQPS);
1100
+ mOpcodes.put(0x1c78, OpcodeEnum.FNSTCW);
1101
+ mOpcodes.put(0x248c, OpcodeEnum.ROUNDSD);
1102
+ mOpcodes.put(0x11b2, OpcodeEnum.CMPNLEPD);
1103
+ mOpcodes.put(0x2504, OpcodeEnum.PEXTRQ);
1104
+ mOpcodes.put(0x1a7d, OpcodeEnum.PMULHW);
1105
+ mOpcodes.put(0x1cff, OpcodeEnum.VPHADDSW);
1106
+ mOpcodes.put(0x59e, OpcodeEnum.FISTP);
1107
+ mOpcodes.put(0x1f83, OpcodeEnum.PMOVZXWQ);
1108
+ mOpcodes.put(0xce0, OpcodeEnum.VCVTPD2PS);
1109
+ mOpcodes.put(0x170b, OpcodeEnum.VCMPTRUE_USSS);
1110
+ mOpcodes.put(0xc69, OpcodeEnum.VADDSD);
1111
+ mOpcodes.put(0x1dc5, OpcodeEnum.PBLENDVB);
1112
+ mOpcodes.put(0x6d9, OpcodeEnum.VMRESUME);
1113
+ mOpcodes.put(0xacc, OpcodeEnum.UCOMISD);
1114
+ mOpcodes.put(0x1f6e, OpcodeEnum.PMOVZXWD);
1115
+ mOpcodes.put(0xa4c, OpcodeEnum.CVTTPD2PI);
1116
+ mOpcodes.put(0xac3, OpcodeEnum.UCOMISS);
1117
+ mOpcodes.put(0xe81, OpcodeEnum.VPACKSSWB);
1118
+ mOpcodes.put(0xc61, OpcodeEnum.VADDSS);
1119
+ mOpcodes.put(0xfb2, OpcodeEnum.PSHUFHW);
1120
+ mOpcodes.put(0x189d, OpcodeEnum.VCMPTRUE_USSD);
1121
+ mOpcodes.put(0x6f4, OpcodeEnum.MWAIT);
1122
+ }
1123
+ }