summaryrefslogtreecommitdiff
path: root/asm/code_8021D0E0.s
blob: 18754a8c912d84923591d6ba3ace820d21ba8342 (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
.include "macros.inc"

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

.global func_8021D0E0
func_8021D0E0:
/* 8021D0E0 00218D40  3C 80 80 42 */	lis r4, lbl_80423B38@ha
/* 8021D0E4 00218D44  38 00 00 00 */	li r0, 0
/* 8021D0E8 00218D48  38 84 3B 38 */	addi r4, r4, lbl_80423B38@l
/* 8021D0EC 00218D4C  90 03 00 00 */	stw r0, 0(r3)
/* 8021D0F0 00218D50  90 83 00 0C */	stw r4, 0xc(r3)
/* 8021D0F4 00218D54  90 03 00 04 */	stw r0, 4(r3)
/* 8021D0F8 00218D58  98 03 00 08 */	stb r0, 8(r3)
/* 8021D0FC 00218D5C  80 8D A2 90 */	lwz r4, lbl_8063F550-_SDA_BASE_(r13)
/* 8021D100 00218D60  2C 04 00 00 */	cmpwi r4, 0
/* 8021D104 00218D64  41 82 00 20 */	beq lbl_8021D124
/* 8021D108 00218D68  48 00 00 08 */	b lbl_8021D110
lbl_8021D10C:
/* 8021D10C 00218D6C  7C 04 03 78 */	mr r4, r0
lbl_8021D110:
/* 8021D110 00218D70  80 04 00 00 */	lwz r0, 0(r4)
/* 8021D114 00218D74  2C 00 00 00 */	cmpwi r0, 0
/* 8021D118 00218D78  40 82 FF F4 */	bne lbl_8021D10C
/* 8021D11C 00218D7C  90 64 00 00 */	stw r3, 0(r4)
/* 8021D120 00218D80  4E 80 00 20 */	blr
lbl_8021D124:
/* 8021D124 00218D84  90 6D A2 90 */	stw r3, lbl_8063F550-_SDA_BASE_(r13)
/* 8021D128 00218D88  4E 80 00 20 */	blr
/* 8021D12C 00218D8C  38 60 00 01 */	li r3, 1
/* 8021D130 00218D90  4E 80 00 20 */	blr
/* 8021D134 00218D94  4E 80 00 20 */	blr
/* 8021D138 00218D98  38 60 00 01 */	li r3, 1
/* 8021D13C 00218D9C  4E 80 00 20 */	blr
/* 8021D140 00218DA0  4E 80 00 20 */	blr

.global func_8021D144
func_8021D144:
/* 8021D144 00218DA4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8021D148 00218DA8  7C 08 02 A6 */	mflr r0
/* 8021D14C 00218DAC  2C 03 00 00 */	cmpwi r3, 0
/* 8021D150 00218DB0  90 01 00 14 */	stw r0, 0x14(r1)
/* 8021D154 00218DB4  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8021D158 00218DB8  7C 7F 1B 78 */	mr r31, r3
/* 8021D15C 00218DBC  41 82 00 5C */	beq lbl_8021D1B8
/* 8021D160 00218DC0  80 AD A2 90 */	lwz r5, lbl_8063F550-_SDA_BASE_(r13)
/* 8021D164 00218DC4  7C 05 18 40 */	cmplw r5, r3
/* 8021D168 00218DC8  40 82 00 24 */	bne lbl_8021D18C
/* 8021D16C 00218DCC  80 03 00 00 */	lwz r0, 0(r3)
/* 8021D170 00218DD0  90 0D A2 90 */	stw r0, lbl_8063F550-_SDA_BASE_(r13)
/* 8021D174 00218DD4  48 00 00 28 */	b lbl_8021D19C
/* 8021D178 00218DD8  48 00 00 14 */	b lbl_8021D18C
lbl_8021D17C:
/* 8021D17C 00218DDC  80 05 00 00 */	lwz r0, 0(r5)
/* 8021D180 00218DE0  7C 00 18 40 */	cmplw r0, r3
/* 8021D184 00218DE4  41 82 00 10 */	beq lbl_8021D194
/* 8021D188 00218DE8  7C 05 03 78 */	mr r5, r0
lbl_8021D18C:
/* 8021D18C 00218DEC  2C 05 00 00 */	cmpwi r5, 0
/* 8021D190 00218DF0  40 82 FF EC */	bne lbl_8021D17C
lbl_8021D194:
/* 8021D194 00218DF4  80 03 00 00 */	lwz r0, 0(r3)
/* 8021D198 00218DF8  90 05 00 00 */	stw r0, 0(r5)
lbl_8021D19C:
/* 8021D19C 00218DFC  38 00 00 00 */	li r0, 0
/* 8021D1A0 00218E00  2C 04 00 00 */	cmpwi r4, 0
/* 8021D1A4 00218E04  90 03 00 00 */	stw r0, 0(r3)
/* 8021D1A8 00218E08  40 81 00 10 */	ble lbl_8021D1B8
/* 8021D1AC 00218E0C  80 6D 96 38 */	lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
/* 8021D1B0 00218E10  7F E4 FB 78 */	mr r4, r31
/* 8021D1B4 00218E14  4B FB DB 95 */	bl func_801DAD48
lbl_8021D1B8:
/* 8021D1B8 00218E18  7F E3 FB 78 */	mr r3, r31
/* 8021D1BC 00218E1C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8021D1C0 00218E20  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8021D1C4 00218E24  7C 08 03 A6 */	mtlr r0
/* 8021D1C8 00218E28  38 21 00 10 */	addi r1, r1, 0x10
/* 8021D1CC 00218E2C  4E 80 00 20 */	blr

.global func_8021D1D0
func_8021D1D0:
/* 8021D1D0 00218E30  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8021D1D4 00218E34  7C 08 02 A6 */	mflr r0
/* 8021D1D8 00218E38  90 01 00 24 */	stw r0, 0x24(r1)
/* 8021D1DC 00218E3C  DB E1 00 18 */	stfd f31, 0x18(r1)
/* 8021D1E0 00218E40  FF E0 08 90 */	fmr f31, f1
/* 8021D1E4 00218E44  93 E1 00 14 */	stw r31, 0x14(r1)
/* 8021D1E8 00218E48  3B E0 00 00 */	li r31, 0
/* 8021D1EC 00218E4C  93 C1 00 10 */	stw r30, 0x10(r1)
/* 8021D1F0 00218E50  93 A1 00 0C */	stw r29, 0xc(r1)
/* 8021D1F4 00218E54  83 AD A2 90 */	lwz r29, lbl_8063F550-_SDA_BASE_(r13)
/* 8021D1F8 00218E58  48 00 00 74 */	b lbl_8021D26C
lbl_8021D1FC:
/* 8021D1FC 00218E5C  88 1D 00 08 */	lbz r0, 8(r29)
/* 8021D200 00218E60  2C 00 00 00 */	cmpwi r0, 0
/* 8021D204 00218E64  41 82 00 64 */	beq lbl_8021D268
/* 8021D208 00218E68  81 9D 00 0C */	lwz r12, 0xc(r29)
/* 8021D20C 00218E6C  FC 20 F8 90 */	fmr f1, f31
/* 8021D210 00218E70  7F A3 EB 78 */	mr r3, r29
/* 8021D214 00218E74  81 8C 00 10 */	lwz r12, 0x10(r12)
/* 8021D218 00218E78  7D 89 03 A6 */	mtctr r12
/* 8021D21C 00218E7C  4E 80 04 21 */	bctrl
/* 8021D220 00218E80  2C 03 00 00 */	cmpwi r3, 0
/* 8021D224 00218E84  40 82 00 44 */	bne lbl_8021D268
/* 8021D228 00218E88  88 1D 00 08 */	lbz r0, 8(r29)
/* 8021D22C 00218E8C  2C 00 00 00 */	cmpwi r0, 0
/* 8021D230 00218E90  41 82 00 38 */	beq lbl_8021D268
/* 8021D234 00218E94  83 DD 00 04 */	lwz r30, 4(r29)
/* 8021D238 00218E98  57 C3 86 3E */	rlwinm r3, r30, 0x10, 0x18, 0x1f
/* 8021D23C 00218E9C  48 01 DE 1D */	bl func_8023B058
/* 8021D240 00218EA0  2C 03 00 00 */	cmpwi r3, 0
/* 8021D244 00218EA4  41 82 00 0C */	beq lbl_8021D250
/* 8021D248 00218EA8  7F C4 F3 78 */	mr r4, r30
/* 8021D24C 00218EAC  48 01 E1 D5 */	bl func_8023B420
lbl_8021D250:
/* 8021D250 00218EB0  81 9D 00 0C */	lwz r12, 0xc(r29)
/* 8021D254 00218EB4  7F A3 EB 78 */	mr r3, r29
/* 8021D258 00218EB8  81 8C 00 0C */	lwz r12, 0xc(r12)
/* 8021D25C 00218EBC  7D 89 03 A6 */	mtctr r12
/* 8021D260 00218EC0  4E 80 04 21 */	bctrl
/* 8021D264 00218EC4  9B FD 00 08 */	stb r31, 8(r29)
lbl_8021D268:
/* 8021D268 00218EC8  83 BD 00 00 */	lwz r29, 0(r29)
lbl_8021D26C:
/* 8021D26C 00218ECC  2C 1D 00 00 */	cmpwi r29, 0
/* 8021D270 00218ED0  40 82 FF 8C */	bne lbl_8021D1FC
/* 8021D274 00218ED4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8021D278 00218ED8  CB E1 00 18 */	lfd f31, 0x18(r1)
/* 8021D27C 00218EDC  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 8021D280 00218EE0  83 C1 00 10 */	lwz r30, 0x10(r1)
/* 8021D284 00218EE4  83 A1 00 0C */	lwz r29, 0xc(r1)
/* 8021D288 00218EE8  7C 08 03 A6 */	mtlr r0
/* 8021D28C 00218EEC  38 21 00 20 */	addi r1, r1, 0x20
/* 8021D290 00218EF0  4E 80 00 20 */	blr

.global func_8021D294
func_8021D294:
/* 8021D294 00218EF4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8021D298 00218EF8  7C 08 02 A6 */	mflr r0
/* 8021D29C 00218EFC  90 01 00 24 */	stw r0, 0x24(r1)
/* 8021D2A0 00218F00  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8021D2A4 00218F04  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8021D2A8 00218F08  7C 7E 1B 78 */	mr r30, r3
/* 8021D2AC 00218F0C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8021D2B0 00218F10  80 AD A3 D8 */	lwz r5, render_context_ptr-_SDA_BASE_(r13)
/* 8021D2B4 00218F14  80 85 16 38 */	lwz r4, 0x1638(r5)
/* 8021D2B8 00218F18  88 64 0A 87 */	lbz r3, 0xa87(r4)
/* 8021D2BC 00218F1C  7C 03 00 D0 */	neg r0, r3
/* 8021D2C0 00218F20  7C 00 1B 78 */	or r0, r0, r3
/* 8021D2C4 00218F24  54 1F 0F FF */	rlwinm. r31, r0, 1, 0x1f, 0x1f
/* 8021D2C8 00218F28  41 82 00 2C */	beq lbl_8021D2F4
/* 8021D2CC 00218F2C  38 00 00 00 */	li r0, 0
/* 8021D2D0 00218F30  98 04 0A 87 */	stb r0, 0xa87(r4)
/* 8021D2D4 00218F34  80 65 16 38 */	lwz r3, 0x1638(r5)
/* 8021D2D8 00218F38  80 03 00 64 */	lwz r0, 0x64(r3)
/* 8021D2DC 00218F3C  60 00 00 40 */	ori r0, r0, 0x40
/* 8021D2E0 00218F40  90 03 00 64 */	stw r0, 0x64(r3)
/* 8021D2E4 00218F44  80 65 16 38 */	lwz r3, 0x1638(r5)
/* 8021D2E8 00218F48  80 03 00 00 */	lwz r0, 0(r3)
/* 8021D2EC 00218F4C  60 00 00 40 */	ori r0, r0, 0x40
/* 8021D2F0 00218F50  90 03 00 00 */	stw r0, 0(r3)
lbl_8021D2F4:
/* 8021D2F4 00218F54  83 AD A2 90 */	lwz r29, lbl_8063F550-_SDA_BASE_(r13)
/* 8021D2F8 00218F58  48 00 00 84 */	b lbl_8021D37C
lbl_8021D2FC:
/* 8021D2FC 00218F5C  88 1D 00 08 */	lbz r0, 8(r29)
/* 8021D300 00218F60  2C 00 00 00 */	cmpwi r0, 0
/* 8021D304 00218F64  41 82 00 74 */	beq lbl_8021D378
/* 8021D308 00218F68  80 8D A4 70 */	lwz r4, lbl_8063F730-_SDA_BASE_(r13)
/* 8021D30C 00218F6C  2C 04 00 00 */	cmpwi r4, 0
/* 8021D310 00218F70  40 82 00 0C */	bne lbl_8021D31C
/* 8021D314 00218F74  38 60 00 00 */	li r3, 0
/* 8021D318 00218F78  48 00 00 3C */	b lbl_8021D354
lbl_8021D31C:
/* 8021D31C 00218F7C  80 A4 00 14 */	lwz r5, 0x14(r4)
/* 8021D320 00218F80  2C 05 00 00 */	cmpwi r5, 0
/* 8021D324 00218F84  41 82 00 2C */	beq lbl_8021D350
/* 8021D328 00218F88  80 65 00 00 */	lwz r3, 0(r5)
/* 8021D32C 00218F8C  80 04 00 00 */	lwz r0, 0(r4)
/* 8021D330 00218F90  80 83 00 00 */	lwz r4, 0(r3)
/* 8021D334 00218F94  80 65 00 04 */	lwz r3, 4(r5)
/* 8021D338 00218F98  54 05 80 1E */	slwi r5, r0, 0x10
/* 8021D33C 00218F9C  54 84 40 2E */	slwi r4, r4, 8
/* 8021D340 00218FA0  88 03 00 04 */	lbz r0, 4(r3)
/* 8021D344 00218FA4  7C A3 23 78 */	or r3, r5, r4
/* 8021D348 00218FA8  7C 63 03 78 */	or r3, r3, r0
/* 8021D34C 00218FAC  48 00 00 08 */	b lbl_8021D354
lbl_8021D350:
/* 8021D350 00218FB0  38 60 00 00 */	li r3, 0
lbl_8021D354:
/* 8021D354 00218FB4  80 1D 00 04 */	lwz r0, 4(r29)
/* 8021D358 00218FB8  7C 00 18 40 */	cmplw r0, r3
/* 8021D35C 00218FBC  40 82 00 1C */	bne lbl_8021D378
/* 8021D360 00218FC0  81 9D 00 0C */	lwz r12, 0xc(r29)
/* 8021D364 00218FC4  7F A3 EB 78 */	mr r3, r29
/* 8021D368 00218FC8  7F C4 F3 78 */	mr r4, r30
/* 8021D36C 00218FCC  81 8C 00 14 */	lwz r12, 0x14(r12)
/* 8021D370 00218FD0  7D 89 03 A6 */	mtctr r12
/* 8021D374 00218FD4  4E 80 04 21 */	bctrl
lbl_8021D378:
/* 8021D378 00218FD8  83 BD 00 00 */	lwz r29, 0(r29)
lbl_8021D37C:
/* 8021D37C 00218FDC  2C 1D 00 00 */	cmpwi r29, 0
/* 8021D380 00218FE0  40 82 FF 7C */	bne lbl_8021D2FC
/* 8021D384 00218FE4  2C 1F 00 00 */	cmpwi r31, 0
/* 8021D388 00218FE8  41 82 00 60 */	beq lbl_8021D3E8
/* 8021D38C 00218FEC  80 8D A3 D8 */	lwz r4, render_context_ptr-_SDA_BASE_(r13)
/* 8021D390 00218FF0  38 00 00 01 */	li r0, 1
/* 8021D394 00218FF4  80 64 16 38 */	lwz r3, 0x1638(r4)
/* 8021D398 00218FF8  98 03 0A 87 */	stb r0, 0xa87(r3)
/* 8021D39C 00218FFC  80 64 16 38 */	lwz r3, 0x1638(r4)
/* 8021D3A0 00219000  80 03 00 64 */	lwz r0, 0x64(r3)
/* 8021D3A4 00219004  60 00 00 40 */	ori r0, r0, 0x40
/* 8021D3A8 00219008  90 03 00 64 */	stw r0, 0x64(r3)
/* 8021D3AC 0021900C  80 64 16 38 */	lwz r3, 0x1638(r4)
/* 8021D3B0 00219010  80 03 00 64 */	lwz r0, 0x64(r3)
/* 8021D3B4 00219014  60 00 02 00 */	ori r0, r0, 0x200
/* 8021D3B8 00219018  90 03 00 64 */	stw r0, 0x64(r3)
/* 8021D3BC 0021901C  80 64 16 38 */	lwz r3, 0x1638(r4)
/* 8021D3C0 00219020  88 03 0A 86 */	lbz r0, 0xa86(r3)
/* 8021D3C4 00219024  2C 00 00 00 */	cmpwi r0, 0
/* 8021D3C8 00219028  41 82 00 10 */	beq lbl_8021D3D8
/* 8021D3CC 0021902C  80 03 00 64 */	lwz r0, 0x64(r3)
/* 8021D3D0 00219030  60 00 01 00 */	ori r0, r0, 0x100
/* 8021D3D4 00219034  90 03 00 64 */	stw r0, 0x64(r3)
lbl_8021D3D8:
/* 8021D3D8 00219038  80 64 16 38 */	lwz r3, 0x1638(r4)
/* 8021D3DC 0021903C  80 03 00 00 */	lwz r0, 0(r3)
/* 8021D3E0 00219040  60 00 00 40 */	ori r0, r0, 0x40
/* 8021D3E4 00219044  90 03 00 00 */	stw r0, 0(r3)
lbl_8021D3E8:
/* 8021D3E8 00219048  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8021D3EC 0021904C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8021D3F0 00219050  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8021D3F4 00219054  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8021D3F8 00219058  7C 08 03 A6 */	mtlr r0
/* 8021D3FC 0021905C  38 21 00 20 */	addi r1, r1, 0x20
/* 8021D400 00219060  4E 80 00 20 */	blr

.global func_8021D404
func_8021D404:
/* 8021D404 00219064  38 A0 00 01 */	li r5, 1
/* 8021D408 00219068  38 6D A2 88 */	addi r3, r13, lbl_8063F548-_SDA_BASE_
/* 8021D40C 0021906C  38 80 00 04 */	li r4, 4
/* 8021D410 00219070  38 00 00 00 */	li r0, 0
/* 8021D414 00219074  98 AD A2 88 */	stb r5, lbl_8063F548-_SDA_BASE_(r13)
/* 8021D418 00219078  B0 83 00 02 */	sth r4, 2(r3)
/* 8021D41C 0021907C  98 03 00 04 */	stb r0, 4(r3)
/* 8021D420 00219080  4E 80 00 20 */	blr