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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
|
.include "asm/macros.inc"
.include "global.inc"
.text
thumb_func_start FUN_02029AE0
FUN_02029AE0: ; 0x02029AE0
ldr r0, _02029AE4 ; =0x00000FF8
bx lr
.balign 4
_02029AE4: .word 0x00000FF8
thumb_func_start FUN_02029AE8
FUN_02029AE8: ; 0x02029AE8
ldr r3, _02029AF4 ; =MIi_CpuClear32
add r1, r0, #0x0
mov r0, #0x0
ldr r2, _02029AF8 ; =0x00000FF8
bx r3
nop
_02029AF4: .word MIi_CpuClear32
_02029AF8: .word 0x00000FF8
thumb_func_start FUN_02029AFC
FUN_02029AFC: ; 0x02029AFC
ldr r3, _02029B04 ; =SavArray_get
mov r1, #0x1e
bx r3
nop
_02029B04: .word SavArray_get
thumb_func_start FUN_02029B08
FUN_02029B08: ; 0x02029B08
push {r4-r6, lr}
add r6, r0, #0x0
mov r0, #0x1
add r5, r1, #0x0
lsl r0, r0, #0x8
add r4, r2, #0x0
cmp r5, r0
blt _02029B1C
bl GF_AssertFail
_02029B1C:
cmp r4, #0x40
blt _02029B24
bl GF_AssertFail
_02029B24:
strb r5, [r6, #0x5]
add r0, r6, #0x0
add r1, r5, #0x0
add r2, r4, #0x0
mov r3, #0x3
strb r4, [r6, #0x6]
bl FUN_02029B90
pop {r4-r6, pc}
.balign 4
thumb_func_start FUN_02029B38
FUN_02029B38: ; 0x02029B38
ldrb r0, [r0, #0x5]
bx lr
thumb_func_start FUN_02029B3C
FUN_02029B3C: ; 0x02029B3C
ldrb r0, [r0, #0x6]
bx lr
thumb_func_start FUN_02029B40
FUN_02029B40: ; 0x02029B40
push {r4-r6, lr}
add r6, r0, #0x0
mov r0, #0x1
add r5, r1, #0x0
lsl r0, r0, #0x8
add r4, r2, #0x0
cmp r5, r0
blt _02029B54
bl GF_AssertFail
_02029B54:
cmp r4, #0x40
blt _02029B5C
bl GF_AssertFail
_02029B5C:
cmp r5, #0x0
bne _02029B64
mov r0, #0x0
pop {r4-r6, pc}
_02029B64:
asr r0, r4, #0x1
lsr r0, r0, #0x1e
add r0, r4, r0
asr r1, r0, #0x2
sub r0, r5, #0x1
lsl r0, r0, #0x4
add r0, r1, r0
add r0, r6, r0
ldrb r3, [r0, #0x7]
lsr r2, r4, #0x1f
lsl r1, r4, #0x1e
sub r1, r1, r2
mov r0, #0x1e
ror r1, r0
add r0, r2, r1
lsl r0, r0, #0x1
add r1, r3, #0x0
asr r1, r0
mov r0, #0x3
and r0, r1
pop {r4-r6, pc}
.balign 4
thumb_func_start FUN_02029B90
FUN_02029B90: ; 0x02029B90
push {r3-r7, lr}
add r7, r0, #0x0
add r5, r1, #0x0
add r4, r2, #0x0
str r3, [sp, #0x0]
cmp r3, #0x4
blt _02029BA2
bl GF_AssertFail
_02029BA2:
mov r0, #0x1
lsl r0, r0, #0x8
cmp r5, r0
blt _02029BAE
bl GF_AssertFail
_02029BAE:
cmp r4, #0x40
blt _02029BB6
bl GF_AssertFail
_02029BB6:
cmp r5, #0x0
beq _02029BFE
asr r0, r4, #0x1
lsr r0, r0, #0x1e
add r0, r4, r0
asr r2, r0, #0x2
sub r0, r5, #0x1
lsl r0, r0, #0x4
add r0, r2, r0
lsr r2, r4, #0x1f
lsl r4, r4, #0x1e
sub r4, r4, r2
mov r3, #0x1e
ror r4, r3
add r2, r2, r4
lsl r6, r2, #0x1
mov r2, #0x3
add r3, r2, #0x0
add r1, r7, #0x7
ldrb r4, [r1, r0]
lsl r3, r6
mov r2, #0xff
eor r2, r3
and r2, r4
ldr r3, [sp, #0x0]
strb r2, [r1, r0]
ldrb r2, [r1, r0]
lsl r3, r6
orr r2, r3
strb r2, [r1, r0]
cmp r5, #0x67
beq _02029BFE
add r0, r7, #0x0
mov r1, #0x1
bl FUN_02029C04
_02029BFE:
pop {r3-r7, pc}
thumb_func_start FUN_02029C00
FUN_02029C00: ; 0x02029C00
ldrb r0, [r0, #0x4]
bx lr
thumb_func_start FUN_02029C04
FUN_02029C04: ; 0x02029C04
strb r1, [r0, #0x4]
bx lr
thumb_func_start FUN_02029C08
FUN_02029C08: ; 0x02029C08
push {r3-r7, lr}
mov lr, r0
mov r0, #0x3
mov r7, #0x0
mov r4, #0x2
mov r6, #0xff
add r3, r0, #0x0
_02029C16:
mov r1, lr
add r1, r1, r7
ldrb r2, [r1, #0x7]
mov r12, r1
mov r1, #0x0
_02029C20:
add r5, r2, #0x0
asr r5, r1
and r5, r3
cmp r5, #0x1
bne _02029C40
add r5, r0, #0x0
lsl r5, r1
eor r5, r6
and r2, r5
lsl r2, r2, #0x18
lsr r5, r2, #0x18
add r2, r4, #0x0
lsl r2, r1
orr r2, r5
lsl r2, r2, #0x18
lsr r2, r2, #0x18
_02029C40:
add r1, r1, #0x2
cmp r1, #0x8
blt _02029C20
mov r1, r12
strb r2, [r1, #0x7]
mov r1, #0xff
add r7, r7, #0x1
lsl r1, r1, #0x4
cmp r7, r1
blt _02029C16
pop {r3-r7, pc}
.balign 4
|