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
|
.include "asm/macros.inc"
.include "global.inc"
.section .text
.balign 4, 0
thumb_func_start MOD05_021E577C
MOD05_021E577C: ; 0x021E577C
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_021E57A8
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E5798
MOD05_021E5798: ; 0x021E5798
push {r4, lr}
add r4, r0, #0
bl MOD05_021E57C8
add r0, r4, #0
bl MOD05_021E4C00
pop {r4, pc}
thumb_func_start MOD05_021E57A8
MOD05_021E57A8: ; 0x021E57A8
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, #0x17
mov r2, #0
add r3, #0xc
bl MOD05_021E51EC
add sp, #8
pop {r3, pc}
thumb_func_start MOD05_021E57C8
MOD05_021E57C8: ; 0x021E57C8
ldr r3, _021E57D0 ; =MOD05_021E4C00
ldr r0, [r0, #0x64]
bx r3
nop
_021E57D0: .word MOD05_021E4C00
thumb_func_start MOD05_021E57D4
MOD05_021E57D4: ; 0x021E57D4
push {r3, r4, r5, lr}
sub sp, #0x20
add r5, r0, #0
bl MOD05_021E4C24
add r4, r0, #0
mov r1, #6
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, _021E580C ; =UNK05_021F7604
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
_021E580C: .word UNK05_021F7604
thumb_func_start MOD05_021E5810
MOD05_021E5810: ; 0x021E5810
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_021E5858
MOD05_021E5858: ; 0x021E5858
bx lr
.balign 4, 0
thumb_func_start MOD05_021E585C
MOD05_021E585C: ; 0x021E585C
push {r4, r5, lr}
sub sp, #0xc
add r2, r1, #0
ldr r5, [r2, #0x38]
ldr r1, [r2, #8]
add r4, r0, #0
ldr r2, [r2, #0xc]
add r0, r5, #0
bl FUN_020582A8
cmp r0, #0
bne _021E5878
bl GF_AssertFail
_021E5878:
add r0, r5, #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, r4, #0
add r1, sp, #0
bl FUN_0206476C
add sp, #0xc
pop {r4, r5, pc}
.balign 4, 0
thumb_func_start MOD05_021E5898
MOD05_021E5898: ; 0x021E5898
push {r4, r5, r6, lr}
sub sp, #0x60
ldr r5, _021E5910 ; =UNK05_021F75F8
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, _021E5914 ; =UNK05_021F7618
str r0, [r3]
add r5, sp, #0x24
mov r3, #4
_021E58B2:
ldmia r6!, {r0, r1}
stmia r5!, {r0, r1}
sub r3, r3, #1
bne _021E58B2
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
_021E5910: .word UNK05_021F75F8
_021E5914: .word UNK05_021F7618
.section .rodata
.global UNK05_021F75F8
UNK05_021F75F8: ; 0x021F75F8
.word 0x00001000, 0x00001000, 0x00001000
.global UNK05_021F7604
UNK05_021F7604: ; 0x021F7604
.word 0x0000003C, MOD05_021E5810, MOD05_021E5858, MOD05_021E585C
.word MOD05_021E5898
.global UNK05_021F7618
UNK05_021F7618: ; 0x021F7618
.word 0x00001000, 0x00000000, 0x00000000, 0x00000000
.word 0x00001000, 0x00000000, 0x00000000, 0x00000000
.word 0x00001000
|