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
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
|
.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 4, 0
thumb_func_start MOD05_021E55BC
MOD05_021E55BC: ; 0x021E55BC
push {r3, r4, r5, lr}
mov r2, #0
mov r1, #0x6c
add r3, r2, #0
add r5, r0, #0
bl MOD05_021E4BE8
add r4, r0, #0
str r5, [r4, #8]
bl MOD05_021E55E8
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E55D8
MOD05_021E55D8: ; 0x021E55D8
push {r4, lr}
add r4, r0, #0
bl MOD05_021E5608
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021E55E8
MOD05_021E55E8: ; 0x021E55E8
push {r3, lr}
sub sp, #8
add r3, r0, #0
add r0, #0x60
str r0, [sp]
add r0, r3, #0
add r0, #0x64
str r0, [sp, #4]
ldr r0, [r3, #8]
mov r1, #0x16
mov r2, #0
add r3, #0xc
bl MOD05_021E51EC
add sp, #8
pop {r3, pc}
thumb_func_start MOD05_021E5608
MOD05_021E5608: ; 0x021E5608
ldr r3, _021E5610 ; =MOD05_021E4C00
ldr r0, [r0, #0x64]
bx r3
nop
_021E5610: .word MOD05_021E4C00
thumb_func_start MOD05_021E5614
MOD05_021E5614: ; 0x021E5614
push {r3, r4, r5, lr}
sub sp, #0x20
add r5, r0, #0
bl MOD05_021E4C24
add r4, r0, #0
mov r1, #5
str r4, [sp, #0x14]
bl MOD05_021E4C08
str r0, [sp, #0x18]
add r0, r5, #0
add r1, sp, #8
str r5, [sp, #0x1c]
bl FUN_02058B5C
add r0, sp, #0x14
str r0, [sp]
mov r0, #0xff
str r0, [sp, #4]
ldr r1, _021E564C ; =UNK05_021F75C0
add r0, r4, #0
add r2, sp, #8
mov r3, #0
bl MOD05_021E4DC4
add sp, #0x20
pop {r3, r4, r5, pc}
.balign 4, 0
_021E564C: .word UNK05_021F75C0
thumb_func_start MOD05_021E5650
MOD05_021E5650: ; 0x021E5650
push {r4, r5, lr}
sub sp, #0xc
add r5, r0, #0
add r4, r1, #0
bl FUN_0206475C
add r3, r0, #0
add r2, r4, #0
ldmia r3!, {r0, r1}
add r2, #0x30
stmia r2!, {r0, r1}
ldr r0, [r3]
str r0, [r2]
ldr r0, [r4, #0x38]
bl FUN_02058448
str r0, [r4, #8]
ldr r0, [r4, #0x38]
bl FUN_02058450
str r0, [r4, #0xc]
mov r0, #6
lsl r0, r0, #0xc
str r0, [r4, #0x28]
ldr r0, [r4, #0x38]
add r1, sp, #0
bl FUN_02058B5C
add r0, r5, #0
add r1, sp, #0
bl FUN_0206476C
mov r0, #1
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E5698
MOD05_021E5698: ; 0x021E5698
bx lr
.balign 4, 0
thumb_func_start MOD05_021E569C
MOD05_021E569C: ; 0x021E569C
push {r3, r4, r5, r6, lr}
sub sp, #0xc
add r4, r1, #0
ldr r6, [r4, #0x38]
ldr r1, [r4, #8]
add r5, r0, #0
ldr r2, [r4, #0xc]
add r0, r6, #0
bl FUN_020582A8
cmp r0, #0
bne _021E56B8
bl GF_AssertFail
_021E56B8:
ldr r0, [r4]
cmp r0, #0
beq _021E56C8
cmp r0, #1
beq _021E56E6
add sp, #0xc
cmp r0, #2
pop {r3, r4, r5, r6, pc}
_021E56C8:
add r0, r6, #0
add r1, sp, #0
bl FUN_02058B5C
mov r0, #0xa
ldr r1, [sp, #8]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp, #8]
add r0, r5, #0
add r1, sp, #0
bl FUN_0206476C
add sp, #0xc
pop {r3, r4, r5, r6, pc}
_021E56E6:
ldr r0, [r4, #4]
add r0, r0, #1
str r0, [r4, #4]
cmp r0, #0x1e
blt _021E56F6
ldr r0, [r4]
add r0, r0, #1
str r0, [r4]
_021E56F6:
add sp, #0xc
pop {r3, r4, r5, r6, pc}
.balign 4, 0
thumb_func_start MOD05_021E56FC
MOD05_021E56FC: ; 0x021E56FC
push {r4, r5, r6, lr}
sub sp, #0x60
ldr r5, _021E5774 ; =UNK05_021F75B4
add r2, r0, #0
add r4, r1, #0
ldmia r5!, {r0, r1}
add r3, sp, #0x48
stmia r3!, {r0, r1}
ldr r0, [r5]
ldr r6, _021E5778 ; =UNK05_021F75D4
str r0, [r3]
add r5, sp, #0x24
mov r3, #4
_021E5716:
ldmia r6!, {r0, r1}
stmia r5!, {r0, r1}
sub r3, r3, #1
bne _021E5716
ldr r0, [r6]
add r1, sp, #0x54
str r0, [r5]
add r0, r2, #0
bl FUN_0206477C
mov r0, #0x19
ldr r1, [sp, #0x58]
lsl r0, r0, #0xc
add r0, r1, r0
str r0, [sp, #0x58]
mov r0, #5
ldr r1, [sp, #0x5c]
lsl r0, r0, #0xc
sub r0, r1, r0
str r0, [sp, #0x5c]
bl NNS_G3dGlbGetInvV
mov r2, #0
add r5, r0, #0
add r0, sp, #0x24
mov r1, #0x5a
add r3, r2, #0
bl FUN_0201CB20
add r0, r5, #0
add r1, sp, #0
bl MI_Copy36B
add r0, sp, #0x24
add r1, sp, #0
add r2, r0, #0
bl MTX_Concat33
ldr r0, [r4, #0x34]
add r1, sp, #0x54
add r0, #0xc
add r2, sp, #0x24
add r3, sp, #0x48
bl FUN_0201B2A8
add sp, #0x60
pop {r4, r5, r6, pc}
.balign 4, 0
_021E5774: .word UNK05_021F75B4
_021E5778: .word UNK05_021F75D4
.section .rodata
.global UNK05_021F75B4
UNK05_021F75B4: ; 0x021F75B4
.word 0x00001000, 0x00001000, 0x00001000
.global UNK05_021F75C0
UNK05_021F75C0: ; 0x021F75C0
.word 0x0000003C, MOD05_021E5650, MOD05_021E5698, MOD05_021E569C
.word MOD05_021E56FC
.global UNK05_021F75D4
UNK05_021F75D4: ; 0x021F75D4
.word 0x00001000, 0x00000000, 0x00000000, 0x00000000
.word 0x00001000, 0x00000000, 0x00000000, 0x00000000
.word 0x00001000
|