summaryrefslogtreecommitdiff
path: root/asm/code_8025B164.s
blob: 8d3edc89fcea300efe070eae991363221a640148 (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
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
.include "macros.inc"

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

.global func_8025B164
func_8025B164:
/* 8025B164 00256DC4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8025B168 00256DC8  7C 08 02 A6 */	mflr r0
/* 8025B16C 00256DCC  3C 80 01 F3 */	lis r4, 0x01F34C7C@ha
/* 8025B170 00256DD0  3C A0 80 26 */	lis r5, lbl_8025B25C@ha
/* 8025B174 00256DD4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8025B178 00256DD8  38 84 4C 7C */	addi r4, r4, 0x01F34C7C@l
/* 8025B17C 00256DDC  38 A5 B2 5C */	addi r5, r5, lbl_8025B25C@l
/* 8025B180 00256DE0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8025B184 00256DE4  7C 7F 1B 78 */	mr r31, r3
/* 8025B188 00256DE8  80 03 01 98 */	lwz r0, 0x198(r3)
/* 8025B18C 00256DEC  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 8025B190 00256DF0  2C 00 00 00 */	cmpwi r0, 0
/* 8025B194 00256DF4  41 82 00 0C */	beq lbl_8025B1A0
/* 8025B198 00256DF8  3C A0 80 26 */	lis r5, lbl_8025B368@ha
/* 8025B19C 00256DFC  38 A5 B3 68 */	addi r5, r5, lbl_8025B368@l
lbl_8025B1A0:
/* 8025B1A0 00256E00  7F E6 FB 78 */	mr r6, r31
/* 8025B1A4 00256E04  38 E0 10 00 */	li r7, 0x1000
/* 8025B1A8 00256E08  39 00 00 0B */	li r8, 0xb
/* 8025B1AC 00256E0C  39 20 00 01 */	li r9, 1
/* 8025B1B0 00256E10  4B FC 90 65 */	bl func_80224214
/* 8025B1B4 00256E14  2C 03 00 00 */	cmpwi r3, 0
/* 8025B1B8 00256E18  90 7F 02 04 */	stw r3, 0x204(r31)
/* 8025B1BC 00256E1C  40 82 00 0C */	bne lbl_8025B1C8
/* 8025B1C0 00256E20  38 60 00 00 */	li r3, 0
/* 8025B1C4 00256E24  48 00 00 28 */	b lbl_8025B1EC
lbl_8025B1C8:
/* 8025B1C8 00256E28  38 7F 03 10 */	addi r3, r31, 0x310
/* 8025B1CC 00256E2C  38 9F 03 30 */	addi r4, r31, 0x330
/* 8025B1D0 00256E30  38 A0 00 03 */	li r5, 3
/* 8025B1D4 00256E34  48 01 3D 25 */	bl OSInitMessageQueue
/* 8025B1D8 00256E38  38 7F 03 3C */	addi r3, r31, 0x33c
/* 8025B1DC 00256E3C  38 9F 03 5C */	addi r4, r31, 0x35c
/* 8025B1E0 00256E40  38 A0 00 03 */	li r5, 3
/* 8025B1E4 00256E44  48 01 3D 15 */	bl OSInitMessageQueue
/* 8025B1E8 00256E48  38 60 00 01 */	li r3, 1
lbl_8025B1EC:
/* 8025B1EC 00256E4C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8025B1F0 00256E50  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8025B1F4 00256E54  7C 08 03 A6 */	mtlr r0
/* 8025B1F8 00256E58  38 21 00 10 */	addi r1, r1, 0x10
/* 8025B1FC 00256E5C  4E 80 00 20 */	blr

.global func_8025B200
func_8025B200:
/* 8025B200 00256E60  80 63 02 04 */	lwz r3, 0x204(r3)
/* 8025B204 00256E64  2C 03 00 00 */	cmpwi r3, 0
/* 8025B208 00256E68  4D 82 00 20 */	beqlr
/* 8025B20C 00256E6C  4B FC 94 8C */	b func_80224698
/* 8025B210 00256E70  4E 80 00 20 */	blr

.global func_8025B214
func_8025B214:
/* 8025B214 00256E74  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8025B218 00256E78  7C 08 02 A6 */	mflr r0
/* 8025B21C 00256E7C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8025B220 00256E80  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8025B224 00256E84  7C 7F 1B 78 */	mr r31, r3
/* 8025B228 00256E88  80 03 02 04 */	lwz r0, 0x204(r3)
/* 8025B22C 00256E8C  2C 00 00 00 */	cmpwi r0, 0
/* 8025B230 00256E90  41 82 00 18 */	beq lbl_8025B248
/* 8025B234 00256E94  7C 03 03 78 */	mr r3, r0
/* 8025B238 00256E98  38 80 00 00 */	li r4, 0
/* 8025B23C 00256E9C  4B FC 94 71 */	bl func_802246AC
/* 8025B240 00256EA0  38 00 00 00 */	li r0, 0
/* 8025B244 00256EA4  90 1F 02 04 */	stw r0, 0x204(r31)
lbl_8025B248:
/* 8025B248 00256EA8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8025B24C 00256EAC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8025B250 00256EB0  7C 08 03 A6 */	mtlr r0
/* 8025B254 00256EB4  38 21 00 10 */	addi r1, r1, 0x10
/* 8025B258 00256EB8  4E 80 00 20 */	blr
lbl_8025B25C:
/* 8025B25C 00256EBC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8025B260 00256EC0  7C 08 02 A6 */	mflr r0
/* 8025B264 00256EC4  90 01 00 14 */	stw r0, 0x14(r1)
/* 8025B268 00256EC8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8025B26C 00256ECC  7C 7F 1B 78 */	mr r31, r3
/* 8025B270 00256ED0  93 C1 00 08 */	stw r30, 8(r1)
lbl_8025B274:
/* 8025B274 00256ED4  80 AD A3 D8 */	lwz r5, render_context_ptr-_SDA_BASE_(r13)
/* 8025B278 00256ED8  38 60 00 01 */	li r3, 1
/* 8025B27C 00256EDC  88 85 00 82 */	lbz r4, 0x82(r5)
/* 8025B280 00256EE0  2C 04 00 00 */	cmpwi r4, 0
/* 8025B284 00256EE4  40 82 00 14 */	bne lbl_8025B298
/* 8025B288 00256EE8  88 05 00 83 */	lbz r0, 0x83(r5)
/* 8025B28C 00256EEC  2C 00 00 00 */	cmpwi r0, 0
/* 8025B290 00256EF0  40 82 00 08 */	bne lbl_8025B298
/* 8025B294 00256EF4  38 60 00 00 */	li r3, 0
lbl_8025B298:
/* 8025B298 00256EF8  2C 03 00 00 */	cmpwi r3, 0
/* 8025B29C 00256EFC  40 82 00 C0 */	bne lbl_8025B35C
/* 8025B2A0 00256F00  2C 04 00 00 */	cmpwi r4, 0
/* 8025B2A4 00256F04  40 82 00 B8 */	bne lbl_8025B35C
/* 8025B2A8 00256F08  88 1F 00 6B */	lbz r0, 0x6b(r31)
/* 8025B2AC 00256F0C  2C 00 00 00 */	cmpwi r0, 0
/* 8025B2B0 00256F10  41 82 00 84 */	beq lbl_8025B334
/* 8025B2B4 00256F14  48 00 00 74 */	b lbl_8025B328
lbl_8025B2B8:
/* 8025B2B8 00256F18  7F E3 FB 78 */	mr r3, r31
/* 8025B2BC 00256F1C  4B FF FA 6D */	bl func_8025AD28
/* 8025B2C0 00256F20  80 83 00 04 */	lwz r4, 4(r3)
/* 8025B2C4 00256F24  7C 7E 1B 78 */	mr r30, r3
/* 8025B2C8 00256F28  80 1F 00 90 */	lwz r0, 0x90(r31)
/* 8025B2CC 00256F2C  80 BF 00 18 */	lwz r5, 0x18(r31)
/* 8025B2D0 00256F30  7C 84 02 14 */	add r4, r4, r0
/* 8025B2D4 00256F34  7C 64 2B 96 */	divwu r3, r4, r5
/* 8025B2D8 00256F38  38 05 FF FF */	addi r0, r5, -1
/* 8025B2DC 00256F3C  7C 63 29 D6 */	mullw r3, r3, r5
/* 8025B2E0 00256F40  7C 63 20 50 */	subf r3, r3, r4
/* 8025B2E4 00256F44  7C 03 00 40 */	cmplw r3, r0
/* 8025B2E8 00256F48  40 82 00 1C */	bne lbl_8025B304
/* 8025B2EC 00256F4C  88 1F 00 6E */	lbz r0, 0x6e(r31)
/* 8025B2F0 00256F50  2C 00 00 00 */	cmpwi r0, 0
/* 8025B2F4 00256F54  40 82 00 10 */	bne lbl_8025B304
/* 8025B2F8 00256F58  7F E3 FB 78 */	mr r3, r31
/* 8025B2FC 00256F5C  7F C4 F3 78 */	mr r4, r30
/* 8025B300 00256F60  48 00 01 E1 */	bl func_8025B4E0
lbl_8025B304:
/* 8025B304 00256F64  7F E3 FB 78 */	mr r3, r31
/* 8025B308 00256F68  7F C4 F3 78 */	mr r4, r30
/* 8025B30C 00256F6C  4B FF F9 D5 */	bl func_8025ACE0
/* 8025B310 00256F70  80 9F 00 A0 */	lwz r4, 0xa0(r31)
/* 8025B314 00256F74  80 7F 00 B8 */	lwz r3, 0xb8(r31)
/* 8025B318 00256F78  38 84 FF FF */	addi r4, r4, -1
/* 8025B31C 00256F7C  38 03 00 01 */	addi r0, r3, 1
/* 8025B320 00256F80  90 9F 00 A0 */	stw r4, 0xa0(r31)
/* 8025B324 00256F84  90 1F 00 B8 */	stw r0, 0xb8(r31)
lbl_8025B328:
/* 8025B328 00256F88  80 1F 00 A0 */	lwz r0, 0xa0(r31)
/* 8025B32C 00256F8C  2C 00 00 00 */	cmpwi r0, 0
/* 8025B330 00256F90  40 82 FF 88 */	bne lbl_8025B2B8
lbl_8025B334:
/* 8025B334 00256F94  7F E3 FB 78 */	mr r3, r31
/* 8025B338 00256F98  4B FF F9 F1 */	bl func_8025AD28
/* 8025B33C 00256F9C  7C 7E 1B 78 */	mr r30, r3
/* 8025B340 00256FA0  7F E3 FB 78 */	mr r3, r31
/* 8025B344 00256FA4  7F C4 F3 78 */	mr r4, r30
/* 8025B348 00256FA8  48 00 01 99 */	bl func_8025B4E0
/* 8025B34C 00256FAC  90 7F 00 A0 */	stw r3, 0xa0(r31)
/* 8025B350 00256FB0  7F E3 FB 78 */	mr r3, r31
/* 8025B354 00256FB4  7F C4 F3 78 */	mr r4, r30
/* 8025B358 00256FB8  4B FF F9 89 */	bl func_8025ACE0
lbl_8025B35C:
/* 8025B35C 00256FBC  80 7F 02 04 */	lwz r3, 0x204(r31)
/* 8025B360 00256FC0  4B FC 92 DD */	bl func_8022463C
/* 8025B364 00256FC4  4B FF FF 10 */	b lbl_8025B274
lbl_8025B368:
/* 8025B368 00256FC8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8025B36C 00256FCC  7C 08 02 A6 */	mflr r0
/* 8025B370 00256FD0  90 01 00 24 */	stw r0, 0x24(r1)
/* 8025B374 00256FD4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8025B378 00256FD8  7C 7F 1B 78 */	mr r31, r3
/* 8025B37C 00256FDC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8025B380 00256FE0  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8025B384 00256FE4  3B A0 00 00 */	li r29, 0
/* 8025B388 00256FE8  93 81 00 10 */	stw r28, 0x10(r1)
/* 8025B38C 00256FEC  3B 80 00 00 */	li r28, 0
/* 8025B390 00256FF0  83 C3 00 8C */	lwz r30, 0x8c(r3)
/* 8025B394 00256FF4  80 03 01 98 */	lwz r0, 0x198(r3)
/* 8025B398 00256FF8  90 01 00 08 */	stw r0, 8(r1)
lbl_8025B39C:
/* 8025B39C 00256FFC  80 AD A3 D8 */	lwz r5, render_context_ptr-_SDA_BASE_(r13)
/* 8025B3A0 00257000  38 60 00 01 */	li r3, 1
/* 8025B3A4 00257004  88 85 00 82 */	lbz r4, 0x82(r5)
/* 8025B3A8 00257008  2C 04 00 00 */	cmpwi r4, 0
/* 8025B3AC 0025700C  40 82 00 14 */	bne lbl_8025B3C0
/* 8025B3B0 00257010  88 05 00 83 */	lbz r0, 0x83(r5)
/* 8025B3B4 00257014  2C 00 00 00 */	cmpwi r0, 0
/* 8025B3B8 00257018  40 82 00 08 */	bne lbl_8025B3C0
/* 8025B3BC 0025701C  38 60 00 00 */	li r3, 0
lbl_8025B3C0:
/* 8025B3C0 00257020  2C 03 00 00 */	cmpwi r3, 0
/* 8025B3C4 00257024  40 82 01 10 */	bne lbl_8025B4D4
/* 8025B3C8 00257028  2C 04 00 00 */	cmpwi r4, 0
/* 8025B3CC 0025702C  40 82 01 08 */	bne lbl_8025B4D4
/* 8025B3D0 00257030  88 1F 00 6B */	lbz r0, 0x6b(r31)
/* 8025B3D4 00257034  2C 00 00 00 */	cmpwi r0, 0
/* 8025B3D8 00257038  41 82 00 80 */	beq lbl_8025B458
/* 8025B3DC 0025703C  7F 89 03 A6 */	mtctr r28
/* 8025B3E0 00257040  2C 1C 00 00 */	cmpwi r28, 0
/* 8025B3E4 00257044  41 82 00 74 */	beq lbl_8025B458
lbl_8025B3E8:
/* 8025B3E8 00257048  80 1F 00 90 */	lwz r0, 0x90(r31)
/* 8025B3EC 0025704C  3B 9C FF FF */	addi r28, r28, -1
/* 8025B3F0 00257050  80 DF 00 18 */	lwz r6, 0x18(r31)
/* 8025B3F4 00257054  7C 9D 02 14 */	add r4, r29, r0
/* 8025B3F8 00257058  80 BF 00 B8 */	lwz r5, 0xb8(r31)
/* 8025B3FC 0025705C  7C 64 33 96 */	divwu r3, r4, r6
/* 8025B400 00257060  38 06 FF FF */	addi r0, r6, -1
/* 8025B404 00257064  38 A5 00 01 */	addi r5, r5, 1
/* 8025B408 00257068  90 BF 00 B8 */	stw r5, 0xb8(r31)
/* 8025B40C 0025706C  7C 63 31 D6 */	mullw r3, r3, r6
/* 8025B410 00257070  7C 63 20 50 */	subf r3, r3, r4
/* 8025B414 00257074  7C 03 00 40 */	cmplw r3, r0
/* 8025B418 00257078  40 82 00 24 */	bne lbl_8025B43C
/* 8025B41C 0025707C  88 1F 00 6E */	lbz r0, 0x6e(r31)
/* 8025B420 00257080  2C 00 00 00 */	cmpwi r0, 0
/* 8025B424 00257084  41 82 00 34 */	beq lbl_8025B458
/* 8025B428 00257088  80 61 00 08 */	lwz r3, 8(r1)
/* 8025B42C 0025708C  80 1F 00 78 */	lwz r0, 0x78(r31)
/* 8025B430 00257090  83 C3 00 00 */	lwz r30, 0(r3)
/* 8025B434 00257094  90 01 00 08 */	stw r0, 8(r1)
/* 8025B438 00257098  48 00 00 18 */	b lbl_8025B450
lbl_8025B43C:
/* 8025B43C 0025709C  80 61 00 08 */	lwz r3, 8(r1)
/* 8025B440 002570A0  80 83 00 00 */	lwz r4, 0(r3)
/* 8025B444 002570A4  7C 03 F2 14 */	add r0, r3, r30
/* 8025B448 002570A8  90 01 00 08 */	stw r0, 8(r1)
/* 8025B44C 002570AC  7C 9E 23 78 */	mr r30, r4
lbl_8025B450:
/* 8025B450 002570B0  3B BD 00 01 */	addi r29, r29, 1
/* 8025B454 002570B4  42 00 FF 94 */	bdnz lbl_8025B3E8
lbl_8025B458:
/* 8025B458 002570B8  93 A1 00 0C */	stw r29, 0xc(r1)
/* 8025B45C 002570BC  7F E3 FB 78 */	mr r3, r31
/* 8025B460 002570C0  38 81 00 08 */	addi r4, r1, 8
/* 8025B464 002570C4  48 00 00 7D */	bl func_8025B4E0
/* 8025B468 002570C8  80 1F 00 90 */	lwz r0, 0x90(r31)
/* 8025B46C 002570CC  7C 7C 1B 78 */	mr r28, r3
/* 8025B470 002570D0  80 BF 00 18 */	lwz r5, 0x18(r31)
/* 8025B474 002570D4  7C 9D 02 14 */	add r4, r29, r0
/* 8025B478 002570D8  7C 64 2B 96 */	divwu r3, r4, r5
/* 8025B47C 002570DC  38 05 FF FF */	addi r0, r5, -1
/* 8025B480 002570E0  7C 63 29 D6 */	mullw r3, r3, r5
/* 8025B484 002570E4  7C 63 20 50 */	subf r3, r3, r4
/* 8025B488 002570E8  7C 03 00 40 */	cmplw r3, r0
/* 8025B48C 002570EC  40 82 00 30 */	bne lbl_8025B4BC
/* 8025B490 002570F0  88 1F 00 6E */	lbz r0, 0x6e(r31)
/* 8025B494 002570F4  2C 00 00 00 */	cmpwi r0, 0
/* 8025B498 002570F8  41 82 00 18 */	beq lbl_8025B4B0
/* 8025B49C 002570FC  80 61 00 08 */	lwz r3, 8(r1)
/* 8025B4A0 00257100  80 1F 00 78 */	lwz r0, 0x78(r31)
/* 8025B4A4 00257104  83 C3 00 00 */	lwz r30, 0(r3)
/* 8025B4A8 00257108  90 01 00 08 */	stw r0, 8(r1)
/* 8025B4AC 0025710C  48 00 00 24 */	b lbl_8025B4D0
lbl_8025B4B0:
/* 8025B4B0 00257110  80 7F 02 04 */	lwz r3, 0x204(r31)
/* 8025B4B4 00257114  4B FC 92 79 */	bl func_8022472C
/* 8025B4B8 00257118  48 00 00 18 */	b lbl_8025B4D0
lbl_8025B4BC:
/* 8025B4BC 0025711C  80 61 00 08 */	lwz r3, 8(r1)
/* 8025B4C0 00257120  80 83 00 00 */	lwz r4, 0(r3)
/* 8025B4C4 00257124  7C 03 F2 14 */	add r0, r3, r30
/* 8025B4C8 00257128  90 01 00 08 */	stw r0, 8(r1)
/* 8025B4CC 0025712C  7C 9E 23 78 */	mr r30, r4
lbl_8025B4D0:
/* 8025B4D0 00257130  3B BD 00 01 */	addi r29, r29, 1
lbl_8025B4D4:
/* 8025B4D4 00257134  80 7F 02 04 */	lwz r3, 0x204(r31)
/* 8025B4D8 00257138  4B FC 91 65 */	bl func_8022463C
/* 8025B4DC 0025713C  4B FF FE C0 */	b lbl_8025B39C

.global func_8025B4E0
func_8025B4E0:
/* 8025B4E0 00257140  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 8025B4E4 00257144  7C 08 02 A6 */	mflr r0
/* 8025B4E8 00257148  90 01 00 34 */	stw r0, 0x34(r1)
/* 8025B4EC 0025714C  39 61 00 30 */	addi r11, r1, 0x30
/* 8025B4F0 00257150  4B F6 BC 31 */	bl _savegpr_25
/* 8025B4F4 00257154  80 A4 00 00 */	lwz r5, 0(r4)
/* 8025B4F8 00257158  7C 7A 1B 78 */	mr r26, r3
/* 8025B4FC 0025715C  80 03 00 34 */	lwz r0, 0x34(r3)
/* 8025B500 00257160  7C 9B 23 78 */	mr r27, r4
/* 8025B504 00257164  3B A5 00 08 */	addi r29, r5, 8
/* 8025B508 00257168  3B 20 00 00 */	li r25, 0
/* 8025B50C 0025716C  54 00 10 3A */	slwi r0, r0, 2
/* 8025B510 00257170  7F 9D 02 14 */	add r28, r29, r0
/* 8025B514 00257174  48 00 00 C9 */	bl func_8025B5DC
/* 8025B518 00257178  7C 7F 1B 78 */	mr r31, r3
/* 8025B51C 0025717C  3B C0 00 00 */	li r30, 0
/* 8025B520 00257180  48 00 00 94 */	b lbl_8025B5B4
lbl_8025B524:
/* 8025B524 00257184  7C 7A F2 14 */	add r3, r26, r30
/* 8025B528 00257188  88 03 00 38 */	lbz r0, 0x38(r3)
/* 8025B52C 0025718C  2C 00 00 00 */	cmpwi r0, 0
/* 8025B530 00257190  41 82 00 08 */	beq lbl_8025B538
/* 8025B534 00257194  48 00 00 70 */	b lbl_8025B5A4
lbl_8025B538:
/* 8025B538 00257198  80 9F 00 00 */	lwz r4, 0(r31)
/* 8025B53C 0025719C  7F 83 E3 78 */	mr r3, r28
/* 8025B540 002571A0  80 BF 00 04 */	lwz r5, 4(r31)
/* 8025B544 002571A4  80 DF 00 08 */	lwz r6, 8(r31)
/* 8025B548 002571A8  80 FA 00 64 */	lwz r7, 0x64(r26)
/* 8025B54C 002571AC  48 04 05 E1 */	bl THPVideoDecode
/* 8025B550 002571B0  7C 60 07 35 */	extsh. r0, r3
/* 8025B554 002571B4  B0 7A 00 76 */	sth r3, 0x76(r26)
/* 8025B558 002571B8  41 82 00 0C */	beq lbl_8025B564
/* 8025B55C 002571BC  80 7A 02 04 */	lwz r3, 0x204(r26)
/* 8025B560 002571C0  4B FC 91 CD */	bl func_8022472C
lbl_8025B564:
/* 8025B564 002571C4  80 1B 00 04 */	lwz r0, 4(r27)
/* 8025B568 002571C8  7F 43 D3 78 */	mr r3, r26
/* 8025B56C 002571CC  7F E4 FB 78 */	mr r4, r31
/* 8025B570 002571D0  90 1F 00 0C */	stw r0, 0xc(r31)
/* 8025B574 002571D4  48 00 01 0D */	bl func_8025B680
/* 8025B578 002571D8  80 7A 00 C0 */	lwz r3, 0xc0(r26)
/* 8025B57C 002571DC  80 BA 00 B8 */	lwz r5, 0xb8(r26)
/* 8025B580 002571E0  38 C3 00 01 */	addi r6, r3, 1
/* 8025B584 002571E4  38 05 00 01 */	addi r0, r5, 1
/* 8025B588 002571E8  54 A3 0F FE */	srwi r3, r5, 0x1f
/* 8025B58C 002571EC  7C 86 28 10 */	subfc r4, r6, r5
/* 8025B590 002571F0  90 1A 00 B8 */	stw r0, 0xb8(r26)
/* 8025B594 002571F4  54 C4 0F FE */	srwi r4, r6, 0x1f
/* 8025B598 002571F8  7C 05 30 50 */	subf r0, r5, r6
/* 8025B59C 002571FC  7C 63 21 10 */	subfe r3, r3, r4
/* 8025B5A0 00257200  7C 19 18 38 */	and r25, r0, r3
lbl_8025B5A4:
/* 8025B5A4 00257204  80 1D 00 00 */	lwz r0, 0(r29)
/* 8025B5A8 00257208  3B BD 00 04 */	addi r29, r29, 4
/* 8025B5AC 0025720C  3B DE 00 01 */	addi r30, r30, 1
/* 8025B5B0 00257210  7F 9C 02 14 */	add r28, r28, r0
lbl_8025B5B4:
/* 8025B5B4 00257214  80 1A 00 34 */	lwz r0, 0x34(r26)
/* 8025B5B8 00257218  7C 1E 00 40 */	cmplw r30, r0
/* 8025B5BC 0025721C  41 80 FF 68 */	blt lbl_8025B524
/* 8025B5C0 00257220  39 61 00 30 */	addi r11, r1, 0x30
/* 8025B5C4 00257224  7F 23 CB 78 */	mr r3, r25
/* 8025B5C8 00257228  4B F6 BB A5 */	bl _restgpr_25
/* 8025B5CC 0025722C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 8025B5D0 00257230  7C 08 03 A6 */	mtlr r0
/* 8025B5D4 00257234  38 21 00 30 */	addi r1, r1, 0x30
/* 8025B5D8 00257238  4E 80 00 20 */	blr

.global func_8025B5DC
func_8025B5DC:
/* 8025B5DC 0025723C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8025B5E0 00257240  7C 08 02 A6 */	mflr r0
/* 8025B5E4 00257244  38 A0 00 01 */	li r5, 1
/* 8025B5E8 00257248  38 63 03 10 */	addi r3, r3, 0x310
/* 8025B5EC 0025724C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8025B5F0 00257250  38 81 00 08 */	addi r4, r1, 8
/* 8025B5F4 00257254  48 01 3A 2D */	bl OSReceiveMessage
/* 8025B5F8 00257258  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8025B5FC 0025725C  80 61 00 08 */	lwz r3, 8(r1)
/* 8025B600 00257260  7C 08 03 A6 */	mtlr r0
/* 8025B604 00257264  38 21 00 10 */	addi r1, r1, 0x10
/* 8025B608 00257268  4E 80 00 20 */	blr

.global func_8025B60C
func_8025B60C:
/* 8025B60C 0025726C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8025B610 00257270  7C 08 02 A6 */	mflr r0
/* 8025B614 00257274  38 A0 00 00 */	li r5, 0
/* 8025B618 00257278  38 63 03 10 */	addi r3, r3, 0x310
/* 8025B61C 0025727C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8025B620 00257280  48 01 39 39 */	bl OSSendMessage
/* 8025B624 00257284  7C 03 00 D0 */	neg r0, r3
/* 8025B628 00257288  7C 00 1B 78 */	or r0, r0, r3
/* 8025B62C 0025728C  54 03 0F FE */	srwi r3, r0, 0x1f
/* 8025B630 00257290  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8025B634 00257294  7C 08 03 A6 */	mtlr r0
/* 8025B638 00257298  38 21 00 10 */	addi r1, r1, 0x10
/* 8025B63C 0025729C  4E 80 00 20 */	blr

.global func_8025B640
func_8025B640:
/* 8025B640 002572A0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8025B644 002572A4  7C 08 02 A6 */	mflr r0
/* 8025B648 002572A8  38 A0 00 00 */	li r5, 0
/* 8025B64C 002572AC  38 63 03 3C */	addi r3, r3, 0x33c
/* 8025B650 002572B0  90 01 00 14 */	stw r0, 0x14(r1)
/* 8025B654 002572B4  38 81 00 08 */	addi r4, r1, 8
/* 8025B658 002572B8  48 01 39 C9 */	bl OSReceiveMessage
/* 8025B65C 002572BC  2C 03 00 00 */	cmpwi r3, 0
/* 8025B660 002572C0  41 82 00 0C */	beq lbl_8025B66C
/* 8025B664 002572C4  80 61 00 08 */	lwz r3, 8(r1)
/* 8025B668 002572C8  48 00 00 08 */	b lbl_8025B670
lbl_8025B66C:
/* 8025B66C 002572CC  38 60 00 00 */	li r3, 0
lbl_8025B670:
/* 8025B670 002572D0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8025B674 002572D4  7C 08 03 A6 */	mtlr r0
/* 8025B678 002572D8  38 21 00 10 */	addi r1, r1, 0x10
/* 8025B67C 002572DC  4E 80 00 20 */	blr

.global func_8025B680
func_8025B680:
/* 8025B680 002572E0  38 A0 00 01 */	li r5, 1
/* 8025B684 002572E4  38 63 03 3C */	addi r3, r3, 0x33c
/* 8025B688 002572E8  48 01 38 D0 */	b OSSendMessage

.global func_8025B68C
func_8025B68C:
/* 8025B68C 002572EC  38 A0 00 01 */	li r5, 1
/* 8025B690 002572F0  38 6D A6 88 */	addi r3, r13, lbl_8063F948-_SDA_BASE_
/* 8025B694 002572F4  38 80 00 04 */	li r4, 4
/* 8025B698 002572F8  38 00 00 00 */	li r0, 0
/* 8025B69C 002572FC  98 AD A6 88 */	stb r5, lbl_8063F948-_SDA_BASE_(r13)
/* 8025B6A0 00257300  B0 83 00 02 */	sth r4, 2(r3)
/* 8025B6A4 00257304  98 03 00 04 */	stb r0, 4(r3)
/* 8025B6A8 00257308  4E 80 00 20 */	blr