summaryrefslogtreecommitdiff
path: root/asm/code_8000AAC4.s
blob: 4f3a0e4d102ca6ea5da8807174c1d408d726259f (plain)
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 "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global func_8000AAC4
func_8000AAC4:
/* 8000AAC4 00006724  90 83 00 04 */	stw r4, 4(r3)
/* 8000AAC8 00006728  4E 80 00 20 */	blr

.global func_8000AACC
func_8000AACC:
/* 8000AACC 0000672C  80 63 00 04 */	lwz r3, 4(r3)
/* 8000AAD0 00006730  88 63 00 05 */	lbz r3, 5(r3)
/* 8000AAD4 00006734  4E 80 00 20 */	blr

.global func_8000AAD8
func_8000AAD8:
/* 8000AAD8 00006738  80 63 00 04 */	lwz r3, 4(r3)
/* 8000AADC 0000673C  80 63 00 08 */	lwz r3, 8(r3)
/* 8000AAE0 00006740  4E 80 00 20 */	blr

.global func_8000AAE4
func_8000AAE4:
/* 8000AAE4 00006744  80 63 00 04 */	lwz r3, 4(r3)
/* 8000AAE8 00006748  80 63 00 08 */	lwz r3, 8(r3)
/* 8000AAEC 0000674C  4E 80 00 20 */	blr

.global func_8000AAF0
func_8000AAF0:
/* 8000AAF0 00006750  80 63 00 04 */	lwz r3, 4(r3)
/* 8000AAF4 00006754  A0 63 00 06 */	lhz r3, 6(r3)
/* 8000AAF8 00006758  4E 80 00 20 */	blr

.global func_8000AAFC
func_8000AAFC:
/* 8000AAFC 0000675C  80 63 00 04 */	lwz r3, 4(r3)
/* 8000AB00 00006760  80 03 00 10 */	lwz r0, 0x10(r3)
/* 8000AB04 00006764  54 03 0F FE */	srwi r3, r0, 0x1f
/* 8000AB08 00006768  4E 80 00 20 */	blr

.global DrawableCharacter_GetAnimController
DrawableCharacter_GetAnimController:
/* 8000AB0C 0000676C  80 63 00 04 */	lwz r3, 4(r3)
/* 8000AB10 00006770  80 63 00 0C */	lwz r3, 0xc(r3)
/* 8000AB14 00006774  4E 80 00 20 */	blr

.global func_8000AB18
func_8000AB18:
/* 8000AB18 00006778  80 63 00 04 */	lwz r3, 4(r3)
/* 8000AB1C 0000677C  88 63 00 02 */	lbz r3, 2(r3)
/* 8000AB20 00006780  4E 80 00 20 */	blr

.global func_8000AB24
func_8000AB24:
/* 8000AB24 00006784  80 63 00 04 */	lwz r3, 4(r3)
/* 8000AB28 00006788  A0 63 00 00 */	lhz r3, 0(r3)
/* 8000AB2C 0000678C  4E 80 00 20 */	blr

.global func_8000AB30
func_8000AB30:
/* 8000AB30 00006790  80 63 00 04 */	lwz r3, 4(r3)
/* 8000AB34 00006794  88 63 00 03 */	lbz r3, 3(r3)
/* 8000AB38 00006798  4E 80 00 20 */	blr

.global func_8000AB3C
func_8000AB3C:
/* 8000AB3C 0000679C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8000AB40 000067A0  7C 08 02 A6 */	mflr r0
/* 8000AB44 000067A4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8000AB48 000067A8  80 6D A3 80 */	lwz r3, lbl_8063F640-_SDA_BASE_(r13)
/* 8000AB4C 000067AC  48 21 BC F1 */	bl func_8022683C
/* 8000AB50 000067B0  7C 64 1B 78 */	mr r4, r3
/* 8000AB54 000067B4  80 6D A3 80 */	lwz r3, lbl_8063F640-_SDA_BASE_(r13)
/* 8000AB58 000067B8  48 21 CA A5 */	bl func_802275FC
/* 8000AB5C 000067BC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8000AB60 000067C0  7C 08 03 A6 */	mtlr r0
/* 8000AB64 000067C4  38 21 00 10 */	addi r1, r1, 0x10
/* 8000AB68 000067C8  4E 80 00 20 */	blr

.global func_8000AB6C
func_8000AB6C:
/* 8000AB6C 000067CC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8000AB70 000067D0  7C 08 02 A6 */	mflr r0
/* 8000AB74 000067D4  3C A0 80 40 */	lis r5, lbl_80405F38@ha
/* 8000AB78 000067D8  3C 80 80 45 */	lis r4, lbl_8044E5B0@ha
/* 8000AB7C 000067DC  90 01 00 24 */	stw r0, 0x24(r1)
/* 8000AB80 000067E0  38 A5 5F 38 */	addi r5, r5, lbl_80405F38@l
/* 8000AB84 000067E4  38 84 E5 B0 */	addi r4, r4, lbl_8044E5B0@l
/* 8000AB88 000067E8  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8000AB8C 000067EC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8000AB90 000067F0  3F C0 80 45 */	lis r30, lbl_8044E5E0@ha
/* 8000AB94 000067F4  3B DE E5 E0 */	addi r30, r30, lbl_8044E5E0@l
/* 8000AB98 000067F8  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8000AB9C 000067FC  93 81 00 10 */	stw r28, 0x10(r1)
/* 8000ABA0 00006800  7C 7C 1B 78 */	mr r28, r3
/* 8000ABA4 00006804  90 A3 00 00 */	stw r5, 0(r3)
/* 8000ABA8 00006808  90 83 00 04 */	stw r4, 4(r3)
/* 8000ABAC 0000680C  83 E4 00 00 */	lwz r31, 0(r4)
/* 8000ABB0 00006810  57 E3 18 38 */	slwi r3, r31, 3
/* 8000ABB4 00006814  38 63 00 10 */	addi r3, r3, 0x10
/* 8000ABB8 00006818  48 1C FE BD */	bl __nwa__FUl
/* 8000ABBC 0000681C  3C 80 80 01 */	lis r4, lbl_8000AC34@ha
/* 8000ABC0 00006820  7F E7 FB 78 */	mr r7, r31
/* 8000ABC4 00006824  38 84 AC 34 */	addi r4, r4, lbl_8000AC34@l
/* 8000ABC8 00006828  38 A0 00 00 */	li r5, 0
/* 8000ABCC 0000682C  38 C0 00 08 */	li r6, 8
/* 8000ABD0 00006830  48 1B C0 D9 */	bl __construct_new_array
/* 8000ABD4 00006834  90 7C 00 08 */	stw r3, 8(r28)
/* 8000ABD8 00006838  3B A0 00 00 */	li r29, 0
/* 8000ABDC 0000683C  3B E0 00 00 */	li r31, 0
/* 8000ABE0 00006840  48 00 00 20 */	b lbl_8000AC00
lbl_8000ABE4:
/* 8000ABE4 00006844  80 1C 00 08 */	lwz r0, 8(r28)
/* 8000ABE8 00006848  7F C4 F3 78 */	mr r4, r30
/* 8000ABEC 0000684C  7C 60 FA 14 */	add r3, r0, r31
/* 8000ABF0 00006850  4B FF FE D5 */	bl func_8000AAC4
/* 8000ABF4 00006854  3B FF 00 08 */	addi r31, r31, 8
/* 8000ABF8 00006858  3B BD 00 01 */	addi r29, r29, 1
/* 8000ABFC 0000685C  3B DE 00 14 */	addi r30, r30, 0x14
lbl_8000AC00:
/* 8000AC00 00006860  80 7C 00 04 */	lwz r3, 4(r28)
/* 8000AC04 00006864  80 03 00 00 */	lwz r0, 0(r3)
/* 8000AC08 00006868  7C 1D 00 40 */	cmplw r29, r0
/* 8000AC0C 0000686C  41 80 FF D8 */	blt lbl_8000ABE4
/* 8000AC10 00006870  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8000AC14 00006874  7F 83 E3 78 */	mr r3, r28
/* 8000AC18 00006878  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8000AC1C 0000687C  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8000AC20 00006880  83 81 00 10 */	lwz r28, 0x10(r1)
/* 8000AC24 00006884  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8000AC28 00006888  7C 08 03 A6 */	mtlr r0
/* 8000AC2C 0000688C  38 21 00 20 */	addi r1, r1, 0x20
/* 8000AC30 00006890  4E 80 00 20 */	blr
lbl_8000AC34:
/* 8000AC34 00006894  3C 80 80 40 */	lis r4, lbl_80405F60@ha
/* 8000AC38 00006898  38 84 5F 60 */	addi r4, r4, lbl_80405F60@l
/* 8000AC3C 0000689C  90 83 00 00 */	stw r4, 0(r3)
/* 8000AC40 000068A0  4E 80 00 20 */	blr

.global func_8000AC44
func_8000AC44:
/* 8000AC44 000068A4  80 A3 00 04 */	lwz r5, 4(r3)
/* 8000AC48 000068A8  38 C0 00 00 */	li r6, 0
/* 8000AC4C 000068AC  80 E3 00 08 */	lwz r7, 8(r3)
/* 8000AC50 000068B0  80 05 00 00 */	lwz r0, 0(r5)
/* 8000AC54 000068B4  7C 09 03 A6 */	mtctr r0
/* 8000AC58 000068B8  28 00 00 00 */	cmplwi r0, 0
/* 8000AC5C 000068BC  40 81 00 30 */	ble lbl_8000AC8C
lbl_8000AC60:
/* 8000AC60 000068C0  80 03 00 08 */	lwz r0, 8(r3)
/* 8000AC64 000068C4  7C A0 32 14 */	add r5, r0, r6
/* 8000AC68 000068C8  80 A5 00 04 */	lwz r5, 4(r5)
/* 8000AC6C 000068CC  A0 05 00 06 */	lhz r0, 6(r5)
/* 8000AC70 000068D0  7C 04 00 40 */	cmplw r4, r0
/* 8000AC74 000068D4  40 82 00 0C */	bne lbl_8000AC80
/* 8000AC78 000068D8  7C E3 3B 78 */	mr r3, r7
/* 8000AC7C 000068DC  4E 80 00 20 */	blr
lbl_8000AC80:
/* 8000AC80 000068E0  38 C6 00 08 */	addi r6, r6, 8
/* 8000AC84 000068E4  38 E7 00 08 */	addi r7, r7, 8
/* 8000AC88 000068E8  42 00 FF D8 */	bdnz lbl_8000AC60
lbl_8000AC8C:
/* 8000AC8C 000068EC  38 60 00 00 */	li r3, 0
/* 8000AC90 000068F0  4E 80 00 20 */	blr

.global func_8000AC94
func_8000AC94:
/* 8000AC94 000068F4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8000AC98 000068F8  7C 08 02 A6 */	mflr r0
/* 8000AC9C 000068FC  38 60 00 0C */	li r3, 0xc
/* 8000ACA0 00006900  90 01 00 14 */	stw r0, 0x14(r1)
/* 8000ACA4 00006904  48 1C FD 8D */	bl __nw__FUl
/* 8000ACA8 00006908  2C 03 00 00 */	cmpwi r3, 0
/* 8000ACAC 0000690C  41 82 00 08 */	beq lbl_8000ACB4
/* 8000ACB0 00006910  4B FF FE BD */	bl func_8000AB6C
lbl_8000ACB4:
/* 8000ACB4 00006914  90 6D 96 88 */	stw r3, lbl_8063E948-_SDA_BASE_(r13)
/* 8000ACB8 00006918  7C 65 1B 78 */	mr r5, r3
/* 8000ACBC 0000691C  38 60 00 04 */	li r3, 4
/* 8000ACC0 00006920  38 80 00 20 */	li r4, 0x20
/* 8000ACC4 00006924  48 21 C9 E1 */	bl func_802276A4
/* 8000ACC8 00006928  80 6D A3 80 */	lwz r3, lbl_8063F640-_SDA_BASE_(r13)
/* 8000ACCC 0000692C  38 80 00 01 */	li r4, 1
/* 8000ACD0 00006930  48 21 B9 0D */	bl func_802265DC
/* 8000ACD4 00006934  4B FF FC E5 */	bl func_8000A9B8
/* 8000ACD8 00006938  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8000ACDC 0000693C  7C 08 03 A6 */	mtlr r0
/* 8000ACE0 00006940  38 21 00 10 */	addi r1, r1, 0x10
/* 8000ACE4 00006944  4E 80 00 20 */	blr
lbl_8000ACE8:
/* 8000ACE8 00006948  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8000ACEC 0000694C  7C 08 02 A6 */	mflr r0
/* 8000ACF0 00006950  90 01 00 14 */	stw r0, 0x14(r1)
lbl_8000ACF4:
/* 8000ACF4 00006954  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 8000ACF8 00006958  48 21 98 91 */	bl func_80224588
/* 8000ACFC 0000695C  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 8000AD00 00006960  48 21 98 89 */	bl func_80224588
/* 8000AD04 00006964  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 8000AD08 00006968  48 21 98 81 */	bl func_80224588
/* 8000AD0C 0000696C  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 8000AD10 00006970  48 21 98 79 */	bl func_80224588
/* 8000AD14 00006974  4B FF FF E0 */	b lbl_8000ACF4
lbl_8000AD18:
/* 8000AD18 00006978  3C A0 80 01 */	lis r5, lbl_8000ACE8@ha
/* 8000AD1C 0000697C  7C 64 1B 78 */	mr r4, r3
/* 8000AD20 00006980  38 65 AC E8 */	addi r3, r5, lbl_8000ACE8@l
/* 8000AD24 00006984  38 C0 00 09 */	li r6, 9
/* 8000AD28 00006988  38 A0 20 00 */	li r5, 0x2000
/* 8000AD2C 0000698C  38 E0 00 01 */	li r7, 1
/* 8000AD30 00006990  48 21 C8 44 */	b func_80227574
lbl_8000AD34:
/* 8000AD34 00006994  88 0D 96 3C */	lbz r0, lbl_8063E8FC-_SDA_BASE_(r13)
/* 8000AD38 00006998  2C 00 00 00 */	cmpwi r0, 0
/* 8000AD3C 0000699C  4D 82 00 20 */	beqlr
/* 8000AD40 000069A0  80 6D A3 80 */	lwz r3, lbl_8063F640-_SDA_BASE_(r13)
/* 8000AD44 000069A4  38 80 07 D0 */	li r4, 0x7d0
/* 8000AD48 000069A8  48 21 BA 60 */	b func_802267A8
/* 8000AD4C 000069AC  4E 80 00 20 */	blr
lbl_8000AD50:
/* 8000AD50 000069B0  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 8000AD54 000069B4  38 80 00 00 */	li r4, 0
/* 8000AD58 000069B8  48 21 98 2C */	b func_80224584

.global func_8000AD5C
func_8000AD5C:
/* 8000AD5C 000069BC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8000AD60 000069C0  7C 08 02 A6 */	mflr r0
/* 8000AD64 000069C4  3C A0 80 01 */	lis r5, lbl_8000AD18@ha
/* 8000AD68 000069C8  3C C0 80 01 */	lis r6, lbl_8000AD34@ha
/* 8000AD6C 000069CC  90 01 00 14 */	stw r0, 0x14(r1)
/* 8000AD70 000069D0  3C E0 80 01 */	lis r7, lbl_8000AD50@ha
/* 8000AD74 000069D4  38 A5 AD 18 */	addi r5, r5, lbl_8000AD18@l
/* 8000AD78 000069D8  38 C6 AD 34 */	addi r6, r6, lbl_8000AD34@l
/* 8000AD7C 000069DC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8000AD80 000069E0  3F E0 80 47 */	lis r31, lbl_80474F0C@ha
/* 8000AD84 000069E4  38 7F 4F 0C */	addi r3, r31, lbl_80474F0C@l
/* 8000AD88 000069E8  38 E7 AD 50 */	addi r7, r7, lbl_8000AD50@l
/* 8000AD8C 000069EC  38 80 00 01 */	li r4, 1
/* 8000AD90 000069F0  48 21 B1 05 */	bl func_80225E94
/* 8000AD94 000069F4  3C 80 80 22 */	lis r4, func_80225EE0@ha
/* 8000AD98 000069F8  3C A0 80 47 */	lis r5, lbl_80474F00@ha
/* 8000AD9C 000069FC  38 7F 4F 0C */	addi r3, r31, 0x4f0c
/* 8000ADA0 00006A00  38 84 5E E0 */	addi r4, r4, func_80225EE0@l
/* 8000ADA4 00006A04  38 A5 4F 00 */	addi r5, r5, lbl_80474F00@l
/* 8000ADA8 00006A08  48 1B BE A1 */	bl __register_global_object_tmp
/* 8000ADAC 00006A0C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8000ADB0 00006A10  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8000ADB4 00006A14  7C 08 03 A6 */	mtlr r0
/* 8000ADB8 00006A18  38 21 00 10 */	addi r1, r1, 0x10
/* 8000ADBC 00006A1C  4E 80 00 20 */	blr