1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/usr/bin/python
# Simple benchmark for Capstone by disassembling random code. By Nguyen Anh Quynh, 2014
# Syntax:
# ./suite/benchmark.py --> Benchmark all archs
# ./suite/benchmark.py x86 --> Benchmark all X86 (all 16bit, 32bit, 64bit)
# ./suite/benchmark.py x86-32 --> Benchmark X86-32 arch only
# ./suite/benchmark.py arm --> Benchmark all ARM (arm, thumb)
# ./suite/benchmark.py aarch64 --> Benchmark ARM-64
# ./suite/benchmark.py mips --> Benchmark all Mips (32bit, 64bit)
# ./suite/benchmark.py ppc --> Benchmark PPC
# file providing code to disassemble
=
=
# for debugging
return # <-- Python 3 is OK
=
# reached end-of-file?
# then reset file position to begin-of-file
=
return
=
# uncomment below line to speed up this function 200 times!
# return
print
=
print
=
=
continue
pass
=
#md.detail = True
=
# warm up few times
=
#print to_hex(code)
#print
# start real benchmark
= 0
=
#print to_hex(code)
#print
=
+= -
print , ,
print
= 0
=
#print to_hex(code)
#print
=
+= -
print , ,
print