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,222 @@ 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 0x84 <__aeabi_memclr> @ imm = # 0x26
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, #0x288
26
25
movt r1, #0x0
27
- bl # 0x8
28
- bl #-0x40
26
+ bl 0x88 <__aeabi_memcpy> @ imm = # 0xc
27
+ bl 0x40 <main> @ imm = #-0x40
29
28
trap
30
29
31
30
<UsageFault>:
32
- b #-0x4 <UsageFault>
31
+ b 0x82 <UsageFault> @ imm = #-0x4
32
+
33
+ <__aeabi_memclr>:
34
+ b.w 0x9a <compiler_builtins::arm::__aeabi_memclr::h96ee28dc2b586447> @ imm = #0x12
33
35
34
36
<__aeabi_memcpy>:
35
- b.w #0x10 <memcpy>
37
+ b.w 0x8c <compiler_builtins::arm::__aeabi_memcpy::hf6d647cdc92d542c> @ imm = #0x0
38
+
39
+ <compiler_builtins::arm::__aeabi_memcpy::hf6d647cdc92d542c>:
40
+ b.w 0xa0 <compiler_builtins::mem::memcpy::hac255b7467641344> @ imm = #0x10
36
41
37
- <__aeabi_memset>:
42
+ <compiler_builtins::arm:: __aeabi_memset::haf82f618eda1ab58 >:
38
43
mov r3, r1
39
44
mov r1, r2
40
45
mov r2, r3
41
- b.w # 0x84 < memset>
46
+ b.w 0x1ec <compiler_builtins::mem:: memset::h1dd8afbc6e8f8510> @ imm = # 0x152
42
47
43
- <__aeabi_memclr>:
48
+ <compiler_builtins::arm:: __aeabi_memclr::h96ee28dc2b586447 >:
44
49
movs r2, #0x0
45
- b.w #- 0x10 < __aeabi_memset>
50
+ b.w 0x90 <compiler_builtins::arm:: __aeabi_memset::haf82f618eda1ab58> @ imm = #- 0x10
46
51
47
- <memcpy>:
52
+ <compiler_builtins::mem:: memcpy::hac255b7467641344 >:
48
53
push {r4, r5, r6, r7, lr}
49
54
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 >
55
+ push.w {r8, r9, r10}
56
+ cmp r2, #0xf
57
+ bls 0x174 <compiler_builtins::mem::memcpy::hac255b7467641344+0xd4 > @ imm = #0xc6
58
+ rsbs r3, r0, #0
59
+ ands r4, r3, #0x3
60
+ add.w r12, r0, r4
61
+ beq 0xe6 <compiler_builtins::mem::memcpy::hac255b7467641344+0x46 > @ imm = #0x2c
62
+ mov r3, r0
63
+ mov r6, r1
64
+ ldrb r5, [r6]
65
+ strb r5, [r3], #1
66
+ cmp r3, r12
67
+ itttt lo
68
+ ldrblo r5, [r6, #0x1 ]
69
+ strblo r5, [r3], #1
70
+ cmplo r3, r12
71
+ ldrblo r5, [r6, #0x2 ]
72
+ itt lo
73
+ strblo r5, [r3], #1
74
+ cmplo r3, r12
75
+ bhs 0xe6 <compiler_builtins::mem::memcpy::hac255b7467641344+0x46 > @ imm = #0xa
76
+ ldrb r5, [r6, #0x3 ]
77
+ adds r6, #0x4
78
+ strb r5, [r3], #1
79
+ cmp r3, r12
80
+ blo 0xbc <compiler_builtins::mem::memcpy::hac255b7467641344+0x1c > @ imm = #-0x2c
81
+ sub.w lr, r2, r4
82
+ add.w r9, r1, r4
83
+ bic r8, lr, #0x3
84
+ add.w r3, r12, r8
85
+ lsls.w r2, r9, #0x1e
86
+ beq 0x17c <compiler_builtins::mem::memcpy::hac255b7467641344+0xdc > @ imm = #0x7e
87
+ cmp.w r8, #0x1
88
+ blt 0x1ae <compiler_builtins::mem::memcpy::hac255b7467641344+0x10e > @ imm = #0xaa
89
+ movs r2, #0x18
90
+ and .w r10, r2, r9, lsl #3
56
91
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
92
+ sub.w r2, r2, r9, lsl #3
93
+ and r5, r2, #0x18
94
+ bic r2, r9, #0x3
95
+ add.w r6, r2, #0x8
96
+ ldr r2, [r2]
97
+ lsr.w r1, r2, r10
98
+ ldr r2, [r6, #-4 ]
99
+ lsl.w r4, r2, r5
100
+ orrs r1, r4
101
+ str r1, [r12], #4
102
+ cmp r12, r3
103
+ bhs 0x1ae <compiler_builtins::mem::memcpy::hac255b7467641344+0x10e > @ imm = #0x7a
104
+ lsr.w r1, r2, r10
105
+ ldr r2, [r6]
106
+ lsl.w r4, r2, r5
107
+ orrs r1, r4
108
+ str r1, [r12], #4
109
+ cmp r12, r3
110
+ itttt lo
111
+ lsrlo.w r1, r2, r10
112
+ ldrlo r2, [r6, #0x4 ]
113
+ lsllo.w r4, r2, r5
114
+ orrlo r1, r4
115
+ itt lo
116
+ strlo r1, [r12], #4
117
+ cmplo r12, r3
118
+ bhs 0x1ae <compiler_builtins::mem::memcpy::hac255b7467641344+0x10e > @ imm = #0x50
119
+ lsr.w r1, r2, r10
120
+ ldr r2, [r6, #0x8 ]
121
+ adds r6, #0x10
122
+ lsl.w r4, r2, r5
123
+ orrs r1, r4
124
+ str r1, [r12], #4
125
+ cmp r12, r3
126
+ blo 0x11c <compiler_builtins::mem::memcpy::hac255b7467641344+0x7c > @ imm = #-0x58
127
+ b 0x1ae <compiler_builtins::mem::memcpy::hac255b7467641344+0x10e > @ imm = #0x38
128
+ mov r3, r0
129
+ cmp r2, #0x1
130
+ bge 0x1ba <compiler_builtins::mem::memcpy::hac255b7467641344+0x11a > @ imm = #0x3e
131
+ b 0x1e6 <compiler_builtins::mem::memcpy::hac255b7467641344+0x146 > @ imm = #0x68
132
+ cmp.w r8, #0x1
133
+ blt 0x1ae <compiler_builtins::mem::memcpy::hac255b7467641344+0x10e > @ imm = #0x2a
134
+ mov r4, r9
135
+ ldr r1, [r4]
136
+ str r1, [r12], #4
137
+ cmp r12, r3
138
+ itttt lo
139
+ ldrlo r1, [r4, #0x4 ]
140
+ strlo r1, [r12], #4
141
+ cmplo r12, r3
142
+ ldrlo r1, [r4, #0x8 ]
143
+ itt lo
144
+ strlo r1, [r12], #4
145
+ cmplo r12, r3
146
+ bhs 0x1ae <compiler_builtins::mem::memcpy::hac255b7467641344+0x10e > @ imm = #0xa
147
+ ldr r1, [r4, #0xc ]
148
+ adds r4, #0x10
149
+ str r1, [r12], #4
150
+ cmp r12, r3
151
+ blo 0x184 <compiler_builtins::mem::memcpy::hac255b7467641344+0xe4 > @ imm = #-0x2c
152
+ add.w r1, r9, r8
153
+ and r2, lr, #0x3
154
+ cmp r2, #0x1
155
+ blt 0x1e6 <compiler_builtins::mem::memcpy::hac255b7467641344+0x146 > @ imm = #0x2a
156
+ add r2, r3
157
+ ldrb r6, [r1]
158
+ strb r6, [r3], #1
159
+ cmp r3, r2
160
+ itttt lo
161
+ ldrblo r6, [r1, #0x1 ]
162
+ strblo r6, [r3], #1
163
+ cmplo r3, r2
164
+ ldrblo r6, [r1, #0x2 ]
165
+ itt lo
166
+ strblo r6, [r3], #1
167
+ cmplo r3, r2
168
+ bhs 0x1e6 <compiler_builtins::mem::memcpy::hac255b7467641344+0x146 > @ imm = #0xa
169
+ ldrb r6, [r1, #0x3 ]
170
+ adds r1, #0x4
171
+ strb r6, [r3], #1
172
+ cmp r3, r2
173
+ blo 0x1bc <compiler_builtins::mem::memcpy::hac255b7467641344+0x11c > @ imm = #-0x2c
174
+ pop.w {r8, r9, r10}
96
175
pop {r4, r5, r6, r7, pc}
97
176
98
- <memset>:
177
+ <compiler_builtins::mem:: memset::h1dd8afbc6e8f8510 >:
99
178
push {r4, r6, r7, lr}
100
179
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 ]
180
+ cmp r2, #0xf
181
+ bls 0x260 <compiler_builtins::mem::memset::h1dd8afbc6e8f8510+0x74 > @ imm = #0x6a
182
+ rsbs r3, r0, #0
183
+ ands lr, r3, #0x3
184
+ add.w r12, r0, lr
185
+ beq 0x220 <compiler_builtins::mem::memset::h1dd8afbc6e8f8510+0x34 > @ imm = #0x1e
186
+ mov r3, r0
187
+ strb r1, [r3], #1
188
+ cmp r3, r12
189
+ itttt lo
190
+ strblo r1, [r3], #1
191
+ cmplo r3, r12
192
+ strblo r1, [r3], #1
193
+ cmplo r3, r12
194
+ bhs 0x220 <compiler_builtins::mem::memset::h1dd8afbc6e8f8510+0x34 > @ imm = #0x6
195
+ strb r1, [r3], #1
196
+ cmp r3, r12
197
+ blo 0x202 <compiler_builtins::mem::memset::h1dd8afbc6e8f8510+0x16 > @ imm = #-0x20
198
+ sub.w lr, r2, lr
199
+ bic r2, lr, #0x3
200
+ add.w r3, r12, r2
201
+ cmp r2, #0x1
202
+ blt 0x256 <compiler_builtins::mem::memset::h1dd8afbc6e8f8510+0x6a > @ imm = #0x24
203
+ uxtb r2, r1
204
+ mov.w r4, #0x1010101
205
+ muls r2, r4, r2
206
+ str r2, [r12], #4
207
+ cmp r12, r3
208
+ itttt lo
209
+ strlo r2, [r12], #4
210
+ cmplo r12, r3
211
+ strlo r2, [r12], #4
212
+ cmplo r12, r3
213
+ bhs 0x256 <compiler_builtins::mem::memset::h1dd8afbc6e8f8510+0x6a > @ imm = #0x6
214
+ str r2, [r12], #4
215
+ cmp r12, r3
216
+ blo 0x238 <compiler_builtins::mem::memset::h1dd8afbc6e8f8510+0x4c > @ imm = #-0x20
217
+ and r2, lr, #0x3
218
+ cmp r2, #0x1
219
+ bge 0x266 <compiler_builtins::mem::memset::h1dd8afbc6e8f8510+0x7a > @ imm = #0x6
220
+ b 0x286 <compiler_builtins::mem::memset::h1dd8afbc6e8f8510+0x9a > @ imm = #0x24
221
+ mov r3, r0
222
+ cmp r2, #0x1
223
+ blt 0x286 <compiler_builtins::mem::memset::h1dd8afbc6e8f8510+0x9a > @ imm = #0x1e
224
+ add r2, r3
225
+ strb r1, [r3], #1
226
+ cmp r3, r2
227
+ itttt lo
228
+ strblo r1, [r3], #1
229
+ cmplo r3, r2
230
+ strblo r1, [r3], #1
231
+ cmplo r3, r2
232
+ bhs 0x286 <compiler_builtins::mem::memset::h1dd8afbc6e8f8510+0x9a > @ imm = #0x6
233
+ strb r1, [r3], #1
234
+ cmp r3, r2
235
+ blo 0x268 <compiler_builtins::mem::memset::h1dd8afbc6e8f8510+0x7c > @ imm = #-0x20
133
236
pop {r4, r6, r7, pc}
0 commit comments