hexcore-capstone 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (332) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +191 -0
  3. package/binding.gyp +168 -0
  4. package/deps/capstone/LEB128.h +38 -0
  5. package/deps/capstone/MCDisassembler.h +14 -0
  6. package/deps/capstone/MCFixedLenDisassembler.h +32 -0
  7. package/deps/capstone/MCInst.c +270 -0
  8. package/deps/capstone/MCInst.h +165 -0
  9. package/deps/capstone/MCInstrDesc.c +41 -0
  10. package/deps/capstone/MCInstrDesc.h +167 -0
  11. package/deps/capstone/MCRegisterInfo.c +151 -0
  12. package/deps/capstone/MCRegisterInfo.h +116 -0
  13. package/deps/capstone/Mapping.c +254 -0
  14. package/deps/capstone/Mapping.h +174 -0
  15. package/deps/capstone/MathExtras.h +442 -0
  16. package/deps/capstone/SStream.c +181 -0
  17. package/deps/capstone/SStream.h +40 -0
  18. package/deps/capstone/arch/AArch64/AArch64AddressingModes.h +945 -0
  19. package/deps/capstone/arch/AArch64/AArch64BaseInfo.c +77 -0
  20. package/deps/capstone/arch/AArch64/AArch64BaseInfo.h +585 -0
  21. package/deps/capstone/arch/AArch64/AArch64Disassembler.c +2280 -0
  22. package/deps/capstone/arch/AArch64/AArch64Disassembler.h +18 -0
  23. package/deps/capstone/arch/AArch64/AArch64GenAsmWriter.inc +26589 -0
  24. package/deps/capstone/arch/AArch64/AArch64GenDisassemblerTables.inc +27322 -0
  25. package/deps/capstone/arch/AArch64/AArch64GenInstrInfo.inc +13194 -0
  26. package/deps/capstone/arch/AArch64/AArch64GenRegisterInfo.inc +3814 -0
  27. package/deps/capstone/arch/AArch64/AArch64GenRegisterName.inc +714 -0
  28. package/deps/capstone/arch/AArch64/AArch64GenRegisterV.inc +673 -0
  29. package/deps/capstone/arch/AArch64/AArch64GenSubtargetInfo.inc +229 -0
  30. package/deps/capstone/arch/AArch64/AArch64GenSystemOperands.inc +2863 -0
  31. package/deps/capstone/arch/AArch64/AArch64GenSystemOperands_enum.inc +21 -0
  32. package/deps/capstone/arch/AArch64/AArch64InstPrinter.c +3029 -0
  33. package/deps/capstone/arch/AArch64/AArch64InstPrinter.h +28 -0
  34. package/deps/capstone/arch/AArch64/AArch64Mapping.c +883 -0
  35. package/deps/capstone/arch/AArch64/AArch64Mapping.h +43 -0
  36. package/deps/capstone/arch/AArch64/AArch64MappingInsn.inc +37790 -0
  37. package/deps/capstone/arch/AArch64/AArch64MappingInsnName.inc +1282 -0
  38. package/deps/capstone/arch/AArch64/AArch64MappingInsnOp.inc +26994 -0
  39. package/deps/capstone/arch/AArch64/AArch64Module.c +44 -0
  40. package/deps/capstone/arch/AArch64/AArch64Module.h +12 -0
  41. package/deps/capstone/arch/ARM/ARMAddressingModes.h +698 -0
  42. package/deps/capstone/arch/ARM/ARMBaseInfo.h +486 -0
  43. package/deps/capstone/arch/ARM/ARMDisassembler.c +5763 -0
  44. package/deps/capstone/arch/ARM/ARMDisassembler.h +18 -0
  45. package/deps/capstone/arch/ARM/ARMGenAsmWriter.inc +9545 -0
  46. package/deps/capstone/arch/ARM/ARMGenDisassemblerTables.inc +15185 -0
  47. package/deps/capstone/arch/ARM/ARMGenInstrInfo.inc +6632 -0
  48. package/deps/capstone/arch/ARM/ARMGenRegisterInfo.inc +2102 -0
  49. package/deps/capstone/arch/ARM/ARMGenRegisterName.inc +231 -0
  50. package/deps/capstone/arch/ARM/ARMGenRegisterName_digit.inc +231 -0
  51. package/deps/capstone/arch/ARM/ARMGenSubtargetInfo.inc +162 -0
  52. package/deps/capstone/arch/ARM/ARMGenSystemRegister.inc +270 -0
  53. package/deps/capstone/arch/ARM/ARMInstPrinter.c +3364 -0
  54. package/deps/capstone/arch/ARM/ARMInstPrinter.h +43 -0
  55. package/deps/capstone/arch/ARM/ARMMapping.c +551 -0
  56. package/deps/capstone/arch/ARM/ARMMapping.h +40 -0
  57. package/deps/capstone/arch/ARM/ARMMappingInsn.inc +18772 -0
  58. package/deps/capstone/arch/ARM/ARMMappingInsnName.inc +475 -0
  59. package/deps/capstone/arch/ARM/ARMMappingInsnOp.inc +10729 -0
  60. package/deps/capstone/arch/ARM/ARMModule.c +63 -0
  61. package/deps/capstone/arch/ARM/ARMModule.h +12 -0
  62. package/deps/capstone/arch/BPF/BPFConstants.h +88 -0
  63. package/deps/capstone/arch/BPF/BPFDisassembler.c +464 -0
  64. package/deps/capstone/arch/BPF/BPFDisassembler.h +27 -0
  65. package/deps/capstone/arch/BPF/BPFInstPrinter.c +285 -0
  66. package/deps/capstone/arch/BPF/BPFInstPrinter.h +16 -0
  67. package/deps/capstone/arch/BPF/BPFMapping.c +513 -0
  68. package/deps/capstone/arch/BPF/BPFMapping.h +21 -0
  69. package/deps/capstone/arch/BPF/BPFModule.c +34 -0
  70. package/deps/capstone/arch/BPF/BPFModule.h +12 -0
  71. package/deps/capstone/arch/EVM/EVMDisassembler.c +379 -0
  72. package/deps/capstone/arch/EVM/EVMDisassembler.h +12 -0
  73. package/deps/capstone/arch/EVM/EVMInstPrinter.c +20 -0
  74. package/deps/capstone/arch/EVM/EVMInstPrinter.h +17 -0
  75. package/deps/capstone/arch/EVM/EVMMapping.c +344 -0
  76. package/deps/capstone/arch/EVM/EVMMapping.h +8 -0
  77. package/deps/capstone/arch/EVM/EVMMappingInsn.inc +259 -0
  78. package/deps/capstone/arch/EVM/EVMModule.c +33 -0
  79. package/deps/capstone/arch/EVM/EVMModule.h +12 -0
  80. package/deps/capstone/arch/M680X/M680XDisassembler.c +2307 -0
  81. package/deps/capstone/arch/M680X/M680XDisassembler.h +17 -0
  82. package/deps/capstone/arch/M680X/M680XDisassemblerInternals.h +57 -0
  83. package/deps/capstone/arch/M680X/M680XInstPrinter.c +360 -0
  84. package/deps/capstone/arch/M680X/M680XInstPrinter.h +25 -0
  85. package/deps/capstone/arch/M680X/M680XModule.c +77 -0
  86. package/deps/capstone/arch/M680X/M680XModule.h +12 -0
  87. package/deps/capstone/arch/M680X/cpu12.inc +335 -0
  88. package/deps/capstone/arch/M680X/hcs08.inc +60 -0
  89. package/deps/capstone/arch/M680X/hd6301.inc +15 -0
  90. package/deps/capstone/arch/M680X/hd6309.inc +259 -0
  91. package/deps/capstone/arch/M680X/insn_props.inc +367 -0
  92. package/deps/capstone/arch/M680X/m6800.inc +277 -0
  93. package/deps/capstone/arch/M680X/m6801.inc +39 -0
  94. package/deps/capstone/arch/M680X/m6805.inc +277 -0
  95. package/deps/capstone/arch/M680X/m6808.inc +91 -0
  96. package/deps/capstone/arch/M680X/m6809.inc +352 -0
  97. package/deps/capstone/arch/M680X/m6811.inc +105 -0
  98. package/deps/capstone/arch/M68K/M68KDisassembler.c +3668 -0
  99. package/deps/capstone/arch/M68K/M68KDisassembler.h +30 -0
  100. package/deps/capstone/arch/M68K/M68KInstPrinter.c +387 -0
  101. package/deps/capstone/arch/M68K/M68KInstPrinter.h +21 -0
  102. package/deps/capstone/arch/M68K/M68KInstructionTable.inc +65540 -0
  103. package/deps/capstone/arch/M68K/M68KModule.c +42 -0
  104. package/deps/capstone/arch/M68K/M68KModule.h +12 -0
  105. package/deps/capstone/arch/MOS65XX/MOS65XXDisassembler.c +544 -0
  106. package/deps/capstone/arch/MOS65XX/MOS65XXDisassembler.h +22 -0
  107. package/deps/capstone/arch/MOS65XX/MOS65XXDisassemblerInternals.h +23 -0
  108. package/deps/capstone/arch/MOS65XX/MOS65XXModule.c +79 -0
  109. package/deps/capstone/arch/MOS65XX/MOS65XXModule.h +12 -0
  110. package/deps/capstone/arch/MOS65XX/instruction_info.inc +106 -0
  111. package/deps/capstone/arch/MOS65XX/m6502.inc +256 -0
  112. package/deps/capstone/arch/MOS65XX/m65816.inc +256 -0
  113. package/deps/capstone/arch/MOS65XX/m65c02.inc +256 -0
  114. package/deps/capstone/arch/MOS65XX/mw65c02.inc +256 -0
  115. package/deps/capstone/arch/Mips/MipsDisassembler.c +1794 -0
  116. package/deps/capstone/arch/Mips/MipsDisassembler.h +16 -0
  117. package/deps/capstone/arch/Mips/MipsGenAsmWriter.inc +5725 -0
  118. package/deps/capstone/arch/Mips/MipsGenDisassemblerTables.inc +6942 -0
  119. package/deps/capstone/arch/Mips/MipsGenInstrInfo.inc +1805 -0
  120. package/deps/capstone/arch/Mips/MipsGenRegisterInfo.inc +1679 -0
  121. package/deps/capstone/arch/Mips/MipsGenSubtargetInfo.inc +52 -0
  122. package/deps/capstone/arch/Mips/MipsInstPrinter.c +424 -0
  123. package/deps/capstone/arch/Mips/MipsInstPrinter.h +25 -0
  124. package/deps/capstone/arch/Mips/MipsMapping.c +1070 -0
  125. package/deps/capstone/arch/Mips/MipsMapping.h +25 -0
  126. package/deps/capstone/arch/Mips/MipsMappingInsn.inc +9315 -0
  127. package/deps/capstone/arch/Mips/MipsModule.c +52 -0
  128. package/deps/capstone/arch/Mips/MipsModule.h +12 -0
  129. package/deps/capstone/arch/PowerPC/PPCDisassembler.c +627 -0
  130. package/deps/capstone/arch/PowerPC/PPCDisassembler.h +17 -0
  131. package/deps/capstone/arch/PowerPC/PPCGenAsmWriter.inc +11451 -0
  132. package/deps/capstone/arch/PowerPC/PPCGenDisassemblerTables.inc +6886 -0
  133. package/deps/capstone/arch/PowerPC/PPCGenInstrInfo.inc +4772 -0
  134. package/deps/capstone/arch/PowerPC/PPCGenRegisterInfo.inc +1122 -0
  135. package/deps/capstone/arch/PowerPC/PPCGenRegisterName.inc +278 -0
  136. package/deps/capstone/arch/PowerPC/PPCGenSubtargetInfo.inc +90 -0
  137. package/deps/capstone/arch/PowerPC/PPCInstPrinter.c +1238 -0
  138. package/deps/capstone/arch/PowerPC/PPCInstPrinter.h +15 -0
  139. package/deps/capstone/arch/PowerPC/PPCMapping.c +570 -0
  140. package/deps/capstone/arch/PowerPC/PPCMapping.h +40 -0
  141. package/deps/capstone/arch/PowerPC/PPCMappingInsn.inc +13220 -0
  142. package/deps/capstone/arch/PowerPC/PPCMappingInsnName.inc +1731 -0
  143. package/deps/capstone/arch/PowerPC/PPCModule.c +45 -0
  144. package/deps/capstone/arch/PowerPC/PPCModule.h +12 -0
  145. package/deps/capstone/arch/PowerPC/PPCPredicates.h +62 -0
  146. package/deps/capstone/arch/RISCV/RISCVBaseInfo.h +106 -0
  147. package/deps/capstone/arch/RISCV/RISCVDisassembler.c +433 -0
  148. package/deps/capstone/arch/RISCV/RISCVDisassembler.h +18 -0
  149. package/deps/capstone/arch/RISCV/RISCVGenAsmWriter.inc +2651 -0
  150. package/deps/capstone/arch/RISCV/RISCVGenDisassemblerTables.inc +1776 -0
  151. package/deps/capstone/arch/RISCV/RISCVGenInsnNameMaps.inc +275 -0
  152. package/deps/capstone/arch/RISCV/RISCVGenInstrInfo.inc +470 -0
  153. package/deps/capstone/arch/RISCV/RISCVGenRegisterInfo.inc +426 -0
  154. package/deps/capstone/arch/RISCV/RISCVGenSubtargetInfo.inc +33 -0
  155. package/deps/capstone/arch/RISCV/RISCVInstPrinter.c +447 -0
  156. package/deps/capstone/arch/RISCV/RISCVInstPrinter.h +24 -0
  157. package/deps/capstone/arch/RISCV/RISCVMapping.c +366 -0
  158. package/deps/capstone/arch/RISCV/RISCVMapping.h +22 -0
  159. package/deps/capstone/arch/RISCV/RISCVMappingInsn.inc +1635 -0
  160. package/deps/capstone/arch/RISCV/RISCVModule.c +42 -0
  161. package/deps/capstone/arch/RISCV/RISCVModule.h +12 -0
  162. package/deps/capstone/arch/SH/SHDisassembler.c +2221 -0
  163. package/deps/capstone/arch/SH/SHDisassembler.h +19 -0
  164. package/deps/capstone/arch/SH/SHInsnTable.inc +66 -0
  165. package/deps/capstone/arch/SH/SHInstPrinter.c +438 -0
  166. package/deps/capstone/arch/SH/SHInstPrinter.h +23 -0
  167. package/deps/capstone/arch/SH/SHModule.c +39 -0
  168. package/deps/capstone/arch/SH/SHModule.h +12 -0
  169. package/deps/capstone/arch/SH/mktable.rb +390 -0
  170. package/deps/capstone/arch/Sparc/Sparc.h +63 -0
  171. package/deps/capstone/arch/Sparc/SparcDisassembler.c +500 -0
  172. package/deps/capstone/arch/Sparc/SparcDisassembler.h +17 -0
  173. package/deps/capstone/arch/Sparc/SparcGenAsmWriter.inc +5709 -0
  174. package/deps/capstone/arch/Sparc/SparcGenDisassemblerTables.inc +2028 -0
  175. package/deps/capstone/arch/Sparc/SparcGenInstrInfo.inc +514 -0
  176. package/deps/capstone/arch/Sparc/SparcGenRegisterInfo.inc +451 -0
  177. package/deps/capstone/arch/Sparc/SparcGenSubtargetInfo.inc +27 -0
  178. package/deps/capstone/arch/Sparc/SparcInstPrinter.c +446 -0
  179. package/deps/capstone/arch/Sparc/SparcInstPrinter.h +17 -0
  180. package/deps/capstone/arch/Sparc/SparcMapping.c +665 -0
  181. package/deps/capstone/arch/Sparc/SparcMapping.h +34 -0
  182. package/deps/capstone/arch/Sparc/SparcMappingInsn.inc +2643 -0
  183. package/deps/capstone/arch/Sparc/SparcModule.c +45 -0
  184. package/deps/capstone/arch/Sparc/SparcModule.h +12 -0
  185. package/deps/capstone/arch/SystemZ/SystemZDisassembler.c +484 -0
  186. package/deps/capstone/arch/SystemZ/SystemZDisassembler.h +17 -0
  187. package/deps/capstone/arch/SystemZ/SystemZGenAsmWriter.inc +11575 -0
  188. package/deps/capstone/arch/SystemZ/SystemZGenDisassemblerTables.inc +10262 -0
  189. package/deps/capstone/arch/SystemZ/SystemZGenInsnNameMaps.inc +2348 -0
  190. package/deps/capstone/arch/SystemZ/SystemZGenInstrInfo.inc +2820 -0
  191. package/deps/capstone/arch/SystemZ/SystemZGenRegisterInfo.inc +741 -0
  192. package/deps/capstone/arch/SystemZ/SystemZGenSubtargetInfo.inc +49 -0
  193. package/deps/capstone/arch/SystemZ/SystemZInstPrinter.c +433 -0
  194. package/deps/capstone/arch/SystemZ/SystemZInstPrinter.h +15 -0
  195. package/deps/capstone/arch/SystemZ/SystemZMCTargetDesc.c +195 -0
  196. package/deps/capstone/arch/SystemZ/SystemZMCTargetDesc.h +51 -0
  197. package/deps/capstone/arch/SystemZ/SystemZMapping.c +479 -0
  198. package/deps/capstone/arch/SystemZ/SystemZMapping.h +23 -0
  199. package/deps/capstone/arch/SystemZ/SystemZMappingInsn.inc +14175 -0
  200. package/deps/capstone/arch/SystemZ/SystemZModule.c +44 -0
  201. package/deps/capstone/arch/SystemZ/SystemZModule.h +12 -0
  202. package/deps/capstone/arch/TMS320C64x/TMS320C64xDisassembler.c +628 -0
  203. package/deps/capstone/arch/TMS320C64x/TMS320C64xDisassembler.h +19 -0
  204. package/deps/capstone/arch/TMS320C64x/TMS320C64xGenAsmWriter.inc +684 -0
  205. package/deps/capstone/arch/TMS320C64x/TMS320C64xGenDisassemblerTables.inc +1352 -0
  206. package/deps/capstone/arch/TMS320C64x/TMS320C64xGenInstrInfo.inc +298 -0
  207. package/deps/capstone/arch/TMS320C64x/TMS320C64xGenRegisterInfo.inc +277 -0
  208. package/deps/capstone/arch/TMS320C64x/TMS320C64xInstPrinter.c +572 -0
  209. package/deps/capstone/arch/TMS320C64x/TMS320C64xInstPrinter.h +15 -0
  210. package/deps/capstone/arch/TMS320C64x/TMS320C64xMapping.c +1926 -0
  211. package/deps/capstone/arch/TMS320C64x/TMS320C64xMapping.h +26 -0
  212. package/deps/capstone/arch/TMS320C64x/TMS320C64xModule.c +39 -0
  213. package/deps/capstone/arch/TMS320C64x/TMS320C64xModule.h +12 -0
  214. package/deps/capstone/arch/TriCore/TriCore.td +134 -0
  215. package/deps/capstone/arch/TriCore/TriCoreCallingConv.td +61 -0
  216. package/deps/capstone/arch/TriCore/TriCoreDisassembler.c +1655 -0
  217. package/deps/capstone/arch/TriCore/TriCoreDisassembler.h +18 -0
  218. package/deps/capstone/arch/TriCore/TriCoreGenAsmWriter.inc +3691 -0
  219. package/deps/capstone/arch/TriCore/TriCoreGenCSFeatureName.inc +22 -0
  220. package/deps/capstone/arch/TriCore/TriCoreGenCSMappingInsn.inc +8938 -0
  221. package/deps/capstone/arch/TriCore/TriCoreGenCSMappingInsnName.inc +404 -0
  222. package/deps/capstone/arch/TriCore/TriCoreGenCSMappingInsnOp.inc +7994 -0
  223. package/deps/capstone/arch/TriCore/TriCoreGenCSOpGroup.inc +32 -0
  224. package/deps/capstone/arch/TriCore/TriCoreGenDisassemblerTables.inc +4044 -0
  225. package/deps/capstone/arch/TriCore/TriCoreGenInstrInfo.inc +2693 -0
  226. package/deps/capstone/arch/TriCore/TriCoreGenRegisterInfo.inc +295 -0
  227. package/deps/capstone/arch/TriCore/TriCoreGenSubtargetInfo.inc +40 -0
  228. package/deps/capstone/arch/TriCore/TriCoreInstPrinter.c +488 -0
  229. package/deps/capstone/arch/TriCore/TriCoreInstrFormats.td +773 -0
  230. package/deps/capstone/arch/TriCore/TriCoreInstrInfo.td +1873 -0
  231. package/deps/capstone/arch/TriCore/TriCoreLinkage.h +21 -0
  232. package/deps/capstone/arch/TriCore/TriCoreMapping.c +241 -0
  233. package/deps/capstone/arch/TriCore/TriCoreMapping.h +32 -0
  234. package/deps/capstone/arch/TriCore/TriCoreModule.c +44 -0
  235. package/deps/capstone/arch/TriCore/TriCoreModule.h +11 -0
  236. package/deps/capstone/arch/TriCore/TriCoreRegisterInfo.td +153 -0
  237. package/deps/capstone/arch/WASM/WASMDisassembler.c +1009 -0
  238. package/deps/capstone/arch/WASM/WASMDisassembler.h +12 -0
  239. package/deps/capstone/arch/WASM/WASMInstPrinter.c +47 -0
  240. package/deps/capstone/arch/WASM/WASMInstPrinter.h +18 -0
  241. package/deps/capstone/arch/WASM/WASMMapping.c +333 -0
  242. package/deps/capstone/arch/WASM/WASMMapping.h +9 -0
  243. package/deps/capstone/arch/WASM/WASMModule.c +33 -0
  244. package/deps/capstone/arch/WASM/WASMModule.h +12 -0
  245. package/deps/capstone/arch/X86/X86ATTInstPrinter.c +997 -0
  246. package/deps/capstone/arch/X86/X86BaseInfo.h +50 -0
  247. package/deps/capstone/arch/X86/X86Disassembler.c +1033 -0
  248. package/deps/capstone/arch/X86/X86Disassembler.h +28 -0
  249. package/deps/capstone/arch/X86/X86DisassemblerDecoder.c +2358 -0
  250. package/deps/capstone/arch/X86/X86DisassemblerDecoder.h +725 -0
  251. package/deps/capstone/arch/X86/X86DisassemblerDecoderCommon.h +483 -0
  252. package/deps/capstone/arch/X86/X86GenAsmWriter.inc +49199 -0
  253. package/deps/capstone/arch/X86/X86GenAsmWriter1.inc +33196 -0
  254. package/deps/capstone/arch/X86/X86GenAsmWriter1_reduce.inc +2531 -0
  255. package/deps/capstone/arch/X86/X86GenAsmWriter_reduce.inc +2855 -0
  256. package/deps/capstone/arch/X86/X86GenDisassemblerTables.inc +112961 -0
  257. package/deps/capstone/arch/X86/X86GenDisassemblerTables2.inc +102151 -0
  258. package/deps/capstone/arch/X86/X86GenDisassemblerTables_reduce.inc +28047 -0
  259. package/deps/capstone/arch/X86/X86GenDisassemblerTables_reduce2.inc +18827 -0
  260. package/deps/capstone/arch/X86/X86GenInstrInfo.inc +15158 -0
  261. package/deps/capstone/arch/X86/X86GenInstrInfo_reduce.inc +1564 -0
  262. package/deps/capstone/arch/X86/X86GenRegisterInfo.inc +1549 -0
  263. package/deps/capstone/arch/X86/X86GenRegisterName.inc +292 -0
  264. package/deps/capstone/arch/X86/X86GenRegisterName1.inc +291 -0
  265. package/deps/capstone/arch/X86/X86ImmSize.inc +335 -0
  266. package/deps/capstone/arch/X86/X86InstPrinter.h +26 -0
  267. package/deps/capstone/arch/X86/X86InstPrinterCommon.c +116 -0
  268. package/deps/capstone/arch/X86/X86InstPrinterCommon.h +16 -0
  269. package/deps/capstone/arch/X86/X86IntelInstPrinter.c +1061 -0
  270. package/deps/capstone/arch/X86/X86Lookup16.inc +16874 -0
  271. package/deps/capstone/arch/X86/X86Lookup16_reduce.inc +2308 -0
  272. package/deps/capstone/arch/X86/X86Mapping.c +2266 -0
  273. package/deps/capstone/arch/X86/X86Mapping.h +96 -0
  274. package/deps/capstone/arch/X86/X86MappingInsn.inc +105977 -0
  275. package/deps/capstone/arch/X86/X86MappingInsnName.inc +1527 -0
  276. package/deps/capstone/arch/X86/X86MappingInsnName_reduce.inc +348 -0
  277. package/deps/capstone/arch/X86/X86MappingInsnOp.inc +75700 -0
  278. package/deps/capstone/arch/X86/X86MappingInsnOp_reduce.inc +7729 -0
  279. package/deps/capstone/arch/X86/X86MappingInsn_reduce.inc +10819 -0
  280. package/deps/capstone/arch/X86/X86MappingReg.inc +280 -0
  281. package/deps/capstone/arch/X86/X86Module.c +94 -0
  282. package/deps/capstone/arch/X86/X86Module.h +12 -0
  283. package/deps/capstone/arch/XCore/XCoreDisassembler.c +794 -0
  284. package/deps/capstone/arch/XCore/XCoreDisassembler.h +17 -0
  285. package/deps/capstone/arch/XCore/XCoreGenAsmWriter.inc +772 -0
  286. package/deps/capstone/arch/XCore/XCoreGenDisassemblerTables.inc +853 -0
  287. package/deps/capstone/arch/XCore/XCoreGenInstrInfo.inc +267 -0
  288. package/deps/capstone/arch/XCore/XCoreGenRegisterInfo.inc +110 -0
  289. package/deps/capstone/arch/XCore/XCoreInstPrinter.c +250 -0
  290. package/deps/capstone/arch/XCore/XCoreInstPrinter.h +18 -0
  291. package/deps/capstone/arch/XCore/XCoreMapping.c +297 -0
  292. package/deps/capstone/arch/XCore/XCoreMapping.h +26 -0
  293. package/deps/capstone/arch/XCore/XCoreMappingInsn.inc +1287 -0
  294. package/deps/capstone/arch/XCore/XCoreModule.c +41 -0
  295. package/deps/capstone/arch/XCore/XCoreModule.h +12 -0
  296. package/deps/capstone/cs.c +1664 -0
  297. package/deps/capstone/cs_priv.h +101 -0
  298. package/deps/capstone/cs_simple_types.h +886 -0
  299. package/deps/capstone/include/capstone/arm.h +991 -0
  300. package/deps/capstone/include/capstone/arm64.h +3159 -0
  301. package/deps/capstone/include/capstone/bpf.h +209 -0
  302. package/deps/capstone/include/capstone/capstone.h +875 -0
  303. package/deps/capstone/include/capstone/evm.h +188 -0
  304. package/deps/capstone/include/capstone/m680x.h +537 -0
  305. package/deps/capstone/include/capstone/m68k.h +613 -0
  306. package/deps/capstone/include/capstone/mips.h +956 -0
  307. package/deps/capstone/include/capstone/mos65xx.h +204 -0
  308. package/deps/capstone/include/capstone/platform.h +122 -0
  309. package/deps/capstone/include/capstone/ppc.h +2108 -0
  310. package/deps/capstone/include/capstone/riscv.h +531 -0
  311. package/deps/capstone/include/capstone/sh.h +465 -0
  312. package/deps/capstone/include/capstone/sparc.h +520 -0
  313. package/deps/capstone/include/capstone/systemz.h +2601 -0
  314. package/deps/capstone/include/capstone/tms320c64x.h +359 -0
  315. package/deps/capstone/include/capstone/tricore.h +567 -0
  316. package/deps/capstone/include/capstone/wasm.h +250 -0
  317. package/deps/capstone/include/capstone/x86.h +1986 -0
  318. package/deps/capstone/include/capstone/xcore.h +235 -0
  319. package/deps/capstone/include/platform.h +110 -0
  320. package/deps/capstone/include/windowsce/intrin.h +12 -0
  321. package/deps/capstone/include/windowsce/stdint.h +133 -0
  322. package/deps/capstone/utils.c +140 -0
  323. package/deps/capstone/utils.h +54 -0
  324. package/index.d.ts +448 -0
  325. package/index.js +64 -0
  326. package/index.mjs +25 -0
  327. package/package.json +82 -0
  328. package/prebuilds/win32-x64/hexcore-capstone.node +0 -0
  329. package/src/capstone_wrapper.cpp +910 -0
  330. package/src/capstone_wrapper.h +147 -0
  331. package/src/disasm_async_worker.h +215 -0
  332. package/src/main.cpp +145 -0
@@ -0,0 +1,344 @@
1
+ /* Capstone Disassembly Engine */
2
+ /* By Nguyen Anh Quynh, 2018 */
3
+
4
+ #ifdef CAPSTONE_HAS_EVM
5
+
6
+ #include <string.h>
7
+
8
+ #include "../../cs_priv.h"
9
+ #include "../../utils.h"
10
+
11
+ #include "EVMMapping.h"
12
+
13
+ #ifndef CAPSTONE_DIET
14
+ static const cs_evm insns[256] = {
15
+ #include "EVMMappingInsn.inc"
16
+ };
17
+ #endif
18
+
19
+ // look for @id in @insns, given its size in @max.
20
+ // return -1 if not found
21
+ static int evm_insn_find(const cs_evm *insns, unsigned int max, unsigned int id)
22
+ {
23
+ if (id >= max)
24
+ return -1;
25
+
26
+ if (insns[id].fee == 0xffffffff)
27
+ // unused opcode
28
+ return -1;
29
+
30
+ return (int)id;
31
+ }
32
+
33
+ // fill in details
34
+ void EVM_get_insn_id(cs_struct *h, cs_insn *insn, unsigned int id)
35
+ {
36
+ insn->id = id;
37
+ #ifndef CAPSTONE_DIET
38
+ if (evm_insn_find(insns, ARR_SIZE(insns), id) > 0) {
39
+ if (h->detail) {
40
+ memcpy(&insn->detail->evm, &insns[id], sizeof(insns[id]));
41
+ }
42
+ }
43
+ #endif
44
+ }
45
+
46
+ #ifndef CAPSTONE_DIET
47
+ static const name_map insn_name_maps[256] = {
48
+ { EVM_INS_STOP, "stop" },
49
+ { EVM_INS_ADD, "add" },
50
+ { EVM_INS_MUL, "mul" },
51
+ { EVM_INS_SUB, "sub" },
52
+ { EVM_INS_DIV, "div" },
53
+ { EVM_INS_SDIV, "sdiv" },
54
+ { EVM_INS_MOD, "mod" },
55
+ { EVM_INS_SMOD, "smod" },
56
+ { EVM_INS_ADDMOD, "addmod" },
57
+ { EVM_INS_MULMOD, "mulmod" },
58
+ { EVM_INS_EXP, "exp" },
59
+ { EVM_INS_SIGNEXTEND, "signextend" },
60
+ { EVM_INS_INVALID, NULL },
61
+ { EVM_INS_INVALID, NULL },
62
+ { EVM_INS_INVALID, NULL },
63
+ { EVM_INS_INVALID, NULL },
64
+ { EVM_INS_LT, "lt" },
65
+ { EVM_INS_GT, "gt" },
66
+ { EVM_INS_SLT, "slt" },
67
+ { EVM_INS_SGT, "sgt" },
68
+ { EVM_INS_EQ, "eq" },
69
+ { EVM_INS_ISZERO, "iszero" },
70
+ { EVM_INS_AND, "and" },
71
+ { EVM_INS_OR, "or" },
72
+ { EVM_INS_XOR, "xor" },
73
+ { EVM_INS_NOT, "not" },
74
+ { EVM_INS_BYTE, "byte" },
75
+ { EVM_INS_INVALID, NULL },
76
+ { EVM_INS_INVALID, NULL },
77
+ { EVM_INS_INVALID, NULL },
78
+ { EVM_INS_INVALID, NULL },
79
+ { EVM_INS_INVALID, NULL },
80
+ { EVM_INS_SHA3, "sha3" },
81
+ { EVM_INS_INVALID, NULL },
82
+ { EVM_INS_INVALID, NULL },
83
+ { EVM_INS_INVALID, NULL },
84
+ { EVM_INS_INVALID, NULL },
85
+ { EVM_INS_INVALID, NULL },
86
+ { EVM_INS_INVALID, NULL },
87
+ { EVM_INS_INVALID, NULL },
88
+ { EVM_INS_INVALID, NULL },
89
+ { EVM_INS_INVALID, NULL },
90
+ { EVM_INS_INVALID, NULL },
91
+ { EVM_INS_INVALID, NULL },
92
+ { EVM_INS_INVALID, NULL },
93
+ { EVM_INS_INVALID, NULL },
94
+ { EVM_INS_INVALID, NULL },
95
+ { EVM_INS_INVALID, NULL },
96
+ { EVM_INS_ADDRESS, "address" },
97
+ { EVM_INS_BALANCE, "balance" },
98
+ { EVM_INS_ORIGIN, "origin" },
99
+ { EVM_INS_CALLER, "caller" },
100
+ { EVM_INS_CALLVALUE, "callvalue" },
101
+ { EVM_INS_CALLDATALOAD, "calldataload" },
102
+ { EVM_INS_CALLDATASIZE, "calldatasize" },
103
+ { EVM_INS_CALLDATACOPY, "calldatacopy" },
104
+ { EVM_INS_CODESIZE, "codesize" },
105
+ { EVM_INS_CODECOPY, "codecopy" },
106
+ { EVM_INS_GASPRICE, "gasprice" },
107
+ { EVM_INS_EXTCODESIZE, "extcodesize" },
108
+ { EVM_INS_EXTCODECOPY, "extcodecopy" },
109
+ { EVM_INS_RETURNDATASIZE, "returndatasize" },
110
+ { EVM_INS_RETURNDATACOPY, "returndatacopy" },
111
+ { EVM_INS_INVALID, NULL },
112
+ { EVM_INS_BLOCKHASH, "blockhash" },
113
+ { EVM_INS_COINBASE, "coinbase" },
114
+ { EVM_INS_TIMESTAMP, "timestamp" },
115
+ { EVM_INS_NUMBER, "number" },
116
+ { EVM_INS_DIFFICULTY, "difficulty" },
117
+ { EVM_INS_GASLIMIT, "gaslimit" },
118
+ { EVM_INS_INVALID, NULL },
119
+ { EVM_INS_INVALID, NULL },
120
+ { EVM_INS_INVALID, NULL },
121
+ { EVM_INS_INVALID, NULL },
122
+ { EVM_INS_INVALID, NULL },
123
+ { EVM_INS_INVALID, NULL },
124
+ { EVM_INS_INVALID, NULL },
125
+ { EVM_INS_INVALID, NULL },
126
+ { EVM_INS_INVALID, NULL },
127
+ { EVM_INS_INVALID, NULL },
128
+ { EVM_INS_POP, "pop" },
129
+ { EVM_INS_MLOAD, "mload" },
130
+ { EVM_INS_MSTORE, "mstore" },
131
+ { EVM_INS_MSTORE8, "mstore8" },
132
+ { EVM_INS_SLOAD, "sload" },
133
+ { EVM_INS_SSTORE, "sstore" },
134
+ { EVM_INS_JUMP, "jump" },
135
+ { EVM_INS_JUMPI, "jumpi" },
136
+ { EVM_INS_PC, "pc" },
137
+ { EVM_INS_MSIZE, "msize" },
138
+ { EVM_INS_GAS, "gas" },
139
+ { EVM_INS_JUMPDEST, "jumpdest" },
140
+ { EVM_INS_INVALID, NULL },
141
+ { EVM_INS_INVALID, NULL },
142
+ { EVM_INS_INVALID, NULL },
143
+ { EVM_INS_INVALID, NULL },
144
+ { EVM_INS_PUSH1, "push1" },
145
+ { EVM_INS_PUSH2, "push2" },
146
+ { EVM_INS_PUSH3, "push3" },
147
+ { EVM_INS_PUSH4, "push4" },
148
+ { EVM_INS_PUSH5, "push5" },
149
+ { EVM_INS_PUSH6, "push6" },
150
+ { EVM_INS_PUSH7, "push7" },
151
+ { EVM_INS_PUSH8, "push8" },
152
+ { EVM_INS_PUSH9, "push9" },
153
+ { EVM_INS_PUSH10, "push10" },
154
+ { EVM_INS_PUSH11, "push11" },
155
+ { EVM_INS_PUSH12, "push12" },
156
+ { EVM_INS_PUSH13, "push13" },
157
+ { EVM_INS_PUSH14, "push14" },
158
+ { EVM_INS_PUSH15, "push15" },
159
+ { EVM_INS_PUSH16, "push16" },
160
+ { EVM_INS_PUSH17, "push17" },
161
+ { EVM_INS_PUSH18, "push18" },
162
+ { EVM_INS_PUSH19, "push19" },
163
+ { EVM_INS_PUSH20, "push20" },
164
+ { EVM_INS_PUSH21, "push21" },
165
+ { EVM_INS_PUSH22, "push22" },
166
+ { EVM_INS_PUSH23, "push23" },
167
+ { EVM_INS_PUSH24, "push24" },
168
+ { EVM_INS_PUSH25, "push25" },
169
+ { EVM_INS_PUSH26, "push26" },
170
+ { EVM_INS_PUSH27, "push27" },
171
+ { EVM_INS_PUSH28, "push28" },
172
+ { EVM_INS_PUSH29, "push29" },
173
+ { EVM_INS_PUSH30, "push30" },
174
+ { EVM_INS_PUSH31, "push31" },
175
+ { EVM_INS_PUSH32, "push32" },
176
+ { EVM_INS_DUP1, "dup1" },
177
+ { EVM_INS_DUP2, "dup2" },
178
+ { EVM_INS_DUP3, "dup3" },
179
+ { EVM_INS_DUP4, "dup4" },
180
+ { EVM_INS_DUP5, "dup5" },
181
+ { EVM_INS_DUP6, "dup6" },
182
+ { EVM_INS_DUP7, "dup7" },
183
+ { EVM_INS_DUP8, "dup8" },
184
+ { EVM_INS_DUP9, "dup9" },
185
+ { EVM_INS_DUP10, "dup10" },
186
+ { EVM_INS_DUP11, "dup11" },
187
+ { EVM_INS_DUP12, "dup12" },
188
+ { EVM_INS_DUP13, "dup13" },
189
+ { EVM_INS_DUP14, "dup14" },
190
+ { EVM_INS_DUP15, "dup15" },
191
+ { EVM_INS_DUP16, "dup16" },
192
+ { EVM_INS_SWAP1, "swap1" },
193
+ { EVM_INS_SWAP2, "swap2" },
194
+ { EVM_INS_SWAP3, "swap3" },
195
+ { EVM_INS_SWAP4, "swap4" },
196
+ { EVM_INS_SWAP5, "swap5" },
197
+ { EVM_INS_SWAP6, "swap6" },
198
+ { EVM_INS_SWAP7, "swap7" },
199
+ { EVM_INS_SWAP8, "swap8" },
200
+ { EVM_INS_SWAP9, "swap9" },
201
+ { EVM_INS_SWAP10, "swap10" },
202
+ { EVM_INS_SWAP11, "swap11" },
203
+ { EVM_INS_SWAP12, "swap12" },
204
+ { EVM_INS_SWAP13, "swap13" },
205
+ { EVM_INS_SWAP14, "swap14" },
206
+ { EVM_INS_SWAP15, "swap15" },
207
+ { EVM_INS_SWAP16, "swap16" },
208
+ { EVM_INS_LOG0, "log0" },
209
+ { EVM_INS_LOG1, "log1" },
210
+ { EVM_INS_LOG2, "log2" },
211
+ { EVM_INS_LOG3, "log3" },
212
+ { EVM_INS_LOG4, "log4" },
213
+ { EVM_INS_INVALID, NULL },
214
+ { EVM_INS_INVALID, NULL },
215
+ { EVM_INS_INVALID, NULL },
216
+ { EVM_INS_INVALID, NULL },
217
+ { EVM_INS_INVALID, NULL },
218
+ { EVM_INS_INVALID, NULL },
219
+ { EVM_INS_INVALID, NULL },
220
+ { EVM_INS_INVALID, NULL },
221
+ { EVM_INS_INVALID, NULL },
222
+ { EVM_INS_INVALID, NULL },
223
+ { EVM_INS_INVALID, NULL },
224
+ { EVM_INS_INVALID, NULL },
225
+ { EVM_INS_INVALID, NULL },
226
+ { EVM_INS_INVALID, NULL },
227
+ { EVM_INS_INVALID, NULL },
228
+ { EVM_INS_INVALID, NULL },
229
+ { EVM_INS_INVALID, NULL },
230
+ { EVM_INS_INVALID, NULL },
231
+ { EVM_INS_INVALID, NULL },
232
+ { EVM_INS_INVALID, NULL },
233
+ { EVM_INS_INVALID, NULL },
234
+ { EVM_INS_INVALID, NULL },
235
+ { EVM_INS_INVALID, NULL },
236
+ { EVM_INS_INVALID, NULL },
237
+ { EVM_INS_INVALID, NULL },
238
+ { EVM_INS_INVALID, NULL },
239
+ { EVM_INS_INVALID, NULL },
240
+ { EVM_INS_INVALID, NULL },
241
+ { EVM_INS_INVALID, NULL },
242
+ { EVM_INS_INVALID, NULL },
243
+ { EVM_INS_INVALID, NULL },
244
+ { EVM_INS_INVALID, NULL },
245
+ { EVM_INS_INVALID, NULL },
246
+ { EVM_INS_INVALID, NULL },
247
+ { EVM_INS_INVALID, NULL },
248
+ { EVM_INS_INVALID, NULL },
249
+ { EVM_INS_INVALID, NULL },
250
+ { EVM_INS_INVALID, NULL },
251
+ { EVM_INS_INVALID, NULL },
252
+ { EVM_INS_INVALID, NULL },
253
+ { EVM_INS_INVALID, NULL },
254
+ { EVM_INS_INVALID, NULL },
255
+ { EVM_INS_INVALID, NULL },
256
+ { EVM_INS_INVALID, NULL },
257
+ { EVM_INS_INVALID, NULL },
258
+ { EVM_INS_INVALID, NULL },
259
+ { EVM_INS_INVALID, NULL },
260
+ { EVM_INS_INVALID, NULL },
261
+ { EVM_INS_INVALID, NULL },
262
+ { EVM_INS_INVALID, NULL },
263
+ { EVM_INS_INVALID, NULL },
264
+ { EVM_INS_INVALID, NULL },
265
+ { EVM_INS_INVALID, NULL },
266
+ { EVM_INS_INVALID, NULL },
267
+ { EVM_INS_INVALID, NULL },
268
+ { EVM_INS_INVALID, NULL },
269
+ { EVM_INS_INVALID, NULL },
270
+ { EVM_INS_INVALID, NULL },
271
+ { EVM_INS_INVALID, NULL },
272
+ { EVM_INS_INVALID, NULL },
273
+ { EVM_INS_INVALID, NULL },
274
+ { EVM_INS_INVALID, NULL },
275
+ { EVM_INS_INVALID, NULL },
276
+ { EVM_INS_INVALID, NULL },
277
+ { EVM_INS_INVALID, NULL },
278
+ { EVM_INS_INVALID, NULL },
279
+ { EVM_INS_INVALID, NULL },
280
+ { EVM_INS_INVALID, NULL },
281
+ { EVM_INS_INVALID, NULL },
282
+ { EVM_INS_INVALID, NULL },
283
+ { EVM_INS_INVALID, NULL },
284
+ { EVM_INS_INVALID, NULL },
285
+ { EVM_INS_INVALID, NULL },
286
+ { EVM_INS_INVALID, NULL },
287
+ { EVM_INS_INVALID, NULL },
288
+ { EVM_INS_CREATE, "create" },
289
+ { EVM_INS_CALL, "call" },
290
+ { EVM_INS_CALLCODE, "callcode" },
291
+ { EVM_INS_RETURN, "return" },
292
+ { EVM_INS_DELEGATECALL, "delegatecall" },
293
+ { EVM_INS_CALLBLACKBOX, "callblackbox" },
294
+ { EVM_INS_INVALID, NULL },
295
+ { EVM_INS_INVALID, NULL },
296
+ { EVM_INS_INVALID, NULL },
297
+ { EVM_INS_INVALID, NULL },
298
+ { EVM_INS_STATICCALL, "staticcall" },
299
+ { EVM_INS_INVALID, NULL },
300
+ { EVM_INS_INVALID, NULL },
301
+ { EVM_INS_REVERT, "revert" },
302
+ { EVM_INS_INVALID, NULL },
303
+ { EVM_INS_SUICIDE, "suicide" },
304
+ };
305
+ #endif
306
+
307
+ const char *EVM_insn_name(csh handle, unsigned int id)
308
+ {
309
+ #ifndef CAPSTONE_DIET
310
+ if (id >= ARR_SIZE(insn_name_maps))
311
+ return NULL;
312
+ else
313
+ return insn_name_maps[id].name;
314
+ #else
315
+ return NULL;
316
+ #endif
317
+ }
318
+
319
+ #ifndef CAPSTONE_DIET
320
+ static const name_map group_name_maps[] = {
321
+ // generic groups
322
+ { EVM_GRP_INVALID, NULL },
323
+ { EVM_GRP_JUMP, "jump" },
324
+ // special groups
325
+ { EVM_GRP_MATH, "math" },
326
+ { EVM_GRP_STACK_WRITE, "stack_write" },
327
+ { EVM_GRP_STACK_READ, "stack_read" },
328
+ { EVM_GRP_MEM_WRITE, "mem_write" },
329
+ { EVM_GRP_MEM_READ, "mem_read" },
330
+ { EVM_GRP_STORE_WRITE, "store_write" },
331
+ { EVM_GRP_STORE_READ, "store_read" },
332
+ { EVM_GRP_HALT, "halt" },
333
+ };
334
+ #endif
335
+
336
+ const char *EVM_group_name(csh handle, unsigned int id)
337
+ {
338
+ #ifndef CAPSTONE_DIET
339
+ return id2name(group_name_maps, ARR_SIZE(group_name_maps), id);
340
+ #else
341
+ return NULL;
342
+ #endif
343
+ }
344
+ #endif
@@ -0,0 +1,8 @@
1
+ /* Capstone Disassembly Engine */
2
+ /* By Nguyen Anh Quynh, 2018 */
3
+
4
+ #include <capstone/capstone.h>
5
+
6
+ void EVM_get_insn_id(cs_struct *h, cs_insn *insn, unsigned int id);
7
+ const char *EVM_insn_name(csh handle, unsigned int id);
8
+ const char *EVM_group_name(csh handle, unsigned int id);
@@ -0,0 +1,259 @@
1
+ /* Capstone Disassembly Engine */
2
+ /* By Nguyen Anh Quynh, 2018 */
3
+
4
+ { 0, 0, 0 }, // STOP
5
+ { 2, 1, 3 }, // ADD
6
+ { 2, 1, 5 }, // MUL
7
+ { 2, 1, 3 }, // SUB
8
+ { 2, 1, 5 }, // DIV
9
+ { 2, 1, 5 }, // SDIV
10
+ { 2, 1, 5 }, // MOD
11
+ { 2, 1, 5 }, // SMOD
12
+ { 3, 1, 8 }, // ADDMOD
13
+ { 3, 1, 8 }, // MULMOD
14
+ { 2, 1, 10 }, // EXP
15
+ { 2, 1, 5 }, // SIGNEXTEND
16
+ { 0, 0, 0xffffffff }, // unused
17
+ { 0, 0, 0xffffffff }, // unused
18
+ { 0, 0, 0xffffffff }, // unused
19
+ { 0, 0, 0xffffffff }, // unused
20
+ { 2, 1, 3 }, // LT
21
+ { 2, 1, 3 }, // GT
22
+ { 2, 1, 3 }, // SLT
23
+ { 2, 1, 3 }, // SGT
24
+ { 2, 1, 3 }, // EQ
25
+ { 1, 1, 3 }, // ISZERO
26
+ { 2, 1, 3 }, // AND
27
+ { 2, 1, 3 }, // OR
28
+ { 2, 1, 3 }, // XOR
29
+ { 1, 1, 3 }, // NOT
30
+ { 2, 1, 3 }, // BYTE
31
+ { 0, 0, 0xffffffff }, // unused
32
+ { 0, 0, 0xffffffff }, // unused
33
+ { 0, 0, 0xffffffff }, // unused
34
+ { 0, 0, 0xffffffff }, // unused
35
+ { 0, 0, 0xffffffff }, // unused
36
+ { 2, 1, 30 }, // SHA3
37
+ { 0, 0, 0xffffffff }, // unused
38
+ { 0, 0, 0xffffffff }, // unused
39
+ { 0, 0, 0xffffffff }, // unused
40
+ { 0, 0, 0xffffffff }, // unused
41
+ { 0, 0, 0xffffffff }, // unused
42
+ { 0, 0, 0xffffffff }, // unused
43
+ { 0, 0, 0xffffffff }, // unused
44
+ { 0, 0, 0xffffffff }, // unused
45
+ { 0, 0, 0xffffffff }, // unused
46
+ { 0, 0, 0xffffffff }, // unused
47
+ { 0, 0, 0xffffffff }, // unused
48
+ { 0, 0, 0xffffffff }, // unused
49
+ { 0, 0, 0xffffffff }, // unused
50
+ { 0, 0, 0xffffffff }, // unused
51
+ { 0, 0, 0xffffffff }, // unused
52
+ { 0, 1, 2 }, // ADDRESS
53
+ { 1, 1, 20 }, // BALANCE
54
+ { 0, 1, 2 }, // ORIGIN
55
+ { 0, 1, 2 }, // CALLER
56
+ { 0, 1, 2 }, // CALLVALUE
57
+ { 1, 1, 3 }, // CALLDATALOAD
58
+ { 0, 1, 2 }, // CALLDATASIZE
59
+ { 3, 0, 3 }, // CALLDATACOPY
60
+ { 0, 1, 2 }, // CODESIZE
61
+ { 3, 0, 3 }, // CODECOPY
62
+ { 0, 1, 2 }, // GASPRICE
63
+ { 1, 1, 20 }, // EXTCODESIZE
64
+ { 4, 0, 20 }, // EXTCODECOPY
65
+ { 0, 1, 2 }, // RETURNDATASIZE
66
+ { 3, 0, 3 }, // RETURNDATACOPY
67
+ { 0, 0, 0xffffffff }, // unused
68
+ { 1, 1, 20 }, // BLOCKHASH
69
+ { 0, 1, 2 }, // COINBASE
70
+ { 0, 1, 2 }, // TIMESTAMP
71
+ { 0, 1, 2 }, // NUMBER
72
+ { 0, 1, 2 }, // DIFFICULTY
73
+ { 0, 1, 2 }, // GASLIMIT
74
+ { 0, 0, 0xffffffff }, // unused
75
+ { 0, 0, 0xffffffff }, // unused
76
+ { 0, 0, 0xffffffff }, // unused
77
+ { 0, 0, 0xffffffff }, // unused
78
+ { 0, 0, 0xffffffff }, // unused
79
+ { 0, 0, 0xffffffff }, // unused
80
+ { 0, 0, 0xffffffff }, // unused
81
+ { 0, 0, 0xffffffff }, // unused
82
+ { 0, 0, 0xffffffff }, // unused
83
+ { 0, 0, 0xffffffff }, // unused
84
+ { 1, 0, 2 }, // POP
85
+ { 1, 1, 3 }, // MLOAD
86
+ { 2, 0, 3 }, // MSTORE
87
+ { 2, 0, 3 }, // MSTORE8
88
+ { 1, 1, 50 }, // SLOAD
89
+ { 2, 0, 0 }, // SSTORE
90
+ { 1, 0, 8 }, // JUMP
91
+ { 2, 0, 10 }, // JUMPI
92
+ { 0, 1, 2 }, // GETPC
93
+ { 0, 1, 2 }, // MSIZE
94
+ { 0, 1, 2 }, // GAS
95
+ { 0, 0, 1 }, // JUMPDEST
96
+ { 0, 0, 0xffffffff }, // unused
97
+ { 0, 0, 0xffffffff }, // unused
98
+ { 0, 0, 0xffffffff }, // unused
99
+ { 0, 0, 0xffffffff }, // unused
100
+ { 0, 1, 3 }, // PUSH1
101
+ { 0, 1, 3 }, // PUSH2
102
+ { 0, 1, 3 }, // PUSH3
103
+ { 0, 1, 3 }, // PUSH4
104
+ { 0, 1, 3 }, // PUSH5
105
+ { 0, 1, 3 }, // PUSH6
106
+ { 0, 1, 3 }, // PUSH7
107
+ { 0, 1, 3 }, // PUSH8
108
+ { 0, 1, 3 }, // PUSH9
109
+ { 0, 1, 3 }, // PUSH10
110
+ { 0, 1, 3 }, // PUSH11
111
+ { 0, 1, 3 }, // PUSH12
112
+ { 0, 1, 3 }, // PUSH13
113
+ { 0, 1, 3 }, // PUSH14
114
+ { 0, 1, 3 }, // PUSH15
115
+ { 0, 1, 3 }, // PUSH16
116
+ { 0, 1, 3 }, // PUSH17
117
+ { 0, 1, 3 }, // PUSH18
118
+ { 0, 1, 3 }, // PUSH19
119
+ { 0, 1, 3 }, // PUSH20
120
+ { 0, 1, 3 }, // PUSH21
121
+ { 0, 1, 3 }, // PUSH22
122
+ { 0, 1, 3 }, // PUSH23
123
+ { 0, 1, 3 }, // PUSH24
124
+ { 0, 1, 3 }, // PUSH25
125
+ { 0, 1, 3 }, // PUSH26
126
+ { 0, 1, 3 }, // PUSH27
127
+ { 0, 1, 3 }, // PUSH28
128
+ { 0, 1, 3 }, // PUSH29
129
+ { 0, 1, 3 }, // PUSH30
130
+ { 0, 1, 3 }, // PUSH31
131
+ { 0, 1, 3 }, // PUSH32
132
+ { 1, 2, 3 }, // DUP1
133
+ { 2, 3, 3 }, // DUP2
134
+ { 3, 4, 3 }, // DUP3
135
+ { 4, 5, 3 }, // DUP4
136
+ { 5, 6, 3 }, // DUP5
137
+ { 6, 7, 3 }, // DUP6
138
+ { 7, 8, 3 }, // DUP7
139
+ { 8, 9, 3 }, // DUP8
140
+ { 9, 10, 3 }, // DUP9
141
+ { 10, 11, 3 }, // DUP10
142
+ { 11, 12, 3 }, // DUP11
143
+ { 12, 13, 3 }, // DUP12
144
+ { 13, 14, 3 }, // DUP13
145
+ { 14, 15, 3 }, // DUP14
146
+ { 15, 16, 3 }, // DUP15
147
+ { 16, 17, 3 }, // DUP16
148
+ { 2, 2, 3 }, // SWAP1
149
+ { 3, 3, 3 }, // SWAP2
150
+ { 4, 4, 3 }, // SWAP3
151
+ { 5, 5, 3 }, // SWAP4
152
+ { 6, 6, 3 }, // SWAP5
153
+ { 7, 7, 3 }, // SWAP6
154
+ { 8, 8, 3 }, // SWAP7
155
+ { 9, 9, 3 }, // SWAP8
156
+ { 10, 10, 3 }, // SWAP9
157
+ { 11, 11, 3 }, // SWAP10
158
+ { 12, 12, 3 }, // SWAP11
159
+ { 13, 13, 3 }, // SWAP12
160
+ { 14, 14, 3 }, // SWAP13
161
+ { 15, 15, 3 }, // SWAP14
162
+ { 16, 16, 3 }, // SWAP15
163
+ { 17, 17, 3 }, // SWAP16
164
+ { 2, 0, 375 }, // LOG0
165
+ { 3, 0, 750 }, // LOG1
166
+ { 4, 0, 1125 }, // LOG2
167
+ { 5, 0, 1500 }, // LOG3
168
+ { 6, 0, 1875 }, // LOG4
169
+ { 0, 0, 0xffffffff }, // unused
170
+ { 0, 0, 0xffffffff }, // unused
171
+ { 0, 0, 0xffffffff }, // unused
172
+ { 0, 0, 0xffffffff }, // unused
173
+ { 0, 0, 0xffffffff }, // unused
174
+ { 0, 0, 0xffffffff }, // unused
175
+ { 0, 0, 0xffffffff }, // unused
176
+ { 0, 0, 0xffffffff }, // unused
177
+ { 0, 0, 0xffffffff }, // unused
178
+ { 0, 0, 0xffffffff }, // unused
179
+ { 0, 0, 0xffffffff }, // unused
180
+ { 0, 0, 0xffffffff }, // unused
181
+ { 0, 0, 0xffffffff }, // unused
182
+ { 0, 0, 0xffffffff }, // unused
183
+ { 0, 0, 0xffffffff }, // unused
184
+ { 0, 0, 0xffffffff }, // unused
185
+ { 0, 0, 0xffffffff }, // unused
186
+ { 0, 0, 0xffffffff }, // unused
187
+ { 0, 0, 0xffffffff }, // unused
188
+ { 0, 0, 0xffffffff }, // unused
189
+ { 0, 0, 0xffffffff }, // unused
190
+ { 0, 0, 0xffffffff }, // unused
191
+ { 0, 0, 0xffffffff }, // unused
192
+ { 0, 0, 0xffffffff }, // unused
193
+ { 0, 0, 0xffffffff }, // unused
194
+ { 0, 0, 0xffffffff }, // unused
195
+ { 0, 0, 0xffffffff }, // unused
196
+ { 0, 0, 0xffffffff }, // unused
197
+ { 0, 0, 0xffffffff }, // unused
198
+ { 0, 0, 0xffffffff }, // unused
199
+ { 0, 0, 0xffffffff }, // unused
200
+ { 0, 0, 0xffffffff }, // unused
201
+ { 0, 0, 0xffffffff }, // unused
202
+ { 0, 0, 0xffffffff }, // unused
203
+ { 0, 0, 0xffffffff }, // unused
204
+ { 0, 0, 0xffffffff }, // unused
205
+ { 0, 0, 0xffffffff }, // unused
206
+ { 0, 0, 0xffffffff }, // unused
207
+ { 0, 0, 0xffffffff }, // unused
208
+ { 0, 0, 0xffffffff }, // unused
209
+ { 0, 0, 0xffffffff }, // unused
210
+ { 0, 0, 0xffffffff }, // unused
211
+ { 0, 0, 0xffffffff }, // unused
212
+ { 0, 0, 0xffffffff }, // unused
213
+ { 0, 0, 0xffffffff }, // unused
214
+ { 0, 0, 0xffffffff }, // unused
215
+ { 0, 0, 0xffffffff }, // unused
216
+ { 0, 0, 0xffffffff }, // unused
217
+ { 0, 0, 0xffffffff }, // unused
218
+ { 0, 0, 0xffffffff }, // unused
219
+ { 0, 0, 0xffffffff }, // unused
220
+ { 0, 0, 0xffffffff }, // unused
221
+ { 0, 0, 0xffffffff }, // unused
222
+ { 0, 0, 0xffffffff }, // unused
223
+ { 0, 0, 0xffffffff }, // unused
224
+ { 0, 0, 0xffffffff }, // unused
225
+ { 0, 0, 0xffffffff }, // unused
226
+ { 0, 0, 0xffffffff }, // unused
227
+ { 0, 0, 0xffffffff }, // unused
228
+ { 0, 0, 0xffffffff }, // unused
229
+ { 0, 0, 0xffffffff }, // unused
230
+ { 0, 0, 0xffffffff }, // unused
231
+ { 0, 0, 0xffffffff }, // unused
232
+ { 0, 0, 0xffffffff }, // unused
233
+ { 0, 0, 0xffffffff }, // unused
234
+ { 0, 0, 0xffffffff }, // unused
235
+ { 0, 0, 0xffffffff }, // unused
236
+ { 0, 0, 0xffffffff }, // unused
237
+ { 0, 0, 0xffffffff }, // unused
238
+ { 0, 0, 0xffffffff }, // unused
239
+ { 0, 0, 0xffffffff }, // unused
240
+ { 0, 0, 0xffffffff }, // unused
241
+ { 0, 0, 0xffffffff }, // unused
242
+ { 0, 0, 0xffffffff }, // unused
243
+ { 0, 0, 0xffffffff }, // unused
244
+ { 3, 1, 32000 }, // CREATE
245
+ { 7, 1, 40 }, // CALL
246
+ { 7, 1, 40 }, // CALLCODE
247
+ { 2, 0, 0 }, // RETURN
248
+ { 6, 1, 40 }, // DELEGATECALL
249
+ { 7, 1, 40 }, // CALLBLACKBOX
250
+ { 0, 0, 0xffffffff }, // unused
251
+ { 0, 0, 0xffffffff }, // unused
252
+ { 0, 0, 0xffffffff }, // unused
253
+ { 0, 0, 0xffffffff }, // unused
254
+ { 6, 1, 40 }, // STATICCALL
255
+ { 0, 0, 0xffffffff }, // unused
256
+ { 0, 0, 0xffffffff }, // unused
257
+ { 2, 0, 0 }, // REVERT
258
+ { 0, 0, 0xffffffff }, // unused
259
+ { 1, 0, 0 }, // SUICIDE
@@ -0,0 +1,33 @@
1
+ /* Capstone Disassembly Engine */
2
+ /* By Nguyen Anh Quynh, 2018 */
3
+
4
+ #ifdef CAPSTONE_HAS_EVM
5
+
6
+ #include "../../cs_priv.h"
7
+ #include "EVMDisassembler.h"
8
+ #include "EVMInstPrinter.h"
9
+ #include "EVMMapping.h"
10
+ #include "EVMModule.h"
11
+
12
+ cs_err EVM_global_init(cs_struct *ud)
13
+ {
14
+ // verify if requested mode is valid
15
+ if (ud->mode)
16
+ return CS_ERR_MODE;
17
+
18
+ ud->printer = EVM_printInst;
19
+ ud->printer_info = NULL;
20
+ ud->insn_id = EVM_get_insn_id;
21
+ ud->insn_name = EVM_insn_name;
22
+ ud->group_name = EVM_group_name;
23
+ ud->disasm = EVM_getInstruction;
24
+
25
+ return CS_ERR_OK;
26
+ }
27
+
28
+ cs_err EVM_option(cs_struct *handle, cs_opt_type type, size_t value)
29
+ {
30
+ return CS_ERR_OK;
31
+ }
32
+
33
+ #endif
@@ -0,0 +1,12 @@
1
+ /* Capstone Disassembly Engine */
2
+ /* By Travis Finkenauer <tmfinken@gmail.com>, 2018 */
3
+
4
+ #ifndef CS_EVM_MODULE_H
5
+ #define CS_EVM_MODULE_H
6
+
7
+ #include "../../utils.h"
8
+
9
+ cs_err EVM_global_init(cs_struct *ud);
10
+ cs_err EVM_option(cs_struct *handle, cs_opt_type type, size_t value);
11
+
12
+ #endif