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

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

.global func_801DF040
func_801DF040:
/* 801DF040 001DACA0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801DF044 001DACA4  7C 08 02 A6 */	mflr r0
/* 801DF048 001DACA8  90 01 00 24 */	stw r0, 0x24(r1)
/* 801DF04C 001DACAC  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 801DF050 001DACB0  7C BF 2B 78 */	mr r31, r5
/* 801DF054 001DACB4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801DF058 001DACB8  7C 7E 1B 78 */	mr r30, r3
/* 801DF05C 001DACBC  93 A1 00 14 */	stw r29, 0x14(r1)
/* 801DF060 001DACC0  48 01 2B 69 */	bl __ct__6GSnullFPvP11gUnkClass10
/* 801DF064 001DACC4  C0 02 96 50 */	lfs f0, lbl_80641C50-_SDA2_BASE_(r2)
/* 801DF068 001DACC8  3C C0 80 42 */	lis r6, lbl_80423410@ha
/* 801DF06C 001DACCC  C0 42 96 48 */	lfs f2, lbl_80641C48-_SDA2_BASE_(r2)
/* 801DF070 001DACD0  38 60 00 00 */	li r3, 0
/* 801DF074 001DACD4  C0 22 96 4C */	lfs f1, lbl_80641C4C-_SDA2_BASE_(r2)
/* 801DF078 001DACD8  3C A0 00 01 */	lis r5, 0x0000FFFF@ha
/* 801DF07C 001DACDC  38 C6 34 10 */	addi r6, r6, lbl_80423410@l
/* 801DF080 001DACE0  38 80 00 16 */	li r4, 0x16
/* 801DF084 001DACE4  38 A5 FF FF */	addi r5, r5, 0x0000FFFF@l
/* 801DF088 001DACE8  38 1E 00 D0 */	addi r0, r30, 0xd0
/* 801DF08C 001DACEC  90 DE 01 00 */	stw r6, 0x100(r30)
/* 801DF090 001DACF0  B0 BE 01 04 */	sth r5, 0x104(r30)
/* 801DF094 001DACF4  B0 9E 01 06 */	sth r4, 0x106(r30)
/* 801DF098 001DACF8  D0 5E 01 20 */	stfs f2, 0x120(r30)
/* 801DF09C 001DACFC  D0 5E 01 24 */	stfs f2, 0x124(r30)
/* 801DF0A0 001DAD00  D0 5E 01 28 */	stfs f2, 0x128(r30)
/* 801DF0A4 001DAD04  D0 3E 01 2C */	stfs f1, 0x12c(r30)
/* 801DF0A8 001DAD08  D0 3E 01 30 */	stfs f1, 0x130(r30)
/* 801DF0AC 001DAD0C  D0 3E 01 34 */	stfs f1, 0x134(r30)
/* 801DF0B0 001DAD10  90 7E 01 3C */	stw r3, 0x13c(r30)
/* 801DF0B4 001DAD14  90 7E 01 40 */	stw r3, 0x140(r30)
/* 801DF0B8 001DAD18  93 FE 01 44 */	stw r31, 0x144(r30)
/* 801DF0BC 001DAD1C  D0 1E 01 08 */	stfs f0, 0x108(r30)
/* 801DF0C0 001DAD20  D0 1E 01 0C */	stfs f0, 0x10c(r30)
/* 801DF0C4 001DAD24  D0 1E 01 10 */	stfs f0, 0x110(r30)
/* 801DF0C8 001DAD28  D0 1E 01 14 */	stfs f0, 0x114(r30)
/* 801DF0CC 001DAD2C  D0 1E 01 18 */	stfs f0, 0x118(r30)
/* 801DF0D0 001DAD30  D0 1E 01 1C */	stfs f0, 0x11c(r30)
/* 801DF0D4 001DAD34  90 1E 01 38 */	stw r0, 0x138(r30)
/* 801DF0D8 001DAD38  A0 1F 00 30 */	lhz r0, 0x30(r31)
/* 801DF0DC 001DAD3C  54 00 07 BD */	rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 801DF0E0 001DAD40  41 82 00 B0 */	beq lbl_801DF190
/* 801DF0E4 001DAD44  A3 BF 00 32 */	lhz r29, 0x32(r31)
/* 801DF0E8 001DAD48  2C 1D 00 00 */	cmpwi r29, 0
/* 801DF0EC 001DAD4C  41 82 00 4C */	beq lbl_801DF138
/* 801DF0F0 001DAD50  1C 7D 00 0C */	mulli r3, r29, 0xc
/* 801DF0F4 001DAD54  38 63 00 10 */	addi r3, r3, 0x10
/* 801DF0F8 001DAD58  4B FF B9 7D */	bl __nwa__FUl
/* 801DF0FC 001DAD5C  3C 80 80 03 */	lis r4, func_8002A294@ha
/* 801DF100 001DAD60  7F A7 EB 78 */	mr r7, r29
/* 801DF104 001DAD64  38 84 A2 94 */	addi r4, r4, func_8002A294@l
/* 801DF108 001DAD68  38 A0 00 00 */	li r5, 0
/* 801DF10C 001DAD6C  38 C0 00 0C */	li r6, 0xc
/* 801DF110 001DAD70  4B FE 7B 99 */	bl __construct_new_array
/* 801DF114 001DAD74  90 7E 01 3C */	stw r3, 0x13c(r30)
/* 801DF118 001DAD78  A0 1F 00 32 */	lhz r0, 0x32(r31)
/* 801DF11C 001DAD7C  80 9F 00 38 */	lwz r4, 0x38(r31)
/* 801DF120 001DAD80  1C A0 00 0C */	mulli r5, r0, 0xc
/* 801DF124 001DAD84  4B E2 4E DD */	bl memcpy
/* 801DF128 001DAD88  A0 1F 00 32 */	lhz r0, 0x32(r31)
/* 801DF12C 001DAD8C  80 7E 01 3C */	lwz r3, 0x13c(r30)
/* 801DF130 001DAD90  1C 80 00 0C */	mulli r4, r0, 0xc
/* 801DF134 001DAD94  48 08 B5 21 */	bl DCFlushRange
lbl_801DF138:
/* 801DF138 001DAD98  A3 BF 00 34 */	lhz r29, 0x34(r31)
/* 801DF13C 001DAD9C  2C 1D 00 00 */	cmpwi r29, 0
/* 801DF140 001DADA0  41 82 00 60 */	beq lbl_801DF1A0
/* 801DF144 001DADA4  1C 7D 00 0C */	mulli r3, r29, 0xc
/* 801DF148 001DADA8  38 63 00 10 */	addi r3, r3, 0x10
/* 801DF14C 001DADAC  4B FF B9 29 */	bl __nwa__FUl
/* 801DF150 001DADB0  3C 80 80 03 */	lis r4, func_8002A294@ha
/* 801DF154 001DADB4  7F A7 EB 78 */	mr r7, r29
/* 801DF158 001DADB8  38 84 A2 94 */	addi r4, r4, func_8002A294@l
/* 801DF15C 001DADBC  38 A0 00 00 */	li r5, 0
/* 801DF160 001DADC0  38 C0 00 0C */	li r6, 0xc
/* 801DF164 001DADC4  4B FE 7B 45 */	bl __construct_new_array
/* 801DF168 001DADC8  90 7E 01 40 */	stw r3, 0x140(r30)
/* 801DF16C 001DADCC  A0 1F 00 34 */	lhz r0, 0x34(r31)
/* 801DF170 001DADD0  80 9F 00 3C */	lwz r4, 0x3c(r31)
/* 801DF174 001DADD4  1C A0 00 0C */	mulli r5, r0, 0xc
/* 801DF178 001DADD8  4B E2 4E 89 */	bl memcpy
/* 801DF17C 001DADDC  A0 1F 00 34 */	lhz r0, 0x34(r31)
/* 801DF180 001DADE0  80 7E 01 40 */	lwz r3, 0x140(r30)
/* 801DF184 001DADE4  1C 80 00 0C */	mulli r4, r0, 0xc
/* 801DF188 001DADE8  48 08 B4 CD */	bl DCFlushRange
/* 801DF18C 001DADEC  48 00 00 14 */	b lbl_801DF1A0
lbl_801DF190:
/* 801DF190 001DADF0  80 1F 00 38 */	lwz r0, 0x38(r31)
/* 801DF194 001DADF4  90 1E 01 3C */	stw r0, 0x13c(r30)
/* 801DF198 001DADF8  80 1F 00 3C */	lwz r0, 0x3c(r31)
/* 801DF19C 001DADFC  90 1E 01 40 */	stw r0, 0x140(r30)
lbl_801DF1A0:
/* 801DF1A0 001DAE00  80 9E 01 44 */	lwz r4, 0x144(r30)
/* 801DF1A4 001DAE04  7F C3 F3 78 */	mr r3, r30
/* 801DF1A8 001DAE08  80 84 00 68 */	lwz r4, 0x68(r4)
/* 801DF1AC 001DAE0C  C0 04 00 00 */	lfs f0, 0(r4)
/* 801DF1B0 001DAE10  D0 1E 01 20 */	stfs f0, 0x120(r30)
/* 801DF1B4 001DAE14  C0 04 00 04 */	lfs f0, 4(r4)
/* 801DF1B8 001DAE18  D0 1E 01 24 */	stfs f0, 0x124(r30)
/* 801DF1BC 001DAE1C  C0 04 00 08 */	lfs f0, 8(r4)
/* 801DF1C0 001DAE20  D0 1E 01 28 */	stfs f0, 0x128(r30)
/* 801DF1C4 001DAE24  C0 04 00 0C */	lfs f0, 0xc(r4)
/* 801DF1C8 001DAE28  D0 1E 01 2C */	stfs f0, 0x12c(r30)
/* 801DF1CC 001DAE2C  C0 04 00 10 */	lfs f0, 0x10(r4)
/* 801DF1D0 001DAE30  D0 1E 01 30 */	stfs f0, 0x130(r30)
/* 801DF1D4 001DAE34  C0 04 00 14 */	lfs f0, 0x14(r4)
/* 801DF1D8 001DAE38  D0 1E 01 34 */	stfs f0, 0x134(r30)
/* 801DF1DC 001DAE3C  48 01 B2 C5 */	bl func_801FA4A0
/* 801DF1E0 001DAE40  48 08 90 81 */	bl PPCSync
/* 801DF1E4 001DAE44  7F C3 F3 78 */	mr r3, r30
/* 801DF1E8 001DAE48  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 801DF1EC 001DAE4C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 801DF1F0 001DAE50  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 801DF1F4 001DAE54  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801DF1F8 001DAE58  7C 08 03 A6 */	mtlr r0
/* 801DF1FC 001DAE5C  38 21 00 20 */	addi r1, r1, 0x20
/* 801DF200 001DAE60  4E 80 00 20 */	blr
/* 801DF204 001DAE64  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DF208 001DAE68  7C 08 02 A6 */	mflr r0
/* 801DF20C 001DAE6C  2C 03 00 00 */	cmpwi r3, 0
/* 801DF210 001DAE70  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DF214 001DAE74  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DF218 001DAE78  7C 9F 23 78 */	mr r31, r4
/* 801DF21C 001DAE7C  93 C1 00 08 */	stw r30, 8(r1)
/* 801DF220 001DAE80  7C 7E 1B 78 */	mr r30, r3
/* 801DF224 001DAE84  41 82 00 8C */	beq lbl_801DF2B0
/* 801DF228 001DAE88  3C 80 80 42 */	lis r4, lbl_80423410@ha
/* 801DF22C 001DAE8C  38 84 34 10 */	addi r4, r4, lbl_80423410@l
/* 801DF230 001DAE90  90 83 01 00 */	stw r4, 0x100(r3)
/* 801DF234 001DAE94  48 01 B3 A9 */	bl func_801FA5DC
/* 801DF238 001DAE98  80 7E 01 44 */	lwz r3, 0x144(r30)
/* 801DF23C 001DAE9C  2C 03 00 00 */	cmpwi r3, 0
/* 801DF240 001DAEA0  41 82 00 50 */	beq lbl_801DF290
/* 801DF244 001DAEA4  80 9E 01 40 */	lwz r4, 0x140(r30)
/* 801DF248 001DAEA8  2C 84 00 00 */	cmpwi cr1, r4, 0
/* 801DF24C 001DAEAC  41 86 00 1C */	beq cr1, lbl_801DF268
/* 801DF250 001DAEB0  80 03 00 3C */	lwz r0, 0x3c(r3)
/* 801DF254 001DAEB4  7C 04 00 40 */	cmplw r4, r0
/* 801DF258 001DAEB8  41 82 00 10 */	beq lbl_801DF268
/* 801DF25C 001DAEBC  41 86 00 0C */	beq cr1, lbl_801DF268
/* 801DF260 001DAEC0  38 64 FF F0 */	addi r3, r4, -16
/* 801DF264 001DAEC4  4B FF B8 59 */	bl __dla__FPv
lbl_801DF268:
/* 801DF268 001DAEC8  80 9E 01 3C */	lwz r4, 0x13c(r30)
/* 801DF26C 001DAECC  2C 84 00 00 */	cmpwi cr1, r4, 0
/* 801DF270 001DAED0  41 86 00 20 */	beq cr1, lbl_801DF290
/* 801DF274 001DAED4  80 7E 01 44 */	lwz r3, 0x144(r30)
/* 801DF278 001DAED8  80 03 00 38 */	lwz r0, 0x38(r3)
/* 801DF27C 001DAEDC  7C 04 00 40 */	cmplw r4, r0
/* 801DF280 001DAEE0  41 82 00 10 */	beq lbl_801DF290
/* 801DF284 001DAEE4  41 86 00 0C */	beq cr1, lbl_801DF290
/* 801DF288 001DAEE8  38 64 FF F0 */	addi r3, r4, -16
/* 801DF28C 001DAEEC  4B FF B8 31 */	bl __dla__FPv
lbl_801DF290:
/* 801DF290 001DAEF0  7F C3 F3 78 */	mr r3, r30
/* 801DF294 001DAEF4  38 80 00 00 */	li r4, 0
/* 801DF298 001DAEF8  48 01 2C 8D */	bl __dt__6GSnullFv
/* 801DF29C 001DAEFC  2C 1F 00 00 */	cmpwi r31, 0
/* 801DF2A0 001DAF00  40 81 00 10 */	ble lbl_801DF2B0
/* 801DF2A4 001DAF04  80 6D 96 38 */	lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
/* 801DF2A8 001DAF08  7F C4 F3 78 */	mr r4, r30
/* 801DF2AC 001DAF0C  4B FF BA 9D */	bl func_801DAD48
lbl_801DF2B0:
/* 801DF2B0 001DAF10  7F C3 F3 78 */	mr r3, r30
/* 801DF2B4 001DAF14  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801DF2B8 001DAF18  83 C1 00 08 */	lwz r30, 8(r1)
/* 801DF2BC 001DAF1C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DF2C0 001DAF20  7C 08 03 A6 */	mtlr r0
/* 801DF2C4 001DAF24  38 21 00 10 */	addi r1, r1, 0x10
/* 801DF2C8 001DAF28  4E 80 00 20 */	blr

.global func_801DF2CC
func_801DF2CC:
/* 801DF2CC 001DAF2C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801DF2D0 001DAF30  7C 08 02 A6 */	mflr r0
/* 801DF2D4 001DAF34  90 01 00 14 */	stw r0, 0x14(r1)
/* 801DF2D8 001DAF38  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801DF2DC 001DAF3C  7C 7F 1B 78 */	mr r31, r3
/* 801DF2E0 001DAF40  38 63 01 20 */	addi r3, r3, 0x120
/* 801DF2E4 001DAF44  48 04 18 0D */	bl func_80220AF0
/* 801DF2E8 001DAF48  C0 03 00 00 */	lfs f0, 0(r3)
/* 801DF2EC 001DAF4C  38 00 00 07 */	li r0, 7
/* 801DF2F0 001DAF50  38 83 00 0C */	addi r4, r3, 0xc
/* 801DF2F4 001DAF54  D0 1F 01 08 */	stfs f0, 0x108(r31)
/* 801DF2F8 001DAF58  C0 03 00 04 */	lfs f0, 4(r3)
/* 801DF2FC 001DAF5C  D0 1F 01 0C */	stfs f0, 0x10c(r31)
/* 801DF300 001DAF60  C0 03 00 08 */	lfs f0, 8(r3)
/* 801DF304 001DAF64  D0 1F 01 10 */	stfs f0, 0x110(r31)
/* 801DF308 001DAF68  C0 03 00 00 */	lfs f0, 0(r3)
/* 801DF30C 001DAF6C  D0 1F 01 14 */	stfs f0, 0x114(r31)
/* 801DF310 001DAF70  C0 03 00 04 */	lfs f0, 4(r3)
/* 801DF314 001DAF74  D0 1F 01 18 */	stfs f0, 0x118(r31)
/* 801DF318 001DAF78  C0 03 00 08 */	lfs f0, 8(r3)
/* 801DF31C 001DAF7C  D0 1F 01 1C */	stfs f0, 0x11c(r31)
/* 801DF320 001DAF80  7C 09 03 A6 */	mtctr r0
lbl_801DF324:
/* 801DF324 001DAF84  C0 24 00 00 */	lfs f1, 0(r4)
/* 801DF328 001DAF88  C0 1F 01 08 */	lfs f0, 0x108(r31)
/* 801DF32C 001DAF8C  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801DF330 001DAF90  40 81 00 08 */	ble lbl_801DF338
/* 801DF334 001DAF94  D0 3F 01 08 */	stfs f1, 0x108(r31)
lbl_801DF338:
/* 801DF338 001DAF98  C0 1F 01 14 */	lfs f0, 0x114(r31)
/* 801DF33C 001DAF9C  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801DF340 001DAFA0  40 80 00 08 */	bge lbl_801DF348
/* 801DF344 001DAFA4  D0 3F 01 14 */	stfs f1, 0x114(r31)
lbl_801DF348:
/* 801DF348 001DAFA8  C0 24 00 04 */	lfs f1, 4(r4)
/* 801DF34C 001DAFAC  C0 1F 01 0C */	lfs f0, 0x10c(r31)
/* 801DF350 001DAFB0  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801DF354 001DAFB4  40 81 00 08 */	ble lbl_801DF35C
/* 801DF358 001DAFB8  D0 3F 01 0C */	stfs f1, 0x10c(r31)
lbl_801DF35C:
/* 801DF35C 001DAFBC  C0 1F 01 18 */	lfs f0, 0x118(r31)
/* 801DF360 001DAFC0  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801DF364 001DAFC4  40 80 00 08 */	bge lbl_801DF36C
/* 801DF368 001DAFC8  D0 3F 01 18 */	stfs f1, 0x118(r31)
lbl_801DF36C:
/* 801DF36C 001DAFCC  C0 24 00 08 */	lfs f1, 8(r4)
/* 801DF370 001DAFD0  C0 1F 01 10 */	lfs f0, 0x110(r31)
/* 801DF374 001DAFD4  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801DF378 001DAFD8  40 81 00 08 */	ble lbl_801DF380
/* 801DF37C 001DAFDC  D0 3F 01 10 */	stfs f1, 0x110(r31)
lbl_801DF380:
/* 801DF380 001DAFE0  C0 1F 01 1C */	lfs f0, 0x11c(r31)
/* 801DF384 001DAFE4  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801DF388 001DAFE8  40 80 00 08 */	bge lbl_801DF390
/* 801DF38C 001DAFEC  D0 3F 01 1C */	stfs f1, 0x11c(r31)
lbl_801DF390:
/* 801DF390 001DAFF0  38 84 00 0C */	addi r4, r4, 0xc
/* 801DF394 001DAFF4  42 00 FF 90 */	bdnz lbl_801DF324
/* 801DF398 001DAFF8  C0 5F 01 08 */	lfs f2, 0x108(r31)
/* 801DF39C 001DAFFC  C0 C2 96 54 */	lfs f6, lbl_80641C54-_SDA2_BASE_(r2)
/* 801DF3A0 001DB000  C0 3F 01 0C */	lfs f1, 0x10c(r31)
/* 801DF3A4 001DB004  EC A2 30 28 */	fsubs f5, f2, f6
/* 801DF3A8 001DB008  C0 1F 01 10 */	lfs f0, 0x110(r31)
/* 801DF3AC 001DB00C  EC 81 30 28 */	fsubs f4, f1, f6
/* 801DF3B0 001DB010  C0 5F 01 14 */	lfs f2, 0x114(r31)
/* 801DF3B4 001DB014  EC 60 30 28 */	fsubs f3, f0, f6
/* 801DF3B8 001DB018  C0 3F 01 18 */	lfs f1, 0x118(r31)
/* 801DF3BC 001DB01C  C0 1F 01 1C */	lfs f0, 0x11c(r31)
/* 801DF3C0 001DB020  EC 42 30 2A */	fadds f2, f2, f6
/* 801DF3C4 001DB024  EC 21 30 2A */	fadds f1, f1, f6
/* 801DF3C8 001DB028  D0 BF 01 08 */	stfs f5, 0x108(r31)
/* 801DF3CC 001DB02C  EC 00 30 2A */	fadds f0, f0, f6
/* 801DF3D0 001DB030  D0 9F 01 0C */	stfs f4, 0x10c(r31)
/* 801DF3D4 001DB034  D0 7F 01 10 */	stfs f3, 0x110(r31)
/* 801DF3D8 001DB038  D0 5F 01 14 */	stfs f2, 0x114(r31)
/* 801DF3DC 001DB03C  D0 3F 01 18 */	stfs f1, 0x118(r31)
/* 801DF3E0 001DB040  D0 1F 01 1C */	stfs f0, 0x11c(r31)
/* 801DF3E4 001DB044  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801DF3E8 001DB048  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801DF3EC 001DB04C  7C 08 03 A6 */	mtlr r0
/* 801DF3F0 001DB050  38 21 00 10 */	addi r1, r1, 0x10
/* 801DF3F4 001DB054  4E 80 00 20 */	blr

.global func_801DF3F8
func_801DF3F8:
/* 801DF3F8 001DB058  94 21 FF 80 */	stwu r1, -0x80(r1)
/* 801DF3FC 001DB05C  7C 08 02 A6 */	mflr r0
/* 801DF400 001DB060  90 01 00 84 */	stw r0, 0x84(r1)
/* 801DF404 001DB064  DB E1 00 70 */	stfd f31, 0x70(r1)
/* 801DF408 001DB068  F3 E1 00 78 */	psq_st f31, 120(r1), 0, qr0
/* 801DF40C 001DB06C  DB C1 00 60 */	stfd f30, 0x60(r1)
/* 801DF410 001DB070  F3 C1 00 68 */	psq_st f30, 104(r1), 0, qr0
/* 801DF414 001DB074  3C 00 43 30 */	lis r0, 0x4330
/* 801DF418 001DB078  C8 82 96 60 */	lfd f4, lbl_80641C60-_SDA2_BASE_(r2)
/* 801DF41C 001DB07C  90 C1 00 3C */	stw r6, 0x3c(r1)
/* 801DF420 001DB080  C0 42 96 58 */	lfs f2, lbl_80641C58-_SDA2_BASE_(r2)
/* 801DF424 001DB084  90 01 00 38 */	stw r0, 0x38(r1)
/* 801DF428 001DB088  C8 01 00 38 */	lfd f0, 0x38(r1)
/* 801DF42C 001DB08C  90 E1 00 44 */	stw r7, 0x44(r1)
/* 801DF430 001DB090  EC 60 20 28 */	fsubs f3, f0, f4
/* 801DF434 001DB094  C0 02 96 5C */	lfs f0, lbl_80641C5C-_SDA2_BASE_(r2)
/* 801DF438 001DB098  90 01 00 40 */	stw r0, 0x40(r1)
/* 801DF43C 001DB09C  C8 21 00 40 */	lfd f1, 0x40(r1)
/* 801DF440 001DB0A0  EF E3 10 24 */	fdivs f31, f3, f2
/* 801DF444 001DB0A4  93 E1 00 5C */	stw r31, 0x5c(r1)
/* 801DF448 001DB0A8  7D 3F 4B 78 */	mr r31, r9
/* 801DF44C 001DB0AC  93 C1 00 58 */	stw r30, 0x58(r1)
/* 801DF450 001DB0B0  7D 1E 43 78 */	mr r30, r8
/* 801DF454 001DB0B4  7F C3 F3 78 */	mr r3, r30
/* 801DF458 001DB0B8  93 A1 00 54 */	stw r29, 0x54(r1)
/* 801DF45C 001DB0BC  EC 21 20 28 */	fsubs f1, f1, f4
/* 801DF460 001DB0C0  7C BD 2B 78 */	mr r29, r5
/* 801DF464 001DB0C4  93 81 00 50 */	stw r28, 0x50(r1)
/* 801DF468 001DB0C8  7C 9C 23 78 */	mr r28, r4
/* 801DF46C 001DB0CC  EF C1 10 24 */	fdivs f30, f1, f2
/* 801DF470 001DB0D0  7F C4 F3 78 */	mr r4, r30
/* 801DF474 001DB0D4  EC 3F F0 2A */	fadds f1, f31, f30
/* 801DF478 001DB0D8  EC 20 08 28 */	fsubs f1, f0, f1
/* 801DF47C 001DB0DC  48 09 D8 91 */	bl PSVECScale
/* 801DF480 001DB0E0  7F 83 E3 78 */	mr r3, r28
/* 801DF484 001DB0E4  7F E4 FB 78 */	mr r4, r31
/* 801DF488 001DB0E8  38 A1 00 2C */	addi r5, r1, 0x2c
/* 801DF48C 001DB0EC  48 09 D5 71 */	bl PSMTXMultVec
/* 801DF490 001DB0F0  FC 20 F8 90 */	fmr f1, f31
/* 801DF494 001DB0F4  38 61 00 2C */	addi r3, r1, 0x2c
/* 801DF498 001DB0F8  38 81 00 20 */	addi r4, r1, 0x20
/* 801DF49C 001DB0FC  48 09 D8 71 */	bl PSVECScale
/* 801DF4A0 001DB100  7F C3 F3 78 */	mr r3, r30
/* 801DF4A4 001DB104  7F C5 F3 78 */	mr r5, r30
/* 801DF4A8 001DB108  38 81 00 20 */	addi r4, r1, 0x20
/* 801DF4AC 001DB10C  48 09 D8 19 */	bl PSVECAdd
/* 801DF4B0 001DB110  7F A3 EB 78 */	mr r3, r29
/* 801DF4B4 001DB114  7F E4 FB 78 */	mr r4, r31
/* 801DF4B8 001DB118  38 A1 00 14 */	addi r5, r1, 0x14
/* 801DF4BC 001DB11C  48 09 D5 41 */	bl PSMTXMultVec
/* 801DF4C0 001DB120  C0 61 00 14 */	lfs f3, 0x14(r1)
/* 801DF4C4 001DB124  FC 20 F0 90 */	fmr f1, f30
/* 801DF4C8 001DB128  C0 41 00 18 */	lfs f2, 0x18(r1)
/* 801DF4CC 001DB12C  38 61 00 2C */	addi r3, r1, 0x2c
/* 801DF4D0 001DB130  C0 01 00 1C */	lfs f0, 0x1c(r1)
/* 801DF4D4 001DB134  38 81 00 08 */	addi r4, r1, 8
/* 801DF4D8 001DB138  D0 61 00 2C */	stfs f3, 0x2c(r1)
/* 801DF4DC 001DB13C  D0 41 00 30 */	stfs f2, 0x30(r1)
/* 801DF4E0 001DB140  D0 01 00 34 */	stfs f0, 0x34(r1)
/* 801DF4E4 001DB144  48 09 D8 29 */	bl PSVECScale
/* 801DF4E8 001DB148  7F C3 F3 78 */	mr r3, r30
/* 801DF4EC 001DB14C  7F C5 F3 78 */	mr r5, r30
/* 801DF4F0 001DB150  38 81 00 08 */	addi r4, r1, 8
/* 801DF4F4 001DB154  48 09 D7 D1 */	bl PSVECAdd
/* 801DF4F8 001DB158  E3 E1 00 78 */	psq_l f31, 120(r1), 0, qr0
/* 801DF4FC 001DB15C  CB E1 00 70 */	lfd f31, 0x70(r1)
/* 801DF500 001DB160  E3 C1 00 68 */	psq_l f30, 104(r1), 0, qr0
/* 801DF504 001DB164  CB C1 00 60 */	lfd f30, 0x60(r1)
/* 801DF508 001DB168  83 E1 00 5C */	lwz r31, 0x5c(r1)
/* 801DF50C 001DB16C  83 C1 00 58 */	lwz r30, 0x58(r1)
/* 801DF510 001DB170  83 A1 00 54 */	lwz r29, 0x54(r1)
/* 801DF514 001DB174  80 01 00 84 */	lwz r0, 0x84(r1)
/* 801DF518 001DB178  83 81 00 50 */	lwz r28, 0x50(r1)
/* 801DF51C 001DB17C  7C 08 03 A6 */	mtlr r0
/* 801DF520 001DB180  38 21 00 80 */	addi r1, r1, 0x80
/* 801DF524 001DB184  4E 80 00 20 */	blr

.global func_801DF528
func_801DF528:
/* 801DF528 001DB188  94 21 FF 70 */	stwu r1, -0x90(r1)
/* 801DF52C 001DB18C  7C 08 02 A6 */	mflr r0
/* 801DF530 001DB190  90 01 00 94 */	stw r0, 0x94(r1)
/* 801DF534 001DB194  DB E1 00 80 */	stfd f31, 0x80(r1)
/* 801DF538 001DB198  F3 E1 00 88 */	psq_st f31, 136(r1), 0, qr0
/* 801DF53C 001DB19C  DB C1 00 70 */	stfd f30, 0x70(r1)
/* 801DF540 001DB1A0  F3 C1 00 78 */	psq_st f30, 120(r1), 0, qr0
/* 801DF544 001DB1A4  DB A1 00 60 */	stfd f29, 0x60(r1)
/* 801DF548 001DB1A8  F3 A1 00 68 */	psq_st f29, 104(r1), 0, qr0
/* 801DF54C 001DB1AC  DB 81 00 50 */	stfd f28, 0x50(r1)
/* 801DF550 001DB1B0  F3 81 00 58 */	psq_st f28, 88(r1), 0, qr0
/* 801DF554 001DB1B4  39 61 00 50 */	addi r11, r1, 0x50
/* 801DF558 001DB1B8  4B FE 7B C9 */	bl _savegpr_25
/* 801DF55C 001DB1BC  80 83 01 44 */	lwz r4, 0x144(r3)
/* 801DF560 001DB1C0  7C 79 1B 78 */	mr r25, r3
/* 801DF564 001DB1C4  83 A3 01 3C */	lwz r29, 0x13c(r3)
/* 801DF568 001DB1C8  83 84 00 38 */	lwz r28, 0x38(r4)
/* 801DF56C 001DB1CC  7C 1D E0 40 */	cmplw r29, r28
/* 801DF570 001DB1D0  41 82 02 B4 */	beq lbl_801DF824
/* 801DF574 001DB1D4  3C 60 10 05 */	lis r3, 0x10051005@ha
/* 801DF578 001DB1D8  38 03 10 05 */	addi r0, r3, 0x10051005@l
/* 801DF57C 001DB1DC  7C 13 E3 A6 */	mtspr 0x393, r0
/* 801DF580 001DB1E0  A3 44 00 48 */	lhz r26, 0x48(r4)
/* 801DF584 001DB1E4  2C 1A 00 00 */	cmpwi r26, 0
/* 801DF588 001DB1E8  41 82 00 78 */	beq lbl_801DF600
/* 801DF58C 001DB1EC  83 C4 00 4C */	lwz r30, 0x4c(r4)
/* 801DF590 001DB1F0  48 00 00 64 */	b lbl_801DF5F4
lbl_801DF594:
/* 801DF594 001DB1F4  80 79 00 B8 */	lwz r3, 0xb8(r25)
/* 801DF598 001DB1F8  A3 7E 00 00 */	lhz r27, 0(r30)
/* 801DF59C 001DB1FC  80 A3 00 08 */	lwz r5, 8(r3)
/* 801DF5A0 001DB200  A0 9E 00 02 */	lhz r4, 2(r30)
/* 801DF5A4 001DB204  2C 05 00 00 */	cmpwi r5, 0
/* 801DF5A8 001DB208  40 82 00 0C */	bne lbl_801DF5B4
/* 801DF5AC 001DB20C  38 60 00 00 */	li r3, 0
/* 801DF5B0 001DB210  48 00 00 20 */	b lbl_801DF5D0
lbl_801DF5B4:
/* 801DF5B4 001DB214  A0 03 00 DE */	lhz r0, 0xde(r3)
/* 801DF5B8 001DB218  7C 04 00 40 */	cmplw r4, r0
/* 801DF5BC 001DB21C  41 80 00 0C */	blt lbl_801DF5C8
/* 801DF5C0 001DB220  38 60 00 00 */	li r3, 0
/* 801DF5C4 001DB224  48 00 00 0C */	b lbl_801DF5D0
lbl_801DF5C8:
/* 801DF5C8 001DB228  54 80 13 BA */	rlwinm r0, r4, 2, 0xe, 0x1d
/* 801DF5CC 001DB22C  7C 65 00 2E */	lwzx r3, r5, r0
lbl_801DF5D0:
/* 801DF5D0 001DB230  7F 84 E3 78 */	mr r4, r28
/* 801DF5D4 001DB234  7F A5 EB 78 */	mr r5, r29
/* 801DF5D8 001DB238  7F 66 DB 78 */	mr r6, r27
/* 801DF5DC 001DB23C  38 63 01 3C */	addi r3, r3, 0x13c
/* 801DF5E0 001DB240  48 03 D4 C1 */	bl func_8021CAA0
/* 801DF5E4 001DB244  1C 1B 00 0C */	mulli r0, r27, 0xc
/* 801DF5E8 001DB248  3B DE 00 04 */	addi r30, r30, 4
/* 801DF5EC 001DB24C  7F BD 02 14 */	add r29, r29, r0
/* 801DF5F0 001DB250  7F 9C 02 14 */	add r28, r28, r0
lbl_801DF5F4:
/* 801DF5F4 001DB254  57 40 04 3F */	clrlwi. r0, r26, 0x10
/* 801DF5F8 001DB258  3B 5A FF FF */	addi r26, r26, -1
/* 801DF5FC 001DB25C  40 82 FF 98 */	bne lbl_801DF594
lbl_801DF600:
/* 801DF600 001DB260  80 79 01 44 */	lwz r3, 0x144(r25)
/* 801DF604 001DB264  A3 E3 00 50 */	lhz r31, 0x50(r3)
/* 801DF608 001DB268  2C 1F 00 00 */	cmpwi r31, 0
/* 801DF60C 001DB26C  41 82 00 BC */	beq lbl_801DF6C8
/* 801DF610 001DB270  83 63 00 54 */	lwz r27, 0x54(r3)
/* 801DF614 001DB274  83 43 00 58 */	lwz r26, 0x58(r3)
/* 801DF618 001DB278  48 00 00 A4 */	b lbl_801DF6BC
lbl_801DF61C:
/* 801DF61C 001DB27C  80 B9 00 B8 */	lwz r5, 0xb8(r25)
/* 801DF620 001DB280  A3 DB 00 00 */	lhz r30, 0(r27)
/* 801DF624 001DB284  80 C5 00 08 */	lwz r6, 8(r5)
/* 801DF628 001DB288  A0 7B 00 02 */	lhz r3, 2(r27)
/* 801DF62C 001DB28C  2C 06 00 00 */	cmpwi r6, 0
/* 801DF630 001DB290  40 82 00 0C */	bne lbl_801DF63C
/* 801DF634 001DB294  38 60 00 00 */	li r3, 0
/* 801DF638 001DB298  48 00 00 20 */	b lbl_801DF658
lbl_801DF63C:
/* 801DF63C 001DB29C  A0 05 00 DE */	lhz r0, 0xde(r5)
/* 801DF640 001DB2A0  7C 03 00 40 */	cmplw r3, r0
/* 801DF644 001DB2A4  41 80 00 0C */	blt lbl_801DF650
/* 801DF648 001DB2A8  38 60 00 00 */	li r3, 0
/* 801DF64C 001DB2AC  48 00 00 0C */	b lbl_801DF658
lbl_801DF650:
/* 801DF650 001DB2B0  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 801DF654 001DB2B4  7C 66 00 2E */	lwzx r3, r6, r0
lbl_801DF658:
/* 801DF658 001DB2B8  2C 06 00 00 */	cmpwi r6, 0
/* 801DF65C 001DB2BC  A0 9B 00 04 */	lhz r4, 4(r27)
/* 801DF660 001DB2C0  40 82 00 0C */	bne lbl_801DF66C
/* 801DF664 001DB2C4  38 80 00 00 */	li r4, 0
/* 801DF668 001DB2C8  48 00 00 20 */	b lbl_801DF688
lbl_801DF66C:
/* 801DF66C 001DB2CC  A0 05 00 DE */	lhz r0, 0xde(r5)
/* 801DF670 001DB2D0  7C 04 00 40 */	cmplw r4, r0
/* 801DF674 001DB2D4  41 80 00 0C */	blt lbl_801DF680
/* 801DF678 001DB2D8  38 80 00 00 */	li r4, 0
/* 801DF67C 001DB2DC  48 00 00 0C */	b lbl_801DF688
lbl_801DF680:
/* 801DF680 001DB2E0  54 80 13 BA */	rlwinm r0, r4, 2, 0xe, 0x1d
/* 801DF684 001DB2E4  7C 86 00 2E */	lwzx r4, r6, r0
lbl_801DF688:
/* 801DF688 001DB2E8  7F 45 D3 78 */	mr r5, r26
/* 801DF68C 001DB2EC  7F 86 E3 78 */	mr r6, r28
/* 801DF690 001DB2F0  7F A7 EB 78 */	mr r7, r29
/* 801DF694 001DB2F4  7F C8 F3 78 */	mr r8, r30
/* 801DF698 001DB2F8  38 63 01 3C */	addi r3, r3, 0x13c
/* 801DF69C 001DB2FC  38 84 01 3C */	addi r4, r4, 0x13c
/* 801DF6A0 001DB300  48 03 D5 B5 */	bl func_8021CC54
/* 801DF6A4 001DB304  1C 7E 00 0C */	mulli r3, r30, 0xc
/* 801DF6A8 001DB308  57 C0 0B FC */	rlwinm r0, r30, 1, 0xf, 0x1e
/* 801DF6AC 001DB30C  3B 7B 00 06 */	addi r27, r27, 6
/* 801DF6B0 001DB310  7F 5A 02 14 */	add r26, r26, r0
/* 801DF6B4 001DB314  7F BD 1A 14 */	add r29, r29, r3
/* 801DF6B8 001DB318  7F 9C 1A 14 */	add r28, r28, r3
lbl_801DF6BC:
/* 801DF6BC 001DB31C  57 E0 04 3F */	clrlwi. r0, r31, 0x10
/* 801DF6C0 001DB320  3B FF FF FF */	addi r31, r31, -1
/* 801DF6C4 001DB324  40 82 FF 58 */	bne lbl_801DF61C
lbl_801DF6C8:
/* 801DF6C8 001DB328  3C 60 00 05 */	lis r3, 0x00050005@ha
/* 801DF6CC 001DB32C  38 03 00 05 */	addi r0, r3, 0x00050005@l
/* 801DF6D0 001DB330  7C 13 E3 A6 */	mtspr 0x393, r0
/* 801DF6D4 001DB334  80 79 01 44 */	lwz r3, 0x144(r25)
/* 801DF6D8 001DB338  A3 E3 00 5C */	lhz r31, 0x5c(r3)
/* 801DF6DC 001DB33C  2C 1F 00 00 */	cmpwi r31, 0
/* 801DF6E0 001DB340  41 82 01 44 */	beq lbl_801DF824
/* 801DF6E4 001DB344  83 43 00 60 */	lwz r26, 0x60(r3)
/* 801DF6E8 001DB348  3F 60 43 30 */	lis r27, 0x4330
/* 801DF6EC 001DB34C  CB A2 96 60 */	lfd f29, lbl_80641C60-_SDA2_BASE_(r2)
/* 801DF6F0 001DB350  C3 C2 96 58 */	lfs f30, lbl_80641C58-_SDA2_BASE_(r2)
/* 801DF6F4 001DB354  C3 E2 96 5C */	lfs f31, lbl_80641C5C-_SDA2_BASE_(r2)
/* 801DF6F8 001DB358  48 00 01 20 */	b lbl_801DF818
lbl_801DF6FC:
/* 801DF6FC 001DB35C  80 99 00 B8 */	lwz r4, 0xb8(r25)
/* 801DF700 001DB360  A0 DA 00 00 */	lhz r6, 0(r26)
/* 801DF704 001DB364  80 A4 00 08 */	lwz r5, 8(r4)
/* 801DF708 001DB368  A0 7A 00 02 */	lhz r3, 2(r26)
/* 801DF70C 001DB36C  2C 05 00 00 */	cmpwi r5, 0
/* 801DF710 001DB370  40 82 00 0C */	bne lbl_801DF71C
/* 801DF714 001DB374  3B 80 00 00 */	li r28, 0
/* 801DF718 001DB378  48 00 00 20 */	b lbl_801DF738
lbl_801DF71C:
/* 801DF71C 001DB37C  A0 04 00 DE */	lhz r0, 0xde(r4)
/* 801DF720 001DB380  7C 03 00 40 */	cmplw r3, r0
/* 801DF724 001DB384  41 80 00 0C */	blt lbl_801DF730
/* 801DF728 001DB388  3B 80 00 00 */	li r28, 0
/* 801DF72C 001DB38C  48 00 00 0C */	b lbl_801DF738
lbl_801DF730:
/* 801DF730 001DB390  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 801DF734 001DB394  7F 85 00 2E */	lwzx r28, r5, r0
lbl_801DF738:
/* 801DF738 001DB398  A0 FA 00 08 */	lhz r7, 8(r26)
/* 801DF73C 001DB39C  2C 07 00 00 */	cmpwi r7, 0
/* 801DF740 001DB3A0  41 82 00 64 */	beq lbl_801DF7A4
/* 801DF744 001DB3A4  2C 05 00 00 */	cmpwi r5, 0
/* 801DF748 001DB3A8  A0 7A 00 04 */	lhz r3, 4(r26)
/* 801DF74C 001DB3AC  40 82 00 0C */	bne lbl_801DF758
/* 801DF750 001DB3B0  38 A0 00 00 */	li r5, 0
/* 801DF754 001DB3B4  48 00 00 20 */	b lbl_801DF774
lbl_801DF758:
/* 801DF758 001DB3B8  A0 04 00 DE */	lhz r0, 0xde(r4)
/* 801DF75C 001DB3BC  7C 03 00 40 */	cmplw r3, r0
/* 801DF760 001DB3C0  41 80 00 0C */	blt lbl_801DF76C
/* 801DF764 001DB3C4  38 A0 00 00 */	li r5, 0
/* 801DF768 001DB3C8  48 00 00 0C */	b lbl_801DF774
lbl_801DF76C:
/* 801DF76C 001DB3CC  54 60 13 BA */	rlwinm r0, r3, 2, 0xe, 0x1d
/* 801DF770 001DB3D0  7C A5 00 2E */	lwzx r5, r5, r0
lbl_801DF774:
/* 801DF774 001DB3D4  80 99 01 44 */	lwz r4, 0x144(r25)
/* 801DF778 001DB3D8  1D 26 00 0C */	mulli r9, r6, 0xc
/* 801DF77C 001DB3DC  81 19 01 3C */	lwz r8, 0x13c(r25)
/* 801DF780 001DB3E0  7F 23 CB 78 */	mr r3, r25
/* 801DF784 001DB3E4  80 04 00 38 */	lwz r0, 0x38(r4)
/* 801DF788 001DB3E8  38 9C 01 0C */	addi r4, r28, 0x10c
/* 801DF78C 001DB3EC  A0 DA 00 06 */	lhz r6, 6(r26)
/* 801DF790 001DB3F0  7D 08 4A 14 */	add r8, r8, r9
/* 801DF794 001DB3F4  38 A5 01 0C */	addi r5, r5, 0x10c
/* 801DF798 001DB3F8  7D 20 4A 14 */	add r9, r0, r9
/* 801DF79C 001DB3FC  4B FF FC 5D */	bl func_801DF3F8
/* 801DF7A0 001DB400  48 00 00 74 */	b lbl_801DF814
lbl_801DF7A4:
/* 801DF7A4 001DB404  A0 1A 00 06 */	lhz r0, 6(r26)
/* 801DF7A8 001DB408  1C A6 00 0C */	mulli r5, r6, 0xc
/* 801DF7AC 001DB40C  93 61 00 20 */	stw r27, 0x20(r1)
/* 801DF7B0 001DB410  80 79 01 44 */	lwz r3, 0x144(r25)
/* 801DF7B4 001DB414  90 01 00 24 */	stw r0, 0x24(r1)
/* 801DF7B8 001DB418  80 19 01 3C */	lwz r0, 0x13c(r25)
/* 801DF7BC 001DB41C  C8 01 00 20 */	lfd f0, 0x20(r1)
/* 801DF7C0 001DB420  7F A0 2A 14 */	add r29, r0, r5
/* 801DF7C4 001DB424  80 03 00 38 */	lwz r0, 0x38(r3)
/* 801DF7C8 001DB428  EC 00 E8 28 */	fsubs f0, f0, f29
/* 801DF7CC 001DB42C  7F A3 EB 78 */	mr r3, r29
/* 801DF7D0 001DB430  7F A4 EB 78 */	mr r4, r29
/* 801DF7D4 001DB434  7F C0 2A 14 */	add r30, r0, r5
/* 801DF7D8 001DB438  EF 80 F0 24 */	fdivs f28, f0, f30
/* 801DF7DC 001DB43C  EC 3F E0 28 */	fsubs f1, f31, f28
/* 801DF7E0 001DB440  48 09 D5 2D */	bl PSVECScale
/* 801DF7E4 001DB444  7F C4 F3 78 */	mr r4, r30
/* 801DF7E8 001DB448  38 7C 01 0C */	addi r3, r28, 0x10c
/* 801DF7EC 001DB44C  38 A1 00 08 */	addi r5, r1, 8
/* 801DF7F0 001DB450  48 09 D2 0D */	bl PSMTXMultVec
/* 801DF7F4 001DB454  FC 20 E0 90 */	fmr f1, f28
/* 801DF7F8 001DB458  38 61 00 08 */	addi r3, r1, 8
/* 801DF7FC 001DB45C  38 81 00 14 */	addi r4, r1, 0x14
/* 801DF800 001DB460  48 09 D5 0D */	bl PSVECScale
/* 801DF804 001DB464  7F A3 EB 78 */	mr r3, r29
/* 801DF808 001DB468  7F A5 EB 78 */	mr r5, r29
/* 801DF80C 001DB46C  38 81 00 14 */	addi r4, r1, 0x14
/* 801DF810 001DB470  48 09 D4 B5 */	bl PSVECAdd
lbl_801DF814:
/* 801DF814 001DB474  3B 5A 00 0A */	addi r26, r26, 0xa
lbl_801DF818:
/* 801DF818 001DB478  57 E0 04 3F */	clrlwi. r0, r31, 0x10
/* 801DF81C 001DB47C  3B FF FF FF */	addi r31, r31, -1
/* 801DF820 001DB480  40 82 FE DC */	bne lbl_801DF6FC
lbl_801DF824:
/* 801DF824 001DB484  E3 E1 00 88 */	psq_l f31, 136(r1), 0, qr0
/* 801DF828 001DB488  CB E1 00 80 */	lfd f31, 0x80(r1)
/* 801DF82C 001DB48C  E3 C1 00 78 */	psq_l f30, 120(r1), 0, qr0
/* 801DF830 001DB490  CB C1 00 70 */	lfd f30, 0x70(r1)
/* 801DF834 001DB494  E3 A1 00 68 */	psq_l f29, 104(r1), 0, qr0
/* 801DF838 001DB498  CB A1 00 60 */	lfd f29, 0x60(r1)
/* 801DF83C 001DB49C  E3 81 00 58 */	psq_l f28, 88(r1), 0, qr0
/* 801DF840 001DB4A0  39 61 00 50 */	addi r11, r1, 0x50
/* 801DF844 001DB4A4  CB 81 00 50 */	lfd f28, 0x50(r1)
/* 801DF848 001DB4A8  4B FE 79 25 */	bl _restgpr_25
/* 801DF84C 001DB4AC  80 01 00 94 */	lwz r0, 0x94(r1)
/* 801DF850 001DB4B0  7C 08 03 A6 */	mtlr r0
/* 801DF854 001DB4B4  38 21 00 90 */	addi r1, r1, 0x90
/* 801DF858 001DB4B8  4E 80 00 20 */	blr

.global func_801DF85C
func_801DF85C:
/* 801DF85C 001DB4BC  94 21 FF 70 */	stwu r1, -0x90(r1)
/* 801DF860 001DB4C0  7C 08 02 A6 */	mflr r0
/* 801DF864 001DB4C4  90 01 00 94 */	stw r0, 0x94(r1)
/* 801DF868 001DB4C8  DB E1 00 80 */	stfd f31, 0x80(r1)
/* 801DF86C 001DB4CC  F3 E1 00 88 */	psq_st f31, 136(r1), 0, qr0
/* 801DF870 001DB4D0  DB C1 00 70 */	stfd f30, 0x70(r1)
/* 801DF874 001DB4D4  F3 C1 00 78 */	psq_st f30, 120(r1), 0, qr0
/* 801DF878 001DB4D8  DB A1 00 60 */	stfd f29, 0x60(r1)
/* 801DF87C 001DB4DC  F3 A1 00 68 */	psq_st f29, 104(r1), 0, qr0
/* 801DF880 001DB4E0  DB 81 00 50 */	stfd f28, 0x50(r1)
/* 801DF884 001DB4E4  F3 81 00 58 */	psq_st f28, 88(r1), 0, qr0
/* 801DF888 001DB4E8  39 61 00 50 */	addi r11, r1, 0x50
/* 801DF88C 001DB4EC  4B FE 78 95 */	bl _savegpr_25
/* 801DF890 001DB4F0  80 83 01 44 */	lwz r4, 0x144(r3)
/* 801DF894 001DB4F4  7C 7F 1B 78 */	mr r31, r3
/* 801DF898 001DB4F8  80 63 01 40 */	lwz r3, 0x140(r3)
/* 801DF89C 001DB4FC  80 04 00 3C */	lwz r0, 0x3c(r4)
/* 801DF8A0 001DB500  7C 03 00 40 */	cmplw r3, r0
/* 801DF8A4 001DB504  41 82 00 F8 */	beq lbl_801DF99C
/* 801DF8A8 001DB508  A3 C4 00 34 */	lhz r30, 0x34(r4)
/* 801DF8AC 001DB50C  3B 80 00 00 */	li r28, 0
/* 801DF8B0 001DB510  83 A4 00 40 */	lwz r29, 0x40(r4)
/* 801DF8B4 001DB514  C3 C2 96 50 */	lfs f30, lbl_80641C50-_SDA2_BASE_(r2)
/* 801DF8B8 001DB518  C3 A2 96 6C */	lfs f29, lbl_80641C6C-_SDA2_BASE_(r2)
/* 801DF8BC 001DB51C  C3 E2 96 5C */	lfs f31, lbl_80641C5C-_SDA2_BASE_(r2)
/* 801DF8C0 001DB520  C3 82 96 68 */	lfs f28, lbl_80641C68-_SDA2_BASE_(r2)
/* 801DF8C4 001DB524  48 00 00 CC */	b lbl_801DF990
lbl_801DF8C8:
/* 801DF8C8 001DB528  80 FD 00 04 */	lwz r7, 4(r29)
/* 801DF8CC 001DB52C  38 A1 00 20 */	addi r5, r1, 0x20
/* 801DF8D0 001DB530  A0 1D 00 00 */	lhz r0, 0(r29)
/* 801DF8D4 001DB534  A0 87 00 00 */	lhz r4, 0(r7)
/* 801DF8D8 001DB538  A0 67 00 04 */	lhz r3, 4(r7)
/* 801DF8DC 001DB53C  1C C0 00 0C */	mulli r6, r0, 0xc
/* 801DF8E0 001DB540  A0 07 00 02 */	lhz r0, 2(r7)
/* 801DF8E4 001DB544  81 1F 01 3C */	lwz r8, 0x13c(r31)
/* 801DF8E8 001DB548  1C 84 00 0C */	mulli r4, r4, 0xc
/* 801DF8EC 001DB54C  80 FF 01 40 */	lwz r7, 0x140(r31)
/* 801DF8F0 001DB550  7F 67 32 14 */	add r27, r7, r6
/* 801DF8F4 001DB554  1C 63 00 0C */	mulli r3, r3, 0xc
/* 801DF8F8 001DB558  7F 48 22 14 */	add r26, r8, r4
/* 801DF8FC 001DB55C  1C 00 00 0C */	mulli r0, r0, 0xc
/* 801DF900 001DB560  7F 44 D3 78 */	mr r4, r26
/* 801DF904 001DB564  7F 28 1A 14 */	add r25, r8, r3
/* 801DF908 001DB568  7C 68 02 14 */	add r3, r8, r0
/* 801DF90C 001DB56C  48 09 D3 DD */	bl PSVECSubtract
/* 801DF910 001DB570  7F 23 CB 78 */	mr r3, r25
/* 801DF914 001DB574  7F 44 D3 78 */	mr r4, r26
/* 801DF918 001DB578  38 A1 00 14 */	addi r5, r1, 0x14
/* 801DF91C 001DB57C  48 09 D3 CD */	bl PSVECSubtract
/* 801DF920 001DB580  38 61 00 20 */	addi r3, r1, 0x20
/* 801DF924 001DB584  38 81 00 14 */	addi r4, r1, 0x14
/* 801DF928 001DB588  38 A1 00 08 */	addi r5, r1, 8
/* 801DF92C 001DB58C  48 09 D4 BD */	bl PSVECCrossProduct
/* 801DF930 001DB590  C0 01 00 08 */	lfs f0, 8(r1)
/* 801DF934 001DB594  7F 63 DB 78 */	mr r3, r27
/* 801DF938 001DB598  D0 1B 00 00 */	stfs f0, 0(r27)
/* 801DF93C 001DB59C  C0 01 00 0C */	lfs f0, 0xc(r1)
/* 801DF940 001DB5A0  D0 1B 00 04 */	stfs f0, 4(r27)
/* 801DF944 001DB5A4  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 801DF948 001DB5A8  D0 1B 00 08 */	stfs f0, 8(r27)
/* 801DF94C 001DB5AC  48 09 D4 39 */	bl PSVECMag
/* 801DF950 001DB5B0  FC 01 E0 40 */	fcmpo cr0, f1, f28
/* 801DF954 001DB5B4  40 81 00 34 */	ble lbl_801DF988
/* 801DF958 001DB5B8  40 80 00 20 */	bge lbl_801DF978
/* 801DF95C 001DB5BC  FC 01 E8 40 */	fcmpo cr0, f1, f29
/* 801DF960 001DB5C0  40 81 00 18 */	ble lbl_801DF978
/* 801DF964 001DB5C4  FC 01 F0 40 */	fcmpo cr0, f1, f30
/* 801DF968 001DB5C8  40 80 00 0C */	bge lbl_801DF974
/* 801DF96C 001DB5CC  FC 20 E8 90 */	fmr f1, f29
/* 801DF970 001DB5D0  48 00 00 08 */	b lbl_801DF978
lbl_801DF974:
/* 801DF974 001DB5D4  FC 20 E0 90 */	fmr f1, f28
lbl_801DF978:
/* 801DF978 001DB5D8  EC 3F 08 24 */	fdivs f1, f31, f1
/* 801DF97C 001DB5DC  7F 63 DB 78 */	mr r3, r27
/* 801DF980 001DB5E0  7F 64 DB 78 */	mr r4, r27
/* 801DF984 001DB5E4  48 09 D3 89 */	bl PSVECScale
lbl_801DF988:
/* 801DF988 001DB5E8  3B 9C 00 01 */	addi r28, r28, 1
/* 801DF98C 001DB5EC  3B BD 00 08 */	addi r29, r29, 8
lbl_801DF990:
/* 801DF990 001DB5F0  57 80 04 3E */	clrlwi r0, r28, 0x10
/* 801DF994 001DB5F4  7C 00 F0 40 */	cmplw r0, r30
/* 801DF998 001DB5F8  41 80 FF 30 */	blt lbl_801DF8C8
lbl_801DF99C:
/* 801DF99C 001DB5FC  E3 E1 00 88 */	psq_l f31, 136(r1), 0, qr0
/* 801DF9A0 001DB600  CB E1 00 80 */	lfd f31, 0x80(r1)
/* 801DF9A4 001DB604  E3 C1 00 78 */	psq_l f30, 120(r1), 0, qr0
/* 801DF9A8 001DB608  CB C1 00 70 */	lfd f30, 0x70(r1)
/* 801DF9AC 001DB60C  E3 A1 00 68 */	psq_l f29, 104(r1), 0, qr0
/* 801DF9B0 001DB610  CB A1 00 60 */	lfd f29, 0x60(r1)
/* 801DF9B4 001DB614  E3 81 00 58 */	psq_l f28, 88(r1), 0, qr0
/* 801DF9B8 001DB618  39 61 00 50 */	addi r11, r1, 0x50
/* 801DF9BC 001DB61C  CB 81 00 50 */	lfd f28, 0x50(r1)
/* 801DF9C0 001DB620  4B FE 77 AD */	bl _restgpr_25
/* 801DF9C4 001DB624  80 01 00 94 */	lwz r0, 0x94(r1)
/* 801DF9C8 001DB628  7C 08 03 A6 */	mtlr r0
/* 801DF9CC 001DB62C  38 21 00 90 */	addi r1, r1, 0x90
/* 801DF9D0 001DB630  4E 80 00 20 */	blr

.global func_801DF9D4
func_801DF9D4:
/* 801DF9D4 001DB634  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 801DF9D8 001DB638  7C 08 02 A6 */	mflr r0
/* 801DF9DC 001DB63C  90 01 00 54 */	stw r0, 0x54(r1)
/* 801DF9E0 001DB640  3C 00 43 30 */	lis r0, 0x4330
/* 801DF9E4 001DB644  93 E1 00 4C */	stw r31, 0x4c(r1)
/* 801DF9E8 001DB648  7C 7F 1B 78 */	mr r31, r3
/* 801DF9EC 001DB64C  80 C3 01 44 */	lwz r6, 0x144(r3)
/* 801DF9F0 001DB650  90 01 00 28 */	stw r0, 0x28(r1)
/* 801DF9F4 001DB654  80 C6 00 68 */	lwz r6, 0x68(r6)
/* 801DF9F8 001DB658  90 01 00 30 */	stw r0, 0x30(r1)
/* 801DF9FC 001DB65C  A0 06 00 18 */	lhz r0, 0x18(r6)
/* 801DFA00 001DB660  2C 00 00 00 */	cmpwi r0, 0
/* 801DFA04 001DB664  41 82 03 78 */	beq lbl_801DFD7C
/* 801DFA08 001DB668  7C 04 00 00 */	cmpw r4, r0
/* 801DFA0C 001DB66C  41 80 00 08 */	blt lbl_801DFA14
/* 801DFA10 001DB670  38 80 00 00 */	li r4, 0
lbl_801DFA14:
/* 801DFA14 001DB674  80 C6 00 1C */	lwz r6, 0x1c(r6)
/* 801DFA18 001DB678  54 80 18 38 */	slwi r0, r4, 3
/* 801DFA1C 001DB67C  7C 86 02 2E */	lhzx r4, r6, r0
/* 801DFA20 001DB680  7D 06 02 14 */	add r8, r6, r0
/* 801DFA24 001DB684  2C 04 00 00 */	cmpwi r4, 0
/* 801DFA28 001DB688  41 82 03 54 */	beq lbl_801DFD7C
/* 801DFA2C 001DB68C  88 08 00 02 */	lbz r0, 2(r8)
/* 801DFA30 001DB690  C8 42 96 60 */	lfd f2, lbl_80641C60-_SDA2_BASE_(r2)
/* 801DFA34 001DB694  90 01 00 2C */	stw r0, 0x2c(r1)
/* 801DFA38 001DB698  C8 01 00 28 */	lfd f0, 0x28(r1)
/* 801DFA3C 001DB69C  EC 00 10 28 */	fsubs f0, f0, f2
/* 801DFA40 001DB6A0  EC 00 00 72 */	fmuls f0, f0, f1
/* 801DFA44 001DB6A4  FC 00 00 1E */	fctiwz f0, f0
/* 801DFA48 001DB6A8  D8 01 00 38 */	stfd f0, 0x38(r1)
/* 801DFA4C 001DB6AC  81 21 00 3C */	lwz r9, 0x3c(r1)
/* 801DFA50 001DB6B0  2C 09 00 00 */	cmpwi r9, 0
/* 801DFA54 001DB6B4  40 80 00 0C */	bge lbl_801DFA60
/* 801DFA58 001DB6B8  39 20 00 00 */	li r9, 0
/* 801DFA5C 001DB6BC  48 00 00 10 */	b lbl_801DFA6C
lbl_801DFA60:
/* 801DFA60 001DB6C0  7C 09 20 00 */	cmpw r9, r4
/* 801DFA64 001DB6C4  41 80 00 08 */	blt lbl_801DFA6C
/* 801DFA68 001DB6C8  39 24 FF FF */	addi r9, r4, -1
lbl_801DFA6C:
/* 801DFA6C 001DB6CC  C0 22 96 48 */	lfs f1, lbl_80641C48-_SDA2_BASE_(r2)
/* 801DFA70 001DB6D0  38 E0 00 00 */	li r7, 0
/* 801DFA74 001DB6D4  C0 02 96 4C */	lfs f0, lbl_80641C4C-_SDA2_BASE_(r2)
/* 801DFA78 001DB6D8  D0 21 00 08 */	stfs f1, 8(r1)
/* 801DFA7C 001DB6DC  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 801DFA80 001DB6E0  D0 21 00 10 */	stfs f1, 0x10(r1)
/* 801DFA84 001DB6E4  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 801DFA88 001DB6E8  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 801DFA8C 001DB6EC  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 801DFA90 001DB6F0  90 E1 00 20 */	stw r7, 0x20(r1)
/* 801DFA94 001DB6F4  88 C8 00 03 */	lbz r6, 3(r8)
/* 801DFA98 001DB6F8  54 C0 07 3E */	clrlwi r0, r6, 0x1c
/* 801DFA9C 001DB6FC  2C 00 00 08 */	cmpwi r0, 8
/* 801DFAA0 001DB700  41 82 00 A8 */	beq lbl_801DFB48
/* 801DFAA4 001DB704  40 80 02 D8 */	bge lbl_801DFD7C
/* 801DFAA8 001DB708  2C 00 00 00 */	cmpwi r0, 0
/* 801DFAAC 001DB70C  41 82 00 08 */	beq lbl_801DFAB4
/* 801DFAB0 001DB710  48 00 02 CC */	b lbl_801DFD7C
lbl_801DFAB4:
/* 801DFAB4 001DB714  1C 09 00 18 */	mulli r0, r9, 0x18
/* 801DFAB8 001DB718  80 88 00 04 */	lwz r4, 4(r8)
/* 801DFABC 001DB71C  2C 05 00 00 */	cmpwi r5, 0
/* 801DFAC0 001DB720  7C A4 02 14 */	add r5, r4, r0
/* 801DFAC4 001DB724  41 82 00 50 */	beq lbl_801DFB14
/* 801DFAC8 001DB728  C0 05 00 00 */	lfs f0, 0(r5)
/* 801DFACC 001DB72C  38 81 00 08 */	addi r4, r1, 8
/* 801DFAD0 001DB730  D0 01 00 08 */	stfs f0, 8(r1)
/* 801DFAD4 001DB734  C0 05 00 04 */	lfs f0, 4(r5)
/* 801DFAD8 001DB738  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 801DFADC 001DB73C  C0 05 00 08 */	lfs f0, 8(r5)
/* 801DFAE0 001DB740  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 801DFAE4 001DB744  C0 05 00 0C */	lfs f0, 0xc(r5)
/* 801DFAE8 001DB748  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 801DFAEC 001DB74C  C0 05 00 10 */	lfs f0, 0x10(r5)
/* 801DFAF0 001DB750  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 801DFAF4 001DB754  C0 05 00 14 */	lfs f0, 0x14(r5)
/* 801DFAF8 001DB758  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 801DFAFC 001DB75C  90 E3 01 38 */	stw r7, 0x138(r3)
/* 801DFB00 001DB760  38 63 01 20 */	addi r3, r3, 0x120
/* 801DFB04 001DB764  48 04 11 75 */	bl func_80220C78
/* 801DFB08 001DB768  38 1F 00 D0 */	addi r0, r31, 0xd0
/* 801DFB0C 001DB76C  90 1F 01 38 */	stw r0, 0x138(r31)
/* 801DFB10 001DB770  48 00 02 6C */	b lbl_801DFD7C
lbl_801DFB14:
/* 801DFB14 001DB774  C0 05 00 00 */	lfs f0, 0(r5)
/* 801DFB18 001DB778  D0 03 01 20 */	stfs f0, 0x120(r3)
/* 801DFB1C 001DB77C  C0 05 00 04 */	lfs f0, 4(r5)
/* 801DFB20 001DB780  D0 03 01 24 */	stfs f0, 0x124(r3)
/* 801DFB24 001DB784  C0 05 00 08 */	lfs f0, 8(r5)
/* 801DFB28 001DB788  D0 03 01 28 */	stfs f0, 0x128(r3)
/* 801DFB2C 001DB78C  C0 05 00 0C */	lfs f0, 0xc(r5)
/* 801DFB30 001DB790  D0 03 01 2C */	stfs f0, 0x12c(r3)
/* 801DFB34 001DB794  C0 05 00 10 */	lfs f0, 0x10(r5)
/* 801DFB38 001DB798  D0 03 01 30 */	stfs f0, 0x130(r3)
/* 801DFB3C 001DB79C  C0 05 00 14 */	lfs f0, 0x14(r5)
/* 801DFB40 001DB7A0  D0 03 01 34 */	stfs f0, 0x134(r3)
/* 801DFB44 001DB7A4  48 00 02 38 */	b lbl_801DFD7C
lbl_801DFB48:
/* 801DFB48 001DB7A8  1C 09 00 0C */	mulli r0, r9, 0xc
/* 801DFB4C 001DB7AC  80 88 00 04 */	lwz r4, 4(r8)
/* 801DFB50 001DB7B0  2C 05 00 00 */	cmpwi r5, 0
/* 801DFB54 001DB7B4  54 C6 E7 3E */	rlwinm r6, r6, 0x1c, 0x1c, 0x1f
/* 801DFB58 001DB7B8  7C A4 02 14 */	add r5, r4, r0
/* 801DFB5C 001DB7BC  41 82 01 20 */	beq lbl_801DFC7C
/* 801DFB60 001DB7C0  A8 05 00 00 */	lha r0, 0(r5)
/* 801DFB64 001DB7C4  38 80 00 01 */	li r4, 1
/* 801DFB68 001DB7C8  7C 84 30 30 */	slw r4, r4, r6
/* 801DFB6C 001DB7CC  C8 C2 96 70 */	lfd f6, lbl_80641C70-_SDA2_BASE_(r2)
/* 801DFB70 001DB7D0  6C 86 80 00 */	xoris r6, r4, 0x8000
/* 801DFB74 001DB7D4  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 801DFB78 001DB7D8  90 01 00 34 */	stw r0, 0x34(r1)
/* 801DFB7C 001DB7DC  38 81 00 08 */	addi r4, r1, 8
/* 801DFB80 001DB7E0  90 C1 00 2C */	stw r6, 0x2c(r1)
/* 801DFB84 001DB7E4  C8 21 00 30 */	lfd f1, 0x30(r1)
/* 801DFB88 001DB7E8  C8 01 00 28 */	lfd f0, 0x28(r1)
/* 801DFB8C 001DB7EC  EC 41 30 28 */	fsubs f2, f1, f6
/* 801DFB90 001DB7F0  EC 20 30 28 */	fsubs f1, f0, f6
/* 801DFB94 001DB7F4  90 C1 00 2C */	stw r6, 0x2c(r1)
/* 801DFB98 001DB7F8  C8 01 00 28 */	lfd f0, 0x28(r1)
/* 801DFB9C 001DB7FC  EC 62 08 24 */	fdivs f3, f2, f1
/* 801DFBA0 001DB800  90 C1 00 2C */	stw r6, 0x2c(r1)
/* 801DFBA4 001DB804  C8 41 00 28 */	lfd f2, 0x28(r1)
/* 801DFBA8 001DB808  90 C1 00 2C */	stw r6, 0x2c(r1)
/* 801DFBAC 001DB80C  C8 21 00 28 */	lfd f1, 0x28(r1)
/* 801DFBB0 001DB810  90 C1 00 2C */	stw r6, 0x2c(r1)
/* 801DFBB4 001DB814  D0 61 00 08 */	stfs f3, 8(r1)
/* 801DFBB8 001DB818  EC 80 30 28 */	fsubs f4, f0, f6
/* 801DFBBC 001DB81C  EC 62 30 28 */	fsubs f3, f2, f6
/* 801DFBC0 001DB820  C8 01 00 28 */	lfd f0, 0x28(r1)
/* 801DFBC4 001DB824  A8 05 00 02 */	lha r0, 2(r5)
/* 801DFBC8 001DB828  EC 41 30 28 */	fsubs f2, f1, f6
/* 801DFBCC 001DB82C  EC 20 30 28 */	fsubs f1, f0, f6
/* 801DFBD0 001DB830  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 801DFBD4 001DB834  90 01 00 34 */	stw r0, 0x34(r1)
/* 801DFBD8 001DB838  C8 A1 00 30 */	lfd f5, 0x30(r1)
/* 801DFBDC 001DB83C  90 C1 00 2C */	stw r6, 0x2c(r1)
/* 801DFBE0 001DB840  EC A5 30 28 */	fsubs f5, f5, f6
/* 801DFBE4 001DB844  C8 01 00 28 */	lfd f0, 0x28(r1)
/* 801DFBE8 001DB848  EC 85 20 24 */	fdivs f4, f5, f4
/* 801DFBEC 001DB84C  D0 81 00 0C */	stfs f4, 0xc(r1)
/* 801DFBF0 001DB850  EC 00 30 28 */	fsubs f0, f0, f6
/* 801DFBF4 001DB854  A8 05 00 04 */	lha r0, 4(r5)
/* 801DFBF8 001DB858  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 801DFBFC 001DB85C  90 01 00 34 */	stw r0, 0x34(r1)
/* 801DFC00 001DB860  C8 81 00 30 */	lfd f4, 0x30(r1)
/* 801DFC04 001DB864  EC 84 30 28 */	fsubs f4, f4, f6
/* 801DFC08 001DB868  EC 64 18 24 */	fdivs f3, f4, f3
/* 801DFC0C 001DB86C  D0 61 00 10 */	stfs f3, 0x10(r1)
/* 801DFC10 001DB870  A8 05 00 06 */	lha r0, 6(r5)
/* 801DFC14 001DB874  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 801DFC18 001DB878  90 01 00 34 */	stw r0, 0x34(r1)
/* 801DFC1C 001DB87C  C8 61 00 30 */	lfd f3, 0x30(r1)
/* 801DFC20 001DB880  EC 63 30 28 */	fsubs f3, f3, f6
/* 801DFC24 001DB884  EC 43 10 24 */	fdivs f2, f3, f2
/* 801DFC28 001DB888  D0 41 00 14 */	stfs f2, 0x14(r1)
/* 801DFC2C 001DB88C  A8 05 00 08 */	lha r0, 8(r5)
/* 801DFC30 001DB890  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 801DFC34 001DB894  90 01 00 34 */	stw r0, 0x34(r1)
/* 801DFC38 001DB898  C8 41 00 30 */	lfd f2, 0x30(r1)
/* 801DFC3C 001DB89C  EC 42 30 28 */	fsubs f2, f2, f6
/* 801DFC40 001DB8A0  EC 22 08 24 */	fdivs f1, f2, f1
/* 801DFC44 001DB8A4  D0 21 00 18 */	stfs f1, 0x18(r1)
/* 801DFC48 001DB8A8  A8 05 00 0A */	lha r0, 0xa(r5)
/* 801DFC4C 001DB8AC  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 801DFC50 001DB8B0  90 01 00 34 */	stw r0, 0x34(r1)
/* 801DFC54 001DB8B4  C8 21 00 30 */	lfd f1, 0x30(r1)
/* 801DFC58 001DB8B8  EC 21 30 28 */	fsubs f1, f1, f6
/* 801DFC5C 001DB8BC  EC 01 00 24 */	fdivs f0, f1, f0
/* 801DFC60 001DB8C0  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 801DFC64 001DB8C4  90 E3 01 38 */	stw r7, 0x138(r3)
/* 801DFC68 001DB8C8  38 63 01 20 */	addi r3, r3, 0x120
/* 801DFC6C 001DB8CC  48 04 10 0D */	bl func_80220C78
/* 801DFC70 001DB8D0  38 1F 00 D0 */	addi r0, r31, 0xd0
/* 801DFC74 001DB8D4  90 1F 01 38 */	stw r0, 0x138(r31)
/* 801DFC78 001DB8D8  48 00 01 04 */	b lbl_801DFD7C
lbl_801DFC7C:
/* 801DFC7C 001DB8DC  A8 05 00 00 */	lha r0, 0(r5)
/* 801DFC80 001DB8E0  38 80 00 01 */	li r4, 1
/* 801DFC84 001DB8E4  7C 84 30 30 */	slw r4, r4, r6
/* 801DFC88 001DB8E8  C8 C2 96 70 */	lfd f6, lbl_80641C70-_SDA2_BASE_(r2)
/* 801DFC8C 001DB8EC  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 801DFC90 001DB8F0  6C 84 80 00 */	xoris r4, r4, 0x8000
/* 801DFC94 001DB8F4  90 01 00 34 */	stw r0, 0x34(r1)
/* 801DFC98 001DB8F8  90 81 00 2C */	stw r4, 0x2c(r1)
/* 801DFC9C 001DB8FC  C8 21 00 30 */	lfd f1, 0x30(r1)
/* 801DFCA0 001DB900  C8 01 00 28 */	lfd f0, 0x28(r1)
/* 801DFCA4 001DB904  EC 41 30 28 */	fsubs f2, f1, f6
/* 801DFCA8 001DB908  EC 20 30 28 */	fsubs f1, f0, f6
/* 801DFCAC 001DB90C  90 81 00 2C */	stw r4, 0x2c(r1)
/* 801DFCB0 001DB910  C8 01 00 28 */	lfd f0, 0x28(r1)
/* 801DFCB4 001DB914  EC 62 08 24 */	fdivs f3, f2, f1
/* 801DFCB8 001DB918  90 81 00 2C */	stw r4, 0x2c(r1)
/* 801DFCBC 001DB91C  C8 41 00 28 */	lfd f2, 0x28(r1)
/* 801DFCC0 001DB920  90 81 00 2C */	stw r4, 0x2c(r1)
/* 801DFCC4 001DB924  C8 21 00 28 */	lfd f1, 0x28(r1)
/* 801DFCC8 001DB928  90 81 00 2C */	stw r4, 0x2c(r1)
/* 801DFCCC 001DB92C  D0 63 01 20 */	stfs f3, 0x120(r3)
/* 801DFCD0 001DB930  EC 80 30 28 */	fsubs f4, f0, f6
/* 801DFCD4 001DB934  EC 62 30 28 */	fsubs f3, f2, f6
/* 801DFCD8 001DB938  C8 01 00 28 */	lfd f0, 0x28(r1)
/* 801DFCDC 001DB93C  A8 05 00 02 */	lha r0, 2(r5)
/* 801DFCE0 001DB940  EC 41 30 28 */	fsubs f2, f1, f6
/* 801DFCE4 001DB944  EC 20 30 28 */	fsubs f1, f0, f6
/* 801DFCE8 001DB948  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 801DFCEC 001DB94C  90 01 00 34 */	stw r0, 0x34(r1)
/* 801DFCF0 001DB950  C8 A1 00 30 */	lfd f5, 0x30(r1)
/* 801DFCF4 001DB954  90 81 00 2C */	stw r4, 0x2c(r1)
/* 801DFCF8 001DB958  EC A5 30 28 */	fsubs f5, f5, f6
/* 801DFCFC 001DB95C  C8 01 00 28 */	lfd f0, 0x28(r1)
/* 801DFD00 001DB960  EC 85 20 24 */	fdivs f4, f5, f4
/* 801DFD04 001DB964  D0 83 01 24 */	stfs f4, 0x124(r3)
/* 801DFD08 001DB968  EC 00 30 28 */	fsubs f0, f0, f6
/* 801DFD0C 001DB96C  A8 05 00 04 */	lha r0, 4(r5)
/* 801DFD10 001DB970  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 801DFD14 001DB974  90 01 00 34 */	stw r0, 0x34(r1)
/* 801DFD18 001DB978  C8 81 00 30 */	lfd f4, 0x30(r1)
/* 801DFD1C 001DB97C  EC 84 30 28 */	fsubs f4, f4, f6
/* 801DFD20 001DB980  EC 64 18 24 */	fdivs f3, f4, f3
/* 801DFD24 001DB984  D0 63 01 28 */	stfs f3, 0x128(r3)
/* 801DFD28 001DB988  A8 05 00 06 */	lha r0, 6(r5)
/* 801DFD2C 001DB98C  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 801DFD30 001DB990  90 01 00 34 */	stw r0, 0x34(r1)
/* 801DFD34 001DB994  C8 61 00 30 */	lfd f3, 0x30(r1)
/* 801DFD38 001DB998  EC 63 30 28 */	fsubs f3, f3, f6
/* 801DFD3C 001DB99C  EC 43 10 24 */	fdivs f2, f3, f2
/* 801DFD40 001DB9A0  D0 43 01 2C */	stfs f2, 0x12c(r3)
/* 801DFD44 001DB9A4  A8 05 00 08 */	lha r0, 8(r5)
/* 801DFD48 001DB9A8  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 801DFD4C 001DB9AC  90 01 00 34 */	stw r0, 0x34(r1)
/* 801DFD50 001DB9B0  C8 41 00 30 */	lfd f2, 0x30(r1)
/* 801DFD54 001DB9B4  EC 42 30 28 */	fsubs f2, f2, f6
/* 801DFD58 001DB9B8  EC 22 08 24 */	fdivs f1, f2, f1
/* 801DFD5C 001DB9BC  D0 23 01 30 */	stfs f1, 0x130(r3)
/* 801DFD60 001DB9C0  A8 05 00 0A */	lha r0, 0xa(r5)
/* 801DFD64 001DB9C4  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 801DFD68 001DB9C8  90 01 00 34 */	stw r0, 0x34(r1)
/* 801DFD6C 001DB9CC  C8 21 00 30 */	lfd f1, 0x30(r1)
/* 801DFD70 001DB9D0  EC 21 30 28 */	fsubs f1, f1, f6
/* 801DFD74 001DB9D4  EC 01 00 24 */	fdivs f0, f1, f0
/* 801DFD78 001DB9D8  D0 03 01 34 */	stfs f0, 0x134(r3)
lbl_801DFD7C:
/* 801DFD7C 001DB9DC  80 01 00 54 */	lwz r0, 0x54(r1)
/* 801DFD80 001DB9E0  83 E1 00 4C */	lwz r31, 0x4c(r1)
/* 801DFD84 001DB9E4  7C 08 03 A6 */	mtlr r0
/* 801DFD88 001DB9E8  38 21 00 50 */	addi r1, r1, 0x50
/* 801DFD8C 001DB9EC  4E 80 00 20 */	blr
/* 801DFD90 001DB9F0  94 21 FF A0 */	stwu r1, -0x60(r1)
/* 801DFD94 001DB9F4  7C 08 02 A6 */	mflr r0
/* 801DFD98 001DB9F8  90 01 00 64 */	stw r0, 0x64(r1)
/* 801DFD9C 001DB9FC  DB E1 00 50 */	stfd f31, 0x50(r1)
/* 801DFDA0 001DBA00  F3 E1 00 58 */	psq_st f31, 88(r1), 0, qr0
/* 801DFDA4 001DBA04  FF E0 08 90 */	fmr f31, f1
/* 801DFDA8 001DBA08  93 E1 00 4C */	stw r31, 0x4c(r1)
/* 801DFDAC 001DBA0C  7C 7F 1B 78 */	mr r31, r3
/* 801DFDB0 001DBA10  93 C1 00 48 */	stw r30, 0x48(r1)
/* 801DFDB4 001DBA14  93 A1 00 44 */	stw r29, 0x44(r1)
/* 801DFDB8 001DBA18  48 01 3E C5 */	bl func_801F3C7C
/* 801DFDBC 001DBA1C  2C 03 00 00 */	cmpwi r3, 0
/* 801DFDC0 001DBA20  41 82 00 08 */	beq lbl_801DFDC8
/* 801DFDC4 001DBA24  C3 E2 96 50 */	lfs f31, lbl_80641C50-_SDA2_BASE_(r2)
lbl_801DFDC8:
/* 801DFDC8 001DBA28  A0 1F 00 10 */	lhz r0, 0x10(r31)
/* 801DFDCC 001DBA2C  FC 20 F8 90 */	fmr f1, f31
/* 801DFDD0 001DBA30  7F E3 FB 78 */	mr r3, r31
/* 801DFDD4 001DBA34  54 1E 07 FE */	clrlwi r30, r0, 0x1f
/* 801DFDD8 001DBA38  48 01 3B 89 */	bl func_801F3960
/* 801DFDDC 001DBA3C  80 7F 00 B8 */	lwz r3, 0xb8(r31)
/* 801DFDE0 001DBA40  2C 03 00 00 */	cmpwi r3, 0
/* 801DFDE4 001DBA44  41 82 01 B0 */	beq lbl_801DFF94
/* 801DFDE8 001DBA48  80 BF 00 04 */	lwz r5, 4(r31)
/* 801DFDEC 001DBA4C  2C 05 00 00 */	cmpwi r5, 0
/* 801DFDF0 001DBA50  41 82 00 24 */	beq lbl_801DFE14
/* 801DFDF4 001DBA54  80 85 00 00 */	lwz r4, 0(r5)
/* 801DFDF8 001DBA58  2C 04 00 00 */	cmpwi r4, 0
/* 801DFDFC 001DBA5C  41 82 00 0C */	beq lbl_801DFE08
/* 801DFE00 001DBA60  A0 04 00 00 */	lhz r0, 0(r4)
/* 801DFE04 001DBA64  48 00 00 18 */	b lbl_801DFE1C
lbl_801DFE08:
/* 801DFE08 001DBA68  3C 80 00 01 */	lis r4, 0x0000FFFF@ha
/* 801DFE0C 001DBA6C  38 04 FF FF */	addi r0, r4, 0x0000FFFF@l
/* 801DFE10 001DBA70  48 00 00 0C */	b lbl_801DFE1C
lbl_801DFE14:
/* 801DFE14 001DBA74  3C 80 00 01 */	lis r4, 0x0000FFFF@ha
/* 801DFE18 001DBA78  38 04 FF FF */	addi r0, r4, 0x0000FFFF@l
lbl_801DFE1C:
/* 801DFE1C 001DBA7C  54 1D 04 3E */	clrlwi r29, r0, 0x10
/* 801DFE20 001DBA80  3C 1D 00 00 */	addis r0, r29, 0
/* 801DFE24 001DBA84  28 00 FF FF */	cmplwi r0, 0xffff
/* 801DFE28 001DBA88  41 82 00 50 */	beq lbl_801DFE78
/* 801DFE2C 001DBA8C  2C 05 00 00 */	cmpwi r5, 0
/* 801DFE30 001DBA90  41 82 00 40 */	beq lbl_801DFE70
/* 801DFE34 001DBA94  80 65 00 00 */	lwz r3, 0(r5)
/* 801DFE38 001DBA98  2C 03 00 00 */	cmpwi r3, 0
/* 801DFE3C 001DBA9C  40 82 00 0C */	bne lbl_801DFE48
/* 801DFE40 001DBAA0  C0 22 96 50 */	lfs f1, lbl_80641C50-_SDA2_BASE_(r2)
/* 801DFE44 001DBAA4  48 00 00 3C */	b lbl_801DFE80
lbl_801DFE48:
/* 801DFE48 001DBAA8  C0 25 00 08 */	lfs f1, 8(r5)
/* 801DFE4C 001DBAAC  C0 02 96 50 */	lfs f0, lbl_80641C50-_SDA2_BASE_(r2)
/* 801DFE50 001DBAB0  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 801DFE54 001DBAB4  40 80 00 14 */	bge lbl_801DFE68
/* 801DFE58 001DBAB8  C0 23 00 08 */	lfs f1, 8(r3)
/* 801DFE5C 001DBABC  C0 05 00 0C */	lfs f0, 0xc(r5)
/* 801DFE60 001DBAC0  EC 21 00 28 */	fsubs f1, f1, f0
/* 801DFE64 001DBAC4  48 00 00 1C */	b lbl_801DFE80
lbl_801DFE68:
/* 801DFE68 001DBAC8  C0 25 00 0C */	lfs f1, 0xc(r5)
/* 801DFE6C 001DBACC  48 00 00 14 */	b lbl_801DFE80
lbl_801DFE70:
/* 801DFE70 001DBAD0  C0 22 96 50 */	lfs f1, lbl_80641C50-_SDA2_BASE_(r2)
/* 801DFE74 001DBAD4  48 00 00 0C */	b lbl_801DFE80
lbl_801DFE78:
/* 801DFE78 001DBAD8  A3 A3 00 F0 */	lhz r29, 0xf0(r3)
/* 801DFE7C 001DBADC  48 01 5C C9 */	bl func_801F5B44
lbl_801DFE80:
/* 801DFE80 001DBAE0  7F E3 FB 78 */	mr r3, r31
/* 801DFE84 001DBAE4  7F A4 EB 78 */	mr r4, r29
/* 801DFE88 001DBAE8  38 A0 00 00 */	li r5, 0
/* 801DFE8C 001DBAEC  4B FF FB 49 */	bl func_801DF9D4
/* 801DFE90 001DBAF0  80 9F 00 08 */	lwz r4, 8(r31)
/* 801DFE94 001DBAF4  2C 04 00 00 */	cmpwi r4, 0
/* 801DFE98 001DBAF8  41 82 00 28 */	beq lbl_801DFEC0
/* 801DFE9C 001DBAFC  80 04 00 00 */	lwz r0, 0(r4)
/* 801DFEA0 001DBB00  38 60 00 00 */	li r3, 0
/* 801DFEA4 001DBB04  2C 00 00 00 */	cmpwi r0, 0
/* 801DFEA8 001DBB08  41 82 00 1C */	beq lbl_801DFEC4
/* 801DFEAC 001DBB0C  A0 04 00 06 */	lhz r0, 6(r4)
/* 801DFEB0 001DBB10  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 801DFEB4 001DBB14  41 82 00 10 */	beq lbl_801DFEC4
/* 801DFEB8 001DBB18  38 60 00 01 */	li r3, 1
/* 801DFEBC 001DBB1C  48 00 00 08 */	b lbl_801DFEC4
lbl_801DFEC0:
/* 801DFEC0 001DBB20  38 60 00 00 */	li r3, 0
lbl_801DFEC4:
/* 801DFEC4 001DBB24  2C 03 00 00 */	cmpwi r3, 0
/* 801DFEC8 001DBB28  40 82 00 14 */	bne lbl_801DFEDC
/* 801DFECC 001DBB2C  80 7F 00 B8 */	lwz r3, 0xb8(r31)
/* 801DFED0 001DBB30  48 01 5F ED */	bl func_801F5EBC
/* 801DFED4 001DBB34  2C 03 00 00 */	cmpwi r3, 0
/* 801DFED8 001DBB38  41 82 00 BC */	beq lbl_801DFF94
lbl_801DFEDC:
/* 801DFEDC 001DBB3C  80 9F 00 08 */	lwz r4, 8(r31)
/* 801DFEE0 001DBB40  2C 04 00 00 */	cmpwi r4, 0
/* 801DFEE4 001DBB44  41 82 00 24 */	beq lbl_801DFF08
/* 801DFEE8 001DBB48  80 64 00 00 */	lwz r3, 0(r4)
/* 801DFEEC 001DBB4C  2C 03 00 00 */	cmpwi r3, 0
/* 801DFEF0 001DBB50  41 82 00 0C */	beq lbl_801DFEFC
/* 801DFEF4 001DBB54  A0 03 00 00 */	lhz r0, 0(r3)
/* 801DFEF8 001DBB58  48 00 00 18 */	b lbl_801DFF10
lbl_801DFEFC:
/* 801DFEFC 001DBB5C  3C 60 00 01 */	lis r3, 0x0000FFFF@ha
/* 801DFF00 001DBB60  38 03 FF FF */	addi r0, r3, 0x0000FFFF@l
/* 801DFF04 001DBB64  48 00 00 0C */	b lbl_801DFF10
lbl_801DFF08:
/* 801DFF08 001DBB68  3C 60 00 01 */	lis r3, 0x0000FFFF@ha
/* 801DFF0C 001DBB6C  38 03 FF FF */	addi r0, r3, 0x0000FFFF@l
lbl_801DFF10:
/* 801DFF10 001DBB70  54 1D 04 3E */	clrlwi r29, r0, 0x10
/* 801DFF14 001DBB74  3C 1D 00 00 */	addis r0, r29, 0
/* 801DFF18 001DBB78  28 00 FF FF */	cmplwi r0, 0xffff
/* 801DFF1C 001DBB7C  41 82 00 50 */	beq lbl_801DFF6C
/* 801DFF20 001DBB80  2C 04 00 00 */	cmpwi r4, 0
/* 801DFF24 001DBB84  41 82 00 40 */	beq lbl_801DFF64
/* 801DFF28 001DBB88  80 64 00 00 */	lwz r3, 0(r4)
/* 801DFF2C 001DBB8C  2C 03 00 00 */	cmpwi r3, 0
/* 801DFF30 001DBB90  40 82 00 0C */	bne lbl_801DFF3C
/* 801DFF34 001DBB94  C0 22 96 50 */	lfs f1, lbl_80641C50-_SDA2_BASE_(r2)
/* 801DFF38 001DBB98  48 00 00 40 */	b lbl_801DFF78
lbl_801DFF3C:
/* 801DFF3C 001DBB9C  C0 24 00 08 */	lfs f1, 8(r4)
/* 801DFF40 001DBBA0  C0 02 96 50 */	lfs f0, lbl_80641C50-_SDA2_BASE_(r2)
/* 801DFF44 001DBBA4  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 801DFF48 001DBBA8  40 80 00 14 */	bge lbl_801DFF5C
/* 801DFF4C 001DBBAC  C0 23 00 08 */	lfs f1, 8(r3)
/* 801DFF50 001DBBB0  C0 04 00 0C */	lfs f0, 0xc(r4)
/* 801DFF54 001DBBB4  EC 21 00 28 */	fsubs f1, f1, f0
/* 801DFF58 001DBBB8  48 00 00 20 */	b lbl_801DFF78
lbl_801DFF5C:
/* 801DFF5C 001DBBBC  C0 24 00 0C */	lfs f1, 0xc(r4)
/* 801DFF60 001DBBC0  48 00 00 18 */	b lbl_801DFF78
lbl_801DFF64:
/* 801DFF64 001DBBC4  C0 22 96 50 */	lfs f1, lbl_80641C50-_SDA2_BASE_(r2)
/* 801DFF68 001DBBC8  48 00 00 10 */	b lbl_801DFF78
lbl_801DFF6C:
/* 801DFF6C 001DBBCC  80 7F 00 B8 */	lwz r3, 0xb8(r31)
/* 801DFF70 001DBBD0  A3 A3 01 04 */	lhz r29, 0x104(r3)
/* 801DFF74 001DBBD4  48 01 5C ED */	bl func_801F5C60
lbl_801DFF78:
/* 801DFF78 001DBBD8  3C 1D 00 00 */	addis r0, r29, 0
/* 801DFF7C 001DBBDC  28 00 FF FF */	cmplwi r0, 0xffff
/* 801DFF80 001DBBE0  41 82 00 14 */	beq lbl_801DFF94
/* 801DFF84 001DBBE4  7F E3 FB 78 */	mr r3, r31
/* 801DFF88 001DBBE8  7F A4 EB 78 */	mr r4, r29
/* 801DFF8C 001DBBEC  38 A0 00 01 */	li r5, 1
/* 801DFF90 001DBBF0  4B FF FA 45 */	bl func_801DF9D4
lbl_801DFF94:
/* 801DFF94 001DBBF4  7F E3 FB 78 */	mr r3, r31
/* 801DFF98 001DBBF8  4B FF F3 35 */	bl func_801DF2CC
/* 801DFF9C 001DBBFC  2C 1E 00 00 */	cmpwi r30, 0
/* 801DFFA0 001DBC00  41 82 00 2C */	beq lbl_801DFFCC
/* 801DFFA4 001DBC04  80 7F 01 44 */	lwz r3, 0x144(r31)
/* 801DFFA8 001DBC08  80 83 00 64 */	lwz r4, 0x64(r3)
/* 801DFFAC 001DBC0C  2C 04 00 00 */	cmpwi r4, 0
/* 801DFFB0 001DBC10  41 82 00 1C */	beq lbl_801DFFCC
/* 801DFFB4 001DBC14  38 7F 00 D0 */	addi r3, r31, 0xd0
/* 801DFFB8 001DBC18  38 A1 00 08 */	addi r5, r1, 8
/* 801DFFBC 001DBC1C  48 09 BF D1 */	bl PSMTXConcat
/* 801DFFC0 001DBC20  38 61 00 08 */	addi r3, r1, 8
/* 801DFFC4 001DBC24  38 9F 00 D0 */	addi r4, r31, 0xd0
/* 801DFFC8 001DBC28  48 09 BF 91 */	bl PSMTXCopy
lbl_801DFFCC:
/* 801DFFCC 001DBC2C  A0 1F 01 06 */	lhz r0, 0x106(r31)
/* 801DFFD0 001DBC30  60 00 00 10 */	ori r0, r0, 0x10
/* 801DFFD4 001DBC34  B0 1F 01 06 */	sth r0, 0x106(r31)
/* 801DFFD8 001DBC38  E3 E1 00 58 */	psq_l f31, 88(r1), 0, qr0
/* 801DFFDC 001DBC3C  CB E1 00 50 */	lfd f31, 0x50(r1)
/* 801DFFE0 001DBC40  83 E1 00 4C */	lwz r31, 0x4c(r1)
/* 801DFFE4 001DBC44  83 C1 00 48 */	lwz r30, 0x48(r1)
/* 801DFFE8 001DBC48  83 A1 00 44 */	lwz r29, 0x44(r1)
/* 801DFFEC 001DBC4C  80 01 00 64 */	lwz r0, 0x64(r1)
/* 801DFFF0 001DBC50  7C 08 03 A6 */	mtlr r0
/* 801DFFF4 001DBC54  38 21 00 60 */	addi r1, r1, 0x60
/* 801DFFF8 001DBC58  4E 80 00 20 */	blr

.global func_801DFFFC
func_801DFFFC:
/* 801DFFFC 001DBC5C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801E0000 001DBC60  7C 08 02 A6 */	mflr r0
/* 801E0004 001DBC64  90 01 00 14 */	stw r0, 0x14(r1)
/* 801E0008 001DBC68  93 E1 00 0C */	stw r31, 0xc(r1)
/* 801E000C 001DBC6C  7C 7F 1B 78 */	mr r31, r3
/* 801E0010 001DBC70  80 03 00 B8 */	lwz r0, 0xb8(r3)
/* 801E0014 001DBC74  2C 00 00 00 */	cmpwi r0, 0
/* 801E0018 001DBC78  41 82 00 2C */	beq lbl_801E0044
/* 801E001C 001DBC7C  A0 03 01 06 */	lhz r0, 0x106(r3)
/* 801E0020 001DBC80  54 00 06 F7 */	rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 801E0024 001DBC84  40 82 00 08 */	bne lbl_801E002C
/* 801E0028 001DBC88  48 00 00 1C */	b lbl_801E0044
lbl_801E002C:
/* 801E002C 001DBC8C  4B FF F4 FD */	bl func_801DF528
/* 801E0030 001DBC90  7F E3 FB 78 */	mr r3, r31
/* 801E0034 001DBC94  4B FF F8 29 */	bl func_801DF85C
/* 801E0038 001DBC98  A0 1F 01 06 */	lhz r0, 0x106(r31)
/* 801E003C 001DBC9C  54 00 07 34 */	rlwinm r0, r0, 0, 0x1c, 0x1a
/* 801E0040 001DBCA0  B0 1F 01 06 */	sth r0, 0x106(r31)
lbl_801E0044:
/* 801E0044 001DBCA4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801E0048 001DBCA8  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 801E004C 001DBCAC  7C 08 03 A6 */	mtlr r0
/* 801E0050 001DBCB0  38 21 00 10 */	addi r1, r1, 0x10
/* 801E0054 001DBCB4  4E 80 00 20 */	blr

.global func_801E0058
func_801E0058:
/* 801E0058 001DBCB8  94 21 FF 70 */	stwu r1, -0x90(r1)
/* 801E005C 001DBCBC  7C 08 02 A6 */	mflr r0
/* 801E0060 001DBCC0  90 01 00 94 */	stw r0, 0x94(r1)
/* 801E0064 001DBCC4  39 61 00 90 */	addi r11, r1, 0x90
/* 801E0068 001DBCC8  4B FE 70 B9 */	bl _savegpr_25
/* 801E006C 001DBCCC  A0 04 00 00 */	lhz r0, 0(r4)
/* 801E0070 001DBCD0  7C 7B 1B 78 */	mr r27, r3
/* 801E0074 001DBCD4  80 C3 01 40 */	lwz r6, 0x140(r3)
/* 801E0078 001DBCD8  7C BC 2B 78 */	mr r28, r5
/* 801E007C 001DBCDC  1C 00 00 0C */	mulli r0, r0, 0xc
/* 801E0080 001DBCE0  C0 02 96 50 */	lfs f0, lbl_80641C50-_SDA2_BASE_(r2)
/* 801E0084 001DBCE4  3B A0 00 00 */	li r29, 0
/* 801E0088 001DBCE8  7C 26 04 6E */	lfsux f1, r6, r0
/* 801E008C 001DBCEC  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 801E0090 001DBCF0  40 81 00 08 */	ble lbl_801E0098
/* 801E0094 001DBCF4  48 00 00 08 */	b lbl_801E009C
lbl_801E0098:
/* 801E0098 001DBCF8  FC 20 08 50 */	fneg f1, f1
lbl_801E009C:
/* 801E009C 001DBCFC  C0 46 00 04 */	lfs f2, 4(r6)
/* 801E00A0 001DBD00  C0 02 96 50 */	lfs f0, lbl_80641C50-_SDA2_BASE_(r2)
/* 801E00A4 001DBD04  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 801E00A8 001DBD08  40 81 00 08 */	ble lbl_801E00B0
/* 801E00AC 001DBD0C  48 00 00 08 */	b lbl_801E00B4
lbl_801E00B0:
/* 801E00B0 001DBD10  FC 40 10 50 */	fneg f2, f2
lbl_801E00B4:
/* 801E00B4 001DBD14  C0 66 00 08 */	lfs f3, 8(r6)
/* 801E00B8 001DBD18  C0 02 96 50 */	lfs f0, lbl_80641C50-_SDA2_BASE_(r2)
/* 801E00BC 001DBD1C  FC 03 00 40 */	fcmpo cr0, f3, f0
/* 801E00C0 001DBD20  40 81 00 08 */	ble lbl_801E00C8
/* 801E00C4 001DBD24  48 00 00 08 */	b lbl_801E00CC
lbl_801E00C8:
/* 801E00C8 001DBD28  FC 60 18 50 */	fneg f3, f3
lbl_801E00CC:
/* 801E00CC 001DBD2C  FC 01 10 40 */	fcmpo cr0, f1, f2
/* 801E00D0 001DBD30  40 81 00 1C */	ble lbl_801E00EC
/* 801E00D4 001DBD34  FC 01 18 40 */	fcmpo cr0, f1, f3
/* 801E00D8 001DBD38  40 81 00 0C */	ble lbl_801E00E4
/* 801E00DC 001DBD3C  38 C0 00 00 */	li r6, 0
/* 801E00E0 001DBD40  48 00 00 20 */	b lbl_801E0100
lbl_801E00E4:
/* 801E00E4 001DBD44  38 C0 00 02 */	li r6, 2
/* 801E00E8 001DBD48  48 00 00 18 */	b lbl_801E0100
lbl_801E00EC:
/* 801E00EC 001DBD4C  FC 02 18 40 */	fcmpo cr0, f2, f3
/* 801E00F0 001DBD50  40 81 00 0C */	ble lbl_801E00FC
/* 801E00F4 001DBD54  38 C0 00 01 */	li r6, 1
/* 801E00F8 001DBD58  48 00 00 08 */	b lbl_801E0100
lbl_801E00FC:
/* 801E00FC 001DBD5C  38 C0 00 02 */	li r6, 2
lbl_801E0100:
/* 801E0100 001DBD60  8B C4 00 03 */	lbz r30, 3(r4)
/* 801E0104 001DBD64  2C 06 00 01 */	cmpwi r6, 1
/* 801E0108 001DBD68  83 E4 00 04 */	lwz r31, 4(r4)
/* 801E010C 001DBD6C  38 1E FF FF */	addi r0, r30, -1
/* 801E0110 001DBD70  80 63 01 3C */	lwz r3, 0x13c(r3)
/* 801E0114 001DBD74  54 00 08 3C */	slwi r0, r0, 1
/* 801E0118 001DBD78  7C 9F 02 14 */	add r4, r31, r0
/* 801E011C 001DBD7C  7C 1F 02 2E */	lhzx r0, r31, r0
/* 801E0120 001DBD80  1C 00 00 0C */	mulli r0, r0, 0xc
/* 801E0124 001DBD84  7C 63 02 14 */	add r3, r3, r0
/* 801E0128 001DBD88  40 82 00 EC */	bne lbl_801E0214
/* 801E012C 001DBD8C  C0 25 00 00 */	lfs f1, 0(r5)
/* 801E0130 001DBD90  C0 03 00 00 */	lfs f0, 0(r3)
/* 801E0134 001DBD94  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 801E0138 001DBD98  4C 41 13 82 */	cror 2, 1, 2
/* 801E013C 001DBD9C  7C A0 00 26 */	mfcr r5
/* 801E0140 001DBDA0  54 A5 1F FE */	rlwinm r5, r5, 3, 0x1f, 0x1f
lbl_801E0144:
/* 801E0144 001DBDA4  A0 1F 00 00 */	lhz r0, 0(r31)
/* 801E0148 001DBDA8  A0 64 00 00 */	lhz r3, 0(r4)
/* 801E014C 001DBDAC  1C 00 00 0C */	mulli r0, r0, 0xc
/* 801E0150 001DBDB0  80 9B 01 3C */	lwz r4, 0x13c(r27)
/* 801E0154 001DBDB4  C0 3C 00 00 */	lfs f1, 0(r28)
/* 801E0158 001DBDB8  7C 04 04 2E */	lfsx f0, r4, r0
/* 801E015C 001DBDBC  7F 24 02 14 */	add r25, r4, r0
/* 801E0160 001DBDC0  1C 03 00 0C */	mulli r0, r3, 0xc
/* 801E0164 001DBDC4  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 801E0168 001DBDC8  7C 64 02 14 */	add r3, r4, r0
/* 801E016C 001DBDCC  4C 41 13 82 */	cror 2, 1, 2
/* 801E0170 001DBDD0  7F 40 00 26 */	mfcr r26
/* 801E0174 001DBDD4  57 5A 1F FE */	rlwinm r26, r26, 3, 0x1f, 0x1f
/* 801E0178 001DBDD8  7C 05 D0 00 */	cmpw r5, r26
/* 801E017C 001DBDDC  41 82 00 80 */	beq lbl_801E01FC
/* 801E0180 001DBDE0  7F 24 CB 78 */	mr r4, r25
/* 801E0184 001DBDE4  38 A1 00 44 */	addi r5, r1, 0x44
/* 801E0188 001DBDE8  48 09 CB 61 */	bl PSVECSubtract
/* 801E018C 001DBDEC  C0 41 00 44 */	lfs f2, 0x44(r1)
/* 801E0190 001DBDF0  7F 23 CB 78 */	mr r3, r25
/* 801E0194 001DBDF4  C0 21 00 48 */	lfs f1, 0x48(r1)
/* 801E0198 001DBDF8  7F 84 E3 78 */	mr r4, r28
/* 801E019C 001DBDFC  C0 01 00 4C */	lfs f0, 0x4c(r1)
/* 801E01A0 001DBE00  38 A1 00 38 */	addi r5, r1, 0x38
/* 801E01A4 001DBE04  D0 41 00 5C */	stfs f2, 0x5c(r1)
/* 801E01A8 001DBE08  D0 21 00 60 */	stfs f1, 0x60(r1)
/* 801E01AC 001DBE0C  D0 01 00 64 */	stfs f0, 0x64(r1)
/* 801E01B0 001DBE10  48 09 CB 39 */	bl PSVECSubtract
/* 801E01B4 001DBE14  C0 81 00 38 */	lfs f4, 0x38(r1)
/* 801E01B8 001DBE18  C0 41 00 40 */	lfs f2, 0x40(r1)
/* 801E01BC 001DBE1C  C0 21 00 64 */	lfs f1, 0x64(r1)
/* 801E01C0 001DBE20  C0 01 00 5C */	lfs f0, 0x5c(r1)
/* 801E01C4 001DBE24  EC 24 00 72 */	fmuls f1, f4, f1
/* 801E01C8 001DBE28  C0 61 00 3C */	lfs f3, 0x3c(r1)
/* 801E01CC 001DBE2C  EC 02 00 32 */	fmuls f0, f2, f0
/* 801E01D0 001DBE30  D0 81 00 50 */	stfs f4, 0x50(r1)
/* 801E01D4 001DBE34  D0 61 00 54 */	stfs f3, 0x54(r1)
/* 801E01D8 001DBE38  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 801E01DC 001DBE3C  D0 41 00 58 */	stfs f2, 0x58(r1)
/* 801E01E0 001DBE40  4C 41 13 82 */	cror 2, 1, 2
/* 801E01E4 001DBE44  7C 00 00 26 */	mfcr r0
/* 801E01E8 001DBE48  54 00 1F FE */	rlwinm r0, r0, 3, 0x1f, 0x1f
/* 801E01EC 001DBE4C  7C 1A 00 00 */	cmpw r26, r0
/* 801E01F0 001DBE50  40 82 00 0C */	bne lbl_801E01FC
/* 801E01F4 001DBE54  7F A0 00 34 */	cntlzw r0, r29
/* 801E01F8 001DBE58  54 1D D9 7E */	srwi r29, r0, 5
lbl_801E01FC:
/* 801E01FC 001DBE5C  37 DE FF FF */	addic. r30, r30, -1
/* 801E0200 001DBE60  7F E4 FB 78 */	mr r4, r31
/* 801E0204 001DBE64  7F 45 D3 78 */	mr r5, r26
/* 801E0208 001DBE68  3B FF 00 02 */	addi r31, r31, 2
/* 801E020C 001DBE6C  40 82 FF 38 */	bne lbl_801E0144
/* 801E0210 001DBE70  48 00 01 D8 */	b lbl_801E03E8
lbl_801E0214:
/* 801E0214 001DBE74  2C 06 00 02 */	cmpwi r6, 2
/* 801E0218 001DBE78  40 82 00 EC */	bne lbl_801E0304
/* 801E021C 001DBE7C  C0 25 00 04 */	lfs f1, 4(r5)
/* 801E0220 001DBE80  C0 03 00 04 */	lfs f0, 4(r3)
/* 801E0224 001DBE84  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 801E0228 001DBE88  4C 41 13 82 */	cror 2, 1, 2
/* 801E022C 001DBE8C  7C A0 00 26 */	mfcr r5
/* 801E0230 001DBE90  54 A5 1F FE */	rlwinm r5, r5, 3, 0x1f, 0x1f
lbl_801E0234:
/* 801E0234 001DBE94  A0 1F 00 00 */	lhz r0, 0(r31)
/* 801E0238 001DBE98  A0 64 00 00 */	lhz r3, 0(r4)
/* 801E023C 001DBE9C  1C 00 00 0C */	mulli r0, r0, 0xc
/* 801E0240 001DBEA0  80 9B 01 3C */	lwz r4, 0x13c(r27)
/* 801E0244 001DBEA4  C0 3C 00 04 */	lfs f1, 4(r28)
/* 801E0248 001DBEA8  7F 44 02 14 */	add r26, r4, r0
/* 801E024C 001DBEAC  C0 1A 00 04 */	lfs f0, 4(r26)
/* 801E0250 001DBEB0  1C 03 00 0C */	mulli r0, r3, 0xc
/* 801E0254 001DBEB4  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 801E0258 001DBEB8  7C 64 02 14 */	add r3, r4, r0
/* 801E025C 001DBEBC  4C 41 13 82 */	cror 2, 1, 2
/* 801E0260 001DBEC0  7F 20 00 26 */	mfcr r25
/* 801E0264 001DBEC4  57 39 1F FE */	rlwinm r25, r25, 3, 0x1f, 0x1f
/* 801E0268 001DBEC8  7C 05 C8 00 */	cmpw r5, r25
/* 801E026C 001DBECC  41 82 00 80 */	beq lbl_801E02EC
/* 801E0270 001DBED0  7F 44 D3 78 */	mr r4, r26
/* 801E0274 001DBED4  38 A1 00 2C */	addi r5, r1, 0x2c
/* 801E0278 001DBED8  48 09 CA 71 */	bl PSVECSubtract
/* 801E027C 001DBEDC  C0 41 00 2C */	lfs f2, 0x2c(r1)
/* 801E0280 001DBEE0  7F 43 D3 78 */	mr r3, r26
/* 801E0284 001DBEE4  C0 21 00 30 */	lfs f1, 0x30(r1)
/* 801E0288 001DBEE8  7F 84 E3 78 */	mr r4, r28
/* 801E028C 001DBEEC  C0 01 00 34 */	lfs f0, 0x34(r1)
/* 801E0290 001DBEF0  38 A1 00 20 */	addi r5, r1, 0x20
/* 801E0294 001DBEF4  D0 41 00 5C */	stfs f2, 0x5c(r1)
/* 801E0298 001DBEF8  D0 21 00 60 */	stfs f1, 0x60(r1)
/* 801E029C 001DBEFC  D0 01 00 64 */	stfs f0, 0x64(r1)
/* 801E02A0 001DBF00  48 09 CA 49 */	bl PSVECSubtract
/* 801E02A4 001DBF04  C0 81 00 20 */	lfs f4, 0x20(r1)
/* 801E02A8 001DBF08  C0 61 00 24 */	lfs f3, 0x24(r1)
/* 801E02AC 001DBF0C  C0 21 00 5C */	lfs f1, 0x5c(r1)
/* 801E02B0 001DBF10  C0 01 00 60 */	lfs f0, 0x60(r1)
/* 801E02B4 001DBF14  EC 23 00 72 */	fmuls f1, f3, f1
/* 801E02B8 001DBF18  C0 41 00 28 */	lfs f2, 0x28(r1)
/* 801E02BC 001DBF1C  EC 04 00 32 */	fmuls f0, f4, f0
/* 801E02C0 001DBF20  D0 81 00 50 */	stfs f4, 0x50(r1)
/* 801E02C4 001DBF24  D0 61 00 54 */	stfs f3, 0x54(r1)
/* 801E02C8 001DBF28  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 801E02CC 001DBF2C  D0 41 00 58 */	stfs f2, 0x58(r1)
/* 801E02D0 001DBF30  4C 41 13 82 */	cror 2, 1, 2
/* 801E02D4 001DBF34  7C 00 00 26 */	mfcr r0
/* 801E02D8 001DBF38  54 00 1F FE */	rlwinm r0, r0, 3, 0x1f, 0x1f
/* 801E02DC 001DBF3C  7C 19 00 00 */	cmpw r25, r0
/* 801E02E0 001DBF40  40 82 00 0C */	bne lbl_801E02EC
/* 801E02E4 001DBF44  7F A0 00 34 */	cntlzw r0, r29
/* 801E02E8 001DBF48  54 1D D9 7E */	srwi r29, r0, 5
lbl_801E02EC:
/* 801E02EC 001DBF4C  37 DE FF FF */	addic. r30, r30, -1
/* 801E02F0 001DBF50  7F E4 FB 78 */	mr r4, r31
/* 801E02F4 001DBF54  7F 25 CB 78 */	mr r5, r25
/* 801E02F8 001DBF58  3B FF 00 02 */	addi r31, r31, 2
/* 801E02FC 001DBF5C  40 82 FF 38 */	bne lbl_801E0234
/* 801E0300 001DBF60  48 00 00 E8 */	b lbl_801E03E8
lbl_801E0304:
/* 801E0304 001DBF64  C0 25 00 08 */	lfs f1, 8(r5)
/* 801E0308 001DBF68  C0 03 00 08 */	lfs f0, 8(r3)
/* 801E030C 001DBF6C  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 801E0310 001DBF70  4C 41 13 82 */	cror 2, 1, 2
/* 801E0314 001DBF74  7C A0 00 26 */	mfcr r5
/* 801E0318 001DBF78  54 A5 1F FE */	rlwinm r5, r5, 3, 0x1f, 0x1f
lbl_801E031C:
/* 801E031C 001DBF7C  A0 1F 00 00 */	lhz r0, 0(r31)
/* 801E0320 001DBF80  A0 64 00 00 */	lhz r3, 0(r4)
/* 801E0324 001DBF84  1C 00 00 0C */	mulli r0, r0, 0xc
/* 801E0328 001DBF88  80 9B 01 3C */	lwz r4, 0x13c(r27)
/* 801E032C 001DBF8C  C0 3C 00 08 */	lfs f1, 8(r28)
/* 801E0330 001DBF90  7F 44 02 14 */	add r26, r4, r0
/* 801E0334 001DBF94  C0 1A 00 08 */	lfs f0, 8(r26)
/* 801E0338 001DBF98  1C 03 00 0C */	mulli r0, r3, 0xc
/* 801E033C 001DBF9C  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 801E0340 001DBFA0  7C 64 02 14 */	add r3, r4, r0
/* 801E0344 001DBFA4  4C 41 13 82 */	cror 2, 1, 2
/* 801E0348 001DBFA8  7F 20 00 26 */	mfcr r25
/* 801E034C 001DBFAC  57 39 1F FE */	rlwinm r25, r25, 3, 0x1f, 0x1f
/* 801E0350 001DBFB0  7C 05 C8 00 */	cmpw r5, r25
/* 801E0354 001DBFB4  41 82 00 80 */	beq lbl_801E03D4
/* 801E0358 001DBFB8  7F 44 D3 78 */	mr r4, r26
/* 801E035C 001DBFBC  38 A1 00 14 */	addi r5, r1, 0x14
/* 801E0360 001DBFC0  48 09 C9 89 */	bl PSVECSubtract
/* 801E0364 001DBFC4  C0 41 00 14 */	lfs f2, 0x14(r1)
/* 801E0368 001DBFC8  7F 43 D3 78 */	mr r3, r26
/* 801E036C 001DBFCC  C0 21 00 18 */	lfs f1, 0x18(r1)
/* 801E0370 001DBFD0  7F 84 E3 78 */	mr r4, r28
/* 801E0374 001DBFD4  C0 01 00 1C */	lfs f0, 0x1c(r1)
/* 801E0378 001DBFD8  38 A1 00 08 */	addi r5, r1, 8
/* 801E037C 001DBFDC  D0 41 00 5C */	stfs f2, 0x5c(r1)
/* 801E0380 001DBFE0  D0 21 00 60 */	stfs f1, 0x60(r1)
/* 801E0384 001DBFE4  D0 01 00 64 */	stfs f0, 0x64(r1)
/* 801E0388 001DBFE8  48 09 C9 61 */	bl PSVECSubtract
/* 801E038C 001DBFEC  C0 61 00 0C */	lfs f3, 0xc(r1)
/* 801E0390 001DBFF0  C0 41 00 10 */	lfs f2, 0x10(r1)
/* 801E0394 001DBFF4  C0 21 00 60 */	lfs f1, 0x60(r1)
/* 801E0398 001DBFF8  C0 01 00 64 */	lfs f0, 0x64(r1)
/* 801E039C 001DBFFC  EC 22 00 72 */	fmuls f1, f2, f1
/* 801E03A0 001DC000  C0 81 00 08 */	lfs f4, 8(r1)
/* 801E03A4 001DC004  EC 03 00 32 */	fmuls f0, f3, f0
/* 801E03A8 001DC008  D0 61 00 54 */	stfs f3, 0x54(r1)
/* 801E03AC 001DC00C  D0 81 00 50 */	stfs f4, 0x50(r1)
/* 801E03B0 001DC010  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 801E03B4 001DC014  D0 41 00 58 */	stfs f2, 0x58(r1)
/* 801E03B8 001DC018  4C 41 13 82 */	cror 2, 1, 2
/* 801E03BC 001DC01C  7C 00 00 26 */	mfcr r0
/* 801E03C0 001DC020  54 00 1F FE */	rlwinm r0, r0, 3, 0x1f, 0x1f
/* 801E03C4 001DC024  7C 19 00 00 */	cmpw r25, r0
/* 801E03C8 001DC028  40 82 00 0C */	bne lbl_801E03D4
/* 801E03CC 001DC02C  7F A0 00 34 */	cntlzw r0, r29
/* 801E03D0 001DC030  54 1D D9 7E */	srwi r29, r0, 5
lbl_801E03D4:
/* 801E03D4 001DC034  37 DE FF FF */	addic. r30, r30, -1
/* 801E03D8 001DC038  7F E4 FB 78 */	mr r4, r31
/* 801E03DC 001DC03C  7F 25 CB 78 */	mr r5, r25
/* 801E03E0 001DC040  3B FF 00 02 */	addi r31, r31, 2
/* 801E03E4 001DC044  40 82 FF 38 */	bne lbl_801E031C
lbl_801E03E8:
/* 801E03E8 001DC048  39 61 00 90 */	addi r11, r1, 0x90
/* 801E03EC 001DC04C  7F A3 EB 78 */	mr r3, r29
/* 801E03F0 001DC050  4B FE 6D 7D */	bl _restgpr_25
/* 801E03F4 001DC054  80 01 00 94 */	lwz r0, 0x94(r1)
/* 801E03F8 001DC058  7C 08 03 A6 */	mtlr r0
/* 801E03FC 001DC05C  38 21 00 90 */	addi r1, r1, 0x90
/* 801E0400 001DC060  4E 80 00 20 */	blr

.global func_801E0404
func_801E0404:
/* 801E0404 001DC064  94 21 FE E0 */	stwu r1, -0x120(r1)
/* 801E0408 001DC068  7C 08 02 A6 */	mflr r0
/* 801E040C 001DC06C  90 01 01 24 */	stw r0, 0x124(r1)
/* 801E0410 001DC070  DB E1 01 10 */	stfd f31, 0x110(r1)
/* 801E0414 001DC074  F3 E1 01 18 */	psq_st f31, 280(r1), 0, qr0
/* 801E0418 001DC078  DB C1 01 00 */	stfd f30, 0x100(r1)
/* 801E041C 001DC07C  F3 C1 01 08 */	psq_st f30, 264(r1), 0, qr0
/* 801E0420 001DC080  39 61 01 00 */	addi r11, r1, 0x100
/* 801E0424 001DC084  4B FE 6C E9 */	bl _savegpr_20
/* 801E0428 001DC088  7C 75 1B 78 */	mr r21, r3
/* 801E042C 001DC08C  7C 96 23 78 */	mr r22, r4
/* 801E0430 001DC090  7C B7 2B 78 */	mr r23, r5
/* 801E0434 001DC094  7C D8 33 78 */	mr r24, r6
/* 801E0438 001DC098  7C F9 3B 78 */	mr r25, r7
/* 801E043C 001DC09C  7D 1A 43 78 */	mr r26, r8
/* 801E0440 001DC0A0  7D 3B 4B 78 */	mr r27, r9
/* 801E0444 001DC0A4  48 01 38 9D */	bl func_801F3CE0
/* 801E0448 001DC0A8  2C 03 00 00 */	cmpwi r3, 0
/* 801E044C 001DC0AC  40 82 00 0C */	bne lbl_801E0458
/* 801E0450 001DC0B0  38 60 00 00 */	li r3, 0
/* 801E0454 001DC0B4  48 00 03 4C */	b lbl_801E07A0
lbl_801E0458:
/* 801E0458 001DC0B8  80 15 01 3C */	lwz r0, 0x13c(r21)
/* 801E045C 001DC0BC  2C 00 00 00 */	cmpwi r0, 0
/* 801E0460 001DC0C0  41 82 00 10 */	beq lbl_801E0470
/* 801E0464 001DC0C4  80 15 01 40 */	lwz r0, 0x140(r21)
/* 801E0468 001DC0C8  2C 00 00 00 */	cmpwi r0, 0
/* 801E046C 001DC0CC  40 82 00 0C */	bne lbl_801E0478
lbl_801E0470:
/* 801E0470 001DC0D0  38 60 00 00 */	li r3, 0
/* 801E0474 001DC0D4  48 00 03 2C */	b lbl_801E07A0
lbl_801E0478:
/* 801E0478 001DC0D8  38 75 00 D0 */	addi r3, r21, 0xd0
/* 801E047C 001DC0DC  38 81 00 98 */	addi r4, r1, 0x98
/* 801E0480 001DC0E0  48 09 BC 29 */	bl PSMTXInverse
/* 801E0484 001DC0E4  7E C4 B3 78 */	mr r4, r22
/* 801E0488 001DC0E8  38 61 00 98 */	addi r3, r1, 0x98
/* 801E048C 001DC0EC  38 A1 00 8C */	addi r5, r1, 0x8c
/* 801E0490 001DC0F0  48 09 C5 6D */	bl PSMTXMultVec
/* 801E0494 001DC0F4  7E E4 BB 78 */	mr r4, r23
/* 801E0498 001DC0F8  38 61 00 98 */	addi r3, r1, 0x98
/* 801E049C 001DC0FC  38 A1 00 80 */	addi r5, r1, 0x80
/* 801E04A0 001DC100  48 09 C5 5D */	bl PSMTXMultVec
/* 801E04A4 001DC104  C0 01 00 80 */	lfs f0, 0x80(r1)
/* 801E04A8 001DC108  C0 35 01 20 */	lfs f1, 0x120(r21)
/* 801E04AC 001DC10C  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801E04B0 001DC110  40 80 00 18 */	bge lbl_801E04C8
/* 801E04B4 001DC114  C0 01 00 8C */	lfs f0, 0x8c(r1)
/* 801E04B8 001DC118  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801E04BC 001DC11C  40 80 00 0C */	bge lbl_801E04C8
/* 801E04C0 001DC120  38 60 00 00 */	li r3, 0
/* 801E04C4 001DC124  48 00 02 DC */	b lbl_801E07A0
lbl_801E04C8:
/* 801E04C8 001DC128  C0 01 00 84 */	lfs f0, 0x84(r1)
/* 801E04CC 001DC12C  C0 35 01 24 */	lfs f1, 0x124(r21)
/* 801E04D0 001DC130  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801E04D4 001DC134  40 80 00 18 */	bge lbl_801E04EC
/* 801E04D8 001DC138  C0 01 00 90 */	lfs f0, 0x90(r1)
/* 801E04DC 001DC13C  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801E04E0 001DC140  40 80 00 0C */	bge lbl_801E04EC
/* 801E04E4 001DC144  38 60 00 00 */	li r3, 0
/* 801E04E8 001DC148  48 00 02 B8 */	b lbl_801E07A0
lbl_801E04EC:
/* 801E04EC 001DC14C  C0 01 00 88 */	lfs f0, 0x88(r1)
/* 801E04F0 001DC150  C0 35 01 28 */	lfs f1, 0x128(r21)
/* 801E04F4 001DC154  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801E04F8 001DC158  40 80 00 18 */	bge lbl_801E0510
/* 801E04FC 001DC15C  C0 01 00 94 */	lfs f0, 0x94(r1)
/* 801E0500 001DC160  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801E0504 001DC164  40 80 00 0C */	bge lbl_801E0510
/* 801E0508 001DC168  38 60 00 00 */	li r3, 0
/* 801E050C 001DC16C  48 00 02 94 */	b lbl_801E07A0
lbl_801E0510:
/* 801E0510 001DC170  C0 01 00 80 */	lfs f0, 0x80(r1)
/* 801E0514 001DC174  C0 35 01 2C */	lfs f1, 0x12c(r21)
/* 801E0518 001DC178  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801E051C 001DC17C  40 81 00 18 */	ble lbl_801E0534
/* 801E0520 001DC180  C0 01 00 8C */	lfs f0, 0x8c(r1)
/* 801E0524 001DC184  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801E0528 001DC188  40 81 00 0C */	ble lbl_801E0534
/* 801E052C 001DC18C  38 60 00 00 */	li r3, 0
/* 801E0530 001DC190  48 00 02 70 */	b lbl_801E07A0
lbl_801E0534:
/* 801E0534 001DC194  C0 01 00 84 */	lfs f0, 0x84(r1)
/* 801E0538 001DC198  C0 35 01 30 */	lfs f1, 0x130(r21)
/* 801E053C 001DC19C  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801E0540 001DC1A0  40 81 00 18 */	ble lbl_801E0558
/* 801E0544 001DC1A4  C0 01 00 90 */	lfs f0, 0x90(r1)
/* 801E0548 001DC1A8  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801E054C 001DC1AC  40 81 00 0C */	ble lbl_801E0558
/* 801E0550 001DC1B0  38 60 00 00 */	li r3, 0
/* 801E0554 001DC1B4  48 00 02 4C */	b lbl_801E07A0
lbl_801E0558:
/* 801E0558 001DC1B8  C0 01 00 88 */	lfs f0, 0x88(r1)
/* 801E055C 001DC1BC  C0 35 01 34 */	lfs f1, 0x134(r21)
/* 801E0560 001DC1C0  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801E0564 001DC1C4  40 81 00 18 */	ble lbl_801E057C
/* 801E0568 001DC1C8  C0 01 00 94 */	lfs f0, 0x94(r1)
/* 801E056C 001DC1CC  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 801E0570 001DC1D0  40 81 00 0C */	ble lbl_801E057C
/* 801E0574 001DC1D4  38 60 00 00 */	li r3, 0
/* 801E0578 001DC1D8  48 00 02 28 */	b lbl_801E07A0
lbl_801E057C:
/* 801E057C 001DC1DC  A0 15 01 06 */	lhz r0, 0x106(r21)
/* 801E0580 001DC1E0  54 00 06 F7 */	rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 801E0584 001DC1E4  41 82 00 0C */	beq lbl_801E0590
/* 801E0588 001DC1E8  7E A3 AB 78 */	mr r3, r21
/* 801E058C 001DC1EC  4B FF FA 71 */	bl func_801DFFFC
lbl_801E0590:
/* 801E0590 001DC1F0  38 61 00 80 */	addi r3, r1, 0x80
/* 801E0594 001DC1F4  38 81 00 8C */	addi r4, r1, 0x8c
/* 801E0598 001DC1F8  38 A1 00 74 */	addi r5, r1, 0x74
/* 801E059C 001DC1FC  48 09 C7 4D */	bl PSVECSubtract
/* 801E05A0 001DC200  C0 02 96 5C */	lfs f0, lbl_80641C5C-_SDA2_BASE_(r2)
/* 801E05A4 001DC204  3B E0 00 00 */	li r31, 0
/* 801E05A8 001DC208  C3 E2 96 50 */	lfs f31, lbl_80641C50-_SDA2_BASE_(r2)
/* 801E05AC 001DC20C  3B 80 00 00 */	li r28, 0
/* 801E05B0 001DC210  D0 1A 00 00 */	stfs f0, 0(r26)
/* 801E05B4 001DC214  80 75 01 44 */	lwz r3, 0x144(r21)
/* 801E05B8 001DC218  83 C3 00 40 */	lwz r30, 0x40(r3)
/* 801E05BC 001DC21C  A3 A3 00 34 */	lhz r29, 0x34(r3)
/* 801E05C0 001DC220  48 00 01 D0 */	b lbl_801E0790
lbl_801E05C4:
/* 801E05C4 001DC224  A0 1E 00 00 */	lhz r0, 0(r30)
/* 801E05C8 001DC228  38 61 00 74 */	addi r3, r1, 0x74
/* 801E05CC 001DC22C  80 DE 00 04 */	lwz r6, 4(r30)
/* 801E05D0 001DC230  38 81 00 68 */	addi r4, r1, 0x68
/* 801E05D4 001DC234  1C 00 00 0C */	mulli r0, r0, 0xc
/* 801E05D8 001DC238  80 B5 01 40 */	lwz r5, 0x140(r21)
/* 801E05DC 001DC23C  A0 C6 00 00 */	lhz r6, 0(r6)
/* 801E05E0 001DC240  80 F5 01 3C */	lwz r7, 0x13c(r21)
/* 801E05E4 001DC244  7C 05 04 6E */	lfsux f0, r5, r0
/* 801E05E8 001DC248  1C 06 00 0C */	mulli r0, r6, 0xc
/* 801E05EC 001DC24C  D0 01 00 68 */	stfs f0, 0x68(r1)
/* 801E05F0 001DC250  7E 87 02 14 */	add r20, r7, r0
/* 801E05F4 001DC254  C0 05 00 04 */	lfs f0, 4(r5)
/* 801E05F8 001DC258  D0 01 00 6C */	stfs f0, 0x6c(r1)
/* 801E05FC 001DC25C  C0 05 00 08 */	lfs f0, 8(r5)
/* 801E0600 001DC260  D0 01 00 70 */	stfs f0, 0x70(r1)
/* 801E0604 001DC264  48 09 C7 C5 */	bl PSVECDotProduct
/* 801E0608 001DC268  FC 01 F8 40 */	fcmpo cr0, f1, f31
/* 801E060C 001DC26C  FF C0 08 90 */	fmr f30, f1
/* 801E0610 001DC270  4C 41 13 82 */	cror 2, 1, 2
/* 801E0614 001DC274  40 82 00 38 */	bne lbl_801E064C
/* 801E0618 001DC278  88 1E 00 02 */	lbz r0, 2(r30)
/* 801E061C 001DC27C  2C 00 00 00 */	cmpwi r0, 0
/* 801E0620 001DC280  41 82 01 68 */	beq lbl_801E0788
/* 801E0624 001DC284  C0 41 00 68 */	lfs f2, 0x68(r1)
/* 801E0628 001DC288  FF C0 08 50 */	fneg f30, f1
/* 801E062C 001DC28C  C0 21 00 6C */	lfs f1, 0x6c(r1)
/* 801E0630 001DC290  C0 01 00 70 */	lfs f0, 0x70(r1)
/* 801E0634 001DC294  FC 40 10 50 */	fneg f2, f2
/* 801E0638 001DC298  FC 20 08 50 */	fneg f1, f1
/* 801E063C 001DC29C  FC 00 00 50 */	fneg f0, f0
/* 801E0640 001DC2A0  D0 41 00 68 */	stfs f2, 0x68(r1)
/* 801E0644 001DC2A4  D0 21 00 6C */	stfs f1, 0x6c(r1)
/* 801E0648 001DC2A8  D0 01 00 70 */	stfs f0, 0x70(r1)
lbl_801E064C:
/* 801E064C 001DC2AC  7E 83 A3 78 */	mr r3, r20
/* 801E0650 001DC2B0  38 81 00 8C */	addi r4, r1, 0x8c
/* 801E0654 001DC2B4  38 A1 00 50 */	addi r5, r1, 0x50
/* 801E0658 001DC2B8  48 09 C6 91 */	bl PSVECSubtract
/* 801E065C 001DC2BC  38 61 00 50 */	addi r3, r1, 0x50
/* 801E0660 001DC2C0  38 81 00 68 */	addi r4, r1, 0x68
/* 801E0664 001DC2C4  48 09 C7 65 */	bl PSVECDotProduct
/* 801E0668 001DC2C8  FC 01 F8 40 */	fcmpo cr0, f1, f31
/* 801E066C 001DC2CC  41 81 01 1C */	bgt lbl_801E0788
/* 801E0670 001DC2D0  FC 01 F0 40 */	fcmpo cr0, f1, f30
/* 801E0674 001DC2D4  4C 40 13 82 */	cror 2, 0, 2
/* 801E0678 001DC2D8  41 82 01 10 */	beq lbl_801E0788
/* 801E067C 001DC2DC  EF C1 F0 24 */	fdivs f30, f1, f30
/* 801E0680 001DC2E0  38 61 00 74 */	addi r3, r1, 0x74
/* 801E0684 001DC2E4  38 81 00 38 */	addi r4, r1, 0x38
/* 801E0688 001DC2E8  FC 20 F0 90 */	fmr f1, f30
/* 801E068C 001DC2EC  48 09 C6 81 */	bl PSVECScale
/* 801E0690 001DC2F0  38 61 00 8C */	addi r3, r1, 0x8c
/* 801E0694 001DC2F4  38 81 00 38 */	addi r4, r1, 0x38
/* 801E0698 001DC2F8  38 A1 00 44 */	addi r5, r1, 0x44
/* 801E069C 001DC2FC  48 09 C6 29 */	bl PSVECAdd
/* 801E06A0 001DC300  C0 41 00 44 */	lfs f2, 0x44(r1)
/* 801E06A4 001DC304  7E A3 AB 78 */	mr r3, r21
/* 801E06A8 001DC308  C0 21 00 48 */	lfs f1, 0x48(r1)
/* 801E06AC 001DC30C  7F C4 F3 78 */	mr r4, r30
/* 801E06B0 001DC310  C0 01 00 4C */	lfs f0, 0x4c(r1)
/* 801E06B4 001DC314  38 A1 00 5C */	addi r5, r1, 0x5c
/* 801E06B8 001DC318  D0 41 00 5C */	stfs f2, 0x5c(r1)
/* 801E06BC 001DC31C  D0 21 00 60 */	stfs f1, 0x60(r1)
/* 801E06C0 001DC320  D0 01 00 64 */	stfs f0, 0x64(r1)
/* 801E06C4 001DC324  4B FF F9 95 */	bl func_801E0058
/* 801E06C8 001DC328  2C 03 00 00 */	cmpwi r3, 0
/* 801E06CC 001DC32C  41 82 00 BC */	beq lbl_801E0788
/* 801E06D0 001DC330  C0 1A 00 00 */	lfs f0, 0(r26)
/* 801E06D4 001DC334  FC 00 F0 40 */	fcmpo cr0, f0, f30
/* 801E06D8 001DC338  40 81 00 B0 */	ble lbl_801E0788
/* 801E06DC 001DC33C  7E E3 BB 78 */	mr r3, r23
/* 801E06E0 001DC340  7E C4 B3 78 */	mr r4, r22
/* 801E06E4 001DC344  38 A1 00 14 */	addi r5, r1, 0x14
/* 801E06E8 001DC348  48 09 C6 01 */	bl PSVECSubtract
/* 801E06EC 001DC34C  FC 20 F0 90 */	fmr f1, f30
/* 801E06F0 001DC350  38 61 00 14 */	addi r3, r1, 0x14
/* 801E06F4 001DC354  38 81 00 20 */	addi r4, r1, 0x20
/* 801E06F8 001DC358  48 09 C6 15 */	bl PSVECScale
/* 801E06FC 001DC35C  7E C3 B3 78 */	mr r3, r22
/* 801E0700 001DC360  38 81 00 20 */	addi r4, r1, 0x20
/* 801E0704 001DC364  38 A1 00 2C */	addi r5, r1, 0x2c
/* 801E0708 001DC368  48 09 C5 BD */	bl PSVECAdd
/* 801E070C 001DC36C  C0 01 00 2C */	lfs f0, 0x2c(r1)
/* 801E0710 001DC370  7F 04 C3 78 */	mr r4, r24
/* 801E0714 001DC374  7F 05 C3 78 */	mr r5, r24
/* 801E0718 001DC378  38 75 00 D0 */	addi r3, r21, 0xd0
/* 801E071C 001DC37C  D0 19 00 00 */	stfs f0, 0(r25)
/* 801E0720 001DC380  C0 01 00 30 */	lfs f0, 0x30(r1)
/* 801E0724 001DC384  D0 19 00 04 */	stfs f0, 4(r25)
/* 801E0728 001DC388  C0 01 00 34 */	lfs f0, 0x34(r1)
/* 801E072C 001DC38C  D0 19 00 08 */	stfs f0, 8(r25)
/* 801E0730 001DC390  C0 01 00 68 */	lfs f0, 0x68(r1)
/* 801E0734 001DC394  D0 18 00 00 */	stfs f0, 0(r24)
/* 801E0738 001DC398  C0 01 00 6C */	lfs f0, 0x6c(r1)
/* 801E073C 001DC39C  D0 18 00 04 */	stfs f0, 4(r24)
/* 801E0740 001DC3A0  C0 01 00 70 */	lfs f0, 0x70(r1)
/* 801E0744 001DC3A4  D0 18 00 08 */	stfs f0, 8(r24)
/* 801E0748 001DC3A8  48 09 C3 09 */	bl PSMTXMultVecSR
/* 801E074C 001DC3AC  7F 03 C3 78 */	mr r3, r24
/* 801E0750 001DC3B0  7F 04 C3 78 */	mr r4, r24
/* 801E0754 001DC3B4  48 09 C5 D5 */	bl PSVECNormalize
/* 801E0758 001DC3B8  C0 22 96 78 */	lfs f1, lbl_80641C78-_SDA2_BASE_(r2)
/* 801E075C 001DC3BC  7F 03 C3 78 */	mr r3, r24
/* 801E0760 001DC3C0  38 81 00 08 */	addi r4, r1, 8
/* 801E0764 001DC3C4  48 09 C5 A9 */	bl PSVECScale
/* 801E0768 001DC3C8  7F 23 CB 78 */	mr r3, r25
/* 801E076C 001DC3CC  7F 25 CB 78 */	mr r5, r25
/* 801E0770 001DC3D0  38 81 00 08 */	addi r4, r1, 8
/* 801E0774 001DC3D4  48 09 C5 51 */	bl PSVECAdd
/* 801E0778 001DC3D8  2C 1B 00 00 */	cmpwi r27, 0
/* 801E077C 001DC3DC  D3 DA 00 00 */	stfs f30, 0(r26)
/* 801E0780 001DC3E0  3B E0 00 01 */	li r31, 1
/* 801E0784 001DC3E4  41 82 00 18 */	beq lbl_801E079C
lbl_801E0788:
/* 801E0788 001DC3E8  3B 9C 00 01 */	addi r28, r28, 1
/* 801E078C 001DC3EC  3B DE 00 08 */	addi r30, r30, 8
lbl_801E0790:
/* 801E0790 001DC3F0  57 80 04 3E */	clrlwi r0, r28, 0x10
/* 801E0794 001DC3F4  7C 00 E8 40 */	cmplw r0, r29
/* 801E0798 001DC3F8  41 80 FE 2C */	blt lbl_801E05C4
lbl_801E079C:
/* 801E079C 001DC3FC  7F E3 FB 78 */	mr r3, r31
lbl_801E07A0:
/* 801E07A0 001DC400  E3 E1 01 18 */	psq_l f31, 280(r1), 0, qr0
/* 801E07A4 001DC404  CB E1 01 10 */	lfd f31, 0x110(r1)
/* 801E07A8 001DC408  E3 C1 01 08 */	psq_l f30, 264(r1), 0, qr0
/* 801E07AC 001DC40C  39 61 01 00 */	addi r11, r1, 0x100
/* 801E07B0 001DC410  CB C1 01 00 */	lfd f30, 0x100(r1)
/* 801E07B4 001DC414  4B FE 69 A5 */	bl _restgpr_20
/* 801E07B8 001DC418  80 01 01 24 */	lwz r0, 0x124(r1)
/* 801E07BC 001DC41C  7C 08 03 A6 */	mtlr r0
/* 801E07C0 001DC420  38 21 01 20 */	addi r1, r1, 0x120
/* 801E07C4 001DC424  4E 80 00 20 */	blr

.global func_801E07C8
func_801E07C8:
/* 801E07C8 001DC428  38 A0 00 01 */	li r5, 1
/* 801E07CC 001DC42C  38 6D A0 A0 */	addi r3, r13, lbl_8063F360-_SDA_BASE_
/* 801E07D0 001DC430  38 80 00 04 */	li r4, 4
/* 801E07D4 001DC434  38 00 00 00 */	li r0, 0
/* 801E07D8 001DC438  98 AD A0 A0 */	stb r5, lbl_8063F360-_SDA_BASE_(r13)
/* 801E07DC 001DC43C  B0 83 00 02 */	sth r4, 2(r3)
/* 801E07E0 001DC440  98 03 00 04 */	stb r0, 4(r3)
/* 801E07E4 001DC444  4E 80 00 20 */	blr