1
1
2
2
app : file format elf32-littlearm
3
3
4
-
5
4
Disassembly of section .text :
6
5
7
6
<main>:
@@ -16,118 +15,216 @@ Disassembly of section .text:
16
15
movt r1, #0x2000
17
16
movt r0, #0x2000
18
17
subs r1, r1, r0
19
- bl #0x34
18
+ bl 0x92 <__aeabi_memclr> @ imm = #0x34
20
19
movw r1, #0x0
21
20
movw r0, #0x0
22
21
movt r1, #0x2000
23
22
movt r0, #0x2000
24
23
subs r2, r1, r0
25
- movw r1, #0x16c
24
+ movw r1, #0x280
26
25
movt r1, #0x0
27
- bl #0x8
28
- bl #-0x40
26
+ bl 0x84 <__aeabi_memcpy> @ imm = #0x8
27
+ bl 0x40 <main> @ imm = #-0x40
29
28
trap
30
29
31
30
<UsageFault>:
32
- b #- 0x4 <UsageFault>
31
+ b 0x82 <UsageFault> @ imm = #- 0x4
33
32
34
33
<__aeabi_memcpy>:
35
- b.w # 0x10 <memcpy>
34
+ b.w 0x98 <memcpy> @ imm = # 0x10
36
35
37
36
<__aeabi_memset>:
38
37
mov r3, r1
39
38
mov r1, r2
40
39
mov r2, r3
41
- b.w # 0x84 <memset>
40
+ b.w 0x1e4 <memset> @ imm = # 0x152
42
41
43
42
<__aeabi_memclr>:
44
43
movs r2, #0x0
45
- b.w #- 0x10 <__aeabi_memset>
44
+ b.w 0x88 <__aeabi_memset> @ imm = #- 0x10
46
45
47
46
<memcpy>:
48
47
push {r4, r5, r6, r7, lr}
49
48
add r7, sp, #0xc
50
- str r8, [sp, #-4 ]!
51
- cbz r2, #0x10
52
- subs r3, r2, #0x1
53
- and r12, r2, #0x3
54
- cmp r3, #0x3
55
- bhs #0xc <memcpy+0x22 >
49
+ push.w {r8, r9, r10}
50
+ cmp r2, #0xf
51
+ bls 0x16c <memcpy+0xd4 > @ imm = #0xc6
52
+ rsbs r3, r0, #0
53
+ ands r4, r3, #0x3
54
+ add.w r12, r0, r4
55
+ beq 0xde <memcpy+0x46 > @ imm = #0x2c
56
+ mov r3, r0
57
+ mov r6, r1
58
+ ldrb r5, [r6]
59
+ strb r5, [r3], #1
60
+ cmp r3, r12
61
+ itttt lo
62
+ ldrblo r5, [r6, #0x1 ]
63
+ strblo r5, [r3], #1
64
+ cmplo r3, r12
65
+ ldrblo r5, [r6, #0x2 ]
66
+ itt lo
67
+ strblo r5, [r3], #1
68
+ cmplo r3, r12
69
+ bhs 0xde <memcpy+0x46 > @ imm = #0xa
70
+ ldrb r5, [r6, #0x3 ]
71
+ adds r6, #0x4
72
+ strb r5, [r3], #1
73
+ cmp r3, r12
74
+ blo 0xb4 <memcpy+0x1c > @ imm = #-0x2c
75
+ sub.w lr, r2, r4
76
+ add.w r9, r1, r4
77
+ bic r8, lr, #0x3
78
+ add.w r3, r12, r8
79
+ lsls.w r2, r9, #0x1e
80
+ beq 0x174 <memcpy+0xdc > @ imm = #0x7e
81
+ cmp.w r8, #0x1
82
+ blt 0x1a6 <memcpy+0x10e > @ imm = #0xaa
83
+ movs r2, #0x18
84
+ and .w r10, r2, r9, lsl #3
56
85
movs r2, #0x0
57
- cmp.w r12, #0x0
58
- bne #0x3e <memcpy+0x5c >
59
- ldr r8, [sp], #4
60
- pop {r4, r5, r6, r7, pc}
61
- bic r2, r2, #0x3
62
- add.w lr, r0, #0x1
63
- rsbs r4, r2, #0
64
- add.w r8, r1, #0x1
65
- mvn r2, #0x3
66
- add.w r6, r8, r2
67
- add.w r5, lr, r2
68
- adds r2, #0x4
69
- ldrb r3, [r6, #0x3 ]
70
- strb r3, [r5, #0x3 ]
71
- ldrb r3, [r6, #0x4 ]
72
- strb r3, [r5, #0x4 ]
73
- ldrb r3, [r6, #0x5 ]
74
- strb r3, [r5, #0x5 ]
75
- ldrb r3, [r6, #0x6 ]
76
- strb r3, [r5, #0x6 ]
77
- adds r3, r4, r2
78
- adds r3, #0x4
79
- bne #-0x22 <memcpy+0x34 >
80
- adds r2, #0x4
81
- cmp.w r12, #0x0
82
- beq #-0x42 <memcpy+0x1c >
83
- ldrb r3, [r1, r2]
84
- cmp.w r12, #0x1
85
- strb r3, [r0, r2]
86
- beq #-0x4c <memcpy+0x1c >
87
- adds r3, r2, #0x1
88
- cmp.w r12, #0x2
89
- ldrb r6, [r1, r3]
90
- strb r6, [r0, r3]
91
- beq #-0x58 <memcpy+0x1c >
92
- adds r2, #0x2
93
- ldrb r1, [r1, r2]
94
- strb r1, [r0, r2]
95
- ldr r8, [sp], #4
86
+ sub.w r2, r2, r9, lsl #3
87
+ and r5, r2, #0x18
88
+ bic r2, r9, #0x3
89
+ add.w r6, r2, #0x8
90
+ ldr r2, [r2]
91
+ lsr.w r1, r2, r10
92
+ ldr r2, [r6, #-4 ]
93
+ lsl.w r4, r2, r5
94
+ orrs r1, r4
95
+ str r1, [r12], #4
96
+ cmp r12, r3
97
+ bhs 0x1a6 <memcpy+0x10e > @ imm = #0x7a
98
+ lsr.w r1, r2, r10
99
+ ldr r2, [r6]
100
+ lsl.w r4, r2, r5
101
+ orrs r1, r4
102
+ str r1, [r12], #4
103
+ cmp r12, r3
104
+ itttt lo
105
+ lsrlo.w r1, r2, r10
106
+ ldrlo r2, [r6, #0x4 ]
107
+ lsllo.w r4, r2, r5
108
+ orrlo r1, r4
109
+ itt lo
110
+ strlo r1, [r12], #4
111
+ cmplo r12, r3
112
+ bhs 0x1a6 <memcpy+0x10e > @ imm = #0x50
113
+ lsr.w r1, r2, r10
114
+ ldr r2, [r6, #0x8 ]
115
+ adds r6, #0x10
116
+ lsl.w r4, r2, r5
117
+ orrs r1, r4
118
+ str r1, [r12], #4
119
+ cmp r12, r3
120
+ blo 0x114 <memcpy+0x7c > @ imm = #-0x58
121
+ b 0x1a6 <memcpy+0x10e > @ imm = #0x38
122
+ mov r3, r0
123
+ cmp r2, #0x1
124
+ bge 0x1b2 <memcpy+0x11a > @ imm = #0x3e
125
+ b 0x1de <memcpy+0x146 > @ imm = #0x68
126
+ cmp.w r8, #0x1
127
+ blt 0x1a6 <memcpy+0x10e > @ imm = #0x2a
128
+ mov r4, r9
129
+ ldr r1, [r4]
130
+ str r1, [r12], #4
131
+ cmp r12, r3
132
+ itttt lo
133
+ ldrlo r1, [r4, #0x4 ]
134
+ strlo r1, [r12], #4
135
+ cmplo r12, r3
136
+ ldrlo r1, [r4, #0x8 ]
137
+ itt lo
138
+ strlo r1, [r12], #4
139
+ cmplo r12, r3
140
+ bhs 0x1a6 <memcpy+0x10e > @ imm = #0xa
141
+ ldr r1, [r4, #0xc ]
142
+ adds r4, #0x10
143
+ str r1, [r12], #4
144
+ cmp r12, r3
145
+ blo 0x17c <memcpy+0xe4 > @ imm = #-0x2c
146
+ add.w r1, r9, r8
147
+ and r2, lr, #0x3
148
+ cmp r2, #0x1
149
+ blt 0x1de <memcpy+0x146 > @ imm = #0x2a
150
+ add r2, r3
151
+ ldrb r6, [r1]
152
+ strb r6, [r3], #1
153
+ cmp r3, r2
154
+ itttt lo
155
+ ldrblo r6, [r1, #0x1 ]
156
+ strblo r6, [r3], #1
157
+ cmplo r3, r2
158
+ ldrblo r6, [r1, #0x2 ]
159
+ itt lo
160
+ strblo r6, [r3], #1
161
+ cmplo r3, r2
162
+ bhs 0x1de <memcpy+0x146 > @ imm = #0xa
163
+ ldrb r6, [r1, #0x3 ]
164
+ adds r1, #0x4
165
+ strb r6, [r3], #1
166
+ cmp r3, r2
167
+ blo 0x1b4 <memcpy+0x11c > @ imm = #-0x2c
168
+ pop.w {r8, r9, r10}
96
169
pop {r4, r5, r6, r7, pc}
97
170
98
171
<memset>:
99
172
push {r4, r6, r7, lr}
100
173
add r7, sp, #0x8
101
- cbz r2, #0x3e
102
- subs r3, r2, #0x1
103
- and r12, r2, #0x3
104
- cmp r3, #0x3
105
- bhs #0x2 <memset+0x14 >
106
- movs r2, #0x0
107
- b #0x22 <memset+0x38 >
108
- bic r2, r2, #0x3
109
- add.w lr, r0, #0x1
110
- rsbs r3, r2, #0
111
- mvn r2, #0x3
112
- add.w r4, lr, r2
113
- adds r2, #0x4
114
- strb r1, [r4, #0x6 ]
115
- strb r1, [r4, #0x5 ]
116
- strb r1, [r4, #0x4 ]
117
- strb r1, [r4, #0x3 ]
118
- adds r4, r3, r2
119
- adds r4, #0x4
120
- bne #-0x16 <memset+0x22 >
121
- adds r2, #0x4
122
- cmp.w r12, #0x0
123
- itt ne
124
- strbne r1, [r0, r2]
125
- cmpne.w r12, #0x1
126
- bne #0x0 <memset+0x48 >
127
- pop {r4, r6, r7, pc}
128
- add r2, r0
129
- cmp.w r12, #0x2
130
- strb r1, [r2, #0x1 ]
131
- it ne
132
- strbne r1, [r2, #0x2 ]
174
+ cmp r2, #0xf
175
+ bls 0x258 <memset+0x74 > @ imm = #0x6a
176
+ rsbs r3, r0, #0
177
+ ands lr, r3, #0x3
178
+ add.w r12, r0, lr
179
+ beq 0x218 <memset+0x34 > @ imm = #0x1e
180
+ mov r3, r0
181
+ strb r1, [r3], #1
182
+ cmp r3, r12
183
+ itttt lo
184
+ strblo r1, [r3], #1
185
+ cmplo r3, r12
186
+ strblo r1, [r3], #1
187
+ cmplo r3, r12
188
+ bhs 0x218 <memset+0x34 > @ imm = #0x6
189
+ strb r1, [r3], #1
190
+ cmp r3, r12
191
+ blo 0x1fa <memset+0x16 > @ imm = #-0x20
192
+ sub.w lr, r2, lr
193
+ bic r2, lr, #0x3
194
+ add.w r3, r12, r2
195
+ cmp r2, #0x1
196
+ blt 0x24e <memset+0x6a > @ imm = #0x24
197
+ uxtb r2, r1
198
+ mov.w r4, #0x1010101
199
+ muls r2, r4, r2
200
+ str r2, [r12], #4
201
+ cmp r12, r3
202
+ itttt lo
203
+ strlo r2, [r12], #4
204
+ cmplo r12, r3
205
+ strlo r2, [r12], #4
206
+ cmplo r12, r3
207
+ bhs 0x24e <memset+0x6a > @ imm = #0x6
208
+ str r2, [r12], #4
209
+ cmp r12, r3
210
+ blo 0x230 <memset+0x4c > @ imm = #-0x20
211
+ and r2, lr, #0x3
212
+ cmp r2, #0x1
213
+ bge 0x25e <memset+0x7a > @ imm = #0x6
214
+ b 0x27e <memset+0x9a > @ imm = #0x24
215
+ mov r3, r0
216
+ cmp r2, #0x1
217
+ blt 0x27e <memset+0x9a > @ imm = #0x1e
218
+ add r2, r3
219
+ strb r1, [r3], #1
220
+ cmp r3, r2
221
+ itttt lo
222
+ strblo r1, [r3], #1
223
+ cmplo r3, r2
224
+ strblo r1, [r3], #1
225
+ cmplo r3, r2
226
+ bhs 0x27e <memset+0x9a > @ imm = #0x6
227
+ strb r1, [r3], #1
228
+ cmp r3, r2
229
+ blo 0x260 <memset+0x7c > @ imm = #-0x20
133
230
pop {r4, r6, r7, pc}
0 commit comments