summaryrefslogtreecommitdiff
path: root/asm/SDK/GX/GXDraw.s
blob: 81f57fb0d4ae93a8d47bc16b9f0a5a92d6aa6ce1 (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
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
.include "macros.inc"

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

.global Subdivide
Subdivide:
/* 80284950 002805B0  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 80284954 002805B4  7C 08 02 A6 */	mflr r0
/* 80284958 002805B8  2C 03 00 00 */	cmpwi r3, 0
/* 8028495C 002805BC  90 01 00 44 */	stw r0, 0x44(r1)
/* 80284960 002805C0  93 E1 00 3C */	stw r31, 0x3c(r1)
/* 80284964 002805C4  7C 7F 1B 78 */	mr r31, r3
/* 80284968 002805C8  93 C1 00 38 */	stw r30, 0x38(r1)
/* 8028496C 002805CC  7C DE 33 78 */	mr r30, r6
/* 80284970 002805D0  93 A1 00 34 */	stw r29, 0x34(r1)
/* 80284974 002805D4  7C BD 2B 78 */	mr r29, r5
/* 80284978 002805D8  93 81 00 30 */	stw r28, 0x30(r1)
/* 8028497C 002805DC  7C 9C 23 78 */	mr r28, r4
/* 80284980 002805E0  40 82 00 AC */	bne lbl_80284A2C
/* 80284984 002805E4  38 60 00 90 */	li r3, 0x90
/* 80284988 002805E8  38 80 00 03 */	li r4, 3
/* 8028498C 002805EC  38 A0 00 03 */	li r5, 3
/* 80284990 002805F0  4B FF C7 B9 */	bl GXBegin
/* 80284994 002805F4  C0 5C 00 08 */	lfs f2, 8(r28)
/* 80284998 002805F8  3C 60 CC 01 */	lis r3, 0xCC008000@ha
/* 8028499C 002805FC  C0 3C 00 04 */	lfs f1, 4(r28)
/* 802849A0 00280600  C0 1C 00 00 */	lfs f0, 0(r28)
/* 802849A4 00280604  D0 03 80 00 */	stfs f0, 0xCC008000@l(r3)
/* 802849A8 00280608  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 802849AC 0028060C  D0 43 80 00 */	stfs f2, -0x8000(r3)
/* 802849B0 00280610  C0 5C 00 08 */	lfs f2, 8(r28)
/* 802849B4 00280614  C0 3C 00 04 */	lfs f1, 4(r28)
/* 802849B8 00280618  C0 1C 00 00 */	lfs f0, 0(r28)
/* 802849BC 0028061C  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802849C0 00280620  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 802849C4 00280624  D0 43 80 00 */	stfs f2, -0x8000(r3)
/* 802849C8 00280628  C0 5D 00 08 */	lfs f2, 8(r29)
/* 802849CC 0028062C  C0 3D 00 04 */	lfs f1, 4(r29)
/* 802849D0 00280630  C0 1D 00 00 */	lfs f0, 0(r29)
/* 802849D4 00280634  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802849D8 00280638  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 802849DC 0028063C  D0 43 80 00 */	stfs f2, -0x8000(r3)
/* 802849E0 00280640  C0 5D 00 08 */	lfs f2, 8(r29)
/* 802849E4 00280644  C0 3D 00 04 */	lfs f1, 4(r29)
/* 802849E8 00280648  C0 1D 00 00 */	lfs f0, 0(r29)
/* 802849EC 0028064C  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802849F0 00280650  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 802849F4 00280654  D0 43 80 00 */	stfs f2, -0x8000(r3)
/* 802849F8 00280658  C0 5E 00 08 */	lfs f2, 8(r30)
/* 802849FC 0028065C  C0 3E 00 04 */	lfs f1, 4(r30)
/* 80284A00 00280660  C0 1E 00 00 */	lfs f0, 0(r30)
/* 80284A04 00280664  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80284A08 00280668  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 80284A0C 0028066C  D0 43 80 00 */	stfs f2, -0x8000(r3)
/* 80284A10 00280670  C0 5E 00 08 */	lfs f2, 8(r30)
/* 80284A14 00280674  C0 3E 00 04 */	lfs f1, 4(r30)
/* 80284A18 00280678  C0 1E 00 00 */	lfs f0, 0(r30)
/* 80284A1C 0028067C  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80284A20 00280680  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 80284A24 00280684  D0 43 80 00 */	stfs f2, -0x8000(r3)
/* 80284A28 00280688  48 00 01 C0 */	b lbl_80284BE8
lbl_80284A2C:
/* 80284A2C 0028068C  C0 24 00 00 */	lfs f1, 0(r4)
/* 80284A30 00280690  C0 05 00 00 */	lfs f0, 0(r5)
/* 80284A34 00280694  EC 01 00 2A */	fadds f0, f1, f0
/* 80284A38 00280698  D0 01 00 20 */	stfs f0, 0x20(r1)
/* 80284A3C 0028069C  EC 20 00 32 */	fmuls f1, f0, f0
/* 80284A40 002806A0  C0 45 00 00 */	lfs f2, 0(r5)
/* 80284A44 002806A4  C0 06 00 00 */	lfs f0, 0(r6)
/* 80284A48 002806A8  EC 02 00 2A */	fadds f0, f2, f0
/* 80284A4C 002806AC  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 80284A50 002806B0  C0 46 00 00 */	lfs f2, 0(r6)
/* 80284A54 002806B4  C0 04 00 00 */	lfs f0, 0(r4)
/* 80284A58 002806B8  EC 02 00 2A */	fadds f0, f2, f0
/* 80284A5C 002806BC  D0 01 00 08 */	stfs f0, 8(r1)
/* 80284A60 002806C0  C0 44 00 04 */	lfs f2, 4(r4)
/* 80284A64 002806C4  C0 05 00 04 */	lfs f0, 4(r5)
/* 80284A68 002806C8  EC 02 00 2A */	fadds f0, f2, f0
/* 80284A6C 002806CC  D0 01 00 24 */	stfs f0, 0x24(r1)
/* 80284A70 002806D0  EC 00 00 32 */	fmuls f0, f0, f0
/* 80284A74 002806D4  C0 65 00 04 */	lfs f3, 4(r5)
/* 80284A78 002806D8  C0 46 00 04 */	lfs f2, 4(r6)
/* 80284A7C 002806DC  EC 01 00 2A */	fadds f0, f1, f0
/* 80284A80 002806E0  EC 23 10 2A */	fadds f1, f3, f2
/* 80284A84 002806E4  D0 21 00 18 */	stfs f1, 0x18(r1)
/* 80284A88 002806E8  C0 46 00 04 */	lfs f2, 4(r6)
/* 80284A8C 002806EC  C0 24 00 04 */	lfs f1, 4(r4)
/* 80284A90 002806F0  EC 22 08 2A */	fadds f1, f2, f1
/* 80284A94 002806F4  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 80284A98 002806F8  C0 44 00 08 */	lfs f2, 8(r4)
/* 80284A9C 002806FC  C0 25 00 08 */	lfs f1, 8(r5)
/* 80284AA0 00280700  EC 22 08 2A */	fadds f1, f2, f1
/* 80284AA4 00280704  D0 21 00 28 */	stfs f1, 0x28(r1)
/* 80284AA8 00280708  EC 21 00 72 */	fmuls f1, f1, f1
/* 80284AAC 0028070C  C0 65 00 08 */	lfs f3, 8(r5)
/* 80284AB0 00280710  C0 46 00 08 */	lfs f2, 8(r6)
/* 80284AB4 00280714  EC 21 00 2A */	fadds f1, f1, f0
/* 80284AB8 00280718  EC 03 10 2A */	fadds f0, f3, f2
/* 80284ABC 0028071C  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 80284AC0 00280720  C0 46 00 08 */	lfs f2, 8(r6)
/* 80284AC4 00280724  C0 04 00 08 */	lfs f0, 8(r4)
/* 80284AC8 00280728  EC 02 00 2A */	fadds f0, f2, f0
/* 80284ACC 0028072C  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 80284AD0 00280730  4B F4 FD 65 */	bl sqrt
/* 80284AD4 00280734  FC C0 08 18 */	frsp f6, f1
/* 80284AD8 00280738  C0 01 00 20 */	lfs f0, 0x20(r1)
/* 80284ADC 0028073C  C0 81 00 24 */	lfs f4, 0x24(r1)
/* 80284AE0 00280740  C0 61 00 28 */	lfs f3, 0x28(r1)
/* 80284AE4 00280744  EC A0 30 24 */	fdivs f5, f0, f6
/* 80284AE8 00280748  C0 21 00 14 */	lfs f1, 0x14(r1)
/* 80284AEC 0028074C  C0 01 00 18 */	lfs f0, 0x18(r1)
/* 80284AF0 00280750  C0 41 00 1C */	lfs f2, 0x1c(r1)
/* 80284AF4 00280754  EC 84 30 24 */	fdivs f4, f4, f6
/* 80284AF8 00280758  D0 A1 00 20 */	stfs f5, 0x20(r1)
/* 80284AFC 0028075C  EC 63 30 24 */	fdivs f3, f3, f6
/* 80284B00 00280760  D0 81 00 24 */	stfs f4, 0x24(r1)
/* 80284B04 00280764  EC 21 00 72 */	fmuls f1, f1, f1
/* 80284B08 00280768  D0 61 00 28 */	stfs f3, 0x28(r1)
/* 80284B0C 0028076C  EC 00 00 32 */	fmuls f0, f0, f0
/* 80284B10 00280770  EC 42 00 B2 */	fmuls f2, f2, f2
/* 80284B14 00280774  EC 01 00 2A */	fadds f0, f1, f0
/* 80284B18 00280778  EC 22 00 2A */	fadds f1, f2, f0
/* 80284B1C 0028077C  4B F4 FD 19 */	bl sqrt
/* 80284B20 00280780  FC C0 08 18 */	frsp f6, f1
/* 80284B24 00280784  C0 01 00 14 */	lfs f0, 0x14(r1)
/* 80284B28 00280788  C0 81 00 18 */	lfs f4, 0x18(r1)
/* 80284B2C 0028078C  C0 61 00 1C */	lfs f3, 0x1c(r1)
/* 80284B30 00280790  EC A0 30 24 */	fdivs f5, f0, f6
/* 80284B34 00280794  C0 21 00 08 */	lfs f1, 8(r1)
/* 80284B38 00280798  C0 01 00 0C */	lfs f0, 0xc(r1)
/* 80284B3C 0028079C  C0 41 00 10 */	lfs f2, 0x10(r1)
/* 80284B40 002807A0  EC 84 30 24 */	fdivs f4, f4, f6
/* 80284B44 002807A4  D0 A1 00 14 */	stfs f5, 0x14(r1)
/* 80284B48 002807A8  EC 63 30 24 */	fdivs f3, f3, f6
/* 80284B4C 002807AC  D0 81 00 18 */	stfs f4, 0x18(r1)
/* 80284B50 002807B0  EC 21 00 72 */	fmuls f1, f1, f1
/* 80284B54 002807B4  D0 61 00 1C */	stfs f3, 0x1c(r1)
/* 80284B58 002807B8  EC 00 00 32 */	fmuls f0, f0, f0
/* 80284B5C 002807BC  EC 42 00 B2 */	fmuls f2, f2, f2
/* 80284B60 002807C0  EC 01 00 2A */	fadds f0, f1, f0
/* 80284B64 002807C4  EC 22 00 2A */	fadds f1, f2, f0
/* 80284B68 002807C8  4B F4 FC CD */	bl sqrt
/* 80284B6C 002807CC  FC 60 08 18 */	frsp f3, f1
/* 80284B70 002807D0  C0 41 00 08 */	lfs f2, 8(r1)
/* 80284B74 002807D4  C0 21 00 0C */	lfs f1, 0xc(r1)
/* 80284B78 002807D8  3B FF FF FF */	addi r31, r31, -1
/* 80284B7C 002807DC  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 80284B80 002807E0  7F 84 E3 78 */	mr r4, r28
/* 80284B84 002807E4  EC 42 18 24 */	fdivs f2, f2, f3
/* 80284B88 002807E8  57 E3 06 3E */	clrlwi r3, r31, 0x18
/* 80284B8C 002807EC  38 A1 00 20 */	addi r5, r1, 0x20
/* 80284B90 002807F0  38 C1 00 08 */	addi r6, r1, 8
/* 80284B94 002807F4  EC 21 18 24 */	fdivs f1, f1, f3
/* 80284B98 002807F8  D0 41 00 08 */	stfs f2, 8(r1)
/* 80284B9C 002807FC  EC 00 18 24 */	fdivs f0, f0, f3
/* 80284BA0 00280800  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 80284BA4 00280804  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 80284BA8 00280808  4B FF FD A9 */	bl Subdivide
/* 80284BAC 0028080C  7F A4 EB 78 */	mr r4, r29
/* 80284BB0 00280810  57 E3 06 3E */	clrlwi r3, r31, 0x18
/* 80284BB4 00280814  38 A1 00 14 */	addi r5, r1, 0x14
/* 80284BB8 00280818  38 C1 00 20 */	addi r6, r1, 0x20
/* 80284BBC 0028081C  4B FF FD 95 */	bl Subdivide
/* 80284BC0 00280820  7F C4 F3 78 */	mr r4, r30
/* 80284BC4 00280824  57 E3 06 3E */	clrlwi r3, r31, 0x18
/* 80284BC8 00280828  38 A1 00 08 */	addi r5, r1, 8
/* 80284BCC 0028082C  38 C1 00 14 */	addi r6, r1, 0x14
/* 80284BD0 00280830  4B FF FD 81 */	bl Subdivide
/* 80284BD4 00280834  57 E3 06 3E */	clrlwi r3, r31, 0x18
/* 80284BD8 00280838  38 81 00 20 */	addi r4, r1, 0x20
/* 80284BDC 0028083C  38 A1 00 14 */	addi r5, r1, 0x14
/* 80284BE0 00280840  38 C1 00 08 */	addi r6, r1, 8
/* 80284BE4 00280844  4B FF FD 6D */	bl Subdivide
lbl_80284BE8:
/* 80284BE8 00280848  80 01 00 44 */	lwz r0, 0x44(r1)
/* 80284BEC 0028084C  83 E1 00 3C */	lwz r31, 0x3c(r1)
/* 80284BF0 00280850  83 C1 00 38 */	lwz r30, 0x38(r1)
/* 80284BF4 00280854  83 A1 00 34 */	lwz r29, 0x34(r1)
/* 80284BF8 00280858  83 81 00 30 */	lwz r28, 0x30(r1)
/* 80284BFC 0028085C  7C 08 03 A6 */	mtlr r0
/* 80284C00 00280860  38 21 00 40 */	addi r1, r1, 0x40
/* 80284C04 00280864  4E 80 00 20 */	blr

.global GXDrawCylinder
GXDrawCylinder:
/* 80284C08 00280868  94 21 FC 40 */	stwu r1, -0x3c0(r1)
/* 80284C0C 0028086C  7C 08 02 A6 */	mflr r0
/* 80284C10 00280870  90 01 03 C4 */	stw r0, 0x3c4(r1)
/* 80284C14 00280874  DB E1 03 B0 */	stfd f31, 0x3b0(r1)
/* 80284C18 00280878  F3 E1 03 B8 */	psq_st f31, 952(r1), 0, qr0
/* 80284C1C 0028087C  DB C1 03 A0 */	stfd f30, 0x3a0(r1)
/* 80284C20 00280880  F3 C1 03 A8 */	psq_st f30, 936(r1), 0, qr0
/* 80284C24 00280884  DB A1 03 90 */	stfd f29, 0x390(r1)
/* 80284C28 00280888  F3 A1 03 98 */	psq_st f29, 920(r1), 0, qr0
/* 80284C2C 0028088C  DB 81 03 80 */	stfd f28, 0x380(r1)
/* 80284C30 00280890  F3 81 03 88 */	psq_st f28, 904(r1), 0, qr0
/* 80284C34 00280894  DB 61 03 70 */	stfd f27, 0x370(r1)
/* 80284C38 00280898  F3 61 03 78 */	psq_st f27, 888(r1), 0, qr0
/* 80284C3C 0028089C  DB 41 03 60 */	stfd f26, 0x360(r1)
/* 80284C40 002808A0  F3 41 03 68 */	psq_st f26, 872(r1), 0, qr0
/* 80284C44 002808A4  DB 21 03 50 */	stfd f25, 0x350(r1)
/* 80284C48 002808A8  F3 21 03 58 */	psq_st f25, 856(r1), 0, qr0
/* 80284C4C 002808AC  39 61 03 50 */	addi r11, r1, 0x350
/* 80284C50 002808B0  4B F4 24 D9 */	bl _savegpr_27
/* 80284C54 002808B4  C3 E2 A1 D0 */	lfs f31, lbl_806427D0-_SDA2_BASE_(r2)
/* 80284C58 002808B8  3C 80 80 51 */	lis r4, lbl_80515FF8@ha
/* 80284C5C 002808BC  7C 7E 1B 78 */	mr r30, r3
/* 80284C60 002808C0  FF C0 F8 50 */	fneg f30, f31
/* 80284C64 002808C4  38 64 5F F8 */	addi r3, r4, lbl_80515FF8@l
/* 80284C68 002808C8  4B FF AF 8D */	bl GXGetVtxDescv
/* 80284C6C 002808CC  3C 80 80 51 */	lis r4, lbl_805160D0@ha
/* 80284C70 002808D0  38 60 00 03 */	li r3, 3
/* 80284C74 002808D4  38 84 60 D0 */	addi r4, r4, lbl_805160D0@l
/* 80284C78 002808D8  4B FF B6 91 */	bl GXGetVtxAttrFmtv
/* 80284C7C 002808DC  4B FF B0 09 */	bl GXClearVtxDesc
/* 80284C80 002808E0  38 60 00 09 */	li r3, 9
/* 80284C84 002808E4  38 80 00 01 */	li r4, 1
/* 80284C88 002808E8  4B FF A7 6D */	bl GXSetVtxDesc
/* 80284C8C 002808EC  38 60 00 0A */	li r3, 0xa
/* 80284C90 002808F0  38 80 00 01 */	li r4, 1
/* 80284C94 002808F4  4B FF A7 61 */	bl GXSetVtxDesc
/* 80284C98 002808F8  38 60 00 03 */	li r3, 3
/* 80284C9C 002808FC  38 80 00 09 */	li r4, 9
/* 80284CA0 00280900  38 A0 00 01 */	li r5, 1
/* 80284CA4 00280904  38 C0 00 04 */	li r6, 4
/* 80284CA8 00280908  38 E0 00 00 */	li r7, 0
/* 80284CAC 0028090C  4B FF B0 0D */	bl GXSetVtxAttrFmt
/* 80284CB0 00280910  38 60 00 03 */	li r3, 3
/* 80284CB4 00280914  38 80 00 0A */	li r4, 0xa
/* 80284CB8 00280918  38 A0 00 00 */	li r5, 0
/* 80284CBC 0028091C  38 C0 00 04 */	li r6, 4
/* 80284CC0 00280920  38 E0 00 00 */	li r7, 0
/* 80284CC4 00280924  4B FF AF F5 */	bl GXSetVtxAttrFmt
/* 80284CC8 00280928  CB 42 A1 E8 */	lfd f26, lbl_806427E8-_SDA2_BASE_(r2)
/* 80284CCC 0028092C  3B A1 01 98 */	addi r29, r1, 0x198
/* 80284CD0 00280930  C3 62 A1 D8 */	lfs f27, lbl_806427D8-_SDA2_BASE_(r2)
/* 80284CD4 00280934  3B 81 00 08 */	addi r28, r1, 8
/* 80284CD8 00280938  C3 82 A1 D4 */	lfs f28, lbl_806427D4-_SDA2_BASE_(r2)
/* 80284CDC 0028093C  3B 60 00 00 */	li r27, 0
/* 80284CE0 00280940  CB A2 A1 F0 */	lfd f29, lbl_806427F0-_SDA2_BASE_(r2)
/* 80284CE4 00280944  3F E0 43 30 */	lis r31, 0x4330
/* 80284CE8 00280948  48 00 00 60 */	b lbl_80284D48
lbl_80284CEC:
/* 80284CEC 0028094C  6F 60 80 00 */	xoris r0, r27, 0x8000
/* 80284CF0 00280950  93 E1 03 28 */	stw r31, 0x328(r1)
/* 80284CF4 00280954  90 01 03 2C */	stw r0, 0x32c(r1)
/* 80284CF8 00280958  C8 01 03 28 */	lfd f0, 0x328(r1)
/* 80284CFC 0028095C  93 C1 03 34 */	stw r30, 0x334(r1)
/* 80284D00 00280960  EC 00 D0 28 */	fsubs f0, f0, f26
/* 80284D04 00280964  93 E1 03 30 */	stw r31, 0x330(r1)
/* 80284D08 00280968  EC 3B 00 32 */	fmuls f1, f27, f0
/* 80284D0C 0028096C  C8 01 03 30 */	lfd f0, 0x330(r1)
/* 80284D10 00280970  EC 00 E8 28 */	fsubs f0, f0, f29
/* 80284D14 00280974  EC 3C 00 72 */	fmuls f1, f28, f1
/* 80284D18 00280978  EF 21 00 24 */	fdivs f25, f1, f0
/* 80284D1C 0028097C  FC 20 C8 90 */	fmr f1, f25
/* 80284D20 00280980  4B F4 F3 59 */	bl cos
/* 80284D24 00280984  FC 00 08 18 */	frsp f0, f1
/* 80284D28 00280988  FC 20 C8 90 */	fmr f1, f25
/* 80284D2C 0028098C  D0 1D 00 00 */	stfs f0, 0(r29)
/* 80284D30 00280990  4B F4 F7 55 */	bl sin
/* 80284D34 00280994  FC 00 08 18 */	frsp f0, f1
/* 80284D38 00280998  3B BD 00 04 */	addi r29, r29, 4
/* 80284D3C 0028099C  3B 7B 00 01 */	addi r27, r27, 1
/* 80284D40 002809A0  D0 1C 00 00 */	stfs f0, 0(r28)
/* 80284D44 002809A4  3B 9C 00 04 */	addi r28, r28, 4
lbl_80284D48:
/* 80284D48 002809A8  7C 1B F0 00 */	cmpw r27, r30
/* 80284D4C 002809AC  40 81 FF A0 */	ble lbl_80284CEC
/* 80284D50 002809B0  38 1E 00 01 */	addi r0, r30, 1
/* 80284D54 002809B4  38 60 00 98 */	li r3, 0x98
/* 80284D58 002809B8  54 05 0C 3C */	rlwinm r5, r0, 1, 0x10, 0x1e
/* 80284D5C 002809BC  38 80 00 03 */	li r4, 3
/* 80284D60 002809C0  4B FF C3 E9 */	bl GXBegin
/* 80284D64 002809C4  2C 1E 00 00 */	cmpwi r30, 0
/* 80284D68 002809C8  38 A1 00 08 */	addi r5, r1, 8
/* 80284D6C 002809CC  38 C1 01 98 */	addi r6, r1, 0x198
/* 80284D70 002809D0  38 7E 00 01 */	addi r3, r30, 1
/* 80284D74 002809D4  3C 80 CC 01 */	lis r4, 0xcc01
/* 80284D78 002809D8  41 80 00 F4 */	blt lbl_80284E6C
/* 80284D7C 002809DC  54 60 F8 7F */	rlwinm. r0, r3, 0x1f, 1, 0x1f
/* 80284D80 002809E0  7C 09 03 A6 */	mtctr r0
/* 80284D84 002809E4  41 82 00 98 */	beq lbl_80284E1C
lbl_80284D88:
/* 80284D88 002809E8  C0 26 00 00 */	lfs f1, 0(r6)
/* 80284D8C 002809EC  C0 45 00 00 */	lfs f2, 0(r5)
/* 80284D90 002809F0  D0 24 80 00 */	stfs f1, -0x8000(r4)
/* 80284D94 002809F4  D0 44 80 00 */	stfs f2, -0x8000(r4)
/* 80284D98 002809F8  D3 C4 80 00 */	stfs f30, -0x8000(r4)
/* 80284D9C 002809FC  D0 24 80 00 */	stfs f1, -0x8000(r4)
/* 80284DA0 00280A00  D0 44 80 00 */	stfs f2, -0x8000(r4)
/* 80284DA4 00280A04  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80284DA8 00280A08  D0 04 80 00 */	stfs f0, -0x8000(r4)
/* 80284DAC 00280A0C  D0 24 80 00 */	stfs f1, -0x8000(r4)
/* 80284DB0 00280A10  D0 44 80 00 */	stfs f2, -0x8000(r4)
/* 80284DB4 00280A14  D3 E4 80 00 */	stfs f31, -0x8000(r4)
/* 80284DB8 00280A18  D0 24 80 00 */	stfs f1, -0x8000(r4)
/* 80284DBC 00280A1C  C0 26 00 04 */	lfs f1, 4(r6)
/* 80284DC0 00280A20  38 C6 00 08 */	addi r6, r6, 8
/* 80284DC4 00280A24  D0 44 80 00 */	stfs f2, -0x8000(r4)
/* 80284DC8 00280A28  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80284DCC 00280A2C  C0 45 00 04 */	lfs f2, 4(r5)
/* 80284DD0 00280A30  38 A5 00 08 */	addi r5, r5, 8
/* 80284DD4 00280A34  D0 04 80 00 */	stfs f0, -0x8000(r4)
/* 80284DD8 00280A38  D0 24 80 00 */	stfs f1, -0x8000(r4)
/* 80284DDC 00280A3C  D0 44 80 00 */	stfs f2, -0x8000(r4)
/* 80284DE0 00280A40  D3 C4 80 00 */	stfs f30, -0x8000(r4)
/* 80284DE4 00280A44  D0 24 80 00 */	stfs f1, -0x8000(r4)
/* 80284DE8 00280A48  D0 44 80 00 */	stfs f2, -0x8000(r4)
/* 80284DEC 00280A4C  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80284DF0 00280A50  D0 04 80 00 */	stfs f0, -0x8000(r4)
/* 80284DF4 00280A54  D0 24 80 00 */	stfs f1, -0x8000(r4)
/* 80284DF8 00280A58  D0 44 80 00 */	stfs f2, -0x8000(r4)
/* 80284DFC 00280A5C  D3 E4 80 00 */	stfs f31, -0x8000(r4)
/* 80284E00 00280A60  D0 24 80 00 */	stfs f1, -0x8000(r4)
/* 80284E04 00280A64  D0 44 80 00 */	stfs f2, -0x8000(r4)
/* 80284E08 00280A68  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80284E0C 00280A6C  D0 04 80 00 */	stfs f0, -0x8000(r4)
/* 80284E10 00280A70  42 00 FF 78 */	bdnz lbl_80284D88
/* 80284E14 00280A74  70 63 00 01 */	andi. r3, r3, 1
/* 80284E18 00280A78  41 82 00 54 */	beq lbl_80284E6C
lbl_80284E1C:
/* 80284E1C 00280A7C  7C 69 03 A6 */	mtctr r3
lbl_80284E20:
/* 80284E20 00280A80  C0 26 00 00 */	lfs f1, 0(r6)
/* 80284E24 00280A84  38 C6 00 04 */	addi r6, r6, 4
/* 80284E28 00280A88  C0 45 00 00 */	lfs f2, 0(r5)
/* 80284E2C 00280A8C  38 A5 00 04 */	addi r5, r5, 4
/* 80284E30 00280A90  D0 24 80 00 */	stfs f1, -0x8000(r4)
/* 80284E34 00280A94  D0 44 80 00 */	stfs f2, -0x8000(r4)
/* 80284E38 00280A98  D3 C4 80 00 */	stfs f30, -0x8000(r4)
/* 80284E3C 00280A9C  D0 24 80 00 */	stfs f1, -0x8000(r4)
/* 80284E40 00280AA0  D0 44 80 00 */	stfs f2, -0x8000(r4)
/* 80284E44 00280AA4  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80284E48 00280AA8  D0 04 80 00 */	stfs f0, -0x8000(r4)
/* 80284E4C 00280AAC  D0 24 80 00 */	stfs f1, -0x8000(r4)
/* 80284E50 00280AB0  D0 44 80 00 */	stfs f2, -0x8000(r4)
/* 80284E54 00280AB4  D3 E4 80 00 */	stfs f31, -0x8000(r4)
/* 80284E58 00280AB8  D0 24 80 00 */	stfs f1, -0x8000(r4)
/* 80284E5C 00280ABC  D0 44 80 00 */	stfs f2, -0x8000(r4)
/* 80284E60 00280AC0  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80284E64 00280AC4  D0 04 80 00 */	stfs f0, -0x8000(r4)
/* 80284E68 00280AC8  42 00 FF B8 */	bdnz lbl_80284E20
lbl_80284E6C:
/* 80284E6C 00280ACC  3B FE 00 02 */	addi r31, r30, 2
/* 80284E70 00280AD0  38 60 00 A0 */	li r3, 0xa0
/* 80284E74 00280AD4  57 E5 04 3E */	clrlwi r5, r31, 0x10
/* 80284E78 00280AD8  38 80 00 03 */	li r4, 3
/* 80284E7C 00280ADC  4B FF C2 CD */	bl GXBegin
/* 80284E80 00280AE0  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80284E84 00280AE4  3C 60 CC 01 */	lis r3, 0xCC008000@ha
/* 80284E88 00280AE8  2C 9E 00 00 */	cmpwi cr1, r30, 0
/* 80284E8C 00280AEC  39 00 00 00 */	li r8, 0
/* 80284E90 00280AF0  D0 03 80 00 */	stfs f0, 0xCC008000@l(r3)
/* 80284E94 00280AF4  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80284E98 00280AF8  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80284E9C 00280AFC  D3 E3 80 00 */	stfs f31, -0x8000(r3)
/* 80284EA0 00280B00  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80284EA4 00280B04  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80284EA8 00280B08  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80284EAC 00280B0C  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80284EB0 00280B10  C0 02 A1 D0 */	lfs f0, lbl_806427D0-_SDA2_BASE_(r2)
/* 80284EB4 00280B14  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80284EB8 00280B18  41 84 02 80 */	blt cr1, lbl_80285138
/* 80284EBC 00280B1C  38 FE 00 01 */	addi r7, r30, 1
/* 80284EC0 00280B20  38 9E FF F8 */	addi r4, r30, -8
/* 80284EC4 00280B24  2C 07 00 08 */	cmpwi r7, 8
/* 80284EC8 00280B28  40 81 02 08 */	ble lbl_802850D0
/* 80284ECC 00280B2C  38 A0 00 00 */	li r5, 0
/* 80284ED0 00280B30  38 C0 00 00 */	li r6, 0
/* 80284ED4 00280B34  41 84 00 18 */	blt cr1, lbl_80284EEC
/* 80284ED8 00280B38  3C 60 80 00 */	lis r3, 0x7FFFFFFE@ha
/* 80284EDC 00280B3C  38 03 FF FE */	addi r0, r3, 0x7FFFFFFE@l
/* 80284EE0 00280B40  7C 1E 00 00 */	cmpw r30, r0
/* 80284EE4 00280B44  41 81 00 08 */	bgt lbl_80284EEC
/* 80284EE8 00280B48  38 C0 00 01 */	li r6, 1
lbl_80284EEC:
/* 80284EEC 00280B4C  2C 06 00 00 */	cmpwi r6, 0
/* 80284EF0 00280B50  41 82 00 28 */	beq lbl_80284F18
/* 80284EF4 00280B54  57 C0 00 01 */	rlwinm. r0, r30, 0, 0, 0
/* 80284EF8 00280B58  38 60 00 01 */	li r3, 1
/* 80284EFC 00280B5C  40 82 00 10 */	bne lbl_80284F0C
/* 80284F00 00280B60  54 E0 00 01 */	rlwinm. r0, r7, 0, 0, 0
/* 80284F04 00280B64  41 82 00 08 */	beq lbl_80284F0C
/* 80284F08 00280B68  38 60 00 00 */	li r3, 0
lbl_80284F0C:
/* 80284F0C 00280B6C  2C 03 00 00 */	cmpwi r3, 0
/* 80284F10 00280B70  41 82 00 08 */	beq lbl_80284F18
/* 80284F14 00280B74  38 A0 00 01 */	li r5, 1
lbl_80284F18:
/* 80284F18 00280B78  2C 05 00 00 */	cmpwi r5, 0
/* 80284F1C 00280B7C  41 82 01 B4 */	beq lbl_802850D0
/* 80284F20 00280B80  38 04 00 08 */	addi r0, r4, 8
/* 80284F24 00280B84  38 A1 00 08 */	addi r5, r1, 8
/* 80284F28 00280B88  54 00 E8 FE */	srwi r0, r0, 3
/* 80284F2C 00280B8C  38 C1 01 98 */	addi r6, r1, 0x198
/* 80284F30 00280B90  3C 60 CC 01 */	lis r3, 0xcc01
/* 80284F34 00280B94  7C 09 03 A6 */	mtctr r0
/* 80284F38 00280B98  2C 04 00 00 */	cmpwi r4, 0
/* 80284F3C 00280B9C  41 80 01 94 */	blt lbl_802850D0
lbl_80284F40:
/* 80284F40 00280BA0  C0 05 00 00 */	lfs f0, 0(r5)
/* 80284F44 00280BA4  C0 26 00 00 */	lfs f1, 0(r6)
/* 80284F48 00280BA8  FC 40 00 50 */	fneg f2, f0
/* 80284F4C 00280BAC  C0 05 00 04 */	lfs f0, 4(r5)
/* 80284F50 00280BB0  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 80284F54 00280BB4  C0 25 00 08 */	lfs f1, 8(r5)
/* 80284F58 00280BB8  FC C0 00 50 */	fneg f6, f0
/* 80284F5C 00280BBC  D0 43 80 00 */	stfs f2, -0x8000(r3)
/* 80284F60 00280BC0  C0 05 00 0C */	lfs f0, 0xc(r5)
/* 80284F64 00280BC4  FC A0 08 50 */	fneg f5, f1
/* 80284F68 00280BC8  D3 E3 80 00 */	stfs f31, -0x8000(r3)
/* 80284F6C 00280BCC  C0 22 A1 DC */	lfs f1, lbl_806427DC-_SDA2_BASE_(r2)
/* 80284F70 00280BD0  FC 80 00 50 */	fneg f4, f0
/* 80284F74 00280BD4  C0 05 00 10 */	lfs f0, 0x10(r5)
/* 80284F78 00280BD8  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 80284F7C 00280BDC  C0 22 A1 DC */	lfs f1, lbl_806427DC-_SDA2_BASE_(r2)
/* 80284F80 00280BE0  FC 60 00 50 */	fneg f3, f0
/* 80284F84 00280BE4  C0 05 00 14 */	lfs f0, 0x14(r5)
/* 80284F88 00280BE8  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 80284F8C 00280BEC  C0 22 A1 D0 */	lfs f1, lbl_806427D0-_SDA2_BASE_(r2)
/* 80284F90 00280BF0  FC 40 00 50 */	fneg f2, f0
/* 80284F94 00280BF4  C0 06 00 04 */	lfs f0, 4(r6)
/* 80284F98 00280BF8  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 80284F9C 00280BFC  C1 06 00 08 */	lfs f8, 8(r6)
/* 80284FA0 00280C00  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80284FA4 00280C04  C0 E6 00 0C */	lfs f7, 0xc(r6)
/* 80284FA8 00280C08  D0 C3 80 00 */	stfs f6, -0x8000(r3)
/* 80284FAC 00280C0C  C0 C6 00 10 */	lfs f6, 0x10(r6)
/* 80284FB0 00280C10  D3 E3 80 00 */	stfs f31, -0x8000(r3)
/* 80284FB4 00280C14  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80284FB8 00280C18  C0 26 00 14 */	lfs f1, 0x14(r6)
/* 80284FBC 00280C1C  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80284FC0 00280C20  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80284FC4 00280C24  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80284FC8 00280C28  C0 02 A1 D0 */	lfs f0, lbl_806427D0-_SDA2_BASE_(r2)
/* 80284FCC 00280C2C  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80284FD0 00280C30  D1 03 80 00 */	stfs f8, -0x8000(r3)
/* 80284FD4 00280C34  D0 A3 80 00 */	stfs f5, -0x8000(r3)
/* 80284FD8 00280C38  D3 E3 80 00 */	stfs f31, -0x8000(r3)
/* 80284FDC 00280C3C  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80284FE0 00280C40  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80284FE4 00280C44  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80284FE8 00280C48  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80284FEC 00280C4C  C0 02 A1 D0 */	lfs f0, lbl_806427D0-_SDA2_BASE_(r2)
/* 80284FF0 00280C50  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80284FF4 00280C54  D0 E3 80 00 */	stfs f7, -0x8000(r3)
/* 80284FF8 00280C58  D0 83 80 00 */	stfs f4, -0x8000(r3)
/* 80284FFC 00280C5C  D3 E3 80 00 */	stfs f31, -0x8000(r3)
/* 80285000 00280C60  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285004 00280C64  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285008 00280C68  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 8028500C 00280C6C  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285010 00280C70  C0 02 A1 D0 */	lfs f0, lbl_806427D0-_SDA2_BASE_(r2)
/* 80285014 00280C74  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285018 00280C78  D0 C3 80 00 */	stfs f6, -0x8000(r3)
/* 8028501C 00280C7C  D0 63 80 00 */	stfs f3, -0x8000(r3)
/* 80285020 00280C80  D3 E3 80 00 */	stfs f31, -0x8000(r3)
/* 80285024 00280C84  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285028 00280C88  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 8028502C 00280C8C  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285030 00280C90  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285034 00280C94  C0 02 A1 D0 */	lfs f0, lbl_806427D0-_SDA2_BASE_(r2)
/* 80285038 00280C98  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 8028503C 00280C9C  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 80285040 00280CA0  D0 43 80 00 */	stfs f2, -0x8000(r3)
/* 80285044 00280CA4  D3 E3 80 00 */	stfs f31, -0x8000(r3)
/* 80285048 00280CA8  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 8028504C 00280CAC  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285050 00280CB0  C0 22 A1 DC */	lfs f1, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285054 00280CB4  39 08 00 08 */	addi r8, r8, 8
/* 80285058 00280CB8  C0 05 00 18 */	lfs f0, 0x18(r5)
/* 8028505C 00280CBC  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 80285060 00280CC0  C0 22 A1 D0 */	lfs f1, lbl_806427D0-_SDA2_BASE_(r2)
/* 80285064 00280CC4  FC 40 00 50 */	fneg f2, f0
/* 80285068 00280CC8  C0 66 00 18 */	lfs f3, 0x18(r6)
/* 8028506C 00280CCC  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 80285070 00280CD0  C0 05 00 1C */	lfs f0, 0x1c(r5)
/* 80285074 00280CD4  38 A5 00 20 */	addi r5, r5, 0x20
/* 80285078 00280CD8  D0 63 80 00 */	stfs f3, -0x8000(r3)
/* 8028507C 00280CDC  C0 66 00 1C */	lfs f3, 0x1c(r6)
/* 80285080 00280CE0  FC 20 00 50 */	fneg f1, f0
/* 80285084 00280CE4  D0 43 80 00 */	stfs f2, -0x8000(r3)
/* 80285088 00280CE8  38 C6 00 20 */	addi r6, r6, 0x20
/* 8028508C 00280CEC  D3 E3 80 00 */	stfs f31, -0x8000(r3)
/* 80285090 00280CF0  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285094 00280CF4  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285098 00280CF8  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 8028509C 00280CFC  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802850A0 00280D00  C0 02 A1 D0 */	lfs f0, lbl_806427D0-_SDA2_BASE_(r2)
/* 802850A4 00280D04  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802850A8 00280D08  D0 63 80 00 */	stfs f3, -0x8000(r3)
/* 802850AC 00280D0C  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 802850B0 00280D10  D3 E3 80 00 */	stfs f31, -0x8000(r3)
/* 802850B4 00280D14  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 802850B8 00280D18  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802850BC 00280D1C  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 802850C0 00280D20  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802850C4 00280D24  C0 02 A1 D0 */	lfs f0, lbl_806427D0-_SDA2_BASE_(r2)
/* 802850C8 00280D28  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802850CC 00280D2C  42 00 FE 74 */	bdnz lbl_80284F40
lbl_802850D0:
/* 802850D0 00280D30  38 1E 00 01 */	addi r0, r30, 1
/* 802850D4 00280D34  55 06 10 3A */	slwi r6, r8, 2
/* 802850D8 00280D38  38 81 00 08 */	addi r4, r1, 8
/* 802850DC 00280D3C  38 A1 01 98 */	addi r5, r1, 0x198
/* 802850E0 00280D40  7C 08 00 50 */	subf r0, r8, r0
/* 802850E4 00280D44  3C 60 CC 01 */	lis r3, 0xcc01
/* 802850E8 00280D48  7C 84 32 14 */	add r4, r4, r6
/* 802850EC 00280D4C  7C A5 32 14 */	add r5, r5, r6
/* 802850F0 00280D50  7C 09 03 A6 */	mtctr r0
/* 802850F4 00280D54  7C 08 F0 00 */	cmpw r8, r30
/* 802850F8 00280D58  41 81 00 40 */	bgt lbl_80285138
lbl_802850FC:
/* 802850FC 00280D5C  C0 04 00 00 */	lfs f0, 0(r4)
/* 80285100 00280D60  38 84 00 04 */	addi r4, r4, 4
/* 80285104 00280D64  C0 25 00 00 */	lfs f1, 0(r5)
/* 80285108 00280D68  38 A5 00 04 */	addi r5, r5, 4
/* 8028510C 00280D6C  FC 00 00 50 */	fneg f0, f0
/* 80285110 00280D70  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 80285114 00280D74  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285118 00280D78  D3 E3 80 00 */	stfs f31, -0x8000(r3)
/* 8028511C 00280D7C  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285120 00280D80  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285124 00280D84  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285128 00280D88  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 8028512C 00280D8C  C0 02 A1 D0 */	lfs f0, lbl_806427D0-_SDA2_BASE_(r2)
/* 80285130 00280D90  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285134 00280D94  42 00 FF C8 */	bdnz lbl_802850FC
lbl_80285138:
/* 80285138 00280D98  57 E5 04 3E */	clrlwi r5, r31, 0x10
/* 8028513C 00280D9C  38 60 00 A0 */	li r3, 0xa0
/* 80285140 00280DA0  38 80 00 03 */	li r4, 3
/* 80285144 00280DA4  4B FF C0 05 */	bl GXBegin
/* 80285148 00280DA8  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 8028514C 00280DAC  3C 60 CC 01 */	lis r3, 0xCC008000@ha
/* 80285150 00280DB0  2C 9E 00 00 */	cmpwi cr1, r30, 0
/* 80285154 00280DB4  39 00 00 00 */	li r8, 0
/* 80285158 00280DB8  D0 03 80 00 */	stfs f0, 0xCC008000@l(r3)
/* 8028515C 00280DBC  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285160 00280DC0  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285164 00280DC4  D3 C3 80 00 */	stfs f30, -0x8000(r3)
/* 80285168 00280DC8  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 8028516C 00280DCC  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285170 00280DD0  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285174 00280DD4  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285178 00280DD8  C0 02 A1 E0 */	lfs f0, lbl_806427E0-_SDA2_BASE_(r2)
/* 8028517C 00280DDC  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285180 00280DE0  41 84 02 5C */	blt cr1, lbl_802853DC
/* 80285184 00280DE4  38 FE 00 01 */	addi r7, r30, 1
/* 80285188 00280DE8  38 9E FF F8 */	addi r4, r30, -8
/* 8028518C 00280DEC  2C 07 00 08 */	cmpwi r7, 8
/* 80285190 00280DF0  40 81 01 E8 */	ble lbl_80285378
/* 80285194 00280DF4  38 A0 00 00 */	li r5, 0
/* 80285198 00280DF8  38 C0 00 00 */	li r6, 0
/* 8028519C 00280DFC  41 84 00 18 */	blt cr1, lbl_802851B4
/* 802851A0 00280E00  3C 60 80 00 */	lis r3, 0x7FFFFFFE@ha
/* 802851A4 00280E04  38 03 FF FE */	addi r0, r3, 0x7FFFFFFE@l
/* 802851A8 00280E08  7C 1E 00 00 */	cmpw r30, r0
/* 802851AC 00280E0C  41 81 00 08 */	bgt lbl_802851B4
/* 802851B0 00280E10  38 C0 00 01 */	li r6, 1
lbl_802851B4:
/* 802851B4 00280E14  2C 06 00 00 */	cmpwi r6, 0
/* 802851B8 00280E18  41 82 00 28 */	beq lbl_802851E0
/* 802851BC 00280E1C  57 C0 00 01 */	rlwinm. r0, r30, 0, 0, 0
/* 802851C0 00280E20  38 60 00 01 */	li r3, 1
/* 802851C4 00280E24  40 82 00 10 */	bne lbl_802851D4
/* 802851C8 00280E28  54 E0 00 01 */	rlwinm. r0, r7, 0, 0, 0
/* 802851CC 00280E2C  41 82 00 08 */	beq lbl_802851D4
/* 802851D0 00280E30  38 60 00 00 */	li r3, 0
lbl_802851D4:
/* 802851D4 00280E34  2C 03 00 00 */	cmpwi r3, 0
/* 802851D8 00280E38  41 82 00 08 */	beq lbl_802851E0
/* 802851DC 00280E3C  38 A0 00 01 */	li r5, 1
lbl_802851E0:
/* 802851E0 00280E40  2C 05 00 00 */	cmpwi r5, 0
/* 802851E4 00280E44  41 82 01 94 */	beq lbl_80285378
/* 802851E8 00280E48  38 04 00 08 */	addi r0, r4, 8
/* 802851EC 00280E4C  38 A1 00 08 */	addi r5, r1, 8
/* 802851F0 00280E50  54 00 E8 FE */	srwi r0, r0, 3
/* 802851F4 00280E54  38 C1 01 98 */	addi r6, r1, 0x198
/* 802851F8 00280E58  3C 60 CC 01 */	lis r3, 0xcc01
/* 802851FC 00280E5C  7C 09 03 A6 */	mtctr r0
/* 80285200 00280E60  2C 04 00 00 */	cmpwi r4, 0
/* 80285204 00280E64  41 80 01 74 */	blt lbl_80285378
lbl_80285208:
/* 80285208 00280E68  C0 06 00 00 */	lfs f0, 0(r6)
/* 8028520C 00280E6C  C0 25 00 00 */	lfs f1, 0(r5)
/* 80285210 00280E70  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285214 00280E74  C0 46 00 04 */	lfs f2, 4(r6)
/* 80285218 00280E78  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 8028521C 00280E7C  C0 25 00 04 */	lfs f1, 4(r5)
/* 80285220 00280E80  D3 C3 80 00 */	stfs f30, -0x8000(r3)
/* 80285224 00280E84  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285228 00280E88  C1 06 00 08 */	lfs f8, 8(r6)
/* 8028522C 00280E8C  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285230 00280E90  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285234 00280E94  C0 85 00 08 */	lfs f4, 8(r5)
/* 80285238 00280E98  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 8028523C 00280E9C  C0 02 A1 E0 */	lfs f0, lbl_806427E0-_SDA2_BASE_(r2)
/* 80285240 00280EA0  C0 E6 00 0C */	lfs f7, 0xc(r6)
/* 80285244 00280EA4  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285248 00280EA8  C0 65 00 0C */	lfs f3, 0xc(r5)
/* 8028524C 00280EAC  D0 43 80 00 */	stfs f2, -0x8000(r3)
/* 80285250 00280EB0  C0 C6 00 10 */	lfs f6, 0x10(r6)
/* 80285254 00280EB4  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 80285258 00280EB8  C0 45 00 10 */	lfs f2, 0x10(r5)
/* 8028525C 00280EBC  D3 C3 80 00 */	stfs f30, -0x8000(r3)
/* 80285260 00280EC0  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285264 00280EC4  C0 A6 00 14 */	lfs f5, 0x14(r6)
/* 80285268 00280EC8  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 8028526C 00280ECC  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285270 00280ED0  C0 25 00 14 */	lfs f1, 0x14(r5)
/* 80285274 00280ED4  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285278 00280ED8  C0 02 A1 E0 */	lfs f0, lbl_806427E0-_SDA2_BASE_(r2)
/* 8028527C 00280EDC  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285280 00280EE0  D1 03 80 00 */	stfs f8, -0x8000(r3)
/* 80285284 00280EE4  D0 83 80 00 */	stfs f4, -0x8000(r3)
/* 80285288 00280EE8  D3 C3 80 00 */	stfs f30, -0x8000(r3)
/* 8028528C 00280EEC  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285290 00280EF0  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285294 00280EF4  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285298 00280EF8  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 8028529C 00280EFC  C0 02 A1 E0 */	lfs f0, lbl_806427E0-_SDA2_BASE_(r2)
/* 802852A0 00280F00  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802852A4 00280F04  D0 E3 80 00 */	stfs f7, -0x8000(r3)
/* 802852A8 00280F08  D0 63 80 00 */	stfs f3, -0x8000(r3)
/* 802852AC 00280F0C  D3 C3 80 00 */	stfs f30, -0x8000(r3)
/* 802852B0 00280F10  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 802852B4 00280F14  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802852B8 00280F18  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 802852BC 00280F1C  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802852C0 00280F20  C0 02 A1 E0 */	lfs f0, lbl_806427E0-_SDA2_BASE_(r2)
/* 802852C4 00280F24  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802852C8 00280F28  D0 C3 80 00 */	stfs f6, -0x8000(r3)
/* 802852CC 00280F2C  D0 43 80 00 */	stfs f2, -0x8000(r3)
/* 802852D0 00280F30  D3 C3 80 00 */	stfs f30, -0x8000(r3)
/* 802852D4 00280F34  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 802852D8 00280F38  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802852DC 00280F3C  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 802852E0 00280F40  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802852E4 00280F44  C0 02 A1 E0 */	lfs f0, lbl_806427E0-_SDA2_BASE_(r2)
/* 802852E8 00280F48  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802852EC 00280F4C  D0 A3 80 00 */	stfs f5, -0x8000(r3)
/* 802852F0 00280F50  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 802852F4 00280F54  D3 C3 80 00 */	stfs f30, -0x8000(r3)
/* 802852F8 00280F58  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 802852FC 00280F5C  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285300 00280F60  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285304 00280F64  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285308 00280F68  C0 02 A1 E0 */	lfs f0, lbl_806427E0-_SDA2_BASE_(r2)
/* 8028530C 00280F6C  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285310 00280F70  C0 06 00 18 */	lfs f0, 0x18(r6)
/* 80285314 00280F74  39 08 00 08 */	addi r8, r8, 8
/* 80285318 00280F78  C0 46 00 1C */	lfs f2, 0x1c(r6)
/* 8028531C 00280F7C  38 C6 00 20 */	addi r6, r6, 0x20
/* 80285320 00280F80  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285324 00280F84  C0 05 00 18 */	lfs f0, 0x18(r5)
/* 80285328 00280F88  C0 25 00 1C */	lfs f1, 0x1c(r5)
/* 8028532C 00280F8C  38 A5 00 20 */	addi r5, r5, 0x20
/* 80285330 00280F90  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285334 00280F94  D3 C3 80 00 */	stfs f30, -0x8000(r3)
/* 80285338 00280F98  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 8028533C 00280F9C  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285340 00280FA0  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285344 00280FA4  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285348 00280FA8  C0 02 A1 E0 */	lfs f0, lbl_806427E0-_SDA2_BASE_(r2)
/* 8028534C 00280FAC  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285350 00280FB0  D0 43 80 00 */	stfs f2, -0x8000(r3)
/* 80285354 00280FB4  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 80285358 00280FB8  D3 C3 80 00 */	stfs f30, -0x8000(r3)
/* 8028535C 00280FBC  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285360 00280FC0  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285364 00280FC4  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 80285368 00280FC8  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 8028536C 00280FCC  C0 02 A1 E0 */	lfs f0, lbl_806427E0-_SDA2_BASE_(r2)
/* 80285370 00280FD0  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 80285374 00280FD4  42 00 FE 94 */	bdnz lbl_80285208
lbl_80285378:
/* 80285378 00280FD8  38 1E 00 01 */	addi r0, r30, 1
/* 8028537C 00280FDC  55 06 10 3A */	slwi r6, r8, 2
/* 80285380 00280FE0  38 81 00 08 */	addi r4, r1, 8
/* 80285384 00280FE4  38 A1 01 98 */	addi r5, r1, 0x198
/* 80285388 00280FE8  7C 08 00 50 */	subf r0, r8, r0
/* 8028538C 00280FEC  3C 60 CC 01 */	lis r3, 0xcc01
/* 80285390 00280FF0  7C 84 32 14 */	add r4, r4, r6
/* 80285394 00280FF4  7C A5 32 14 */	add r5, r5, r6
/* 80285398 00280FF8  7C 09 03 A6 */	mtctr r0
/* 8028539C 00280FFC  7C 08 F0 00 */	cmpw r8, r30
/* 802853A0 00281000  41 81 00 3C */	bgt lbl_802853DC
lbl_802853A4:
/* 802853A4 00281004  C0 25 00 00 */	lfs f1, 0(r5)
/* 802853A8 00281008  38 A5 00 04 */	addi r5, r5, 4
/* 802853AC 0028100C  C0 04 00 00 */	lfs f0, 0(r4)
/* 802853B0 00281010  38 84 00 04 */	addi r4, r4, 4
/* 802853B4 00281014  D0 23 80 00 */	stfs f1, -0x8000(r3)
/* 802853B8 00281018  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802853BC 0028101C  D3 C3 80 00 */	stfs f30, -0x8000(r3)
/* 802853C0 00281020  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 802853C4 00281024  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802853C8 00281028  C0 02 A1 DC */	lfs f0, lbl_806427DC-_SDA2_BASE_(r2)
/* 802853CC 0028102C  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802853D0 00281030  C0 02 A1 E0 */	lfs f0, lbl_806427E0-_SDA2_BASE_(r2)
/* 802853D4 00281034  D0 03 80 00 */	stfs f0, -0x8000(r3)
/* 802853D8 00281038  42 00 FF CC */	bdnz lbl_802853A4
lbl_802853DC:
/* 802853DC 0028103C  3C 60 80 51 */	lis r3, lbl_80515FF8@ha
/* 802853E0 00281040  38 63 5F F8 */	addi r3, r3, lbl_80515FF8@l
/* 802853E4 00281044  4B FF A2 75 */	bl GXSetVtxDescv
/* 802853E8 00281048  3C 80 80 51 */	lis r4, lbl_805160D0@ha
/* 802853EC 0028104C  38 60 00 03 */	li r3, 3
/* 802853F0 00281050  38 84 60 D0 */	addi r4, r4, lbl_805160D0@l
/* 802853F4 00281054  4B FF AA 65 */	bl GXSetVtxAttrFmtv
/* 802853F8 00281058  E3 E1 03 B8 */	psq_l f31, 952(r1), 0, qr0
/* 802853FC 0028105C  CB E1 03 B0 */	lfd f31, 0x3b0(r1)
/* 80285400 00281060  E3 C1 03 A8 */	psq_l f30, 936(r1), 0, qr0
/* 80285404 00281064  CB C1 03 A0 */	lfd f30, 0x3a0(r1)
/* 80285408 00281068  E3 A1 03 98 */	psq_l f29, 920(r1), 0, qr0
/* 8028540C 0028106C  CB A1 03 90 */	lfd f29, 0x390(r1)
/* 80285410 00281070  E3 81 03 88 */	psq_l f28, 904(r1), 0, qr0
/* 80285414 00281074  CB 81 03 80 */	lfd f28, 0x380(r1)
/* 80285418 00281078  E3 61 03 78 */	psq_l f27, 888(r1), 0, qr0
/* 8028541C 0028107C  CB 61 03 70 */	lfd f27, 0x370(r1)
/* 80285420 00281080  E3 41 03 68 */	psq_l f26, 872(r1), 0, qr0
/* 80285424 00281084  CB 41 03 60 */	lfd f26, 0x360(r1)
/* 80285428 00281088  E3 21 03 58 */	psq_l f25, 856(r1), 0, qr0
/* 8028542C 0028108C  39 61 03 50 */	addi r11, r1, 0x350
/* 80285430 00281090  CB 21 03 50 */	lfd f25, 0x350(r1)
/* 80285434 00281094  4B F4 1D 41 */	bl _restgpr_27
/* 80285438 00281098  80 01 03 C4 */	lwz r0, 0x3c4(r1)
/* 8028543C 0028109C  7C 08 03 A6 */	mtlr r0
/* 80285440 002810A0  38 21 03 C0 */	addi r1, r1, 0x3c0
/* 80285444 002810A4  4E 80 00 20 */	blr

.global GXDrawTorus
GXDrawTorus:
/* 80285448 002810A8  94 21 FF 20 */	stwu r1, -0xe0(r1)
/* 8028544C 002810AC  7C 08 02 A6 */	mflr r0
/* 80285450 002810B0  90 01 00 E4 */	stw r0, 0xe4(r1)
/* 80285454 002810B4  DB E1 00 D0 */	stfd f31, 0xd0(r1)
/* 80285458 002810B8  F3 E1 00 D8 */	psq_st f31, 216(r1), 0, qr0
/* 8028545C 002810BC  DB C1 00 C0 */	stfd f30, 0xc0(r1)
/* 80285460 002810C0  F3 C1 00 C8 */	psq_st f30, 200(r1), 0, qr0
/* 80285464 002810C4  DB A1 00 B0 */	stfd f29, 0xb0(r1)
/* 80285468 002810C8  F3 A1 00 B8 */	psq_st f29, 184(r1), 0, qr0
/* 8028546C 002810CC  DB 81 00 A0 */	stfd f28, 0xa0(r1)
/* 80285470 002810D0  F3 81 00 A8 */	psq_st f28, 168(r1), 0, qr0
/* 80285474 002810D4  DB 61 00 90 */	stfd f27, 0x90(r1)
/* 80285478 002810D8  F3 61 00 98 */	psq_st f27, 152(r1), 0, qr0
/* 8028547C 002810DC  DB 41 00 80 */	stfd f26, 0x80(r1)
/* 80285480 002810E0  F3 41 00 88 */	psq_st f26, 136(r1), 0, qr0
/* 80285484 002810E4  DB 21 00 70 */	stfd f25, 0x70(r1)
/* 80285488 002810E8  F3 21 00 78 */	psq_st f25, 120(r1), 0, qr0
/* 8028548C 002810EC  DB 01 00 60 */	stfd f24, 0x60(r1)
/* 80285490 002810F0  F3 01 00 68 */	psq_st f24, 104(r1), 0, qr0
/* 80285494 002810F4  DA E1 00 50 */	stfd f23, 0x50(r1)
/* 80285498 002810F8  F2 E1 00 58 */	psq_st f23, 88(r1), 0, qr0
/* 8028549C 002810FC  39 61 00 50 */	addi r11, r1, 0x50
/* 802854A0 00281100  4B F4 1C 75 */	bl _savegpr_22
/* 802854A4 00281104  C0 02 A1 D0 */	lfs f0, lbl_806427D0-_SDA2_BASE_(r2)
/* 802854A8 00281108  3C 00 43 30 */	lis r0, 0x4330
/* 802854AC 0028110C  7C 7B 1B 78 */	mr r27, r3
/* 802854B0 00281110  7C 9C 23 78 */	mr r28, r4
/* 802854B4 00281114  FF 00 08 90 */	fmr f24, f1
/* 802854B8 00281118  90 01 00 10 */	stw r0, 0x10(r1)
/* 802854BC 0028111C  EF 20 08 28 */	fsubs f25, f0, f1
/* 802854C0 00281120  C3 42 A1 F8 */	lfs f26, lbl_806427F8-_SDA2_BASE_(r2)
/* 802854C4 00281124  90 01 00 18 */	stw r0, 0x18(r1)
/* 802854C8 00281128  38 81 00 08 */	addi r4, r1, 8
/* 802854CC 0028112C  38 60 00 0D */	li r3, 0xd
/* 802854D0 00281130  4B FF A5 71 */	bl GXGetVtxDesc
/* 802854D4 00281134  3C 60 80 51 */	lis r3, lbl_80515FF8@ha
/* 802854D8 00281138  38 63 5F F8 */	addi r3, r3, lbl_80515FF8@l
/* 802854DC 0028113C  4B FF A7 19 */	bl GXGetVtxDescv
/* 802854E0 00281140  3C 80 80 51 */	lis r4, lbl_805160D0@ha
/* 802854E4 00281144  38 60 00 03 */	li r3, 3
/* 802854E8 00281148  38 84 60 D0 */	addi r4, r4, lbl_805160D0@l
/* 802854EC 0028114C  4B FF AE 1D */	bl GXGetVtxAttrFmtv
/* 802854F0 00281150  4B FF A7 95 */	bl GXClearVtxDesc
/* 802854F4 00281154  38 60 00 09 */	li r3, 9
/* 802854F8 00281158  38 80 00 01 */	li r4, 1
/* 802854FC 0028115C  4B FF 9E F9 */	bl GXSetVtxDesc
/* 80285500 00281160  38 60 00 0A */	li r3, 0xa
/* 80285504 00281164  38 80 00 01 */	li r4, 1
/* 80285508 00281168  4B FF 9E ED */	bl GXSetVtxDesc
/* 8028550C 0028116C  38 60 00 03 */	li r3, 3
/* 80285510 00281170  38 80 00 09 */	li r4, 9
/* 80285514 00281174  38 A0 00 01 */	li r5, 1
/* 80285518 00281178  38 C0 00 04 */	li r6, 4
/* 8028551C 0028117C  38 E0 00 00 */	li r7, 0
/* 80285520 00281180  4B FF A7 99 */	bl GXSetVtxAttrFmt
/* 80285524 00281184  38 60 00 03 */	li r3, 3
/* 80285528 00281188  38 80 00 0A */	li r4, 0xa
/* 8028552C 0028118C  38 A0 00 00 */	li r5, 0
/* 80285530 00281190  38 C0 00 04 */	li r6, 4
/* 80285534 00281194  38 E0 00 00 */	li r7, 0
/* 80285538 00281198  4B FF A7 81 */	bl GXSetVtxAttrFmt
/* 8028553C 0028119C  80 01 00 08 */	lwz r0, 8(r1)
/* 80285540 002811A0  2C 00 00 00 */	cmpwi r0, 0
/* 80285544 002811A4  41 82 00 28 */	beq lbl_8028556C
/* 80285548 002811A8  38 60 00 0D */	li r3, 0xd
/* 8028554C 002811AC  38 80 00 01 */	li r4, 1
/* 80285550 002811B0  4B FF 9E A5 */	bl GXSetVtxDesc
/* 80285554 002811B4  38 60 00 03 */	li r3, 3
/* 80285558 002811B8  38 80 00 0D */	li r4, 0xd
/* 8028555C 002811BC  38 A0 00 01 */	li r5, 1
/* 80285560 002811C0  38 C0 00 04 */	li r6, 4
/* 80285564 002811C4  38 E0 00 00 */	li r7, 0
/* 80285568 002811C8  4B FF A7 51 */	bl GXSetVtxAttrFmt
lbl_8028556C:
/* 8028556C 002811CC  38 1C 00 01 */	addi r0, r28, 1
/* 80285570 002811D0  CB C2 A1 E8 */	lfd f30, lbl_806427E8-_SDA2_BASE_(r2)
/* 80285574 002811D4  CB E2 A1 F0 */	lfd f31, lbl_806427F0-_SDA2_BASE_(r2)
/* 80285578 002811D8  54 18 08 3C */	slwi r24, r0, 1
/* 8028557C 002811DC  3B E0 00 00 */	li r31, 0
/* 80285580 002811E0  3F 40 CC 01 */	lis r26, 0xcc01
/* 80285584 002811E4  48 00 02 24 */	b lbl_802857A8
lbl_80285588:
/* 80285588 002811E8  57 05 04 3E */	clrlwi r5, r24, 0x10
/* 8028558C 002811EC  38 60 00 98 */	li r3, 0x98
/* 80285590 002811F0  38 80 00 03 */	li r4, 3
/* 80285594 002811F4  4B FF BB B5 */	bl GXBegin
/* 80285598 002811F8  82 E1 00 08 */	lwz r23, 8(r1)
/* 8028559C 002811FC  3B C0 00 00 */	li r30, 0
/* 802855A0 00281200  48 00 01 FC */	b lbl_8028579C
lbl_802855A4:
/* 802855A4 00281204  7C 1E E3 D6 */	divw r0, r30, r28
/* 802855A8 00281208  3B A0 00 01 */	li r29, 1
/* 802855AC 0028120C  7C 00 E1 D6 */	mullw r0, r0, r28
/* 802855B0 00281210  7C 00 F0 50 */	subf r0, r0, r30
/* 802855B4 00281214  6C 19 80 00 */	xoris r25, r0, 0x8000
lbl_802855B8:
/* 802855B8 00281218  7E DF EA 14 */	add r22, r31, r29
/* 802855BC 0028121C  93 21 00 1C */	stw r25, 0x1c(r1)
/* 802855C0 00281220  7C 16 DB D6 */	divw r0, r22, r27
/* 802855C4 00281224  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 802855C8 00281228  EF 60 F0 28 */	fsubs f27, f0, f30
/* 802855CC 0028122C  EC 3B 06 B2 */	fmuls f1, f27, f26
/* 802855D0 00281230  7C 00 D9 D6 */	mullw r0, r0, r27
/* 802855D4 00281234  7C 00 B0 50 */	subf r0, r0, r22
/* 802855D8 00281238  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 802855DC 0028123C  90 01 00 14 */	stw r0, 0x14(r1)
/* 802855E0 00281240  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 802855E4 00281244  93 81 00 14 */	stw r28, 0x14(r1)
/* 802855E8 00281248  EF 80 F0 28 */	fsubs f28, f0, f30
/* 802855EC 0028124C  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 802855F0 00281250  EC 00 F8 28 */	fsubs f0, f0, f31
/* 802855F4 00281254  EC 21 00 24 */	fdivs f1, f1, f0
/* 802855F8 00281258  4B F4 EA 81 */	bl cos
/* 802855FC 0028125C  93 61 00 1C */	stw r27, 0x1c(r1)
/* 80285600 00281260  EC 5C 06 B2 */	fmuls f2, f28, f26
/* 80285604 00281264  FF A0 08 18 */	frsp f29, f1
/* 80285608 00281268  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 8028560C 0028126C  EC 00 F8 28 */	fsubs f0, f0, f31
/* 80285610 00281270  EC 22 00 24 */	fdivs f1, f2, f0
/* 80285614 00281274  4B F4 EA 65 */	bl cos
/* 80285618 00281278  93 81 00 14 */	stw r28, 0x14(r1)
/* 8028561C 0028127C  FC 40 08 18 */	frsp f2, f1
/* 80285620 00281280  EC 3B 06 B2 */	fmuls f1, f27, f26
/* 80285624 00281284  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 80285628 00281288  EC 58 00 B2 */	fmuls f2, f24, f2
/* 8028562C 0028128C  EC 00 F8 28 */	fsubs f0, f0, f31
/* 80285630 00281290  EC 59 10 28 */	fsubs f2, f25, f2
/* 80285634 00281294  EC 21 00 24 */	fdivs f1, f1, f0
/* 80285638 00281298  EF A2 07 72 */	fmuls f29, f2, f29
/* 8028563C 0028129C  4B F4 EE 49 */	bl sin
/* 80285640 002812A0  93 61 00 1C */	stw r27, 0x1c(r1)
/* 80285644 002812A4  EC 5C 06 B2 */	fmuls f2, f28, f26
/* 80285648 002812A8  FE E0 08 18 */	frsp f23, f1
/* 8028564C 002812AC  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 80285650 002812B0  EC 00 F8 28 */	fsubs f0, f0, f31
/* 80285654 002812B4  EC 22 00 24 */	fdivs f1, f2, f0
/* 80285658 002812B8  4B F4 EA 21 */	bl cos
/* 8028565C 002812BC  93 61 00 14 */	stw r27, 0x14(r1)
/* 80285660 002812C0  FC 40 08 18 */	frsp f2, f1
/* 80285664 002812C4  EC 3C 06 B2 */	fmuls f1, f28, f26
/* 80285668 002812C8  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 8028566C 002812CC  EC 58 00 B2 */	fmuls f2, f24, f2
/* 80285670 002812D0  EC 00 F8 28 */	fsubs f0, f0, f31
/* 80285674 002812D4  EC 59 10 28 */	fsubs f2, f25, f2
/* 80285678 002812D8  EC 21 00 24 */	fdivs f1, f1, f0
/* 8028567C 002812DC  EE E2 05 F2 */	fmuls f23, f2, f23
/* 80285680 002812E0  4B F4 EE 05 */	bl sin
/* 80285684 002812E4  93 61 00 1C */	stw r27, 0x1c(r1)
/* 80285688 002812E8  FC 40 08 18 */	frsp f2, f1
/* 8028568C 002812EC  EC 3C 06 B2 */	fmuls f1, f28, f26
/* 80285690 002812F0  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 80285694 002812F4  D3 BA 80 00 */	stfs f29, -0x8000(r26)
/* 80285698 002812F8  EC 58 00 B2 */	fmuls f2, f24, f2
/* 8028569C 002812FC  EC 00 F8 28 */	fsubs f0, f0, f31
/* 802856A0 00281300  D2 FA 80 00 */	stfs f23, -0x8000(r26)
/* 802856A4 00281304  EC 21 00 24 */	fdivs f1, f1, f0
/* 802856A8 00281308  D0 5A 80 00 */	stfs f2, -0x8000(r26)
/* 802856AC 0028130C  4B F4 E9 CD */	bl cos
/* 802856B0 00281310  93 81 00 14 */	stw r28, 0x14(r1)
/* 802856B4 00281314  EC 5B 06 B2 */	fmuls f2, f27, f26
/* 802856B8 00281318  FE E0 08 18 */	frsp f23, f1
/* 802856BC 0028131C  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 802856C0 00281320  EC 00 F8 28 */	fsubs f0, f0, f31
/* 802856C4 00281324  EC 22 00 24 */	fdivs f1, f2, f0
/* 802856C8 00281328  4B F4 E9 B1 */	bl cos
/* 802856CC 0028132C  93 61 00 1C */	stw r27, 0x1c(r1)
/* 802856D0 00281330  FC 40 08 18 */	frsp f2, f1
/* 802856D4 00281334  EC 3C 06 B2 */	fmuls f1, f28, f26
/* 802856D8 00281338  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 802856DC 0028133C  FC 40 10 50 */	fneg f2, f2
/* 802856E0 00281340  EC 00 F8 28 */	fsubs f0, f0, f31
/* 802856E4 00281344  EF A2 05 F2 */	fmuls f29, f2, f23
/* 802856E8 00281348  EC 21 00 24 */	fdivs f1, f1, f0
/* 802856EC 0028134C  4B F4 E9 8D */	bl cos
/* 802856F0 00281350  93 81 00 14 */	stw r28, 0x14(r1)
/* 802856F4 00281354  EC 5B 06 B2 */	fmuls f2, f27, f26
/* 802856F8 00281358  FE E0 08 18 */	frsp f23, f1
/* 802856FC 0028135C  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 80285700 00281360  EC 00 F8 28 */	fsubs f0, f0, f31
/* 80285704 00281364  EC 22 00 24 */	fdivs f1, f2, f0
/* 80285708 00281368  4B F4 ED 7D */	bl sin
/* 8028570C 0028136C  93 61 00 1C */	stw r27, 0x1c(r1)
/* 80285710 00281370  FC 40 08 18 */	frsp f2, f1
/* 80285714 00281374  EC 3C 06 B2 */	fmuls f1, f28, f26
/* 80285718 00281378  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 8028571C 0028137C  FC 40 10 50 */	fneg f2, f2
/* 80285720 00281380  EC 00 F8 28 */	fsubs f0, f0, f31
/* 80285724 00281384  EE E2 05 F2 */	fmuls f23, f2, f23
/* 80285728 00281388  EC 21 00 24 */	fdivs f1, f1, f0
/* 8028572C 0028138C  4B F4 ED 59 */	bl sin
/* 80285730 00281390  D3 BA 80 00 */	stfs f29, -0x8000(r26)
/* 80285734 00281394  FC 00 08 18 */	frsp f0, f1
/* 80285738 00281398  2C 17 00 00 */	cmpwi r23, 0
/* 8028573C 0028139C  D2 FA 80 00 */	stfs f23, -0x8000(r26)
/* 80285740 002813A0  D0 1A 80 00 */	stfs f0, -0x8000(r26)
/* 80285744 002813A4  41 82 00 4C */	beq lbl_80285790
/* 80285748 002813A8  6E C3 80 00 */	xoris r3, r22, 0x8000
/* 8028574C 002813AC  93 61 00 1C */	stw r27, 0x1c(r1)
/* 80285750 002813B0  6F C0 80 00 */	xoris r0, r30, 0x8000
/* 80285754 002813B4  90 61 00 14 */	stw r3, 0x14(r1)
/* 80285758 002813B8  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 8028575C 002813BC  C8 21 00 10 */	lfd f1, 0x10(r1)
/* 80285760 002813C0  93 81 00 1C */	stw r28, 0x1c(r1)
/* 80285764 002813C4  EC 40 F8 28 */	fsubs f2, f0, f31
/* 80285768 002813C8  EC 61 F0 28 */	fsubs f3, f1, f30
/* 8028576C 002813CC  90 01 00 14 */	stw r0, 0x14(r1)
/* 80285770 002813D0  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 80285774 002813D4  C8 21 00 10 */	lfd f1, 0x10(r1)
/* 80285778 002813D8  EC 43 10 24 */	fdivs f2, f3, f2
/* 8028577C 002813DC  EC 21 F0 28 */	fsubs f1, f1, f30
/* 80285780 002813E0  D0 5A 80 00 */	stfs f2, -0x8000(r26)
/* 80285784 002813E4  EC 00 F8 28 */	fsubs f0, f0, f31
/* 80285788 002813E8  EC 01 00 24 */	fdivs f0, f1, f0
/* 8028578C 002813EC  D0 1A 80 00 */	stfs f0, -0x8000(r26)
lbl_80285790:
/* 80285790 002813F0  37 BD FF FF */	addic. r29, r29, -1
/* 80285794 002813F4  40 80 FE 24 */	bge lbl_802855B8
/* 80285798 002813F8  3B DE 00 01 */	addi r30, r30, 1
lbl_8028579C:
/* 8028579C 002813FC  7C 1E E0 00 */	cmpw r30, r28
/* 802857A0 00281400  40 81 FE 04 */	ble lbl_802855A4
/* 802857A4 00281404  3B FF 00 01 */	addi r31, r31, 1
lbl_802857A8:
/* 802857A8 00281408  7C 1F D8 00 */	cmpw r31, r27
/* 802857AC 0028140C  41 80 FD DC */	blt lbl_80285588
/* 802857B0 00281410  3C 60 80 51 */	lis r3, lbl_80515FF8@ha
/* 802857B4 00281414  38 63 5F F8 */	addi r3, r3, lbl_80515FF8@l
/* 802857B8 00281418  4B FF 9E A1 */	bl GXSetVtxDescv
/* 802857BC 0028141C  3C 80 80 51 */	lis r4, lbl_805160D0@ha
/* 802857C0 00281420  38 60 00 03 */	li r3, 3
/* 802857C4 00281424  38 84 60 D0 */	addi r4, r4, lbl_805160D0@l
/* 802857C8 00281428  4B FF A6 91 */	bl GXSetVtxAttrFmtv
/* 802857CC 0028142C  E3 E1 00 D8 */	psq_l f31, 216(r1), 0, qr0
/* 802857D0 00281430  CB E1 00 D0 */	lfd f31, 0xd0(r1)
/* 802857D4 00281434  E3 C1 00 C8 */	psq_l f30, 200(r1), 0, qr0
/* 802857D8 00281438  CB C1 00 C0 */	lfd f30, 0xc0(r1)
/* 802857DC 0028143C  E3 A1 00 B8 */	psq_l f29, 184(r1), 0, qr0
/* 802857E0 00281440  CB A1 00 B0 */	lfd f29, 0xb0(r1)
/* 802857E4 00281444  E3 81 00 A8 */	psq_l f28, 168(r1), 0, qr0
/* 802857E8 00281448  CB 81 00 A0 */	lfd f28, 0xa0(r1)
/* 802857EC 0028144C  E3 61 00 98 */	psq_l f27, 152(r1), 0, qr0
/* 802857F0 00281450  CB 61 00 90 */	lfd f27, 0x90(r1)
/* 802857F4 00281454  E3 41 00 88 */	psq_l f26, 136(r1), 0, qr0
/* 802857F8 00281458  CB 41 00 80 */	lfd f26, 0x80(r1)
/* 802857FC 0028145C  E3 21 00 78 */	psq_l f25, 120(r1), 0, qr0
/* 80285800 00281460  CB 21 00 70 */	lfd f25, 0x70(r1)
/* 80285804 00281464  E3 01 00 68 */	psq_l f24, 104(r1), 0, qr0
/* 80285808 00281468  CB 01 00 60 */	lfd f24, 0x60(r1)
/* 8028580C 0028146C  E2 E1 00 58 */	psq_l f23, 88(r1), 0, qr0
/* 80285810 00281470  39 61 00 50 */	addi r11, r1, 0x50
/* 80285814 00281474  CA E1 00 50 */	lfd f23, 0x50(r1)
/* 80285818 00281478  4B F4 19 49 */	bl _restgpr_22
/* 8028581C 0028147C  80 01 00 E4 */	lwz r0, 0xe4(r1)
/* 80285820 00281480  7C 08 03 A6 */	mtlr r0
/* 80285824 00281484  38 21 00 E0 */	addi r1, r1, 0xe0
/* 80285828 00281488  4E 80 00 20 */	blr

.global GXDrawSphere
GXDrawSphere:
/* 8028582C 0028148C  94 21 FE F0 */	stwu r1, -0x110(r1)
/* 80285830 00281490  7C 08 02 A6 */	mflr r0
/* 80285834 00281494  90 01 01 14 */	stw r0, 0x114(r1)
/* 80285838 00281498  DB E1 01 00 */	stfd f31, 0x100(r1)
/* 8028583C 0028149C  F3 E1 01 08 */	psq_st f31, 264(r1), 0, qr0
/* 80285840 002814A0  DB C1 00 F0 */	stfd f30, 0xf0(r1)
/* 80285844 002814A4  F3 C1 00 F8 */	psq_st f30, 248(r1), 0, qr0
/* 80285848 002814A8  DB A1 00 E0 */	stfd f29, 0xe0(r1)
/* 8028584C 002814AC  F3 A1 00 E8 */	psq_st f29, 232(r1), 0, qr0
/* 80285850 002814B0  DB 81 00 D0 */	stfd f28, 0xd0(r1)
/* 80285854 002814B4  F3 81 00 D8 */	psq_st f28, 216(r1), 0, qr0
/* 80285858 002814B8  DB 61 00 C0 */	stfd f27, 0xc0(r1)
/* 8028585C 002814BC  F3 61 00 C8 */	psq_st f27, 200(r1), 0, qr0
/* 80285860 002814C0  DB 41 00 B0 */	stfd f26, 0xb0(r1)
/* 80285864 002814C4  F3 41 00 B8 */	psq_st f26, 184(r1), 0, qr0
/* 80285868 002814C8  DB 21 00 A0 */	stfd f25, 0xa0(r1)
/* 8028586C 002814CC  F3 21 00 A8 */	psq_st f25, 168(r1), 0, qr0
/* 80285870 002814D0  DB 01 00 90 */	stfd f24, 0x90(r1)
/* 80285874 002814D4  F3 01 00 98 */	psq_st f24, 152(r1), 0, qr0
/* 80285878 002814D8  DA E1 00 80 */	stfd f23, 0x80(r1)
/* 8028587C 002814DC  F2 E1 00 88 */	psq_st f23, 136(r1), 0, qr0
/* 80285880 002814E0  DA C1 00 70 */	stfd f22, 0x70(r1)
/* 80285884 002814E4  F2 C1 00 78 */	psq_st f22, 120(r1), 0, qr0
/* 80285888 002814E8  DA A1 00 60 */	stfd f21, 0x60(r1)
/* 8028588C 002814EC  F2 A1 00 68 */	psq_st f21, 104(r1), 0, qr0
/* 80285890 002814F0  DA 81 00 50 */	stfd f20, 0x50(r1)
/* 80285894 002814F4  F2 81 00 58 */	psq_st f20, 88(r1), 0, qr0
/* 80285898 002814F8  DA 61 00 40 */	stfd f19, 0x40(r1)
/* 8028589C 002814FC  F2 61 00 48 */	psq_st f19, 72(r1), 0, qr0
/* 802858A0 00281500  39 61 00 40 */	addi r11, r1, 0x40
/* 802858A4 00281504  4B F4 18 7D */	bl _savegpr_25
/* 802858A8 00281508  3C 00 43 30 */	lis r0, 0x4330
/* 802858AC 0028150C  90 61 00 14 */	stw r3, 0x14(r1)
/* 802858B0 00281510  7C 79 1B 78 */	mr r25, r3
/* 802858B4 00281514  C8 82 A1 F0 */	lfd f4, lbl_806427F0-_SDA2_BASE_(r2)
/* 802858B8 00281518  90 01 00 10 */	stw r0, 0x10(r1)
/* 802858BC 0028151C  7C 9A 23 78 */	mr r26, r4
/* 802858C0 00281520  C0 42 A1 D4 */	lfs f2, lbl_806427D4-_SDA2_BASE_(r2)
/* 802858C4 00281524  38 60 00 0D */	li r3, 0xd
/* 802858C8 00281528  90 81 00 1C */	stw r4, 0x1c(r1)
/* 802858CC 0028152C  38 81 00 08 */	addi r4, r1, 8
/* 802858D0 00281530  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 802858D4 00281534  90 01 00 18 */	stw r0, 0x18(r1)
/* 802858D8 00281538  EC 60 20 28 */	fsubs f3, f0, f4
/* 802858DC 0028153C  C0 02 A1 F8 */	lfs f0, lbl_806427F8-_SDA2_BASE_(r2)
/* 802858E0 00281540  C8 21 00 18 */	lfd f1, 0x18(r1)
/* 802858E4 00281544  C3 42 A1 D0 */	lfs f26, lbl_806427D0-_SDA2_BASE_(r2)
/* 802858E8 00281548  EC 21 20 28 */	fsubs f1, f1, f4
/* 802858EC 0028154C  EF 22 18 24 */	fdivs f25, f2, f3
/* 802858F0 00281550  EF 00 08 24 */	fdivs f24, f0, f1
/* 802858F4 00281554  4B FF A1 4D */	bl GXGetVtxDesc
/* 802858F8 00281558  3C 60 80 51 */	lis r3, lbl_80515FF8@ha
/* 802858FC 0028155C  38 63 5F F8 */	addi r3, r3, lbl_80515FF8@l
/* 80285900 00281560  4B FF A2 F5 */	bl GXGetVtxDescv
/* 80285904 00281564  3C 80 80 51 */	lis r4, lbl_805160D0@ha
/* 80285908 00281568  38 60 00 03 */	li r3, 3
/* 8028590C 0028156C  38 84 60 D0 */	addi r4, r4, lbl_805160D0@l
/* 80285910 00281570  4B FF A9 F9 */	bl GXGetVtxAttrFmtv
/* 80285914 00281574  4B FF A3 71 */	bl GXClearVtxDesc
/* 80285918 00281578  38 60 00 09 */	li r3, 9
/* 8028591C 0028157C  38 80 00 01 */	li r4, 1
/* 80285920 00281580  4B FF 9A D5 */	bl GXSetVtxDesc
/* 80285924 00281584  38 60 00 0A */	li r3, 0xa
/* 80285928 00281588  38 80 00 01 */	li r4, 1
/* 8028592C 0028158C  4B FF 9A C9 */	bl GXSetVtxDesc
/* 80285930 00281590  38 60 00 03 */	li r3, 3
/* 80285934 00281594  38 80 00 09 */	li r4, 9
/* 80285938 00281598  38 A0 00 01 */	li r5, 1
/* 8028593C 0028159C  38 C0 00 04 */	li r6, 4
/* 80285940 002815A0  38 E0 00 00 */	li r7, 0
/* 80285944 002815A4  4B FF A3 75 */	bl GXSetVtxAttrFmt
/* 80285948 002815A8  38 60 00 03 */	li r3, 3
/* 8028594C 002815AC  38 80 00 0A */	li r4, 0xa
/* 80285950 002815B0  38 A0 00 00 */	li r5, 0
/* 80285954 002815B4  38 C0 00 04 */	li r6, 4
/* 80285958 002815B8  38 E0 00 00 */	li r7, 0
/* 8028595C 002815BC  4B FF A3 5D */	bl GXSetVtxAttrFmt
/* 80285960 002815C0  80 01 00 08 */	lwz r0, 8(r1)
/* 80285964 002815C4  2C 00 00 00 */	cmpwi r0, 0
/* 80285968 002815C8  41 82 00 28 */	beq lbl_80285990
/* 8028596C 002815CC  38 60 00 0D */	li r3, 0xd
/* 80285970 002815D0  38 80 00 01 */	li r4, 1
/* 80285974 002815D4  4B FF 9A 81 */	bl GXSetVtxDesc
/* 80285978 002815D8  38 60 00 03 */	li r3, 3
/* 8028597C 002815DC  38 80 00 0D */	li r4, 0xd
/* 80285980 002815E0  38 A0 00 01 */	li r5, 1
/* 80285984 002815E4  38 C0 00 04 */	li r6, 4
/* 80285988 002815E8  38 E0 00 00 */	li r7, 0
/* 8028598C 002815EC  4B FF A3 2D */	bl GXSetVtxAttrFmt
lbl_80285990:
/* 80285990 002815F0  38 1A 00 01 */	addi r0, r26, 1
/* 80285994 002815F4  CB 82 A1 E8 */	lfd f28, lbl_806427E8-_SDA2_BASE_(r2)
/* 80285998 002815F8  CB C2 A1 F0 */	lfd f30, lbl_806427F0-_SDA2_BASE_(r2)
/* 8028599C 002815FC  54 1E 08 3C */	slwi r30, r0, 1
/* 802859A0 00281600  3B 80 00 00 */	li r28, 0
/* 802859A4 00281604  3F E0 CC 01 */	lis r31, 0xcc01
/* 802859A8 00281608  48 00 01 B0 */	b lbl_80285B58
lbl_802859AC:
/* 802859AC 0028160C  6F 80 80 00 */	xoris r0, r28, 0x8000
/* 802859B0 00281610  90 01 00 14 */	stw r0, 0x14(r1)
/* 802859B4 00281614  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 802859B8 00281618  EC 00 E0 28 */	fsubs f0, f0, f28
/* 802859BC 0028161C  EE 80 06 72 */	fmuls f20, f0, f25
/* 802859C0 00281620  FC 20 A0 90 */	fmr f1, f20
/* 802859C4 00281624  EE B4 C8 2A */	fadds f21, f20, f25
/* 802859C8 00281628  4B F4 EA BD */	bl sin
/* 802859CC 0028162C  FC 00 08 18 */	frsp f0, f1
/* 802859D0 00281630  FC 20 A8 90 */	fmr f1, f21
/* 802859D4 00281634  EE FA 00 32 */	fmuls f23, f26, f0
/* 802859D8 00281638  4B F4 EA AD */	bl sin
/* 802859DC 0028163C  FC 00 08 18 */	frsp f0, f1
/* 802859E0 00281640  FC 20 A0 90 */	fmr f1, f20
/* 802859E4 00281644  EE DA 00 32 */	fmuls f22, f26, f0
/* 802859E8 00281648  4B F4 E6 91 */	bl cos
/* 802859EC 0028164C  FC 00 08 18 */	frsp f0, f1
/* 802859F0 00281650  FC 20 A8 90 */	fmr f1, f21
/* 802859F4 00281654  EE BA 00 32 */	fmuls f21, f26, f0
/* 802859F8 00281658  4B F4 E6 81 */	bl cos
/* 802859FC 0028165C  FC 00 08 18 */	frsp f0, f1
/* 80285A00 00281660  57 C5 04 3E */	clrlwi r5, r30, 0x10
/* 80285A04 00281664  38 60 00 98 */	li r3, 0x98
/* 80285A08 00281668  38 80 00 03 */	li r4, 3
/* 80285A0C 0028166C  EE 9A 00 32 */	fmuls f20, f26, f0
/* 80285A10 00281670  4B FF B7 39 */	bl GXBegin
/* 80285A14 00281674  EF B4 D0 24 */	fdivs f29, f20, f26
/* 80285A18 00281678  83 A1 00 08 */	lwz r29, 8(r1)
/* 80285A1C 0028167C  3B 60 00 00 */	li r27, 0
/* 80285A20 00281680  EF F5 D0 24 */	fdivs f31, f21, f26
/* 80285A24 00281684  48 00 01 28 */	b lbl_80285B4C
lbl_80285A28:
/* 80285A28 00281688  6F 60 80 00 */	xoris r0, r27, 0x8000
/* 80285A2C 0028168C  90 01 00 1C */	stw r0, 0x1c(r1)
/* 80285A30 00281690  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 80285A34 00281694  EC 00 E0 28 */	fsubs f0, f0, f28
/* 80285A38 00281698  EE 60 06 32 */	fmuls f19, f0, f24
/* 80285A3C 0028169C  FC 20 98 90 */	fmr f1, f19
/* 80285A40 002816A0  4B F4 E6 39 */	bl cos
/* 80285A44 002816A4  FF 60 08 18 */	frsp f27, f1
/* 80285A48 002816A8  FC 20 98 90 */	fmr f1, f19
/* 80285A4C 002816AC  4B F4 EA 39 */	bl sin
/* 80285A50 002816B0  FC 80 08 18 */	frsp f4, f1
/* 80285A54 002816B4  2C 1D 00 00 */	cmpwi r29, 0
/* 80285A58 002816B8  EC 5B 05 B2 */	fmuls f2, f27, f22
/* 80285A5C 002816BC  EC 04 05 B2 */	fmuls f0, f4, f22
/* 80285A60 002816C0  D0 5F 80 00 */	stfs f2, -0x8000(r31)
/* 80285A64 002816C4  EC 22 D0 24 */	fdivs f1, f2, f26
/* 80285A68 002816C8  D0 1F 80 00 */	stfs f0, -0x8000(r31)
/* 80285A6C 002816CC  D2 9F 80 00 */	stfs f20, -0x8000(r31)
/* 80285A70 002816D0  EC 00 D0 24 */	fdivs f0, f0, f26
/* 80285A74 002816D4  D0 3F 80 00 */	stfs f1, -0x8000(r31)
/* 80285A78 002816D8  D0 1F 80 00 */	stfs f0, -0x8000(r31)
/* 80285A7C 002816DC  D3 BF 80 00 */	stfs f29, -0x8000(r31)
/* 80285A80 002816E0  41 82 00 50 */	beq lbl_80285AD0
/* 80285A84 002816E4  6F 63 80 00 */	xoris r3, r27, 0x8000
/* 80285A88 002816E8  93 41 00 1C */	stw r26, 0x1c(r1)
/* 80285A8C 002816EC  38 1C 00 01 */	addi r0, r28, 1
/* 80285A90 002816F0  90 61 00 14 */	stw r3, 0x14(r1)
/* 80285A94 002816F4  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 80285A98 002816F8  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 80285A9C 002816FC  C8 21 00 10 */	lfd f1, 0x10(r1)
/* 80285AA0 00281700  93 21 00 1C */	stw r25, 0x1c(r1)
/* 80285AA4 00281704  EC 40 F0 28 */	fsubs f2, f0, f30
/* 80285AA8 00281708  EC 61 E0 28 */	fsubs f3, f1, f28
/* 80285AAC 0028170C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80285AB0 00281710  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 80285AB4 00281714  C8 21 00 10 */	lfd f1, 0x10(r1)
/* 80285AB8 00281718  EC 43 10 24 */	fdivs f2, f3, f2
/* 80285ABC 0028171C  EC 21 E0 28 */	fsubs f1, f1, f28
/* 80285AC0 00281720  D0 5F 80 00 */	stfs f2, -0x8000(r31)
/* 80285AC4 00281724  EC 00 F0 28 */	fsubs f0, f0, f30
/* 80285AC8 00281728  EC 01 00 24 */	fdivs f0, f1, f0
/* 80285ACC 0028172C  D0 1F 80 00 */	stfs f0, -0x8000(r31)
lbl_80285AD0:
/* 80285AD0 00281730  EC 5B 05 F2 */	fmuls f2, f27, f23
/* 80285AD4 00281734  2C 1D 00 00 */	cmpwi r29, 0
/* 80285AD8 00281738  EC 04 05 F2 */	fmuls f0, f4, f23
/* 80285ADC 0028173C  D0 5F 80 00 */	stfs f2, -0x8000(r31)
/* 80285AE0 00281740  EC 22 D0 24 */	fdivs f1, f2, f26
/* 80285AE4 00281744  D0 1F 80 00 */	stfs f0, -0x8000(r31)
/* 80285AE8 00281748  D2 BF 80 00 */	stfs f21, -0x8000(r31)
/* 80285AEC 0028174C  EC 00 D0 24 */	fdivs f0, f0, f26
/* 80285AF0 00281750  D0 3F 80 00 */	stfs f1, -0x8000(r31)
/* 80285AF4 00281754  D0 1F 80 00 */	stfs f0, -0x8000(r31)
/* 80285AF8 00281758  D3 FF 80 00 */	stfs f31, -0x8000(r31)
/* 80285AFC 0028175C  41 82 00 4C */	beq lbl_80285B48
/* 80285B00 00281760  6F 63 80 00 */	xoris r3, r27, 0x8000
/* 80285B04 00281764  93 41 00 1C */	stw r26, 0x1c(r1)
/* 80285B08 00281768  6F 80 80 00 */	xoris r0, r28, 0x8000
/* 80285B0C 0028176C  90 61 00 14 */	stw r3, 0x14(r1)
/* 80285B10 00281770  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 80285B14 00281774  C8 21 00 10 */	lfd f1, 0x10(r1)
/* 80285B18 00281778  93 21 00 1C */	stw r25, 0x1c(r1)
/* 80285B1C 0028177C  EC 40 F0 28 */	fsubs f2, f0, f30
/* 80285B20 00281780  EC 61 E0 28 */	fsubs f3, f1, f28
/* 80285B24 00281784  90 01 00 14 */	stw r0, 0x14(r1)
/* 80285B28 00281788  C8 01 00 18 */	lfd f0, 0x18(r1)
/* 80285B2C 0028178C  C8 21 00 10 */	lfd f1, 0x10(r1)
/* 80285B30 00281790  EC 43 10 24 */	fdivs f2, f3, f2
/* 80285B34 00281794  EC 21 E0 28 */	fsubs f1, f1, f28
/* 80285B38 00281798  D0 5F 80 00 */	stfs f2, -0x8000(r31)
/* 80285B3C 0028179C  EC 00 F0 28 */	fsubs f0, f0, f30
/* 80285B40 002817A0  EC 01 00 24 */	fdivs f0, f1, f0
/* 80285B44 002817A4  D0 1F 80 00 */	stfs f0, -0x8000(r31)
lbl_80285B48:
/* 80285B48 002817A8  3B 7B 00 01 */	addi r27, r27, 1
lbl_80285B4C:
/* 80285B4C 002817AC  7C 1B D0 00 */	cmpw r27, r26
/* 80285B50 002817B0  40 81 FE D8 */	ble lbl_80285A28
/* 80285B54 002817B4  3B 9C 00 01 */	addi r28, r28, 1
lbl_80285B58:
/* 80285B58 002817B8  7C 1C C8 00 */	cmpw r28, r25
/* 80285B5C 002817BC  41 80 FE 50 */	blt lbl_802859AC
/* 80285B60 002817C0  3C 60 80 51 */	lis r3, lbl_80515FF8@ha
/* 80285B64 002817C4  38 63 5F F8 */	addi r3, r3, lbl_80515FF8@l
/* 80285B68 002817C8  4B FF 9A F1 */	bl GXSetVtxDescv
/* 80285B6C 002817CC  3C 80 80 51 */	lis r4, lbl_805160D0@ha
/* 80285B70 002817D0  38 60 00 03 */	li r3, 3
/* 80285B74 002817D4  38 84 60 D0 */	addi r4, r4, lbl_805160D0@l
/* 80285B78 002817D8  4B FF A2 E1 */	bl GXSetVtxAttrFmtv
/* 80285B7C 002817DC  E3 E1 01 08 */	psq_l f31, 264(r1), 0, qr0
/* 80285B80 002817E0  CB E1 01 00 */	lfd f31, 0x100(r1)
/* 80285B84 002817E4  E3 C1 00 F8 */	psq_l f30, 248(r1), 0, qr0
/* 80285B88 002817E8  CB C1 00 F0 */	lfd f30, 0xf0(r1)
/* 80285B8C 002817EC  E3 A1 00 E8 */	psq_l f29, 232(r1), 0, qr0
/* 80285B90 002817F0  CB A1 00 E0 */	lfd f29, 0xe0(r1)
/* 80285B94 002817F4  E3 81 00 D8 */	psq_l f28, 216(r1), 0, qr0
/* 80285B98 002817F8  CB 81 00 D0 */	lfd f28, 0xd0(r1)
/* 80285B9C 002817FC  E3 61 00 C8 */	psq_l f27, 200(r1), 0, qr0
/* 80285BA0 00281800  CB 61 00 C0 */	lfd f27, 0xc0(r1)
/* 80285BA4 00281804  E3 41 00 B8 */	psq_l f26, 184(r1), 0, qr0
/* 80285BA8 00281808  CB 41 00 B0 */	lfd f26, 0xb0(r1)
/* 80285BAC 0028180C  E3 21 00 A8 */	psq_l f25, 168(r1), 0, qr0
/* 80285BB0 00281810  CB 21 00 A0 */	lfd f25, 0xa0(r1)
/* 80285BB4 00281814  E3 01 00 98 */	psq_l f24, 152(r1), 0, qr0
/* 80285BB8 00281818  CB 01 00 90 */	lfd f24, 0x90(r1)
/* 80285BBC 0028181C  E2 E1 00 88 */	psq_l f23, 136(r1), 0, qr0
/* 80285BC0 00281820  CA E1 00 80 */	lfd f23, 0x80(r1)
/* 80285BC4 00281824  E2 C1 00 78 */	psq_l f22, 120(r1), 0, qr0
/* 80285BC8 00281828  CA C1 00 70 */	lfd f22, 0x70(r1)
/* 80285BCC 0028182C  E2 A1 00 68 */	psq_l f21, 104(r1), 0, qr0
/* 80285BD0 00281830  CA A1 00 60 */	lfd f21, 0x60(r1)
/* 80285BD4 00281834  E2 81 00 58 */	psq_l f20, 88(r1), 0, qr0
/* 80285BD8 00281838  CA 81 00 50 */	lfd f20, 0x50(r1)
/* 80285BDC 0028183C  E2 61 00 48 */	psq_l f19, 72(r1), 0, qr0
/* 80285BE0 00281840  39 61 00 40 */	addi r11, r1, 0x40
/* 80285BE4 00281844  CA 61 00 40 */	lfd f19, 0x40(r1)
/* 80285BE8 00281848  4B F4 15 85 */	bl _restgpr_25
/* 80285BEC 0028184C  80 01 01 14 */	lwz r0, 0x114(r1)
/* 80285BF0 00281850  7C 08 03 A6 */	mtlr r0
/* 80285BF4 00281854  38 21 01 10 */	addi r1, r1, 0x110
/* 80285BF8 00281858  4E 80 00 20 */	blr

.global GXDrawCubeFace
GXDrawCubeFace:
/* 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 GXDrawCube
GXDrawCube:
/* 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 GXDrawCubeFace
/* 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 GXDrawCubeFace
/* 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 GXDrawCubeFace
/* 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 GXDrawCubeFace
/* 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 GXDrawCubeFace
/* 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 GXDrawCubeFace
/* 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 GXDrawDodeca
GXDrawDodeca:
/* 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 GXDrawOctahedron
GXDrawOctahedron:
/* 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 Subdivide
/* 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 GXDrawIcosahedron
GXDrawIcosahedron:
/* 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 Subdivide
/* 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 GXDrawSphere1
GXDrawSphere1:
/* 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 Subdivide
/* 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