1*9a0e4156SSadaf Ebrahimi /* Capstone Disassembly Engine */
2*9a0e4156SSadaf Ebrahimi /* By Nguyen Anh Quynh, 2018 */
3*9a0e4156SSadaf Ebrahimi
4*9a0e4156SSadaf Ebrahimi #include "EVMInstPrinter.h"
5*9a0e4156SSadaf Ebrahimi #include "EVMMapping.h"
6*9a0e4156SSadaf Ebrahimi
7*9a0e4156SSadaf Ebrahimi
EVM_printInst(MCInst * MI,struct SStream * O,void * PrinterInfo)8*9a0e4156SSadaf Ebrahimi void EVM_printInst(MCInst *MI, struct SStream *O, void *PrinterInfo)
9*9a0e4156SSadaf Ebrahimi {
10*9a0e4156SSadaf Ebrahimi SStream_concat(O, EVM_insn_name((csh)MI->csh, MI->Opcode));
11*9a0e4156SSadaf Ebrahimi
12*9a0e4156SSadaf Ebrahimi if (MI->Opcode >= EVM_INS_PUSH1 && MI->Opcode <= EVM_INS_PUSH32) {
13*9a0e4156SSadaf Ebrahimi unsigned int i;
14*9a0e4156SSadaf Ebrahimi
15*9a0e4156SSadaf Ebrahimi SStream_concat0(O, "\t");
16*9a0e4156SSadaf Ebrahimi for (i = 0; i < MI->Opcode - EVM_INS_PUSH1 + 1; i++) {
17*9a0e4156SSadaf Ebrahimi SStream_concat(O, "%02x", MI->evm_data[i]);
18*9a0e4156SSadaf Ebrahimi }
19*9a0e4156SSadaf Ebrahimi }
20*9a0e4156SSadaf Ebrahimi }
21