@@ -9,112 +9,125 @@ Disassembly of section .text:
9
9
trap
10
10
11
11
<Reset>:
12
+ push {r7, lr}
13
+ mov r7, sp
12
14
movw r1, #0x0
13
15
movw r0, #0x0
14
16
movt r1, #0x2000
15
17
movt r0, #0x2000
16
18
subs r1, r1, r0
17
- bl #0xe2
19
+ bl #0x34
18
20
movw r1, #0x0
19
21
movw r0, #0x0
20
22
movt r1, #0x2000
21
23
movt r0, #0x2000
22
24
subs r2, r1, r0
23
- movw r1, #0x142
25
+ movw r1, #0x16c
24
26
movt r1, #0x0
25
27
bl #0x8
26
- bl #-0x3c
28
+ bl #-0x40
27
29
trap
28
30
29
- DefaultExceptionHandler :
30
- b #-0x4 <DefaultExceptionHandler >
31
+ <UsageFault> :
32
+ b #-0x4 <UsageFault >
31
33
32
- UsageFault :
33
- blo .w #0x2756a <_sidata+ 0x274ab >
34
+ <__aeabi_memcpy> :
35
+ b .w #0x10 <memcpy >
34
36
35
- __aeabi_memcpy:
37
+ <__aeabi_memset>:
38
+ mov r3, r1
39
+ mov r1, r2
40
+ mov r2, r3
41
+ b.w #0x84 <memset>
42
+
43
+ <__aeabi_memclr>:
44
+ movs r2, #0x0
45
+ b.w #-0x10 <__aeabi_memset>
46
+
47
+ <memcpy>:
36
48
push {r4, r5, r6, r7, lr}
37
- cbz r2, #0x60
49
+ add r7, sp, #0xc
50
+ str r8, [sp, #-4 ]!
51
+ cbz r2, #0x10
38
52
subs r3, r2, #0x1
39
53
and r12, r2, #0x3
40
54
cmp r3, #0x3
41
- bhs #0x8 <__aeabi_memcpy+ 0x18 >
55
+ bhs #0xc <memcpy+ 0x22 >
42
56
movs r2, #0x0
43
57
cmp.w r12, #0x0
44
- bne #0x32 <__aeabi_memcpy+0x4a >
45
- b #0x4c <__aeabi_memcpy+0x66 >
46
- sub.w lr, r12, r2
47
- adds r3, r1, #0x1
48
- adds r4, r0, #0x1
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
49
65
mvn r2, #0x3
50
- adds r6, r3, r2
51
- adds r5, r4, r2
52
- adds r2, #0x4
53
- ldrb r7, [r6, #0x3 ]
54
- strb r7, [r5, #0x3 ]
55
- ldrb r7, [r6, #0x4 ]
56
- strb r7, [r5, #0x4 ]
57
- ldrb r7, [r6, #0x5 ]
58
- strb r7, [r5, #0x5 ]
59
- ldrb r6, [r6, #0x6 ]
60
- strb r6, [r5, #0x6 ]
66
+ add.w r6, r8, r2
61
67
add.w r5, lr, r2
62
- adds r5, #0x4
63
- bne #-0x20 <__aeabi_memcpy+0x24 >
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 >
64
80
adds r2, #0x4
65
81
cmp.w r12, #0x0
66
- beq #0x1a <__aeabi_memcpy+ 0x66 >
82
+ beq #- 0x42 <memcpy+ 0x1c >
67
83
ldrb r3, [r1, r2]
68
84
cmp.w r12, #0x1
69
85
strb r3, [r0, r2]
70
- beq #0x10 <__aeabi_memcpy+ 0x66 >
86
+ beq #- 0x4c <memcpy+ 0x1c >
71
87
adds r3, r2, #0x1
72
88
cmp.w r12, #0x2
73
- ldrb r7 , [r1, r3]
74
- strb r7 , [r0, r3]
75
- beq #0x4 <__aeabi_memcpy+ 0x66 >
89
+ ldrb r6 , [r1, r3]
90
+ strb r6 , [r0, r3]
91
+ beq #- 0x58 <memcpy+ 0x1c >
76
92
adds r2, #0x2
77
93
ldrb r1, [r1, r2]
78
94
strb r1, [r0, r2]
95
+ ldr r8, [sp], #4
79
96
pop {r4, r5, r6, r7, pc}
80
97
81
- __aeabi_memset:
82
- push {r4, lr}
83
- cmp r1, #0x0
84
- it eq
85
- popeq {r4, pc}
86
- subs r3, r1, #0x1
87
- and r12, r1, #0x3
98
+ <memset>:
99
+ push {r4, r6, r7, lr}
100
+ add r7, sp, #0x8
101
+ cbz r2, #0x3e
102
+ subs r3, r2, #0x1
103
+ and r12, r2, #0x3
88
104
cmp r3, #0x3
89
- bhs #0x2 <__aeabi_memset+0x16 >
90
- movs r1, #0x0
91
- b #0x1e <__aeabi_memset+0x36 >
92
- sub.w lr, r12, r1
93
- adds r1, r0, #0x1
94
- mvn r3, #0x3
95
- adds r4, r1, r3
96
- adds r3, #0x4
97
- strb r2, [r4, #0x6 ]
98
- strb r2, [r4, #0x5 ]
99
- strb r2, [r4, #0x4 ]
100
- strb r2, [r4, #0x3 ]
101
- add.w r4, lr, r3
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
102
119
adds r4, #0x4
103
- bne #-0x16 <__aeabi_memset+ 0x20 >
104
- adds r1, r3 , #0x4
120
+ bne #-0x16 <memset+ 0x22 >
121
+ adds r2 , #0x4
105
122
cmp.w r12, #0x0
106
123
itt ne
107
- strbne r2 , [r0, r1 ]
124
+ strbne r1 , [r0, r2 ]
108
125
cmpne.w r12, #0x1
109
- bne #0x0 <__aeabi_memset+ 0x46 >
110
- pop {r4, pc}
111
- add r0, r1
126
+ bne #0x0 <memset+ 0x48 >
127
+ pop {r4, r6, r7, pc}
128
+ add r2, r0
112
129
cmp.w r12, #0x2
113
- strb r2 , [r0 , #0x1 ]
130
+ strb r1 , [r2 , #0x1 ]
114
131
it ne
115
- strbne r2, [r0, #0x2 ]
116
- pop {r4, pc}
117
-
118
- __aeabi_memclr:
119
- movs r2, #0x0
120
- b.w #-0x5a <__aeabi_memset>
132
+ strbne r1, [r2, #0x2 ]
133
+ pop {r4, r6, r7, pc}
0 commit comments