summaryrefslogtreecommitdiff
path: root/asm/text_8_2.s
blob: dd301daf1a08c7a9a20e352f9835fee1776f056b (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
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
.include "macros.inc"

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

.global func_80285BFC
func_80285BFC:
/* 80285BFC 0028185C  ED 61 20 2A */	fadds f11, f1, f4
/* 80285C00 00281860  C1 82 A1 FC */	lfs f12, lbl_806427FC-_SDA2_BASE_(r2)
/* 80285C04 00281864  ED 42 28 2A */	fadds f10, f2, f5
/* 80285C08 00281868  C0 01 00 08 */	lfs f0, 8(r1)
/* 80285C0C 0028186C  ED 23 30 2A */	fadds f9, f3, f6
/* 80285C10 00281870  3C A0 CC 01 */	lis r5, 0xCC008000@ha
/* 80285C14 00281874  ED 67 58 2A */	fadds f11, f7, f11
/* 80285C18 00281878  2C 03 00 00 */	cmpwi r3, 0
/* 80285C1C 0028187C  ED 48 50 2A */	fadds f10, f8, f10
/* 80285C20 00281880  ED 20 48 2A */	fadds f9, f0, f9
/* 80285C24 00281884  ED 6C 02 F2 */	fmuls f11, f12, f11
/* 80285C28 00281888  ED 4C 02 B2 */	fmuls f10, f12, f10
/* 80285C2C 0028188C  ED 2C 02 72 */	fmuls f9, f12, f9
/* 80285C30 00281890  D1 65 80 00 */	stfs f11, 0xCC008000@l(r5)
/* 80285C34 00281894  D1 45 80 00 */	stfs f10, -0x8000(r5)
/* 80285C38 00281898  D1 25 80 00 */	stfs f9, -0x8000(r5)
/* 80285C3C 0028189C  D0 25 80 00 */	stfs f1, -0x8000(r5)
/* 80285C40 002818A0  D0 45 80 00 */	stfs f2, -0x8000(r5)
/* 80285C44 002818A4  D0 65 80 00 */	stfs f3, -0x8000(r5)
/* 80285C48 002818A8  41 82 00 1C */	beq lbl_80285C64
/* 80285C4C 002818AC  D0 85 80 00 */	stfs f4, -0x8000(r5)
/* 80285C50 002818B0  D0 A5 80 00 */	stfs f5, -0x8000(r5)
/* 80285C54 002818B4  D0 C5 80 00 */	stfs f6, -0x8000(r5)
/* 80285C58 002818B8  D0 E5 80 00 */	stfs f7, -0x8000(r5)
/* 80285C5C 002818BC  D1 05 80 00 */	stfs f8, -0x8000(r5)
/* 80285C60 002818C0  D0 05 80 00 */	stfs f0, -0x8000(r5)
lbl_80285C64:
/* 80285C64 002818C4  2C 04 00 00 */	cmpwi r4, 0
/* 80285C68 002818C8  41 82 00 14 */	beq lbl_80285C7C
/* 80285C6C 002818CC  38 00 00 01 */	li r0, 1
/* 80285C70 002818D0  3C A0 CC 01 */	lis r5, 0xCC008000@ha
/* 80285C74 002818D4  98 05 80 00 */	stb r0, 0xCC008000@l(r5)
/* 80285C78 002818D8  98 05 80 00 */	stb r0, -0x8000(r5)
lbl_80285C7C:
/* 80285C7C 002818DC  ED 61 20 28 */	fsubs f11, f1, f4
/* 80285C80 002818E0  C1 82 A1 FC */	lfs f12, lbl_806427FC-_SDA2_BASE_(r2)
/* 80285C84 002818E4  ED 42 28 28 */	fsubs f10, f2, f5
/* 80285C88 002818E8  3C A0 CC 01 */	lis r5, 0xCC008000@ha
/* 80285C8C 002818EC  ED 23 30 28 */	fsubs f9, f3, f6
/* 80285C90 002818F0  2C 03 00 00 */	cmpwi r3, 0
/* 80285C94 002818F4  ED 67 58 2A */	fadds f11, f7, f11
/* 80285C98 002818F8  ED 48 50 2A */	fadds f10, f8, f10
/* 80285C9C 002818FC  ED 20 48 2A */	fadds f9, f0, f9
/* 80285CA0 00281900  ED 6C 02 F2 */	fmuls f11, f12, f11
/* 80285CA4 00281904  ED 4C 02 B2 */	fmuls f10, f12, f10
/* 80285CA8 00281908  ED 2C 02 72 */	fmuls f9, f12, f9
/* 80285CAC 0028190C  D1 65 80 00 */	stfs f11, 0xCC008000@l(r5)
/* 80285CB0 00281910  D1 45 80 00 */	stfs f10, -0x8000(r5)
/* 80285CB4 00281914  D1 25 80 00 */	stfs f9, -0x8000(r5)
/* 80285CB8 00281918  D0 25 80 00 */	stfs f1, -0x8000(r5)
/* 80285CBC 0028191C  D0 45 80 00 */	stfs f2, -0x8000(r5)
/* 80285CC0 00281920  D0 65 80 00 */	stfs f3, -0x8000(r5)
/* 80285CC4 00281924  41 82 00 1C */	beq lbl_80285CE0
/* 80285CC8 00281928  D0 85 80 00 */	stfs f4, -0x8000(r5)
/* 80285CCC 0028192C  D0 A5 80 00 */	stfs f5, -0x8000(r5)
/* 80285CD0 00281930  D0 C5 80 00 */	stfs f6, -0x8000(r5)
/* 80285CD4 00281934  D0 E5 80 00 */	stfs f7, -0x8000(r5)
/* 80285CD8 00281938  D1 05 80 00 */	stfs f8, -0x8000(r5)
/* 80285CDC 0028193C  D0 05 80 00 */	stfs f0, -0x8000(r5)
lbl_80285CE0:
/* 80285CE0 00281940  2C 04 00 00 */	cmpwi r4, 0
/* 80285CE4 00281944  41 82 00 18 */	beq lbl_80285CFC
/* 80285CE8 00281948  3C A0 CC 01 */	lis r5, 0xCC008000@ha
/* 80285CEC 0028194C  38 00 00 00 */	li r0, 0
/* 80285CF0 00281950  98 05 80 00 */	stb r0, 0xCC008000@l(r5)
/* 80285CF4 00281954  38 00 00 01 */	li r0, 1
/* 80285CF8 00281958  98 05 80 00 */	stb r0, -0x8000(r5)
lbl_80285CFC:
/* 80285CFC 0028195C  ED 61 20 28 */	fsubs f11, f1, f4
/* 80285D00 00281960  C1 82 A1 FC */	lfs f12, lbl_806427FC-_SDA2_BASE_(r2)
/* 80285D04 00281964  ED 42 28 28 */	fsubs f10, f2, f5
/* 80285D08 00281968  3C A0 CC 01 */	lis r5, 0xCC008000@ha
/* 80285D0C 0028196C  ED 23 30 28 */	fsubs f9, f3, f6
/* 80285D10 00281970  2C 03 00 00 */	cmpwi r3, 0
/* 80285D14 00281974  ED 6B 38 28 */	fsubs f11, f11, f7
/* 80285D18 00281978  ED 4A 40 28 */	fsubs f10, f10, f8
/* 80285D1C 0028197C  ED 29 00 28 */	fsubs f9, f9, f0
/* 80285D20 00281980  ED 6C 02 F2 */	fmuls f11, f12, f11
/* 80285D24 00281984  ED 4C 02 B2 */	fmuls f10, f12, f10
/* 80285D28 00281988  ED 2C 02 72 */	fmuls f9, f12, f9
/* 80285D2C 0028198C  D1 65 80 00 */	stfs f11, 0xCC008000@l(r5)
/* 80285D30 00281990  D1 45 80 00 */	stfs f10, -0x8000(r5)
/* 80285D34 00281994  D1 25 80 00 */	stfs f9, -0x8000(r5)
/* 80285D38 00281998  D0 25 80 00 */	stfs f1, -0x8000(r5)
/* 80285D3C 0028199C  D0 45 80 00 */	stfs f2, -0x8000(r5)
/* 80285D40 002819A0  D0 65 80 00 */	stfs f3, -0x8000(r5)
/* 80285D44 002819A4  41 82 00 1C */	beq lbl_80285D60
/* 80285D48 002819A8  D0 85 80 00 */	stfs f4, -0x8000(r5)
/* 80285D4C 002819AC  D0 A5 80 00 */	stfs f5, -0x8000(r5)
/* 80285D50 002819B0  D0 C5 80 00 */	stfs f6, -0x8000(r5)
/* 80285D54 002819B4  D0 E5 80 00 */	stfs f7, -0x8000(r5)
/* 80285D58 002819B8  D1 05 80 00 */	stfs f8, -0x8000(r5)
/* 80285D5C 002819BC  D0 05 80 00 */	stfs f0, -0x8000(r5)
lbl_80285D60:
/* 80285D60 002819C0  2C 04 00 00 */	cmpwi r4, 0
/* 80285D64 002819C4  41 82 00 14 */	beq lbl_80285D78
/* 80285D68 002819C8  38 00 00 00 */	li r0, 0
/* 80285D6C 002819CC  3C A0 CC 01 */	lis r5, 0xCC008000@ha
/* 80285D70 002819D0  98 05 80 00 */	stb r0, 0xCC008000@l(r5)
/* 80285D74 002819D4  98 05 80 00 */	stb r0, -0x8000(r5)
lbl_80285D78:
/* 80285D78 002819D8  ED 61 20 2A */	fadds f11, f1, f4
/* 80285D7C 002819DC  C1 82 A1 FC */	lfs f12, lbl_806427FC-_SDA2_BASE_(r2)
/* 80285D80 002819E0  ED 42 28 2A */	fadds f10, f2, f5
/* 80285D84 002819E4  3C A0 CC 01 */	lis r5, 0xCC008000@ha
/* 80285D88 002819E8  ED 23 30 2A */	fadds f9, f3, f6
/* 80285D8C 002819EC  2C 03 00 00 */	cmpwi r3, 0
/* 80285D90 002819F0  ED 6B 38 28 */	fsubs f11, f11, f7
/* 80285D94 002819F4  ED 4A 40 28 */	fsubs f10, f10, f8
/* 80285D98 002819F8  ED 29 00 28 */	fsubs f9, f9, f0
/* 80285D9C 002819FC  ED 6C 02 F2 */	fmuls f11, f12, f11
/* 80285DA0 00281A00  ED 4C 02 B2 */	fmuls f10, f12, f10
/* 80285DA4 00281A04  ED 2C 02 72 */	fmuls f9, f12, f9
/* 80285DA8 00281A08  D1 65 80 00 */	stfs f11, 0xCC008000@l(r5)
/* 80285DAC 00281A0C  D1 45 80 00 */	stfs f10, -0x8000(r5)
/* 80285DB0 00281A10  D1 25 80 00 */	stfs f9, -0x8000(r5)
/* 80285DB4 00281A14  D0 25 80 00 */	stfs f1, -0x8000(r5)
/* 80285DB8 00281A18  D0 45 80 00 */	stfs f2, -0x8000(r5)
/* 80285DBC 00281A1C  D0 65 80 00 */	stfs f3, -0x8000(r5)
/* 80285DC0 00281A20  41 82 00 1C */	beq lbl_80285DDC
/* 80285DC4 00281A24  D0 85 80 00 */	stfs f4, -0x8000(r5)
/* 80285DC8 00281A28  D0 A5 80 00 */	stfs f5, -0x8000(r5)
/* 80285DCC 00281A2C  D0 C5 80 00 */	stfs f6, -0x8000(r5)
/* 80285DD0 00281A30  D0 E5 80 00 */	stfs f7, -0x8000(r5)
/* 80285DD4 00281A34  D1 05 80 00 */	stfs f8, -0x8000(r5)
/* 80285DD8 00281A38  D0 05 80 00 */	stfs f0, -0x8000(r5)
lbl_80285DDC:
/* 80285DDC 00281A3C  2C 04 00 00 */	cmpwi r4, 0
/* 80285DE0 00281A40  4D 82 00 20 */	beqlr
/* 80285DE4 00281A44  3C 60 CC 01 */	lis r3, 0xCC008000@ha
/* 80285DE8 00281A48  38 00 00 01 */	li r0, 1
/* 80285DEC 00281A4C  98 03 80 00 */	stb r0, 0xCC008000@l(r3)
/* 80285DF0 00281A50  38 00 00 00 */	li r0, 0
/* 80285DF4 00281A54  98 03 80 00 */	stb r0, -0x8000(r3)
/* 80285DF8 00281A58  4E 80 00 20 */	blr

.global func_80285DFC
func_80285DFC:
/* 80285DFC 00281A5C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80285E00 00281A60  7C 08 02 A6 */	mflr r0
/* 80285E04 00281A64  38 60 00 19 */	li r3, 0x19
/* 80285E08 00281A68  90 01 00 24 */	stw r0, 0x24(r1)
/* 80285E0C 00281A6C  38 81 00 14 */	addi r4, r1, 0x14
/* 80285E10 00281A70  4B FF 9C 31 */	bl GXGetVtxDesc
/* 80285E14 00281A74  38 81 00 10 */	addi r4, r1, 0x10
/* 80285E18 00281A78  38 60 00 0D */	li r3, 0xd
/* 80285E1C 00281A7C  4B FF 9C 25 */	bl GXGetVtxDesc
/* 80285E20 00281A80  3C 60 80 51 */	lis r3, lbl_80515FF8@ha
/* 80285E24 00281A84  38 63 5F F8 */	addi r3, r3, lbl_80515FF8@l
/* 80285E28 00281A88  4B FF 9D CD */	bl GXGetVtxDescv
/* 80285E2C 00281A8C  3C 80 80 51 */	lis r4, lbl_805160D0@ha
/* 80285E30 00281A90  38 60 00 03 */	li r3, 3
/* 80285E34 00281A94  38 84 60 D0 */	addi r4, r4, lbl_805160D0@l
/* 80285E38 00281A98  4B FF A4 D1 */	bl GXGetVtxAttrFmtv
/* 80285E3C 00281A9C  4B FF 9E 49 */	bl GXClearVtxDesc
/* 80285E40 00281AA0  38 60 00 09 */	li r3, 9
/* 80285E44 00281AA4  38 80 00 01 */	li r4, 1
/* 80285E48 00281AA8  4B FF 95 AD */	bl GXSetVtxDesc
/* 80285E4C 00281AAC  38 60 00 0A */	li r3, 0xa
/* 80285E50 00281AB0  38 80 00 01 */	li r4, 1
/* 80285E54 00281AB4  4B FF 95 A1 */	bl GXSetVtxDesc
/* 80285E58 00281AB8  38 60 00 03 */	li r3, 3
/* 80285E5C 00281ABC  38 80 00 09 */	li r4, 9
/* 80285E60 00281AC0  38 A0 00 01 */	li r5, 1
/* 80285E64 00281AC4  38 C0 00 04 */	li r6, 4
/* 80285E68 00281AC8  38 E0 00 00 */	li r7, 0
/* 80285E6C 00281ACC  4B FF 9E 4D */	bl GXSetVtxAttrFmt
/* 80285E70 00281AD0  38 60 00 03 */	li r3, 3
/* 80285E74 00281AD4  38 80 00 0A */	li r4, 0xa
/* 80285E78 00281AD8  38 A0 00 00 */	li r5, 0
/* 80285E7C 00281ADC  38 C0 00 04 */	li r6, 4
/* 80285E80 00281AE0  38 E0 00 00 */	li r7, 0
/* 80285E84 00281AE4  4B FF 9E 35 */	bl GXSetVtxAttrFmt
/* 80285E88 00281AE8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80285E8C 00281AEC  2C 00 00 00 */	cmpwi r0, 0
/* 80285E90 00281AF0  41 82 00 28 */	beq lbl_80285EB8
/* 80285E94 00281AF4  38 60 00 19 */	li r3, 0x19
/* 80285E98 00281AF8  38 80 00 01 */	li r4, 1
/* 80285E9C 00281AFC  4B FF 95 59 */	bl GXSetVtxDesc
/* 80285EA0 00281B00  38 60 00 03 */	li r3, 3
/* 80285EA4 00281B04  38 80 00 19 */	li r4, 0x19
/* 80285EA8 00281B08  38 A0 00 01 */	li r5, 1
/* 80285EAC 00281B0C  38 C0 00 04 */	li r6, 4
/* 80285EB0 00281B10  38 E0 00 00 */	li r7, 0
/* 80285EB4 00281B14  4B FF 9E 05 */	bl GXSetVtxAttrFmt
lbl_80285EB8:
/* 80285EB8 00281B18  80 01 00 10 */	lwz r0, 0x10(r1)
/* 80285EBC 00281B1C  2C 00 00 00 */	cmpwi r0, 0
/* 80285EC0 00281B20  41 82 00 28 */	beq lbl_80285EE8
/* 80285EC4 00281B24  38 60 00 0D */	li r3, 0xd
/* 80285EC8 00281B28  38 80 00 01 */	li r4, 1
/* 80285ECC 00281B2C  4B FF 95 29 */	bl GXSetVtxDesc
/* 80285ED0 00281B30  38 60 00 03 */	li r3, 3
/* 80285ED4 00281B34  38 80 00 0D */	li r4, 0xd
/* 80285ED8 00281B38  38 A0 00 01 */	li r5, 1
/* 80285EDC 00281B3C  38 C0 00 01 */	li r6, 1
/* 80285EE0 00281B40  38 E0 00 00 */	li r7, 0
/* 80285EE4 00281B44  4B FF 9D D5 */	bl GXSetVtxAttrFmt
lbl_80285EE8:
/* 80285EE8 00281B48  38 60 00 80 */	li r3, 0x80
/* 80285EEC 00281B4C  38 80 00 03 */	li r4, 3
/* 80285EF0 00281B50  38 A0 00 18 */	li r5, 0x18
/* 80285EF4 00281B54  4B FF B2 55 */	bl GXBegin
/* 80285EF8 00281B58  C0 42 A1 DC */	lfs f2, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285EFC 00281B5C  C0 22 A1 E0 */	lfs f1, lbl_806427E0-_SDA2_BASE_(r2)
/* 80285F00 00281B60  D0 41 00 08 */	stfs f2, 8(r1)
/* 80285F04 00281B64  FC 60 10 90 */	fmr f3, f2
/* 80285F08 00281B68  FC 80 10 90 */	fmr f4, f2
/* 80285F0C 00281B6C  C1 02 A1 D0 */	lfs f8, lbl_806427D0-_SDA2_BASE_(r2)
/* 80285F10 00281B70  FC A0 10 90 */	fmr f5, f2
/* 80285F14 00281B74  80 61 00 14 */	lwz r3, 0x14(r1)
/* 80285F18 00281B78  FC C0 08 90 */	fmr f6, f1
/* 80285F1C 00281B7C  FC E0 10 90 */	fmr f7, f2
/* 80285F20 00281B80  80 81 00 10 */	lwz r4, 0x10(r1)
/* 80285F24 00281B84  4B FF FC D9 */	bl func_80285BFC
/* 80285F28 00281B88  C0 02 A1 E0 */	lfs f0, lbl_806427E0-_SDA2_BASE_(r2)
/* 80285F2C 00281B8C  C0 42 A1 DC */	lfs f2, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285F30 00281B90  D0 01 00 08 */	stfs f0, 8(r1)
/* 80285F34 00281B94  C0 22 A1 D0 */	lfs f1, lbl_806427D0-_SDA2_BASE_(r2)
/* 80285F38 00281B98  FC 60 10 90 */	fmr f3, f2
/* 80285F3C 00281B9C  FC 80 10 90 */	fmr f4, f2
/* 80285F40 00281BA0  80 61 00 14 */	lwz r3, 0x14(r1)
/* 80285F44 00281BA4  FC A0 08 90 */	fmr f5, f1
/* 80285F48 00281BA8  80 81 00 10 */	lwz r4, 0x10(r1)
/* 80285F4C 00281BAC  FC C0 10 90 */	fmr f6, f2
/* 80285F50 00281BB0  FC E0 10 90 */	fmr f7, f2
/* 80285F54 00281BB4  FD 00 10 90 */	fmr f8, f2
/* 80285F58 00281BB8  4B FF FC A5 */	bl func_80285BFC
/* 80285F5C 00281BBC  C0 02 A1 D0 */	lfs f0, lbl_806427D0-_SDA2_BASE_(r2)
/* 80285F60 00281BC0  C0 22 A1 DC */	lfs f1, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285F64 00281BC4  D0 01 00 08 */	stfs f0, 8(r1)
/* 80285F68 00281BC8  C0 42 A1 E0 */	lfs f2, lbl_806427E0-_SDA2_BASE_(r2)
/* 80285F6C 00281BCC  FC 60 08 90 */	fmr f3, f1
/* 80285F70 00281BD0  FC A0 08 90 */	fmr f5, f1
/* 80285F74 00281BD4  80 61 00 14 */	lwz r3, 0x14(r1)
/* 80285F78 00281BD8  FC 80 10 90 */	fmr f4, f2
/* 80285F7C 00281BDC  80 81 00 10 */	lwz r4, 0x10(r1)
/* 80285F80 00281BE0  FC C0 08 90 */	fmr f6, f1
/* 80285F84 00281BE4  FC E0 08 90 */	fmr f7, f1
/* 80285F88 00281BE8  FD 00 08 90 */	fmr f8, f1
/* 80285F8C 00281BEC  4B FF FC 71 */	bl func_80285BFC
/* 80285F90 00281BF0  C0 22 A1 DC */	lfs f1, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285F94 00281BF4  C0 42 A1 D0 */	lfs f2, lbl_806427D0-_SDA2_BASE_(r2)
/* 80285F98 00281BF8  D0 21 00 08 */	stfs f1, 8(r1)
/* 80285F9C 00281BFC  FC 60 08 90 */	fmr f3, f1
/* 80285FA0 00281C00  FC 80 08 90 */	fmr f4, f1
/* 80285FA4 00281C04  C0 E2 A1 E0 */	lfs f7, lbl_806427E0-_SDA2_BASE_(r2)
/* 80285FA8 00281C08  FC A0 08 90 */	fmr f5, f1
/* 80285FAC 00281C0C  80 61 00 14 */	lwz r3, 0x14(r1)
/* 80285FB0 00281C10  FC C0 10 90 */	fmr f6, f2
/* 80285FB4 00281C14  FD 00 08 90 */	fmr f8, f1
/* 80285FB8 00281C18  80 81 00 10 */	lwz r4, 0x10(r1)
/* 80285FBC 00281C1C  4B FF FC 41 */	bl func_80285BFC
/* 80285FC0 00281C20  C0 22 A1 DC */	lfs f1, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285FC4 00281C24  C0 62 A1 E0 */	lfs f3, lbl_806427E0-_SDA2_BASE_(r2)
/* 80285FC8 00281C28  D0 21 00 08 */	stfs f1, 8(r1)
/* 80285FCC 00281C2C  FC 40 08 90 */	fmr f2, f1
/* 80285FD0 00281C30  FC 80 08 90 */	fmr f4, f1
/* 80285FD4 00281C34  C0 E2 A1 D0 */	lfs f7, lbl_806427D0-_SDA2_BASE_(r2)
/* 80285FD8 00281C38  FC A0 18 90 */	fmr f5, f3
/* 80285FDC 00281C3C  80 61 00 14 */	lwz r3, 0x14(r1)
/* 80285FE0 00281C40  FC C0 08 90 */	fmr f6, f1
/* 80285FE4 00281C44  FD 00 08 90 */	fmr f8, f1
/* 80285FE8 00281C48  80 81 00 10 */	lwz r4, 0x10(r1)
/* 80285FEC 00281C4C  4B FF FC 11 */	bl func_80285BFC
/* 80285FF0 00281C50  C0 22 A1 DC */	lfs f1, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285FF4 00281C54  C0 62 A1 D0 */	lfs f3, lbl_806427D0-_SDA2_BASE_(r2)
/* 80285FF8 00281C58  D0 21 00 08 */	stfs f1, 8(r1)
/* 80285FFC 00281C5C  FC 40 08 90 */	fmr f2, f1
/* 80286000 00281C60  FC 80 18 90 */	fmr f4, f3
/* 80286004 00281C64  C1 02 A1 E0 */	lfs f8, lbl_806427E0-_SDA2_BASE_(r2)
/* 80286008 00281C68  FC A0 08 90 */	fmr f5, f1
/* 8028600C 00281C6C  80 61 00 14 */	lwz r3, 0x14(r1)
/* 80286010 00281C70  FC C0 08 90 */	fmr f6, f1
/* 80286014 00281C74  FC E0 08 90 */	fmr f7, f1
/* 80286018 00281C78  80 81 00 10 */	lwz r4, 0x10(r1)
/* 8028601C 00281C7C  4B FF FB E1 */	bl func_80285BFC
/* 80286020 00281C80  3C 60 80 51 */	lis r3, lbl_80515FF8@ha
/* 80286024 00281C84  38 63 5F F8 */	addi r3, r3, lbl_80515FF8@l
/* 80286028 00281C88  4B FF 96 31 */	bl GXSetVtxDescv
/* 8028602C 00281C8C  3C 80 80 51 */	lis r4, lbl_805160D0@ha
/* 80286030 00281C90  38 60 00 03 */	li r3, 3
/* 80286034 00281C94  38 84 60 D0 */	addi r4, r4, lbl_805160D0@l
/* 80286038 00281C98  4B FF 9E 21 */	bl GXSetVtxAttrFmtv
/* 8028603C 00281C9C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80286040 00281CA0  7C 08 03 A6 */	mtlr r0
/* 80286044 00281CA4  38 21 00 20 */	addi r1, r1, 0x20
/* 80286048 00281CA8  4E 80 00 20 */	blr

.global func_8028604C
func_8028604C:
/* 8028604C 00281CAC  94 21 FF A0 */	stwu r1, -0x60(r1)
/* 80286050 00281CB0  7C 08 02 A6 */	mflr r0
/* 80286054 00281CB4  90 01 00 64 */	stw r0, 0x64(r1)
/* 80286058 00281CB8  39 61 00 60 */	addi r11, r1, 0x60
/* 8028605C 00281CBC  4B F4 10 C5 */	bl _savegpr_25
/* 80286060 00281CC0  3C 60 80 51 */	lis r3, lbl_80515FF8@ha
/* 80286064 00281CC4  38 63 5F F8 */	addi r3, r3, lbl_80515FF8@l
/* 80286068 00281CC8  4B FF 9B 8D */	bl GXGetVtxDescv
/* 8028606C 00281CCC  3C 80 80 51 */	lis r4, lbl_805160D0@ha
/* 80286070 00281CD0  38 60 00 03 */	li r3, 3
/* 80286074 00281CD4  38 84 60 D0 */	addi r4, r4, lbl_805160D0@l
/* 80286078 00281CD8  4B FF A2 91 */	bl GXGetVtxAttrFmtv
/* 8028607C 00281CDC  4B FF 9C 09 */	bl GXClearVtxDesc
/* 80286080 00281CE0  38 60 00 09 */	li r3, 9
/* 80286084 00281CE4  38 80 00 01 */	li r4, 1
/* 80286088 00281CE8  4B FF 93 6D */	bl GXSetVtxDesc
/* 8028608C 00281CEC  38 60 00 0A */	li r3, 0xa
/* 80286090 00281CF0  38 80 00 01 */	li r4, 1
/* 80286094 00281CF4  4B FF 93 61 */	bl GXSetVtxDesc
/* 80286098 00281CF8  38 60 00 03 */	li r3, 3
/* 8028609C 00281CFC  38 80 00 09 */	li r4, 9
/* 802860A0 00281D00  38 A0 00 01 */	li r5, 1
/* 802860A4 00281D04  38 C0 00 04 */	li r6, 4
/* 802860A8 00281D08  38 E0 00 00 */	li r7, 0
/* 802860AC 00281D0C  4B FF 9C 0D */	bl GXSetVtxAttrFmt
/* 802860B0 00281D10  38 60 00 03 */	li r3, 3
/* 802860B4 00281D14  38 80 00 0A */	li r4, 0xa
/* 802860B8 00281D18  38 A0 00 00 */	li r5, 0
/* 802860BC 00281D1C  38 C0 00 04 */	li r6, 4
/* 802860C0 00281D20  38 E0 00 00 */	li r7, 0
/* 802860C4 00281D24  4B FF 9B F5 */	bl GXSetVtxAttrFmt
/* 802860C8 00281D28  3F A0 80 43 */	lis r29, lbl_80435968@ha
/* 802860CC 00281D2C  3F C0 80 43 */	lis r30, lbl_80435A58@ha
/* 802860D0 00281D30  3B BD 59 68 */	addi r29, r29, lbl_80435968@l
/* 802860D4 00281D34  3B 80 00 00 */	li r28, 0
/* 802860D8 00281D38  3B DE 5A 58 */	addi r30, r30, lbl_80435A58@l
/* 802860DC 00281D3C  3F E0 CC 01 */	lis r31, 0xcc01
lbl_802860E0:
/* 802860E0 00281D40  80 9D 00 00 */	lwz r4, 0(r29)
/* 802860E4 00281D44  80 7D 00 04 */	lwz r3, 4(r29)
/* 802860E8 00281D48  1C 84 00 0C */	mulli r4, r4, 0xc
/* 802860EC 00281D4C  80 1D 00 08 */	lwz r0, 8(r29)
/* 802860F0 00281D50  1C 63 00 0C */	mulli r3, r3, 0xc
/* 802860F4 00281D54  7C 5E 24 2E */	lfsx f2, r30, r4
/* 802860F8 00281D58  7F 7E 22 14 */	add r27, r30, r4
/* 802860FC 00281D5C  C0 3B 00 04 */	lfs f1, 4(r27)
/* 80286100 00281D60  7F 5E 1A 14 */	add r26, r30, r3
/* 80286104 00281D64  7C BE 1C 2E */	lfsx f5, r30, r3
/* 80286108 00281D68  1C 00 00 0C */	mulli r0, r0, 0xc
/* 8028610C 00281D6C  C0 9A 00 04 */	lfs f4, 4(r26)
/* 80286110 00281D70  ED 02 28 28 */	fsubs f8, f2, f5
/* 80286114 00281D74  C0 1B 00 08 */	lfs f0, 8(r27)
/* 80286118 00281D78  C0 7A 00 08 */	lfs f3, 8(r26)
/* 8028611C 00281D7C  EC E1 20 28 */	fsubs f7, f1, f4
/* 80286120 00281D80  7F 3E 02 14 */	add r25, r30, r0
/* 80286124 00281D84  EC C0 18 28 */	fsubs f6, f0, f3
/* 80286128 00281D88  7C 5E 04 2E */	lfsx f2, r30, r0
/* 8028612C 00281D8C  C0 39 00 04 */	lfs f1, 4(r25)
/* 80286130 00281D90  C0 19 00 08 */	lfs f0, 8(r25)
/* 80286134 00281D94  EC A2 28 28 */	fsubs f5, f2, f5
/* 80286138 00281D98  ED 41 20 28 */	fsubs f10, f1, f4
/* 8028613C 00281D9C  D1 01 00 20 */	stfs f8, 0x20(r1)
/* 80286140 00281DA0  ED 20 18 28 */	fsubs f9, f0, f3
/* 80286144 00281DA4  EC 05 01 B2 */	fmuls f0, f5, f6
/* 80286148 00281DA8  D0 A1 00 2C */	stfs f5, 0x2c(r1)
/* 8028614C 00281DAC  EC 8A 01 B2 */	fmuls f4, f10, f6
/* 80286150 00281DB0  EC 49 01 F2 */	fmuls f2, f9, f7
/* 80286154 00281DB4  D1 41 00 30 */	stfs f10, 0x30(r1)
/* 80286158 00281DB8  EC 65 01 F2 */	fmuls f3, f5, f7
/* 8028615C 00281DBC  EC 29 02 32 */	fmuls f1, f9, f8
/* 80286160 00281DC0  D1 21 00 34 */	stfs f9, 0x34(r1)
/* 80286164 00281DC4  EC A4 10 28 */	fsubs f5, f4, f2
/* 80286168 00281DC8  EC 4A 02 32 */	fmuls f2, f10, f8
/* 8028616C 00281DCC  D0 E1 00 24 */	stfs f7, 0x24(r1)
/* 80286170 00281DD0  EC 81 00 28 */	fsubs f4, f1, f0
/* 80286174 00281DD4  EC 25 01 72 */	fmuls f1, f5, f5
/* 80286178 00281DD8  D0 C1 00 28 */	stfs f6, 0x28(r1)
/* 8028617C 00281DDC  EC 43 10 28 */	fsubs f2, f3, f2
/* 80286180 00281DE0  EC 04 01 32 */	fmuls f0, f4, f4
/* 80286184 00281DE4  D0 A1 00 08 */	stfs f5, 8(r1)
/* 80286188 00281DE8  D0 81 00 0C */	stfs f4, 0xc(r1)
/* 8028618C 00281DEC  EC 01 00 2A */	fadds f0, f1, f0
/* 80286190 00281DF0  EC 22 00 B2 */	fmuls f1, f2, f2
/* 80286194 00281DF4  D0 41 00 10 */	stfs f2, 0x10(r1)
/* 80286198 00281DF8  D0 A1 00 14 */	stfs f5, 0x14(r1)
/* 8028619C 00281DFC  EC 21 00 2A */	fadds f1, f1, f0
/* 802861A0 00281E00  D0 81 00 18 */	stfs f4, 0x18(r1)
/* 802861A4 00281E04  D0 41 00 1C */	stfs f2, 0x1c(r1)
/* 802861A8 00281E08  4B F4 E6 8D */	bl sqrt
/* 802861AC 00281E0C  FC 60 08 18 */	frsp f3, f1
/* 802861B0 00281E10  C0 41 00 14 */	lfs f2, 0x14(r1)
/* 802861B4 00281E14  C0 21 00 18 */	lfs f1, 0x18(r1)
/* 802861B8 00281E18  38 60 00 A0 */	li r3, 0xa0
/* 802861BC 00281E1C  C0 01 00 1C */	lfs f0, 0x1c(r1)
/* 802861C0 00281E20  38 80 00 03 */	li r4, 3
/* 802861C4 00281E24  EC 42 18 24 */	fdivs f2, f2, f3
/* 802861C8 00281E28  38 A0 00 05 */	li r5, 5
/* 802861CC 00281E2C  EC 21 18 24 */	fdivs f1, f1, f3
/* 802861D0 00281E30  D0 41 00 14 */	stfs f2, 0x14(r1)
/* 802861D4 00281E34  EC 00 18 24 */	fdivs f0, f0, f3
/* 802861D8 00281E38  D0 21 00 18 */	stfs f1, 0x18(r1)
/* 802861DC 00281E3C  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 802861E0 00281E40  4B FF AF 69 */	bl GXBegin
/* 802861E4 00281E44  80 1D 00 10 */	lwz r0, 0x10(r29)
/* 802861E8 00281E48  3B 9C 00 01 */	addi r28, r28, 1
/* 802861EC 00281E4C  C0 41 00 14 */	lfs f2, 0x14(r1)
/* 802861F0 00281E50  28 1C 00 0C */	cmplwi r28, 0xc
/* 802861F4 00281E54  1C 00 00 0C */	mulli r0, r0, 0xc
/* 802861F8 00281E58  C0 21 00 18 */	lfs f1, 0x18(r1)
/* 802861FC 00281E5C  C0 01 00 1C */	lfs f0, 0x1c(r1)
/* 80286200 00281E60  7C 7E 02 14 */	add r3, r30, r0
/* 80286204 00281E64  7C BE 04 2E */	lfsx f5, r30, r0
/* 80286208 00281E68  C0 63 00 08 */	lfs f3, 8(r3)
/* 8028620C 00281E6C  C0 83 00 04 */	lfs f4, 4(r3)
/* 80286210 00281E70  D0 BF 80 00 */	stfs f5, -0x8000(r31)
/* 80286214 00281E74  D0 9F 80 00 */	stfs f4, -0x8000(r31)
/* 80286218 00281E78  D0 7F 80 00 */	stfs f3, -0x8000(r31)
/* 8028621C 00281E7C  D0 5F 80 00 */	stfs f2, -0x8000(r31)
/* 80286220 00281E80  D0 3F 80 00 */	stfs f1, -0x8000(r31)
/* 80286224 00281E84  D0 1F 80 00 */	stfs f0, -0x8000(r31)
/* 80286228 00281E88  80 1D 00 0C */	lwz r0, 0xc(r29)
/* 8028622C 00281E8C  3B BD 00 14 */	addi r29, r29, 0x14
/* 80286230 00281E90  1C 00 00 0C */	mulli r0, r0, 0xc
/* 80286234 00281E94  7C 7E 02 14 */	add r3, r30, r0
/* 80286238 00281E98  7C BE 04 2E */	lfsx f5, r30, r0
/* 8028623C 00281E9C  C0 63 00 08 */	lfs f3, 8(r3)
/* 80286240 00281EA0  C0 83 00 04 */	lfs f4, 4(r3)
/* 80286244 00281EA4  D0 BF 80 00 */	stfs f5, -0x8000(r31)
/* 80286248 00281EA8  D0 9F 80 00 */	stfs f4, -0x8000(r31)
/* 8028624C 00281EAC  D0 7F 80 00 */	stfs f3, -0x8000(r31)
/* 80286250 00281EB0  D0 5F 80 00 */	stfs f2, -0x8000(r31)
/* 80286254 00281EB4  D0 3F 80 00 */	stfs f1, -0x8000(r31)
/* 80286258 00281EB8  D0 1F 80 00 */	stfs f0, -0x8000(r31)
/* 8028625C 00281EBC  C0 79 00 08 */	lfs f3, 8(r25)
/* 80286260 00281EC0  C0 99 00 04 */	lfs f4, 4(r25)
/* 80286264 00281EC4  C0 B9 00 00 */	lfs f5, 0(r25)
/* 80286268 00281EC8  D0 BF 80 00 */	stfs f5, -0x8000(r31)
/* 8028626C 00281ECC  D0 9F 80 00 */	stfs f4, -0x8000(r31)
/* 80286270 00281ED0  D0 7F 80 00 */	stfs f3, -0x8000(r31)
/* 80286274 00281ED4  D0 5F 80 00 */	stfs f2, -0x8000(r31)
/* 80286278 00281ED8  D0 3F 80 00 */	stfs f1, -0x8000(r31)
/* 8028627C 00281EDC  D0 1F 80 00 */	stfs f0, -0x8000(r31)
/* 80286280 00281EE0  C0 7A 00 08 */	lfs f3, 8(r26)
/* 80286284 00281EE4  C0 9A 00 04 */	lfs f4, 4(r26)
/* 80286288 00281EE8  C0 BA 00 00 */	lfs f5, 0(r26)
/* 8028628C 00281EEC  D0 BF 80 00 */	stfs f5, -0x8000(r31)
/* 80286290 00281EF0  D0 9F 80 00 */	stfs f4, -0x8000(r31)
/* 80286294 00281EF4  D0 7F 80 00 */	stfs f3, -0x8000(r31)
/* 80286298 00281EF8  D0 5F 80 00 */	stfs f2, -0x8000(r31)
/* 8028629C 00281EFC  D0 3F 80 00 */	stfs f1, -0x8000(r31)
/* 802862A0 00281F00  D0 1F 80 00 */	stfs f0, -0x8000(r31)
/* 802862A4 00281F04  C0 7B 00 08 */	lfs f3, 8(r27)
/* 802862A8 00281F08  C0 9B 00 04 */	lfs f4, 4(r27)
/* 802862AC 00281F0C  C0 BB 00 00 */	lfs f5, 0(r27)
/* 802862B0 00281F10  D0 BF 80 00 */	stfs f5, -0x8000(r31)
/* 802862B4 00281F14  D0 9F 80 00 */	stfs f4, -0x8000(r31)
/* 802862B8 00281F18  D0 7F 80 00 */	stfs f3, -0x8000(r31)
/* 802862BC 00281F1C  D0 5F 80 00 */	stfs f2, -0x8000(r31)
/* 802862C0 00281F20  D0 3F 80 00 */	stfs f1, -0x8000(r31)
/* 802862C4 00281F24  D0 1F 80 00 */	stfs f0, -0x8000(r31)
/* 802862C8 00281F28  41 80 FE 18 */	blt lbl_802860E0
/* 802862CC 00281F2C  3C 60 80 51 */	lis r3, lbl_80515FF8@ha
/* 802862D0 00281F30  38 63 5F F8 */	addi r3, r3, lbl_80515FF8@l
/* 802862D4 00281F34  4B FF 93 85 */	bl GXSetVtxDescv
/* 802862D8 00281F38  3C 80 80 51 */	lis r4, lbl_805160D0@ha
/* 802862DC 00281F3C  38 60 00 03 */	li r3, 3
/* 802862E0 00281F40  38 84 60 D0 */	addi r4, r4, lbl_805160D0@l
/* 802862E4 00281F44  4B FF 9B 75 */	bl GXSetVtxAttrFmtv
/* 802862E8 00281F48  39 61 00 60 */	addi r11, r1, 0x60
/* 802862EC 00281F4C  4B F4 0E 81 */	bl _restgpr_25
/* 802862F0 00281F50  80 01 00 64 */	lwz r0, 0x64(r1)
/* 802862F4 00281F54  7C 08 03 A6 */	mtlr r0
/* 802862F8 00281F58  38 21 00 60 */	addi r1, r1, 0x60
/* 802862FC 00281F5C  4E 80 00 20 */	blr

.global func_80286300
func_80286300:
/* 80286300 00281F60  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80286304 00281F64  7C 08 02 A6 */	mflr r0
/* 80286308 00281F68  3C 60 80 51 */	lis r3, lbl_80515FF8@ha
/* 8028630C 00281F6C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80286310 00281F70  38 63 5F F8 */	addi r3, r3, lbl_80515FF8@l
/* 80286314 00281F74  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80286318 00281F78  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8028631C 00281F7C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80286320 00281F80  4B FF 98 D5 */	bl GXGetVtxDescv
/* 80286324 00281F84  3C 80 80 51 */	lis r4, lbl_805160D0@ha
/* 80286328 00281F88  38 60 00 03 */	li r3, 3
/* 8028632C 00281F8C  38 84 60 D0 */	addi r4, r4, lbl_805160D0@l
/* 80286330 00281F90  4B FF 9F D9 */	bl GXGetVtxAttrFmtv
/* 80286334 00281F94  4B FF 99 51 */	bl GXClearVtxDesc
/* 80286338 00281F98  38 60 00 09 */	li r3, 9
/* 8028633C 00281F9C  38 80 00 01 */	li r4, 1
/* 80286340 00281FA0  4B FF 90 B5 */	bl GXSetVtxDesc
/* 80286344 00281FA4  38 60 00 0A */	li r3, 0xa
/* 80286348 00281FA8  38 80 00 01 */	li r4, 1
/* 8028634C 00281FAC  4B FF 90 A9 */	bl GXSetVtxDesc
/* 80286350 00281FB0  38 60 00 03 */	li r3, 3
/* 80286354 00281FB4  38 80 00 09 */	li r4, 9
/* 80286358 00281FB8  38 A0 00 01 */	li r5, 1
/* 8028635C 00281FBC  38 C0 00 04 */	li r6, 4
/* 80286360 00281FC0  38 E0 00 00 */	li r7, 0
/* 80286364 00281FC4  4B FF 99 55 */	bl GXSetVtxAttrFmt
/* 80286368 00281FC8  38 60 00 03 */	li r3, 3
/* 8028636C 00281FCC  38 80 00 0A */	li r4, 0xa
/* 80286370 00281FD0  38 A0 00 00 */	li r5, 0
/* 80286374 00281FD4  38 C0 00 04 */	li r6, 4
/* 80286378 00281FD8  38 E0 00 00 */	li r7, 0
/* 8028637C 00281FDC  4B FF 99 3D */	bl GXSetVtxAttrFmt
/* 80286380 00281FE0  3F C0 80 43 */	lis r30, lbl_80435B90@ha
/* 80286384 00281FE4  3F E0 80 43 */	lis r31, lbl_80435B48@ha
/* 80286388 00281FE8  3B DE 5B 90 */	addi r30, r30, lbl_80435B90@l
/* 8028638C 00281FEC  3B A0 00 07 */	li r29, 7
/* 80286390 00281FF0  3B FF 5B 48 */	addi r31, r31, lbl_80435B48@l
lbl_80286394:
/* 80286394 00281FF4  57 A3 06 3E */	clrlwi r3, r29, 0x18
/* 80286398 00281FF8  57 A0 15 BA */	rlwinm r0, r29, 2, 0x16, 0x1d
/* 8028639C 00281FFC  7C 03 00 50 */	subf r0, r3, r0
/* 802863A0 00282000  7C DE 02 14 */	add r6, r30, r0
/* 802863A4 00282004  7C BE 00 AE */	lbzx r5, r30, r0
/* 802863A8 00282008  88 06 00 02 */	lbz r0, 2(r6)
/* 802863AC 0028200C  38 60 00 00 */	li r3, 0
/* 802863B0 00282010  88 86 00 01 */	lbz r4, 1(r6)
/* 802863B4 00282014  1C C5 00 0C */	mulli r6, r5, 0xc
/* 802863B8 00282018  1C A4 00 0C */	mulli r5, r4, 0xc
/* 802863BC 0028201C  7C 9F 32 14 */	add r4, r31, r6
/* 802863C0 00282020  1C 00 00 0C */	mulli r0, r0, 0xc
/* 802863C4 00282024  7C BF 2A 14 */	add r5, r31, r5
/* 802863C8 00282028  7C DF 02 14 */	add r6, r31, r0
/* 802863CC 0028202C  4B FF E5 85 */	bl func_80284950
/* 802863D0 00282030  37 BD FF FF */	addic. r29, r29, -1
/* 802863D4 00282034  40 80 FF C0 */	bge lbl_80286394
/* 802863D8 00282038  3C 60 80 51 */	lis r3, lbl_80515FF8@ha
/* 802863DC 0028203C  38 63 5F F8 */	addi r3, r3, lbl_80515FF8@l
/* 802863E0 00282040  4B FF 92 79 */	bl GXSetVtxDescv
/* 802863E4 00282044  3C 80 80 51 */	lis r4, lbl_805160D0@ha
/* 802863E8 00282048  38 60 00 03 */	li r3, 3
/* 802863EC 0028204C  38 84 60 D0 */	addi r4, r4, lbl_805160D0@l
/* 802863F0 00282050  4B FF 9A 69 */	bl GXSetVtxAttrFmtv
/* 802863F4 00282054  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802863F8 00282058  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802863FC 0028205C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80286400 00282060  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80286404 00282064  7C 08 03 A6 */	mtlr r0
/* 80286408 00282068  38 21 00 20 */	addi r1, r1, 0x20
/* 8028640C 0028206C  4E 80 00 20 */	blr

.global func_80286410
func_80286410:
/* 80286410 00282070  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80286414 00282074  7C 08 02 A6 */	mflr r0
/* 80286418 00282078  3C 60 80 51 */	lis r3, lbl_80515FF8@ha
/* 8028641C 0028207C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80286420 00282080  38 63 5F F8 */	addi r3, r3, lbl_80515FF8@l
/* 80286424 00282084  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80286428 00282088  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8028642C 0028208C  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80286430 00282090  4B FF 97 C5 */	bl GXGetVtxDescv
/* 80286434 00282094  3C 80 80 51 */	lis r4, lbl_805160D0@ha
/* 80286438 00282098  38 60 00 03 */	li r3, 3
/* 8028643C 0028209C  38 84 60 D0 */	addi r4, r4, lbl_805160D0@l
/* 80286440 002820A0  4B FF 9E C9 */	bl GXGetVtxAttrFmtv
/* 80286444 002820A4  4B FF 98 41 */	bl GXClearVtxDesc
/* 80286448 002820A8  38 60 00 09 */	li r3, 9
/* 8028644C 002820AC  38 80 00 01 */	li r4, 1
/* 80286450 002820B0  4B FF 8F A5 */	bl GXSetVtxDesc
/* 80286454 002820B4  38 60 00 0A */	li r3, 0xa
/* 80286458 002820B8  38 80 00 01 */	li r4, 1
/* 8028645C 002820BC  4B FF 8F 99 */	bl GXSetVtxDesc
/* 80286460 002820C0  38 60 00 03 */	li r3, 3
/* 80286464 002820C4  38 80 00 09 */	li r4, 9
/* 80286468 002820C8  38 A0 00 01 */	li r5, 1
/* 8028646C 002820CC  38 C0 00 04 */	li r6, 4
/* 80286470 002820D0  38 E0 00 00 */	li r7, 0
/* 80286474 002820D4  4B FF 98 45 */	bl GXSetVtxAttrFmt
/* 80286478 002820D8  38 60 00 03 */	li r3, 3
/* 8028647C 002820DC  38 80 00 0A */	li r4, 0xa
/* 80286480 002820E0  38 A0 00 00 */	li r5, 0
/* 80286484 002820E4  38 C0 00 04 */	li r6, 4
/* 80286488 002820E8  38 E0 00 00 */	li r7, 0
/* 8028648C 002820EC  4B FF 98 2D */	bl GXSetVtxAttrFmt
/* 80286490 002820F0  3F C0 80 43 */	lis r30, lbl_80435C38@ha
/* 80286494 002820F4  3F E0 80 43 */	lis r31, lbl_80435BA8@ha
/* 80286498 002820F8  3B DE 5C 38 */	addi r30, r30, lbl_80435C38@l
/* 8028649C 002820FC  3B A0 00 13 */	li r29, 0x13
/* 802864A0 00282100  3B FF 5B A8 */	addi r31, r31, lbl_80435BA8@l
lbl_802864A4:
/* 802864A4 00282104  57 A3 06 3E */	clrlwi r3, r29, 0x18
/* 802864A8 00282108  57 A0 15 BA */	rlwinm r0, r29, 2, 0x16, 0x1d
/* 802864AC 0028210C  7C 03 00 50 */	subf r0, r3, r0
/* 802864B0 00282110  7C DE 02 14 */	add r6, r30, r0
/* 802864B4 00282114  7C BE 00 AE */	lbzx r5, r30, r0
/* 802864B8 00282118  88 06 00 02 */	lbz r0, 2(r6)
/* 802864BC 0028211C  38 60 00 00 */	li r3, 0
/* 802864C0 00282120  88 86 00 01 */	lbz r4, 1(r6)
/* 802864C4 00282124  1C C5 00 0C */	mulli r6, r5, 0xc
/* 802864C8 00282128  1C A4 00 0C */	mulli r5, r4, 0xc
/* 802864CC 0028212C  7C 9F 32 14 */	add r4, r31, r6
/* 802864D0 00282130  1C 00 00 0C */	mulli r0, r0, 0xc
/* 802864D4 00282134  7C BF 2A 14 */	add r5, r31, r5
/* 802864D8 00282138  7C DF 02 14 */	add r6, r31, r0
/* 802864DC 0028213C  4B FF E4 75 */	bl func_80284950
/* 802864E0 00282140  37 BD FF FF */	addic. r29, r29, -1
/* 802864E4 00282144  40 80 FF C0 */	bge lbl_802864A4
/* 802864E8 00282148  3C 60 80 51 */	lis r3, lbl_80515FF8@ha
/* 802864EC 0028214C  38 63 5F F8 */	addi r3, r3, lbl_80515FF8@l
/* 802864F0 00282150  4B FF 91 69 */	bl GXSetVtxDescv
/* 802864F4 00282154  3C 80 80 51 */	lis r4, lbl_805160D0@ha
/* 802864F8 00282158  38 60 00 03 */	li r3, 3
/* 802864FC 0028215C  38 84 60 D0 */	addi r4, r4, lbl_805160D0@l
/* 80286500 00282160  4B FF 99 59 */	bl GXSetVtxAttrFmtv
/* 80286504 00282164  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80286508 00282168  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8028650C 0028216C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80286510 00282170  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80286514 00282174  7C 08 03 A6 */	mtlr r0
/* 80286518 00282178  38 21 00 20 */	addi r1, r1, 0x20
/* 8028651C 0028217C  4E 80 00 20 */	blr

.global func_80286520
func_80286520:
/* 80286520 00282180  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80286524 00282184  7C 08 02 A6 */	mflr r0
/* 80286528 00282188  3C 80 80 51 */	lis r4, lbl_80515FF8@ha
/* 8028652C 0028218C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80286530 00282190  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80286534 00282194  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80286538 00282198  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8028653C 0028219C  93 81 00 10 */	stw r28, 0x10(r1)
/* 80286540 002821A0  7C 7C 1B 78 */	mr r28, r3
/* 80286544 002821A4  38 64 5F F8 */	addi r3, r4, lbl_80515FF8@l
/* 80286548 002821A8  4B FF 96 AD */	bl GXGetVtxDescv
/* 8028654C 002821AC  3C 80 80 51 */	lis r4, lbl_805160D0@ha
/* 80286550 002821B0  38 60 00 03 */	li r3, 3
/* 80286554 002821B4  38 84 60 D0 */	addi r4, r4, lbl_805160D0@l
/* 80286558 002821B8  4B FF 9D B1 */	bl GXGetVtxAttrFmtv
/* 8028655C 002821BC  4B FF 97 29 */	bl GXClearVtxDesc
/* 80286560 002821C0  38 60 00 09 */	li r3, 9
/* 80286564 002821C4  38 80 00 01 */	li r4, 1
/* 80286568 002821C8  4B FF 8E 8D */	bl GXSetVtxDesc
/* 8028656C 002821CC  38 60 00 0A */	li r3, 0xa
/* 80286570 002821D0  38 80 00 01 */	li r4, 1
/* 80286574 002821D4  4B FF 8E 81 */	bl GXSetVtxDesc
/* 80286578 002821D8  38 60 00 03 */	li r3, 3
/* 8028657C 002821DC  38 80 00 09 */	li r4, 9
/* 80286580 002821E0  38 A0 00 01 */	li r5, 1
/* 80286584 002821E4  38 C0 00 04 */	li r6, 4
/* 80286588 002821E8  38 E0 00 00 */	li r7, 0
/* 8028658C 002821EC  4B FF 97 2D */	bl GXSetVtxAttrFmt
/* 80286590 002821F0  38 60 00 03 */	li r3, 3
/* 80286594 002821F4  38 80 00 0A */	li r4, 0xa
/* 80286598 002821F8  38 A0 00 00 */	li r5, 0
/* 8028659C 002821FC  38 C0 00 04 */	li r6, 4
/* 802865A0 00282200  38 E0 00 00 */	li r7, 0
/* 802865A4 00282204  4B FF 97 15 */	bl GXSetVtxAttrFmt
/* 802865A8 00282208  3F C0 80 43 */	lis r30, lbl_80435C38@ha
/* 802865AC 0028220C  3F E0 80 43 */	lis r31, lbl_80435BA8@ha
/* 802865B0 00282210  3B DE 5C 38 */	addi r30, r30, lbl_80435C38@l
/* 802865B4 00282214  3B A0 00 13 */	li r29, 0x13
/* 802865B8 00282218  3B FF 5B A8 */	addi r31, r31, lbl_80435BA8@l
lbl_802865BC:
/* 802865BC 0028221C  57 A3 06 3E */	clrlwi r3, r29, 0x18
/* 802865C0 00282220  57 A0 15 BA */	rlwinm r0, r29, 2, 0x16, 0x1d
/* 802865C4 00282224  7C 03 00 50 */	subf r0, r3, r0
/* 802865C8 00282228  7C DE 02 14 */	add r6, r30, r0
/* 802865CC 0028222C  7C BE 00 AE */	lbzx r5, r30, r0
/* 802865D0 00282230  88 06 00 02 */	lbz r0, 2(r6)
/* 802865D4 00282234  7F 83 E3 78 */	mr r3, r28
/* 802865D8 00282238  88 86 00 01 */	lbz r4, 1(r6)
/* 802865DC 0028223C  1C C5 00 0C */	mulli r6, r5, 0xc
/* 802865E0 00282240  1C A4 00 0C */	mulli r5, r4, 0xc
/* 802865E4 00282244  7C 9F 32 14 */	add r4, r31, r6
/* 802865E8 00282248  1C 00 00 0C */	mulli r0, r0, 0xc
/* 802865EC 0028224C  7C BF 2A 14 */	add r5, r31, r5
/* 802865F0 00282250  7C DF 02 14 */	add r6, r31, r0
/* 802865F4 00282254  4B FF E3 5D */	bl func_80284950
/* 802865F8 00282258  37 BD FF FF */	addic. r29, r29, -1
/* 802865FC 0028225C  40 80 FF C0 */	bge lbl_802865BC
/* 80286600 00282260  3C 60 80 51 */	lis r3, lbl_80515FF8@ha
/* 80286604 00282264  38 63 5F F8 */	addi r3, r3, lbl_80515FF8@l
/* 80286608 00282268  4B FF 90 51 */	bl GXSetVtxDescv
/* 8028660C 0028226C  3C 80 80 51 */	lis r4, lbl_805160D0@ha
/* 80286610 00282270  38 60 00 03 */	li r3, 3
/* 80286614 00282274  38 84 60 D0 */	addi r4, r4, lbl_805160D0@l
/* 80286618 00282278  4B FF 98 41 */	bl GXSetVtxAttrFmtv
/* 8028661C 0028227C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80286620 00282280  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80286624 00282284  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80286628 00282288  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8028662C 0028228C  83 81 00 10 */	lwz r28, 0x10(r1)
/* 80286630 00282290  7C 08 03 A6 */	mtlr r0
/* 80286634 00282294  38 21 00 20 */	addi r1, r1, 0x20
/* 80286638 00282298  4E 80 00 20 */	blr