summaryrefslogtreecommitdiff
path: root/asm/code_8025A710.s
blob: c322b9e4abee5f405451828088d1a76e0019766b (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
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
.include "macros.inc"

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

.global func_8025A710
func_8025A710:
/* 8025A710 00256370  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8025A714 00256374  7C 08 02 A6 */	mflr r0
/* 8025A718 00256378  3C 80 01 F3 */	lis r4, 0x01F34C7C@ha
/* 8025A71C 0025637C  3C A0 80 26 */	lis r5, lbl_8025A984@ha
/* 8025A720 00256380  90 01 00 14 */	stw r0, 0x14(r1)
/* 8025A724 00256384  38 84 4C 7C */	addi r4, r4, 0x01F34C7C@l
/* 8025A728 00256388  38 A5 A9 84 */	addi r5, r5, lbl_8025A984@l
/* 8025A72C 0025638C  38 E0 10 00 */	li r7, 0x1000
/* 8025A730 00256390  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8025A734 00256394  7C 7F 1B 78 */	mr r31, r3
/* 8025A738 00256398  7F E6 FB 78 */	mr r6, r31
/* 8025A73C 0025639C  39 00 00 0C */	li r8, 0xc
/* 8025A740 002563A0  80 6D A3 40 */	lwz r3, lbl_8063F600-_SDA_BASE_(r13)
/* 8025A744 002563A4  39 20 00 01 */	li r9, 1
/* 8025A748 002563A8  4B FC 9A CD */	bl func_80224214
/* 8025A74C 002563AC  2C 03 00 00 */	cmpwi r3, 0
/* 8025A750 002563B0  90 7F 02 00 */	stw r3, 0x200(r31)
/* 8025A754 002563B4  40 82 00 0C */	bne lbl_8025A760
/* 8025A758 002563B8  38 60 00 00 */	li r3, 0
/* 8025A75C 002563BC  48 00 00 38 */	b lbl_8025A794
lbl_8025A760:
/* 8025A760 002563C0  38 7F 02 0C */	addi r3, r31, 0x20c
/* 8025A764 002563C4  38 9F 02 2C */	addi r4, r31, 0x22c
/* 8025A768 002563C8  38 A0 00 0A */	li r5, 0xa
/* 8025A76C 002563CC  48 01 47 8D */	bl OSInitMessageQueue
/* 8025A770 002563D0  38 7F 02 54 */	addi r3, r31, 0x254
/* 8025A774 002563D4  38 9F 02 74 */	addi r4, r31, 0x274
/* 8025A778 002563D8  38 A0 00 0A */	li r5, 0xa
/* 8025A77C 002563DC  48 01 47 7D */	bl OSInitMessageQueue
/* 8025A780 002563E0  38 7F 02 9C */	addi r3, r31, 0x29c
/* 8025A784 002563E4  38 9F 02 BC */	addi r4, r31, 0x2bc
/* 8025A788 002563E8  38 A0 00 0A */	li r5, 0xa
/* 8025A78C 002563EC  48 01 47 6D */	bl OSInitMessageQueue
/* 8025A790 002563F0  38 60 00 01 */	li r3, 1
lbl_8025A794:
/* 8025A794 002563F4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8025A798 002563F8  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8025A79C 002563FC  7C 08 03 A6 */	mtlr r0
/* 8025A7A0 00256400  38 21 00 10 */	addi r1, r1, 0x10
/* 8025A7A4 00256404  4E 80 00 20 */	blr

.global func_8025A7A8
func_8025A7A8:
/* 8025A7A8 00256408  80 63 02 00 */	lwz r3, 0x200(r3)
/* 8025A7AC 0025640C  2C 03 00 00 */	cmpwi r3, 0
/* 8025A7B0 00256410  4D 82 00 20 */	beqlr
/* 8025A7B4 00256414  4B FC 9E E4 */	b func_80224698
/* 8025A7B8 00256418  4E 80 00 20 */	blr

.global func_8025A7BC
func_8025A7BC:
/* 8025A7BC 0025641C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8025A7C0 00256420  7C 08 02 A6 */	mflr r0
/* 8025A7C4 00256424  90 01 00 24 */	stw r0, 0x24(r1)
/* 8025A7C8 00256428  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8025A7CC 0025642C  7C 7F 1B 78 */	mr r31, r3
/* 8025A7D0 00256430  80 03 02 00 */	lwz r0, 0x200(r3)
/* 8025A7D4 00256434  2C 00 00 00 */	cmpwi r0, 0
/* 8025A7D8 00256438  41 82 00 18 */	beq lbl_8025A7F0
/* 8025A7DC 0025643C  7C 03 03 78 */	mr r3, r0
/* 8025A7E0 00256440  38 80 00 00 */	li r4, 0
/* 8025A7E4 00256444  4B FC 9E C9 */	bl func_802246AC
/* 8025A7E8 00256448  38 00 00 00 */	li r0, 0
/* 8025A7EC 0025644C  90 1F 02 00 */	stw r0, 0x200(r31)
lbl_8025A7F0:
/* 8025A7F0 00256450  88 1F 00 6B */	lbz r0, 0x6b(r31)
/* 8025A7F4 00256454  2C 00 00 00 */	cmpwi r0, 0
/* 8025A7F8 00256458  41 82 00 2C */	beq lbl_8025A824
lbl_8025A7FC:
/* 8025A7FC 0025645C  38 7F 02 54 */	addi r3, r31, 0x254
/* 8025A800 00256460  38 81 00 08 */	addi r4, r1, 8
/* 8025A804 00256464  38 A0 00 00 */	li r5, 0
/* 8025A808 00256468  48 01 48 19 */	bl OSReceiveMessage
/* 8025A80C 0025646C  2C 03 00 00 */	cmpwi r3, 0
/* 8025A810 00256470  40 82 FF EC */	bne lbl_8025A7FC
/* 8025A814 00256474  48 00 00 10 */	b lbl_8025A824
lbl_8025A818:
/* 8025A818 00256478  80 81 00 08 */	lwz r4, 8(r1)
/* 8025A81C 0025647C  7F E3 FB 78 */	mr r3, r31
/* 8025A820 00256480  48 00 04 C1 */	bl func_8025ACE0
lbl_8025A824:
/* 8025A824 00256484  38 7F 02 9C */	addi r3, r31, 0x29c
/* 8025A828 00256488  38 81 00 08 */	addi r4, r1, 8
/* 8025A82C 0025648C  38 A0 00 00 */	li r5, 0
/* 8025A830 00256490  48 01 47 F1 */	bl OSReceiveMessage
/* 8025A834 00256494  2C 03 00 00 */	cmpwi r3, 0
/* 8025A838 00256498  40 82 FF E0 */	bne lbl_8025A818
/* 8025A83C 0025649C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8025A840 002564A0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8025A844 002564A4  7C 08 03 A6 */	mtlr r0
/* 8025A848 002564A8  38 21 00 20 */	addi r1, r1, 0x20
/* 8025A84C 002564AC  4E 80 00 20 */	blr
/* 8025A850 002564B0  80 A4 00 88 */	lwz r5, 0x88(r4)
/* 8025A854 002564B4  80 64 00 7C */	lwz r3, 0x7c(r4)
/* 8025A858 002564B8  80 04 00 20 */	lwz r0, 0x20(r4)
/* 8025A85C 002564BC  7C 65 1A 14 */	add r3, r5, r3
/* 8025A860 002564C0  7C 03 00 40 */	cmplw r3, r0
/* 8025A864 002564C4  90 64 00 88 */	stw r3, 0x88(r4)
/* 8025A868 002564C8  41 80 00 0C */	blt lbl_8025A874
/* 8025A86C 002564CC  80 04 00 2C */	lwz r0, 0x2c(r4)
/* 8025A870 002564D0  90 04 00 88 */	stw r0, 0x88(r4)
lbl_8025A874:
/* 8025A874 002564D4  38 00 00 01 */	li r0, 1
/* 8025A878 002564D8  90 04 00 80 */	stw r0, 0x80(r4)
/* 8025A87C 002564DC  4E 80 00 20 */	blr

.global func_8025A880
func_8025A880:
/* 8025A880 002564E0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8025A884 002564E4  7C 08 02 A6 */	mflr r0
/* 8025A888 002564E8  90 01 00 14 */	stw r0, 0x14(r1)
/* 8025A88C 002564EC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8025A890 002564F0  7C 7F 1B 78 */	mr r31, r3
/* 8025A894 002564F4  93 C1 00 08 */	stw r30, 8(r1)
/* 8025A898 002564F8  7C 9E 23 78 */	mr r30, r4
/* 8025A89C 002564FC  80 03 00 9C */	lwz r0, 0x9c(r3)
/* 8025A8A0 00256500  90 04 00 04 */	stw r0, 4(r4)
/* 8025A8A4 00256504  88 03 00 6B */	lbz r0, 0x6b(r3)
/* 8025A8A8 00256508  2C 00 00 00 */	cmpwi r0, 0
/* 8025A8AC 0025650C  41 82 00 0C */	beq lbl_8025A8B8
/* 8025A8B0 00256510  48 00 04 6D */	bl func_8025AD1C
/* 8025A8B4 00256514  48 00 00 08 */	b lbl_8025A8BC
lbl_8025A8B8:
/* 8025A8B8 00256518  48 00 04 A1 */	bl func_8025AD58
lbl_8025A8BC:
/* 8025A8BC 0025651C  80 7E 00 00 */	lwz r3, 0(r30)
/* 8025A8C0 00256520  80 9F 00 94 */	lwz r4, 0x94(r31)
/* 8025A8C4 00256524  48 00 FD 91 */	bl DCFlushRange
/* 8025A8C8 00256528  80 7F 00 98 */	lwz r3, 0x98(r31)
/* 8025A8CC 0025652C  80 1F 00 94 */	lwz r0, 0x94(r31)
/* 8025A8D0 00256530  7C A3 02 14 */	add r5, r3, r0
/* 8025A8D4 00256534  90 BF 00 98 */	stw r5, 0x98(r31)
/* 8025A8D8 00256538  80 7E 00 00 */	lwz r3, 0(r30)
/* 8025A8DC 0025653C  80 63 00 00 */	lwz r3, 0(r3)
/* 8025A8E0 00256540  2C 03 00 00 */	cmpwi r3, 0
/* 8025A8E4 00256544  90 7F 00 94 */	stw r3, 0x94(r31)
/* 8025A8E8 00256548  41 80 00 10 */	blt lbl_8025A8F8
/* 8025A8EC 0025654C  80 1F 00 7C */	lwz r0, 0x7c(r31)
/* 8025A8F0 00256550  7C 03 00 40 */	cmplw r3, r0
/* 8025A8F4 00256554  40 81 00 14 */	ble lbl_8025A908
lbl_8025A8F8:
/* 8025A8F8 00256558  38 00 00 09 */	li r0, 9
/* 8025A8FC 0025655C  98 1F 00 6A */	stb r0, 0x6a(r31)
/* 8025A900 00256560  98 1F 00 69 */	stb r0, 0x69(r31)
/* 8025A904 00256564  48 00 00 68 */	b lbl_8025A96C
lbl_8025A908:
/* 8025A908 00256568  80 7F 00 9C */	lwz r3, 0x9c(r31)
/* 8025A90C 0025656C  80 1F 00 90 */	lwz r0, 0x90(r31)
/* 8025A910 00256570  80 DF 00 18 */	lwz r6, 0x18(r31)
/* 8025A914 00256574  7C 83 02 14 */	add r4, r3, r0
/* 8025A918 00256578  7C 64 33 96 */	divwu r3, r4, r6
/* 8025A91C 0025657C  38 06 FF FF */	addi r0, r6, -1
/* 8025A920 00256580  7C 63 31 D6 */	mullw r3, r3, r6
/* 8025A924 00256584  7C 63 20 50 */	subf r3, r3, r4
/* 8025A928 00256588  7C 03 00 40 */	cmplw r3, r0
/* 8025A92C 0025658C  41 82 00 14 */	beq lbl_8025A940
/* 8025A930 00256590  80 7F 00 20 */	lwz r3, 0x20(r31)
/* 8025A934 00256594  38 03 FF FF */	addi r0, r3, -1
/* 8025A938 00256598  7C 05 00 40 */	cmplw r5, r0
/* 8025A93C 0025659C  41 80 00 24 */	blt lbl_8025A960
lbl_8025A940:
/* 8025A940 002565A0  88 1F 00 6E */	lbz r0, 0x6e(r31)
/* 8025A944 002565A4  2C 00 00 00 */	cmpwi r0, 0
/* 8025A948 002565A8  41 82 00 10 */	beq lbl_8025A958
/* 8025A94C 002565AC  38 00 00 01 */	li r0, 1
/* 8025A950 002565B0  98 1F 00 71 */	stb r0, 0x71(r31)
/* 8025A954 002565B4  48 00 00 0C */	b lbl_8025A960
lbl_8025A958:
/* 8025A958 002565B8  80 7F 02 00 */	lwz r3, 0x200(r31)
/* 8025A95C 002565BC  4B FC 9D D1 */	bl func_8022472C
lbl_8025A960:
/* 8025A960 002565C0  80 7F 00 9C */	lwz r3, 0x9c(r31)
/* 8025A964 002565C4  38 03 00 01 */	addi r0, r3, 1
/* 8025A968 002565C8  90 1F 00 9C */	stw r0, 0x9c(r31)
lbl_8025A96C:
/* 8025A96C 002565CC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8025A970 002565D0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8025A974 002565D4  83 C1 00 08 */	lwz r30, 8(r1)
/* 8025A978 002565D8  7C 08 03 A6 */	mtlr r0
/* 8025A97C 002565DC  38 21 00 10 */	addi r1, r1, 0x10
/* 8025A980 002565E0  4E 80 00 20 */	blr
lbl_8025A984:
/* 8025A984 002565E4  94 21 FF 80 */	stwu r1, -0x80(r1)
/* 8025A988 002565E8  7C 08 02 A6 */	mflr r0
/* 8025A98C 002565EC  90 01 00 84 */	stw r0, 0x84(r1)
/* 8025A990 002565F0  DB E1 00 70 */	stfd f31, 0x70(r1)
/* 8025A994 002565F4  F3 E1 00 78 */	psq_st f31, 120(r1), 0, qr0
/* 8025A998 002565F8  DB C1 00 60 */	stfd f30, 0x60(r1)
/* 8025A99C 002565FC  F3 C1 00 68 */	psq_st f30, 104(r1), 0, qr0
/* 8025A9A0 00256600  DB A1 00 50 */	stfd f29, 0x50(r1)
/* 8025A9A4 00256604  F3 A1 00 58 */	psq_st f29, 88(r1), 0, qr0
/* 8025A9A8 00256608  39 61 00 50 */	addi r11, r1, 0x50
/* 8025A9AC 0025660C  4B F6 C7 59 */	bl _savegpr_18
/* 8025A9B0 00256610  3A E0 00 01 */	li r23, 1
/* 8025A9B4 00256614  3B 80 00 00 */	li r28, 0
/* 8025A9B8 00256618  9A E3 00 71 */	stb r23, 0x71(r3)
/* 8025A9BC 0025661C  7C 7A 1B 78 */	mr r26, r3
/* 8025A9C0 00256620  3A C0 00 00 */	li r22, 0
/* 8025A9C4 00256624  93 83 00 80 */	stw r28, 0x80(r3)
/* 8025A9C8 00256628  CB C2 9F E0 */	lfd f30, lbl_806425E0-_SDA2_BASE_(r2)
/* 8025A9CC 0025662C  3F C0 80 26 */	lis r30, 0x8026
/* 8025A9D0 00256630  C3 E2 9F D8 */	lfs f31, lbl_806425D8-_SDA2_BASE_(r2)
/* 8025A9D4 00256634  3F E0 43 30 */	lis r31, 0x4330
/* 8025A9D8 00256638  3B A0 00 01 */	li r29, 1
/* 8025A9DC 0025663C  3A 40 FF FF */	li r18, -1
lbl_8025A9E0:
/* 8025A9E0 00256640  80 8D A3 D8 */	lwz r4, render_context_ptr-_SDA_BASE_(r13)
/* 8025A9E4 00256644  38 60 00 00 */	li r3, 0
/* 8025A9E8 00256648  88 04 00 82 */	lbz r0, 0x82(r4)
/* 8025A9EC 0025664C  2C 00 00 00 */	cmpwi r0, 0
/* 8025A9F0 00256650  40 82 00 10 */	bne lbl_8025AA00
/* 8025A9F4 00256654  88 04 00 83 */	lbz r0, 0x83(r4)
/* 8025A9F8 00256658  2C 00 00 00 */	cmpwi r0, 0
/* 8025A9FC 0025665C  41 82 00 08 */	beq lbl_8025AA04
lbl_8025AA00:
/* 8025AA00 00256660  38 60 00 01 */	li r3, 1
lbl_8025AA04:
/* 8025AA04 00256664  2C 03 00 00 */	cmpwi r3, 0
/* 8025AA08 00256668  40 82 02 50 */	bne lbl_8025AC58
/* 8025AA0C 0025666C  88 1A 00 70 */	lbz r0, 0x70(r26)
/* 8025AA10 00256670  2C 00 00 00 */	cmpwi r0, 0
/* 8025AA14 00256674  41 82 00 10 */	beq lbl_8025AA24
/* 8025AA18 00256678  88 1A 00 75 */	lbz r0, 0x75(r26)
/* 8025AA1C 0025667C  7C 00 07 75 */	extsb. r0, r0
/* 8025AA20 00256680  40 82 02 38 */	bne lbl_8025AC58
lbl_8025AA24:
/* 8025AA24 00256684  7F 43 D3 78 */	mr r3, r26
/* 8025AA28 00256688  48 00 02 61 */	bl func_8025AC88
/* 8025AA2C 0025668C  80 9A 00 94 */	lwz r4, 0x94(r26)
/* 8025AA30 00256690  7C 79 1B 78 */	mr r25, r3
/* 8025AA34 00256694  80 1A 00 7C */	lwz r0, 0x7c(r26)
/* 8025AA38 00256698  7C 04 00 40 */	cmplw r4, r0
/* 8025AA3C 0025669C  40 81 00 08 */	ble lbl_8025AA44
/* 8025AA40 002566A0  9B BA 00 71 */	stb r29, 0x71(r26)
lbl_8025AA44:
/* 8025AA44 002566A4  88 1A 00 71 */	lbz r0, 0x71(r26)
/* 8025AA48 002566A8  2C 00 00 00 */	cmpwi r0, 0
/* 8025AA4C 002566AC  41 82 00 38 */	beq lbl_8025AA84
/* 8025AA50 002566B0  2C 17 00 00 */	cmpwi r23, 0
/* 8025AA54 002566B4  41 82 00 14 */	beq lbl_8025AA68
/* 8025AA58 002566B8  80 1A 00 84 */	lwz r0, 0x84(r26)
/* 8025AA5C 002566BC  3A E0 00 00 */	li r23, 0
/* 8025AA60 002566C0  90 1A 00 88 */	stw r0, 0x88(r26)
/* 8025AA64 002566C4  48 00 00 0C */	b lbl_8025AA70
lbl_8025AA68:
/* 8025AA68 002566C8  80 1A 00 2C */	lwz r0, 0x2c(r26)
/* 8025AA6C 002566CC  90 1A 00 88 */	stw r0, 0x88(r26)
lbl_8025AA70:
/* 8025AA70 002566D0  80 1A 00 8C */	lwz r0, 0x8c(r26)
/* 8025AA74 002566D4  93 9A 00 98 */	stw r28, 0x98(r26)
/* 8025AA78 002566D8  90 1A 00 94 */	stw r0, 0x94(r26)
/* 8025AA7C 002566DC  93 9A 00 9C */	stw r28, 0x9c(r26)
/* 8025AA80 002566E0  9B 9A 00 71 */	stb r28, 0x71(r26)
lbl_8025AA84:
/* 8025AA84 002566E4  80 BA 00 7C */	lwz r5, 0x7c(r26)
/* 8025AA88 002566E8  80 9A 00 98 */	lwz r4, 0x98(r26)
/* 8025AA8C 002566EC  7C 04 2B 96 */	divwu r0, r4, r5
/* 8025AA90 002566F0  7C 00 29 D6 */	mullw r0, r0, r5
/* 8025AA94 002566F4  7E A0 20 51 */	subf. r21, r0, r4
/* 8025AA98 002566F8  41 82 00 5C */	beq lbl_8025AAF4
/* 8025AA9C 002566FC  83 7A 00 94 */	lwz r27, 0x94(r26)
/* 8025AAA0 00256700  7C 15 DA 14 */	add r0, r21, r27
/* 8025AAA4 00256704  7C 05 00 40 */	cmplw r5, r0
/* 8025AAA8 00256708  40 80 00 3C */	bge lbl_8025AAE4
/* 8025AAAC 0025670C  80 1A 00 78 */	lwz r0, 0x78(r26)
/* 8025AAB0 00256710  7E 95 28 50 */	subf r20, r21, r5
/* 8025AAB4 00256714  80 63 00 00 */	lwz r3, 0(r3)
/* 8025AAB8 00256718  7E 85 A3 78 */	mr r5, r20
/* 8025AABC 0025671C  7C 80 AA 14 */	add r4, r0, r21
/* 8025AAC0 00256720  4B DA 95 41 */	bl memcpy
/* 8025AAC4 00256724  80 79 00 00 */	lwz r3, 0(r25)
/* 8025AAC8 00256728  7E 84 A3 78 */	mr r4, r20
/* 8025AACC 0025672C  48 00 FB E9 */	bl DCFlushRangeNoSync
/* 8025AAD0 00256730  80 1A 00 94 */	lwz r0, 0x94(r26)
/* 8025AAD4 00256734  38 60 00 01 */	li r3, 1
/* 8025AAD8 00256738  3A A0 00 00 */	li r21, 0
/* 8025AADC 0025673C  7F 74 00 50 */	subf r27, r20, r0
/* 8025AAE0 00256740  48 00 00 20 */	b lbl_8025AB00
lbl_8025AAE4:
/* 8025AAE4 00256744  38 60 00 00 */	li r3, 0
/* 8025AAE8 00256748  3A 80 00 00 */	li r20, 0
/* 8025AAEC 0025674C  3B 00 00 01 */	li r24, 1
/* 8025AAF0 00256750  48 00 00 10 */	b lbl_8025AB00
lbl_8025AAF4:
/* 8025AAF4 00256754  83 7A 00 94 */	lwz r27, 0x94(r26)
/* 8025AAF8 00256758  38 60 00 01 */	li r3, 1
/* 8025AAFC 0025675C  3A 80 00 00 */	li r20, 0
lbl_8025AB00:
/* 8025AB00 00256760  2C 03 00 00 */	cmpwi r3, 0
/* 8025AB04 00256764  41 82 00 F8 */	beq lbl_8025ABFC
/* 8025AB08 00256768  80 7A 00 88 */	lwz r3, 0x88(r26)
/* 8025AB0C 0025676C  80 1A 00 20 */	lwz r0, 0x20(r26)
/* 8025AB10 00256770  82 7A 00 7C */	lwz r19, 0x7c(r26)
/* 8025AB14 00256774  7C 03 00 50 */	subf r0, r3, r0
/* 8025AB18 00256778  7C 00 98 40 */	cmplw r0, r19
/* 8025AB1C 0025677C  40 80 00 08 */	bge lbl_8025AB24
/* 8025AB20 00256780  7C 13 03 78 */	mr r19, r0
lbl_8025AB24:
/* 8025AB24 00256784  2C 16 00 00 */	cmpwi r22, 0
/* 8025AB28 00256788  93 9A 00 80 */	stw r28, 0x80(r26)
/* 8025AB2C 0025678C  41 82 00 0C */	beq lbl_8025AB38
/* 8025AB30 00256790  C3 A2 9F D0 */	lfs f29, lbl_806425D0-_SDA2_BASE_(r2)
/* 8025AB34 00256794  48 00 00 08 */	b lbl_8025AB3C
lbl_8025AB38:
/* 8025AB38 00256798  C3 A2 9F D4 */	lfs f29, lbl_806425D4-_SDA2_BASE_(r2)
lbl_8025AB3C:
/* 8025AB3C 0025679C  80 8D A3 D8 */	lwz r4, render_context_ptr-_SDA_BASE_(r13)
/* 8025AB40 002567A0  38 60 00 00 */	li r3, 0
/* 8025AB44 002567A4  88 04 00 82 */	lbz r0, 0x82(r4)
/* 8025AB48 002567A8  2C 00 00 00 */	cmpwi r0, 0
/* 8025AB4C 002567AC  40 82 00 10 */	bne lbl_8025AB5C
/* 8025AB50 002567B0  88 04 00 83 */	lbz r0, 0x83(r4)
/* 8025AB54 002567B4  2C 00 00 00 */	cmpwi r0, 0
/* 8025AB58 002567B8  41 82 00 08 */	beq lbl_8025AB60
lbl_8025AB5C:
/* 8025AB5C 002567BC  38 60 00 01 */	li r3, 1
lbl_8025AB60:
/* 8025AB60 002567C0  2C 03 00 00 */	cmpwi r3, 0
/* 8025AB64 002567C4  40 82 00 88 */	bne lbl_8025ABEC
/* 8025AB68 002567C8  80 7A 00 00 */	lwz r3, 0(r26)
/* 8025AB6C 002567CC  7E 66 9B 78 */	mr r6, r19
/* 8025AB70 002567D0  80 BA 00 78 */	lwz r5, 0x78(r26)
/* 8025AB74 002567D4  7F 49 D3 78 */	mr r9, r26
/* 8025AB78 002567D8  80 FA 00 88 */	lwz r7, 0x88(r26)
/* 8025AB7C 002567DC  7F 2A CB 78 */	mr r10, r25
/* 8025AB80 002567E0  39 1E A8 50 */	addi r8, r30, -22448
/* 8025AB84 002567E4  38 80 00 00 */	li r4, 0
/* 8025AB88 002567E8  4B FE EF 29 */	bl func_80249AB0
/* 8025AB8C 002567EC  2C 03 00 00 */	cmpwi r3, 0
/* 8025AB90 002567F0  7C 78 1B 78 */	mr r24, r3
/* 8025AB94 002567F4  40 82 00 68 */	bne lbl_8025ABFC
/* 8025AB98 002567F8  80 7A 00 00 */	lwz r3, 0(r26)
/* 8025AB9C 002567FC  4B FE E2 25 */	bl func_80248DC0
/* 8025ABA0 00256800  2C 03 00 00 */	cmpwi r3, 0
/* 8025ABA4 00256804  41 82 00 58 */	beq lbl_8025ABFC
/* 8025ABA8 00256808  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8025ABAC 0025680C  8A C3 00 59 */	lbz r22, 0x59(r3)
/* 8025ABB0 00256810  4B FE 54 3D */	bl func_8023FFEC
/* 8025ABB4 00256814  92 C1 00 0C */	stw r22, 0xc(r1)
/* 8025ABB8 00256818  93 E1 00 08 */	stw r31, 8(r1)
/* 8025ABBC 0025681C  C8 01 00 08 */	lfd f0, 8(r1)
/* 8025ABC0 00256820  EC 00 F0 28 */	fsubs f0, f0, f30
/* 8025ABC4 00256824  EC 01 00 24 */	fdivs f0, f1, f0
/* 8025ABC8 00256828  FC 00 F8 40 */	fcmpo cr0, f0, f31
/* 8025ABCC 0025682C  40 81 00 08 */	ble lbl_8025ABD4
/* 8025ABD0 00256830  48 00 00 08 */	b lbl_8025ABD8
lbl_8025ABD4:
/* 8025ABD4 00256834  FC 00 F8 90 */	fmr f0, f31
lbl_8025ABD8:
/* 8025ABD8 00256838  EF BD 00 28 */	fsubs f29, f29, f0
/* 8025ABDC 0025683C  FC 1D F8 40 */	fcmpo cr0, f29, f31
/* 8025ABE0 00256840  4C 40 13 82 */	cror 2, 0, 2
/* 8025ABE4 00256844  41 82 00 18 */	beq lbl_8025ABFC
/* 8025ABE8 00256848  48 00 00 08 */	b lbl_8025ABF0
lbl_8025ABEC:
/* 8025ABEC 0025684C  C3 A2 9F D0 */	lfs f29, lbl_806425D0-_SDA2_BASE_(r2)
lbl_8025ABF0:
/* 8025ABF0 00256850  80 7A 02 00 */	lwz r3, 0x200(r26)
/* 8025ABF4 00256854  4B FC 9A 49 */	bl func_8022463C
/* 8025ABF8 00256858  4B FF FF 44 */	b lbl_8025AB3C
lbl_8025ABFC:
/* 8025ABFC 0025685C  2C 18 00 00 */	cmpwi r24, 0
/* 8025AC00 00256860  41 82 00 40 */	beq lbl_8025AC40
/* 8025AC04 00256864  80 79 00 00 */	lwz r3, 0(r25)
/* 8025AC08 00256868  7F 65 DB 78 */	mr r5, r27
/* 8025AC0C 0025686C  80 1A 00 78 */	lwz r0, 0x78(r26)
/* 8025AC10 00256870  7C 63 A2 14 */	add r3, r3, r20
/* 8025AC14 00256874  7C 80 AA 14 */	add r4, r0, r21
/* 8025AC18 00256878  4B DA 93 E9 */	bl memcpy
/* 8025AC1C 0025687C  80 19 00 00 */	lwz r0, 0(r25)
/* 8025AC20 00256880  7F 64 DB 78 */	mr r4, r27
/* 8025AC24 00256884  7C 60 A2 14 */	add r3, r0, r20
/* 8025AC28 00256888  48 00 FA 8D */	bl DCFlushRangeNoSync
/* 8025AC2C 0025688C  48 00 D6 35 */	bl PPCSync
/* 8025AC30 00256890  7F 43 D3 78 */	mr r3, r26
/* 8025AC34 00256894  7F 24 CB 78 */	mr r4, r25
/* 8025AC38 00256898  4B FF FC 49 */	bl func_8025A880
/* 8025AC3C 0025689C  48 00 00 1C */	b lbl_8025AC58
lbl_8025AC40:
/* 8025AC40 002568A0  7F 43 D3 78 */	mr r3, r26
/* 8025AC44 002568A4  7F 24 CB 78 */	mr r4, r25
/* 8025AC48 002568A8  48 00 00 99 */	bl func_8025ACE0
/* 8025AC4C 002568AC  9A 5A 00 75 */	stb r18, 0x75(r26)
/* 8025AC50 002568B0  80 7A 02 00 */	lwz r3, 0x200(r26)
/* 8025AC54 002568B4  4B FC 9A D9 */	bl func_8022472C
lbl_8025AC58:
/* 8025AC58 002568B8  80 6D A3 D8 */	lwz r3, render_context_ptr-_SDA_BASE_(r13)
/* 8025AC5C 002568BC  3A C0 00 00 */	li r22, 0
/* 8025AC60 002568C0  88 03 00 82 */	lbz r0, 0x82(r3)
/* 8025AC64 002568C4  2C 00 00 00 */	cmpwi r0, 0
/* 8025AC68 002568C8  40 82 00 10 */	bne lbl_8025AC78
/* 8025AC6C 002568CC  88 03 00 83 */	lbz r0, 0x83(r3)
/* 8025AC70 002568D0  2C 00 00 00 */	cmpwi r0, 0
/* 8025AC74 002568D4  41 82 00 08 */	beq lbl_8025AC7C
lbl_8025AC78:
/* 8025AC78 002568D8  3A C0 00 01 */	li r22, 1
lbl_8025AC7C:
/* 8025AC7C 002568DC  80 7A 02 00 */	lwz r3, 0x200(r26)
/* 8025AC80 002568E0  4B FC 99 BD */	bl func_8022463C
/* 8025AC84 002568E4  4B FF FD 5C */	b lbl_8025A9E0

.global func_8025AC88
func_8025AC88:
/* 8025AC88 002568E8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8025AC8C 002568EC  7C 08 02 A6 */	mflr r0
/* 8025AC90 002568F0  38 A0 00 01 */	li r5, 1
/* 8025AC94 002568F4  90 01 00 24 */	stw r0, 0x24(r1)
/* 8025AC98 002568F8  38 81 00 08 */	addi r4, r1, 8
/* 8025AC9C 002568FC  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8025ACA0 00256900  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8025ACA4 00256904  7C 7E 1B 78 */	mr r30, r3
/* 8025ACA8 00256908  38 63 02 0C */	addi r3, r3, 0x20c
/* 8025ACAC 0025690C  48 01 43 75 */	bl OSReceiveMessage
/* 8025ACB0 00256910  83 E1 00 08 */	lwz r31, 8(r1)
/* 8025ACB4 00256914  38 80 00 00 */	li r4, 0
/* 8025ACB8 00256918  80 BE 00 0C */	lwz r5, 0xc(r30)
/* 8025ACBC 0025691C  80 7F 00 00 */	lwz r3, 0(r31)
/* 8025ACC0 00256920  4B DA 94 45 */	bl memset
/* 8025ACC4 00256924  7F E3 FB 78 */	mr r3, r31
/* 8025ACC8 00256928  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8025ACCC 0025692C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 8025ACD0 00256930  80 01 00 24 */	lwz r0, 0x24(r1)
/* 8025ACD4 00256934  7C 08 03 A6 */	mtlr r0
/* 8025ACD8 00256938  38 21 00 20 */	addi r1, r1, 0x20
/* 8025ACDC 0025693C  4E 80 00 20 */	blr

.global func_8025ACE0
func_8025ACE0:
/* 8025ACE0 00256940  38 A0 00 01 */	li r5, 1
/* 8025ACE4 00256944  38 63 02 0C */	addi r3, r3, 0x20c
/* 8025ACE8 00256948  48 01 42 70 */	b OSSendMessage

.global func_8025ACEC
func_8025ACEC:
/* 8025ACEC 0025694C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8025ACF0 00256950  7C 08 02 A6 */	mflr r0
/* 8025ACF4 00256954  38 A0 00 01 */	li r5, 1
/* 8025ACF8 00256958  38 63 02 54 */	addi r3, r3, 0x254
/* 8025ACFC 0025695C  90 01 00 14 */	stw r0, 0x14(r1)
/* 8025AD00 00256960  38 81 00 08 */	addi r4, r1, 8
/* 8025AD04 00256964  48 01 43 1D */	bl OSReceiveMessage
/* 8025AD08 00256968  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8025AD0C 0025696C  80 61 00 08 */	lwz r3, 8(r1)
/* 8025AD10 00256970  7C 08 03 A6 */	mtlr r0
/* 8025AD14 00256974  38 21 00 10 */	addi r1, r1, 0x10
/* 8025AD18 00256978  4E 80 00 20 */	blr

.global func_8025AD1C
func_8025AD1C:
/* 8025AD1C 0025697C  38 A0 00 01 */	li r5, 1
/* 8025AD20 00256980  38 63 02 54 */	addi r3, r3, 0x254
/* 8025AD24 00256984  48 01 42 34 */	b OSSendMessage

.global func_8025AD28
func_8025AD28:
/* 8025AD28 00256988  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8025AD2C 0025698C  7C 08 02 A6 */	mflr r0
/* 8025AD30 00256990  38 A0 00 01 */	li r5, 1
/* 8025AD34 00256994  38 63 02 9C */	addi r3, r3, 0x29c
/* 8025AD38 00256998  90 01 00 14 */	stw r0, 0x14(r1)
/* 8025AD3C 0025699C  38 81 00 08 */	addi r4, r1, 8
/* 8025AD40 002569A0  48 01 42 E1 */	bl OSReceiveMessage
/* 8025AD44 002569A4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8025AD48 002569A8  80 61 00 08 */	lwz r3, 8(r1)
/* 8025AD4C 002569AC  7C 08 03 A6 */	mtlr r0
/* 8025AD50 002569B0  38 21 00 10 */	addi r1, r1, 0x10
/* 8025AD54 002569B4  4E 80 00 20 */	blr

.global func_8025AD58
func_8025AD58:
/* 8025AD58 002569B8  38 A0 00 01 */	li r5, 1
/* 8025AD5C 002569BC  38 63 02 9C */	addi r3, r3, 0x29c
/* 8025AD60 002569C0  48 01 41 F8 */	b OSSendMessage

.global func_8025AD64
func_8025AD64:
/* 8025AD64 002569C4  38 A0 00 01 */	li r5, 1
/* 8025AD68 002569C8  38 6D A6 78 */	addi r3, r13, lbl_8063F938-_SDA_BASE_
/* 8025AD6C 002569CC  38 80 00 04 */	li r4, 4
/* 8025AD70 002569D0  38 00 00 00 */	li r0, 0
/* 8025AD74 002569D4  98 AD A6 78 */	stb r5, lbl_8063F938-_SDA_BASE_(r13)
/* 8025AD78 002569D8  B0 83 00 02 */	sth r4, 2(r3)
/* 8025AD7C 002569DC  98 03 00 04 */	stb r0, 4(r3)
/* 8025AD80 002569E0  4E 80 00 20 */	blr