summaryrefslogtreecommitdiff
path: root/asm/code_800400E8.s
blob: b371b51798f68f2e540bee5c9172235e111c0b40 (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
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
.include "macros.inc"

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

.global func_800400E8
func_800400E8:
/* 800400E8 0003BD48  C0 05 00 00 */	lfs f0, 0(r5)
/* 800400EC 0003BD4C  C0 C4 00 00 */	lfs f6, 0(r4)
/* 800400F0 0003BD50  C0 65 00 04 */	lfs f3, 4(r5)
/* 800400F4 0003BD54  EC A0 30 28 */	fsubs f5, f0, f6
/* 800400F8 0003BD58  C0 84 00 04 */	lfs f4, 4(r4)
/* 800400FC 0003BD5C  C0 05 00 08 */	lfs f0, 8(r5)
/* 80040100 0003BD60  C0 44 00 08 */	lfs f2, 8(r4)
/* 80040104 0003BD64  EC 63 20 28 */	fsubs f3, f3, f4
/* 80040108 0003BD68  EC A1 01 72 */	fmuls f5, f1, f5
/* 8004010C 0003BD6C  EC 00 10 28 */	fsubs f0, f0, f2
/* 80040110 0003BD70  EC 61 00 F2 */	fmuls f3, f1, f3
/* 80040114 0003BD74  EC A6 28 2A */	fadds f5, f6, f5
/* 80040118 0003BD78  EC 01 00 32 */	fmuls f0, f1, f0
/* 8004011C 0003BD7C  EC 24 18 2A */	fadds f1, f4, f3
/* 80040120 0003BD80  D0 A3 00 00 */	stfs f5, 0(r3)
/* 80040124 0003BD84  EC 02 00 2A */	fadds f0, f2, f0
/* 80040128 0003BD88  D0 23 00 04 */	stfs f1, 4(r3)
/* 8004012C 0003BD8C  D0 03 00 08 */	stfs f0, 8(r3)
/* 80040130 0003BD90  4E 80 00 20 */	blr
lbl_80040134:
/* 80040134 0003BD94  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80040138 0003BD98  7C 08 02 A6 */	mflr r0
/* 8004013C 0003BD9C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80040140 0003BDA0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80040144 0003BDA4  48 00 00 B1 */	bl func_800401F4
/* 80040148 0003BDA8  2C 03 00 00 */	cmpwi r3, 0
/* 8004014C 0003BDAC  7C 7F 1B 78 */	mr r31, r3
/* 80040150 0003BDB0  41 82 00 10 */	beq lbl_80040160
/* 80040154 0003BDB4  4B FC 72 49 */	bl func_8000739C
/* 80040158 0003BDB8  7F E3 FB 78 */	mr r3, r31
/* 8004015C 0003BDBC  48 00 02 55 */	bl func_800403B0
lbl_80040160:
/* 80040160 0003BDC0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80040164 0003BDC4  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80040168 0003BDC8  7C 08 03 A6 */	mtlr r0
/* 8004016C 0003BDCC  38 21 00 10 */	addi r1, r1, 0x10
/* 80040170 0003BDD0  4E 80 00 20 */	blr
lbl_80040174:
/* 80040174 0003BDD4  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80040178 0003BDD8  7C 08 02 A6 */	mflr r0
/* 8004017C 0003BDDC  90 01 00 14 */	stw r0, 0x14(r1)
/* 80040180 0003BDE0  48 00 00 75 */	bl func_800401F4
/* 80040184 0003BDE4  2C 03 00 00 */	cmpwi r3, 0
/* 80040188 0003BDE8  41 82 00 08 */	beq lbl_80040190
/* 8004018C 0003BDEC  48 00 02 A9 */	bl func_80040434
lbl_80040190:
/* 80040190 0003BDF0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80040194 0003BDF4  7C 08 03 A6 */	mtlr r0
/* 80040198 0003BDF8  38 21 00 10 */	addi r1, r1, 0x10
/* 8004019C 0003BDFC  4E 80 00 20 */	blr

.global func_800401A0
func_800401A0:
/* 800401A0 0003BE00  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 800401A4 0003BE04  7C 08 02 A6 */	mflr r0
/* 800401A8 0003BE08  38 60 37 E4 */	li r3, 0x37e4
/* 800401AC 0003BE0C  90 01 00 14 */	stw r0, 0x14(r1)
/* 800401B0 0003BE10  48 19 A8 81 */	bl __nw__FUl
/* 800401B4 0003BE14  2C 03 00 00 */	cmpwi r3, 0
/* 800401B8 0003BE18  41 82 00 08 */	beq lbl_800401C0
/* 800401BC 0003BE1C  48 00 00 B9 */	bl func_80040274
lbl_800401C0:
/* 800401C0 0003BE20  3C 80 80 04 */	lis r4, lbl_80040134@ha
/* 800401C4 0003BE24  3C A0 80 04 */	lis r5, lbl_80040174@ha
/* 800401C8 0003BE28  90 6D 97 D8 */	stw r3, lbl_8063EA98-_SDA_BASE_(r13)
/* 800401CC 0003BE2C  38 84 01 34 */	addi r4, r4, lbl_80040134@l
/* 800401D0 0003BE30  80 6D A4 B8 */	lwz r3, lbl_8063F778-_SDA_BASE_(r13)
/* 800401D4 0003BE34  38 A5 01 74 */	addi r5, r5, lbl_80040174@l
/* 800401D8 0003BE38  38 C0 00 03 */	li r6, 3
/* 800401DC 0003BE3C  38 E0 00 0C */	li r7, 0xc
/* 800401E0 0003BE40  48 1F E9 79 */	bl func_8023EB58
/* 800401E4 0003BE44  80 01 00 14 */	lwz r0, 0x14(r1)
/* 800401E8 0003BE48  7C 08 03 A6 */	mtlr r0
/* 800401EC 0003BE4C  38 21 00 10 */	addi r1, r1, 0x10
/* 800401F0 0003BE50  4E 80 00 20 */	blr

.global func_800401F4
func_800401F4:
/* 800401F4 0003BE54  80 6D 97 D8 */	lwz r3, lbl_8063EA98-_SDA_BASE_(r13)
/* 800401F8 0003BE58  4E 80 00 20 */	blr

.global func_800401FC
func_800401FC:
/* 800401FC 0003BE5C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80040200 0003BE60  7C 08 02 A6 */	mflr r0
/* 80040204 0003BE64  90 01 00 24 */	stw r0, 0x24(r1)
/* 80040208 0003BE68  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8004020C 0003BE6C  7C 7F 1B 78 */	mr r31, r3
/* 80040210 0003BE70  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80040214 0003BE74  3B C3 00 04 */	addi r30, r3, 4
/* 80040218 0003BE78  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8004021C 0003BE7C  3B A0 00 00 */	li r29, 0
/* 80040220 0003BE80  93 81 00 10 */	stw r28, 0x10(r1)
/* 80040224 0003BE84  7C 9C 23 78 */	mr r28, r4
lbl_80040228:
/* 80040228 0003BE88  88 1F 00 04 */	lbz r0, 4(r31)
/* 8004022C 0003BE8C  2C 00 00 00 */	cmpwi r0, 0
/* 80040230 0003BE90  41 82 00 10 */	beq lbl_80040240
/* 80040234 0003BE94  7F C3 F3 78 */	mr r3, r30
/* 80040238 0003BE98  7F 84 E3 78 */	mr r4, r28
/* 8004023C 0003BE9C  48 00 45 35 */	bl func_80044770
lbl_80040240:
/* 80040240 0003BEA0  3B BD 00 01 */	addi r29, r29, 1
/* 80040244 0003BEA4  3B DE 06 FC */	addi r30, r30, 0x6fc
/* 80040248 0003BEA8  28 1D 00 08 */	cmplwi r29, 8
/* 8004024C 0003BEAC  3B FF 06 FC */	addi r31, r31, 0x6fc
/* 80040250 0003BEB0  41 80 FF D8 */	blt lbl_80040228
/* 80040254 0003BEB4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80040258 0003BEB8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8004025C 0003BEBC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80040260 0003BEC0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80040264 0003BEC4  83 81 00 10 */	lwz r28, 0x10(r1)
/* 80040268 0003BEC8  7C 08 03 A6 */	mtlr r0
/* 8004026C 0003BECC  38 21 00 20 */	addi r1, r1, 0x20
/* 80040270 0003BED0  4E 80 00 20 */	blr

.global func_80040274
func_80040274:
/* 80040274 0003BED4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80040278 0003BED8  7C 08 02 A6 */	mflr r0
/* 8004027C 0003BEDC  90 01 00 24 */	stw r0, 0x24(r1)
/* 80040280 0003BEE0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80040284 0003BEE4  3B E3 37 E4 */	addi r31, r3, 0x37e4
/* 80040288 0003BEE8  93 C1 00 18 */	stw r30, 0x18(r1)
/* 8004028C 0003BEEC  3B C3 00 04 */	addi r30, r3, 4
/* 80040290 0003BEF0  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80040294 0003BEF4  7C 7D 1B 78 */	mr r29, r3
lbl_80040298:
/* 80040298 0003BEF8  7F C3 F3 78 */	mr r3, r30
/* 8004029C 0003BEFC  48 00 0C 09 */	bl func_80040EA4
/* 800402A0 0003BF00  3B DE 06 FC */	addi r30, r30, 0x6fc
/* 800402A4 0003BF04  7C 1E F8 40 */	cmplw r30, r31
/* 800402A8 0003BF08  41 80 FF F0 */	blt lbl_80040298
/* 800402AC 0003BF0C  38 00 00 00 */	li r0, 0
/* 800402B0 0003BF10  7F A3 EB 78 */	mr r3, r29
/* 800402B4 0003BF14  98 1D 00 00 */	stb r0, 0(r29)
/* 800402B8 0003BF18  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 800402BC 0003BF1C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 800402C0 0003BF20  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 800402C4 0003BF24  80 01 00 24 */	lwz r0, 0x24(r1)
/* 800402C8 0003BF28  7C 08 03 A6 */	mtlr r0
/* 800402CC 0003BF2C  38 21 00 20 */	addi r1, r1, 0x20
/* 800402D0 0003BF30  4E 80 00 20 */	blr

.global func_800402D4
func_800402D4:
/* 800402D4 0003BF34  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 800402D8 0003BF38  7C 08 02 A6 */	mflr r0
/* 800402DC 0003BF3C  90 01 00 24 */	stw r0, 0x24(r1)
/* 800402E0 0003BF40  38 00 00 08 */	li r0, 8
/* 800402E4 0003BF44  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 800402E8 0003BF48  93 C1 00 18 */	stw r30, 0x18(r1)
/* 800402EC 0003BF4C  3B C0 00 00 */	li r30, 0
/* 800402F0 0003BF50  93 A1 00 14 */	stw r29, 0x14(r1)
/* 800402F4 0003BF54  7C 7D 1B 78 */	mr r29, r3
/* 800402F8 0003BF58  7F A4 EB 78 */	mr r4, r29
/* 800402FC 0003BF5C  7C 09 03 A6 */	mtctr r0
lbl_80040300:
/* 80040300 0003BF60  88 04 00 04 */	lbz r0, 4(r4)
/* 80040304 0003BF64  2C 00 00 00 */	cmpwi r0, 0
/* 80040308 0003BF68  40 82 00 24 */	bne lbl_8004032C
/* 8004030C 0003BF6C  1F FE 06 FC */	mulli r31, r30, 0x6fc
/* 80040310 0003BF70  7C 63 FA 14 */	add r3, r3, r31
/* 80040314 0003BF74  38 63 00 04 */	addi r3, r3, 4
/* 80040318 0003BF78  48 00 0C 89 */	bl func_80040FA0
/* 8004031C 0003BF7C  38 7E 00 01 */	addi r3, r30, 1
/* 80040320 0003BF80  7C 9D FA 14 */	add r4, r29, r31
/* 80040324 0003BF84  90 64 04 B8 */	stw r3, 0x4b8(r4)
/* 80040328 0003BF88  48 00 00 14 */	b lbl_8004033C
lbl_8004032C:
/* 8004032C 0003BF8C  38 84 06 FC */	addi r4, r4, 0x6fc
/* 80040330 0003BF90  3B DE 00 01 */	addi r30, r30, 1
/* 80040334 0003BF94  42 00 FF CC */	bdnz lbl_80040300
/* 80040338 0003BF98  38 60 00 00 */	li r3, 0
lbl_8004033C:
/* 8004033C 0003BF9C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80040340 0003BFA0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80040344 0003BFA4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80040348 0003BFA8  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8004034C 0003BFAC  7C 08 03 A6 */	mtlr r0
/* 80040350 0003BFB0  38 21 00 20 */	addi r1, r1, 0x20
/* 80040354 0003BFB4  4E 80 00 20 */	blr

.global func_80040358
func_80040358:
/* 80040358 0003BFB8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 8004035C 0003BFBC  7C 08 02 A6 */	mflr r0
/* 80040360 0003BFC0  90 01 00 14 */	stw r0, 0x14(r1)
/* 80040364 0003BFC4  48 00 00 21 */	bl func_80040384
/* 80040368 0003BFC8  2C 03 00 00 */	cmpwi r3, 0
/* 8004036C 0003BFCC  41 82 00 08 */	beq lbl_80040374
/* 80040370 0003BFD0  48 00 0C F5 */	bl func_80041064
lbl_80040374:
/* 80040374 0003BFD4  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80040378 0003BFD8  7C 08 03 A6 */	mtlr r0
/* 8004037C 0003BFDC  38 21 00 10 */	addi r1, r1, 0x10
/* 80040380 0003BFE0  4E 80 00 20 */	blr

.global func_80040384
func_80040384:
/* 80040384 0003BFE4  2C 04 00 00 */	cmpwi r4, 0
/* 80040388 0003BFE8  41 82 00 0C */	beq lbl_80040394
/* 8004038C 0003BFEC  28 04 00 08 */	cmplwi r4, 8
/* 80040390 0003BFF0  41 80 00 0C */	blt lbl_8004039C
lbl_80040394:
/* 80040394 0003BFF4  38 60 00 00 */	li r3, 0
/* 80040398 0003BFF8  4E 80 00 20 */	blr
lbl_8004039C:
/* 8004039C 0003BFFC  38 04 FF FF */	addi r0, r4, -1
/* 800403A0 0003C000  1C 00 06 FC */	mulli r0, r0, 0x6fc
/* 800403A4 0003C004  7C 63 02 14 */	add r3, r3, r0
/* 800403A8 0003C008  38 63 00 04 */	addi r3, r3, 4
/* 800403AC 0003C00C  4E 80 00 20 */	blr

.global func_800403B0
func_800403B0:
/* 800403B0 0003C010  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 800403B4 0003C014  7C 08 02 A6 */	mflr r0
/* 800403B8 0003C018  90 01 00 24 */	stw r0, 0x24(r1)
/* 800403BC 0003C01C  DB E1 00 18 */	stfd f31, 0x18(r1)
/* 800403C0 0003C020  FF E0 08 90 */	fmr f31, f1
/* 800403C4 0003C024  93 E1 00 14 */	stw r31, 0x14(r1)
/* 800403C8 0003C028  93 C1 00 10 */	stw r30, 0x10(r1)
/* 800403CC 0003C02C  93 A1 00 0C */	stw r29, 0xc(r1)
/* 800403D0 0003C030  88 03 00 00 */	lbz r0, 0(r3)
/* 800403D4 0003C034  2C 00 00 00 */	cmpwi r0, 0
/* 800403D8 0003C038  41 82 00 3C */	beq lbl_80040414
/* 800403DC 0003C03C  7C 7F 1B 78 */	mr r31, r3
/* 800403E0 0003C040  3B C3 00 04 */	addi r30, r3, 4
/* 800403E4 0003C044  3B A0 00 00 */	li r29, 0
lbl_800403E8:
/* 800403E8 0003C048  88 1F 00 04 */	lbz r0, 4(r31)
/* 800403EC 0003C04C  2C 00 00 00 */	cmpwi r0, 0
/* 800403F0 0003C050  41 82 00 10 */	beq lbl_80040400
/* 800403F4 0003C054  FC 20 F8 90 */	fmr f1, f31
/* 800403F8 0003C058  7F C3 F3 78 */	mr r3, r30
/* 800403FC 0003C05C  48 00 37 6D */	bl func_80043B68
lbl_80040400:
/* 80040400 0003C060  3B BD 00 01 */	addi r29, r29, 1
/* 80040404 0003C064  3B DE 06 FC */	addi r30, r30, 0x6fc
/* 80040408 0003C068  28 1D 00 08 */	cmplwi r29, 8
/* 8004040C 0003C06C  3B FF 06 FC */	addi r31, r31, 0x6fc
/* 80040410 0003C070  41 80 FF D8 */	blt lbl_800403E8
lbl_80040414:
/* 80040414 0003C074  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80040418 0003C078  CB E1 00 18 */	lfd f31, 0x18(r1)
/* 8004041C 0003C07C  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 80040420 0003C080  83 C1 00 10 */	lwz r30, 0x10(r1)
/* 80040424 0003C084  83 A1 00 0C */	lwz r29, 0xc(r1)
/* 80040428 0003C088  7C 08 03 A6 */	mtlr r0
/* 8004042C 0003C08C  38 21 00 20 */	addi r1, r1, 0x20
/* 80040430 0003C090  4E 80 00 20 */	blr

.global func_80040434
func_80040434:
/* 80040434 0003C094  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80040438 0003C098  7C 08 02 A6 */	mflr r0
/* 8004043C 0003C09C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80040440 0003C0A0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80040444 0003C0A4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80040448 0003C0A8  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8004044C 0003C0AC  88 03 00 00 */	lbz r0, 0(r3)
/* 80040450 0003C0B0  2C 00 00 00 */	cmpwi r0, 0
/* 80040454 0003C0B4  41 82 00 38 */	beq lbl_8004048C
/* 80040458 0003C0B8  7C 7F 1B 78 */	mr r31, r3
/* 8004045C 0003C0BC  3B C3 00 04 */	addi r30, r3, 4
/* 80040460 0003C0C0  3B A0 00 00 */	li r29, 0
lbl_80040464:
/* 80040464 0003C0C4  88 1F 00 04 */	lbz r0, 4(r31)
/* 80040468 0003C0C8  2C 00 00 00 */	cmpwi r0, 0
/* 8004046C 0003C0CC  41 82 00 0C */	beq lbl_80040478
/* 80040470 0003C0D0  7F C3 F3 78 */	mr r3, r30
/* 80040474 0003C0D4  48 00 40 29 */	bl func_8004449C
lbl_80040478:
/* 80040478 0003C0D8  3B BD 00 01 */	addi r29, r29, 1
/* 8004047C 0003C0DC  3B DE 06 FC */	addi r30, r30, 0x6fc
/* 80040480 0003C0E0  28 1D 00 08 */	cmplwi r29, 8
/* 80040484 0003C0E4  3B FF 06 FC */	addi r31, r31, 0x6fc
/* 80040488 0003C0E8  41 80 FF DC */	blt lbl_80040464
lbl_8004048C:
/* 8004048C 0003C0EC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80040490 0003C0F0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80040494 0003C0F4  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80040498 0003C0F8  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 8004049C 0003C0FC  7C 08 03 A6 */	mtlr r0
/* 800404A0 0003C100  38 21 00 20 */	addi r1, r1, 0x20
/* 800404A4 0003C104  4E 80 00 20 */	blr

.global func_800404A8
func_800404A8:
/* 800404A8 0003C108  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 800404AC 0003C10C  38 00 00 00 */	li r0, 0
/* 800404B0 0003C110  90 03 00 10 */	stw r0, 0x10(r3)
/* 800404B4 0003C114  D0 03 00 14 */	stfs f0, 0x14(r3)
/* 800404B8 0003C118  D0 03 00 18 */	stfs f0, 0x18(r3)
/* 800404BC 0003C11C  D0 03 00 1C */	stfs f0, 0x1c(r3)
/* 800404C0 0003C120  D0 03 00 50 */	stfs f0, 0x50(r3)
/* 800404C4 0003C124  90 83 00 54 */	stw r4, 0x54(r3)
/* 800404C8 0003C128  98 03 00 00 */	stb r0, 0(r3)
/* 800404CC 0003C12C  90 03 00 04 */	stw r0, 4(r3)
/* 800404D0 0003C130  D0 03 00 08 */	stfs f0, 8(r3)
/* 800404D4 0003C134  90 03 00 58 */	stw r0, 0x58(r3)
/* 800404D8 0003C138  90 03 00 5C */	stw r0, 0x5c(r3)
/* 800404DC 0003C13C  90 03 00 60 */	stw r0, 0x60(r3)
/* 800404E0 0003C140  90 03 00 64 */	stw r0, 0x64(r3)
/* 800404E4 0003C144  90 03 00 68 */	stw r0, 0x68(r3)
/* 800404E8 0003C148  90 03 00 6C */	stw r0, 0x6c(r3)
/* 800404EC 0003C14C  90 03 00 70 */	stw r0, 0x70(r3)
/* 800404F0 0003C150  90 03 00 74 */	stw r0, 0x74(r3)
/* 800404F4 0003C154  4E 80 00 20 */	blr

.global func_800404F8
func_800404F8:
/* 800404F8 0003C158  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 800404FC 0003C15C  7C 08 02 A6 */	mflr r0
/* 80040500 0003C160  2C 04 00 00 */	cmpwi r4, 0
/* 80040504 0003C164  90 01 00 24 */	stw r0, 0x24(r1)
/* 80040508 0003C168  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 8004050C 0003C16C  7C BF 2B 78 */	mr r31, r5
/* 80040510 0003C170  41 80 00 58 */	blt lbl_80040568
/* 80040514 0003C174  2C 04 00 04 */	cmpwi r4, 4
/* 80040518 0003C178  40 80 00 50 */	bge lbl_80040568
/* 8004051C 0003C17C  54 80 18 38 */	slwi r0, r4, 3
/* 80040520 0003C180  7C 63 02 14 */	add r3, r3, r0
/* 80040524 0003C184  80 83 00 58 */	lwz r4, 0x58(r3)
/* 80040528 0003C188  2C 04 00 00 */	cmpwi r4, 0
/* 8004052C 0003C18C  41 82 00 3C */	beq lbl_80040568
/* 80040530 0003C190  80 A3 00 5C */	lwz r5, 0x5c(r3)
/* 80040534 0003C194  2C 05 00 00 */	cmpwi r5, 0
/* 80040538 0003C198  40 82 00 08 */	bne lbl_80040540
/* 8004053C 0003C19C  38 A0 00 13 */	li r5, 0x13
lbl_80040540:
/* 80040540 0003C1A0  38 61 00 08 */	addi r3, r1, 8
/* 80040544 0003C1A4  4B FF 93 59 */	bl func_8003989C
/* 80040548 0003C1A8  C0 01 00 08 */	lfs f0, 8(r1)
/* 8004054C 0003C1AC  38 60 00 01 */	li r3, 1
/* 80040550 0003C1B0  D0 1F 00 00 */	stfs f0, 0(r31)
/* 80040554 0003C1B4  C0 01 00 0C */	lfs f0, 0xc(r1)
/* 80040558 0003C1B8  D0 1F 00 04 */	stfs f0, 4(r31)
/* 8004055C 0003C1BC  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 80040560 0003C1C0  D0 1F 00 08 */	stfs f0, 8(r31)
/* 80040564 0003C1C4  48 00 00 08 */	b lbl_8004056C
lbl_80040568:
/* 80040568 0003C1C8  38 60 00 00 */	li r3, 0
lbl_8004056C:
/* 8004056C 0003C1CC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80040570 0003C1D0  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80040574 0003C1D4  7C 08 03 A6 */	mtlr r0
/* 80040578 0003C1D8  38 21 00 20 */	addi r1, r1, 0x20
/* 8004057C 0003C1DC  4E 80 00 20 */	blr

.global func_80040580
func_80040580:
/* 80040580 0003C1E0  38 80 00 00 */	li r4, 0
/* 80040584 0003C1E4  48 00 00 04 */	b func_80040588

.global func_80040588
func_80040588:
/* 80040588 0003C1E8  94 21 FF A0 */	stwu r1, -0x60(r1)
/* 8004058C 0003C1EC  7C 08 02 A6 */	mflr r0
/* 80040590 0003C1F0  90 01 00 64 */	stw r0, 0x64(r1)
/* 80040594 0003C1F4  93 E1 00 5C */	stw r31, 0x5c(r1)
/* 80040598 0003C1F8  93 C1 00 58 */	stw r30, 0x58(r1)
/* 8004059C 0003C1FC  7C 9E 23 78 */	mr r30, r4
/* 800405A0 0003C200  93 A1 00 54 */	stw r29, 0x54(r1)
/* 800405A4 0003C204  7C 7D 1B 78 */	mr r29, r3
/* 800405A8 0003C208  80 03 00 10 */	lwz r0, 0x10(r3)
/* 800405AC 0003C20C  80 A3 00 54 */	lwz r5, 0x54(r3)
/* 800405B0 0003C210  2C 00 00 03 */	cmpwi r0, 3
/* 800405B4 0003C214  41 82 01 E0 */	beq lbl_80040794
/* 800405B8 0003C218  40 80 00 14 */	bge lbl_800405CC
/* 800405BC 0003C21C  2C 00 00 01 */	cmpwi r0, 1
/* 800405C0 0003C220  41 82 00 18 */	beq lbl_800405D8
/* 800405C4 0003C224  40 80 00 6C */	bge lbl_80040630
/* 800405C8 0003C228  48 00 01 CC */	b lbl_80040794
lbl_800405CC:
/* 800405CC 0003C22C  2C 00 00 05 */	cmpwi r0, 5
/* 800405D0 0003C230  40 80 01 C4 */	bge lbl_80040794
/* 800405D4 0003C234  48 00 01 58 */	b lbl_8004072C
lbl_800405D8:
/* 800405D8 0003C238  38 A1 00 2C */	addi r5, r1, 0x2c
/* 800405DC 0003C23C  38 80 00 00 */	li r4, 0
/* 800405E0 0003C240  4B FF FF 19 */	bl func_800404F8
/* 800405E4 0003C244  38 61 00 2C */	addi r3, r1, 0x2c
/* 800405E8 0003C248  38 9D 00 44 */	addi r4, r29, 0x44
/* 800405EC 0003C24C  38 A1 00 14 */	addi r5, r1, 0x14
/* 800405F0 0003C250  48 23 C6 D5 */	bl PSVECAdd
/* 800405F4 0003C254  C0 61 00 14 */	lfs f3, 0x14(r1)
/* 800405F8 0003C258  38 7D 00 2C */	addi r3, r29, 0x2c
/* 800405FC 0003C25C  C0 22 82 B4 */	lfs f1, lbl_806408B4-_SDA2_BASE_(r2)
/* 80040600 0003C260  38 9D 00 14 */	addi r4, r29, 0x14
/* 80040604 0003C264  D0 7D 00 14 */	stfs f3, 0x14(r29)
/* 80040608 0003C268  38 A1 00 2C */	addi r5, r1, 0x2c
/* 8004060C 0003C26C  C0 41 00 18 */	lfs f2, 0x18(r1)
/* 80040610 0003C270  D0 5D 00 18 */	stfs f2, 0x18(r29)
/* 80040614 0003C274  C0 01 00 1C */	lfs f0, 0x1c(r1)
/* 80040618 0003C278  D0 1D 00 1C */	stfs f0, 0x1c(r29)
/* 8004061C 0003C27C  D0 7D 00 38 */	stfs f3, 0x38(r29)
/* 80040620 0003C280  D0 5D 00 3C */	stfs f2, 0x3c(r29)
/* 80040624 0003C284  D0 1D 00 40 */	stfs f0, 0x40(r29)
/* 80040628 0003C288  4B FF FA C1 */	bl func_800400E8
/* 8004062C 0003C28C  48 00 01 68 */	b lbl_80040794
lbl_80040630:
/* 80040630 0003C290  38 A1 00 38 */	addi r5, r1, 0x38
/* 80040634 0003C294  38 80 00 00 */	li r4, 0
/* 80040638 0003C298  4B FF FE C1 */	bl func_800404F8
/* 8004063C 0003C29C  2C 03 00 00 */	cmpwi r3, 0
/* 80040640 0003C2A0  41 82 01 54 */	beq lbl_80040794
/* 80040644 0003C2A4  7F A3 EB 78 */	mr r3, r29
/* 80040648 0003C2A8  38 A1 00 44 */	addi r5, r1, 0x44
/* 8004064C 0003C2AC  38 80 00 01 */	li r4, 1
/* 80040650 0003C2B0  4B FF FE A9 */	bl func_800404F8
/* 80040654 0003C2B4  2C 03 00 00 */	cmpwi r3, 0
/* 80040658 0003C2B8  41 82 00 1C */	beq lbl_80040674
/* 8004065C 0003C2BC  C0 22 82 B8 */	lfs f1, lbl_806408B8-_SDA2_BASE_(r2)
/* 80040660 0003C2C0  38 61 00 2C */	addi r3, r1, 0x2c
/* 80040664 0003C2C4  38 81 00 38 */	addi r4, r1, 0x38
/* 80040668 0003C2C8  38 A1 00 44 */	addi r5, r1, 0x44
/* 8004066C 0003C2CC  4B FF FA 7D */	bl func_800400E8
/* 80040670 0003C2D0  48 00 00 1C */	b lbl_8004068C
lbl_80040674:
/* 80040674 0003C2D4  C0 41 00 38 */	lfs f2, 0x38(r1)
/* 80040678 0003C2D8  C0 21 00 3C */	lfs f1, 0x3c(r1)
/* 8004067C 0003C2DC  C0 01 00 40 */	lfs f0, 0x40(r1)
/* 80040680 0003C2E0  D0 41 00 2C */	stfs f2, 0x2c(r1)
/* 80040684 0003C2E4  D0 21 00 30 */	stfs f1, 0x30(r1)
/* 80040688 0003C2E8  D0 01 00 34 */	stfs f0, 0x34(r1)
lbl_8004068C:
/* 8004068C 0003C2EC  38 61 00 2C */	addi r3, r1, 0x2c
/* 80040690 0003C2F0  38 9D 00 44 */	addi r4, r29, 0x44
/* 80040694 0003C2F4  7C 65 1B 78 */	mr r5, r3
/* 80040698 0003C2F8  48 23 C6 2D */	bl PSVECAdd
/* 8004069C 0003C2FC  7F A3 EB 78 */	mr r3, r29
/* 800406A0 0003C300  38 81 00 20 */	addi r4, r1, 0x20
/* 800406A4 0003C304  38 A1 00 2C */	addi r5, r1, 0x2c
/* 800406A8 0003C308  48 00 02 B9 */	bl func_80040960
/* 800406AC 0003C30C  C0 01 00 2C */	lfs f0, 0x2c(r1)
/* 800406B0 0003C310  7C 7F 1B 78 */	mr r31, r3
/* 800406B4 0003C314  C0 22 82 B4 */	lfs f1, lbl_806408B4-_SDA2_BASE_(r2)
/* 800406B8 0003C318  38 7D 00 2C */	addi r3, r29, 0x2c
/* 800406BC 0003C31C  D0 1D 00 38 */	stfs f0, 0x38(r29)
/* 800406C0 0003C320  38 9D 00 14 */	addi r4, r29, 0x14
/* 800406C4 0003C324  38 A1 00 2C */	addi r5, r1, 0x2c
/* 800406C8 0003C328  C0 01 00 30 */	lfs f0, 0x30(r1)
/* 800406CC 0003C32C  D0 1D 00 3C */	stfs f0, 0x3c(r29)
/* 800406D0 0003C330  C0 01 00 34 */	lfs f0, 0x34(r1)
/* 800406D4 0003C334  D0 1D 00 40 */	stfs f0, 0x40(r29)
/* 800406D8 0003C338  4B FF FA 11 */	bl func_800400E8
/* 800406DC 0003C33C  2C 1E 00 00 */	cmpwi r30, 0
/* 800406E0 0003C340  40 82 00 0C */	bne lbl_800406EC
/* 800406E4 0003C344  2C 1F 00 01 */	cmpwi r31, 1
/* 800406E8 0003C348  40 82 00 20 */	bne lbl_80040708
lbl_800406EC:
/* 800406EC 0003C34C  C0 01 00 2C */	lfs f0, 0x2c(r1)
/* 800406F0 0003C350  D0 1D 00 14 */	stfs f0, 0x14(r29)
/* 800406F4 0003C354  C0 01 00 30 */	lfs f0, 0x30(r1)
/* 800406F8 0003C358  D0 1D 00 18 */	stfs f0, 0x18(r29)
/* 800406FC 0003C35C  C0 01 00 34 */	lfs f0, 0x34(r1)
/* 80040700 0003C360  D0 1D 00 1C */	stfs f0, 0x1c(r29)
/* 80040704 0003C364  48 00 00 90 */	b lbl_80040794
lbl_80040708:
/* 80040708 0003C368  2C 1F 00 02 */	cmpwi r31, 2
/* 8004070C 0003C36C  40 82 00 88 */	bne lbl_80040794
/* 80040710 0003C370  C0 01 00 20 */	lfs f0, 0x20(r1)
/* 80040714 0003C374  D0 1D 00 14 */	stfs f0, 0x14(r29)
/* 80040718 0003C378  C0 01 00 24 */	lfs f0, 0x24(r1)
/* 8004071C 0003C37C  D0 1D 00 18 */	stfs f0, 0x18(r29)
/* 80040720 0003C380  C0 01 00 28 */	lfs f0, 0x28(r1)
/* 80040724 0003C384  D0 1D 00 1C */	stfs f0, 0x1c(r29)
/* 80040728 0003C388  48 00 00 6C */	b lbl_80040794
lbl_8004072C:
/* 8004072C 0003C38C  7C A3 2B 78 */	mr r3, r5
/* 80040730 0003C390  48 00 1E 61 */	bl func_80042590
/* 80040734 0003C394  C0 03 00 00 */	lfs f0, 0(r3)
/* 80040738 0003C398  38 9D 00 44 */	addi r4, r29, 0x44
/* 8004073C 0003C39C  38 A1 00 08 */	addi r5, r1, 8
/* 80040740 0003C3A0  D0 01 00 2C */	stfs f0, 0x2c(r1)
/* 80040744 0003C3A4  C0 03 00 04 */	lfs f0, 4(r3)
/* 80040748 0003C3A8  D0 01 00 30 */	stfs f0, 0x30(r1)
/* 8004074C 0003C3AC  C0 03 00 08 */	lfs f0, 8(r3)
/* 80040750 0003C3B0  38 61 00 2C */	addi r3, r1, 0x2c
/* 80040754 0003C3B4  D0 01 00 34 */	stfs f0, 0x34(r1)
/* 80040758 0003C3B8  48 23 C5 6D */	bl PSVECAdd
/* 8004075C 0003C3BC  C0 61 00 08 */	lfs f3, 8(r1)
/* 80040760 0003C3C0  38 7D 00 2C */	addi r3, r29, 0x2c
/* 80040764 0003C3C4  C0 22 82 B4 */	lfs f1, lbl_806408B4-_SDA2_BASE_(r2)
/* 80040768 0003C3C8  38 9D 00 14 */	addi r4, r29, 0x14
/* 8004076C 0003C3CC  D0 7D 00 14 */	stfs f3, 0x14(r29)
/* 80040770 0003C3D0  38 A1 00 2C */	addi r5, r1, 0x2c
/* 80040774 0003C3D4  C0 41 00 0C */	lfs f2, 0xc(r1)
/* 80040778 0003C3D8  D0 5D 00 18 */	stfs f2, 0x18(r29)
/* 8004077C 0003C3DC  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 80040780 0003C3E0  D0 1D 00 1C */	stfs f0, 0x1c(r29)
/* 80040784 0003C3E4  D0 7D 00 38 */	stfs f3, 0x38(r29)
/* 80040788 0003C3E8  D0 5D 00 3C */	stfs f2, 0x3c(r29)
/* 8004078C 0003C3EC  D0 1D 00 40 */	stfs f0, 0x40(r29)
/* 80040790 0003C3F0  4B FF F9 59 */	bl func_800400E8
lbl_80040794:
/* 80040794 0003C3F4  80 01 00 64 */	lwz r0, 0x64(r1)
/* 80040798 0003C3F8  83 E1 00 5C */	lwz r31, 0x5c(r1)
/* 8004079C 0003C3FC  83 C1 00 58 */	lwz r30, 0x58(r1)
/* 800407A0 0003C400  83 A1 00 54 */	lwz r29, 0x54(r1)
/* 800407A4 0003C404  7C 08 03 A6 */	mtlr r0
/* 800407A8 0003C408  38 21 00 60 */	addi r1, r1, 0x60
/* 800407AC 0003C40C  4E 80 00 20 */	blr

.global func_800407B0
func_800407B0:
/* 800407B0 0003C410  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 800407B4 0003C414  7C 08 02 A6 */	mflr r0
/* 800407B8 0003C418  C0 22 82 B0 */	lfs f1, lbl_806408B0-_SDA2_BASE_(r2)
/* 800407BC 0003C41C  90 01 00 44 */	stw r0, 0x44(r1)
/* 800407C0 0003C420  88 03 00 00 */	lbz r0, 0(r3)
/* 800407C4 0003C424  93 E1 00 3C */	stw r31, 0x3c(r1)
/* 800407C8 0003C428  7C 7F 1B 78 */	mr r31, r3
/* 800407CC 0003C42C  2C 00 00 00 */	cmpwi r0, 0
/* 800407D0 0003C430  41 82 00 0C */	beq lbl_800407DC
/* 800407D4 0003C434  C0 23 00 0C */	lfs f1, 0xc(r3)
/* 800407D8 0003C438  48 00 01 3C */	b lbl_80040914
lbl_800407DC:
/* 800407DC 0003C43C  80 03 00 10 */	lwz r0, 0x10(r3)
/* 800407E0 0003C440  2C 00 00 02 */	cmpwi r0, 2
/* 800407E4 0003C444  41 82 00 50 */	beq lbl_80040834
/* 800407E8 0003C448  40 80 01 2C */	bge lbl_80040914
/* 800407EC 0003C44C  2C 00 00 01 */	cmpwi r0, 1
/* 800407F0 0003C450  40 80 00 08 */	bge lbl_800407F8
/* 800407F4 0003C454  48 00 01 20 */	b lbl_80040914
lbl_800407F8:
/* 800407F8 0003C458  80 83 00 58 */	lwz r4, 0x58(r3)
/* 800407FC 0003C45C  2C 04 00 00 */	cmpwi r4, 0
/* 80040800 0003C460  41 82 01 14 */	beq lbl_80040914
/* 80040804 0003C464  80 63 00 5C */	lwz r3, 0x5c(r3)
/* 80040808 0003C468  38 03 FF EB */	addi r0, r3, -21
/* 8004080C 0003C46C  28 00 00 01 */	cmplwi r0, 1
/* 80040810 0003C470  41 81 00 14 */	bgt lbl_80040824
/* 80040814 0003C474  7C 83 23 78 */	mr r3, r4
/* 80040818 0003C478  38 80 00 00 */	li r4, 0
/* 8004081C 0003C47C  4B FF 9D D1 */	bl func_8003A5EC
/* 80040820 0003C480  48 00 00 F4 */	b lbl_80040914
lbl_80040824:
/* 80040824 0003C484  7C 83 23 78 */	mr r3, r4
/* 80040828 0003C488  38 80 00 01 */	li r4, 1
/* 8004082C 0003C48C  4B FF 9D C1 */	bl func_8003A5EC
/* 80040830 0003C490  48 00 00 E4 */	b lbl_80040914
lbl_80040834:
/* 80040834 0003C494  80 83 00 58 */	lwz r4, 0x58(r3)
/* 80040838 0003C498  2C 04 00 00 */	cmpwi r4, 0
/* 8004083C 0003C49C  41 82 00 D8 */	beq lbl_80040914
/* 80040840 0003C4A0  80 03 00 60 */	lwz r0, 0x60(r3)
/* 80040844 0003C4A4  2C 00 00 00 */	cmpwi r0, 0
/* 80040848 0003C4A8  40 82 00 34 */	bne lbl_8004087C
/* 8004084C 0003C4AC  80 63 00 5C */	lwz r3, 0x5c(r3)
/* 80040850 0003C4B0  38 03 FF EB */	addi r0, r3, -21
/* 80040854 0003C4B4  28 00 00 01 */	cmplwi r0, 1
/* 80040858 0003C4B8  41 81 00 14 */	bgt lbl_8004086C
/* 8004085C 0003C4BC  7C 83 23 78 */	mr r3, r4
/* 80040860 0003C4C0  38 80 00 00 */	li r4, 0
/* 80040864 0003C4C4  4B FF 9D 89 */	bl func_8003A5EC
/* 80040868 0003C4C8  48 00 00 AC */	b lbl_80040914
lbl_8004086C:
/* 8004086C 0003C4CC  7C 83 23 78 */	mr r3, r4
/* 80040870 0003C4D0  38 80 00 01 */	li r4, 1
/* 80040874 0003C4D4  4B FF 9D 79 */	bl func_8003A5EC
/* 80040878 0003C4D8  48 00 00 9C */	b lbl_80040914
lbl_8004087C:
/* 8004087C 0003C4DC  7C 04 00 40 */	cmplw r4, r0
/* 80040880 0003C4E0  40 82 00 34 */	bne lbl_800408B4
/* 80040884 0003C4E4  80 63 00 5C */	lwz r3, 0x5c(r3)
/* 80040888 0003C4E8  38 03 FF EB */	addi r0, r3, -21
/* 8004088C 0003C4EC  28 00 00 01 */	cmplwi r0, 1
/* 80040890 0003C4F0  41 81 00 14 */	bgt lbl_800408A4
/* 80040894 0003C4F4  7C 83 23 78 */	mr r3, r4
/* 80040898 0003C4F8  38 80 00 00 */	li r4, 0
/* 8004089C 0003C4FC  4B FF 9D 51 */	bl func_8003A5EC
/* 800408A0 0003C500  48 00 00 74 */	b lbl_80040914
lbl_800408A4:
/* 800408A4 0003C504  7C 83 23 78 */	mr r3, r4
/* 800408A8 0003C508  38 80 00 01 */	li r4, 1
/* 800408AC 0003C50C  4B FF 9D 41 */	bl func_8003A5EC
/* 800408B0 0003C510  48 00 00 64 */	b lbl_80040914
lbl_800408B4:
/* 800408B4 0003C514  80 BF 00 5C */	lwz r5, 0x5c(r31)
/* 800408B8 0003C518  38 61 00 14 */	addi r3, r1, 0x14
/* 800408BC 0003C51C  4B FF AD B9 */	bl func_8003B674
/* 800408C0 0003C520  C0 41 00 14 */	lfs f2, 0x14(r1)
/* 800408C4 0003C524  38 61 00 08 */	addi r3, r1, 8
/* 800408C8 0003C528  C0 21 00 18 */	lfs f1, 0x18(r1)
/* 800408CC 0003C52C  C0 01 00 1C */	lfs f0, 0x1c(r1)
/* 800408D0 0003C530  D0 41 00 20 */	stfs f2, 0x20(r1)
/* 800408D4 0003C534  80 9F 00 60 */	lwz r4, 0x60(r31)
/* 800408D8 0003C538  D0 21 00 24 */	stfs f1, 0x24(r1)
/* 800408DC 0003C53C  80 BF 00 64 */	lwz r5, 0x64(r31)
/* 800408E0 0003C540  D0 01 00 28 */	stfs f0, 0x28(r1)
/* 800408E4 0003C544  4B FF AD 91 */	bl func_8003B674
/* 800408E8 0003C548  C0 41 00 08 */	lfs f2, 8(r1)
/* 800408EC 0003C54C  38 61 00 20 */	addi r3, r1, 0x20
/* 800408F0 0003C550  C0 21 00 0C */	lfs f1, 0xc(r1)
/* 800408F4 0003C554  38 81 00 2C */	addi r4, r1, 0x2c
/* 800408F8 0003C558  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 800408FC 0003C55C  D0 41 00 2C */	stfs f2, 0x2c(r1)
/* 80040900 0003C560  D0 21 00 30 */	stfs f1, 0x30(r1)
/* 80040904 0003C564  D0 01 00 34 */	stfs f0, 0x34(r1)
/* 80040908 0003C568  48 23 C6 C9 */	bl PSVECDistance
/* 8004090C 0003C56C  C0 02 82 B8 */	lfs f0, lbl_806408B8-_SDA2_BASE_(r2)
/* 80040910 0003C570  EC 20 00 72 */	fmuls f1, f0, f1
lbl_80040914:
/* 80040914 0003C574  80 01 00 44 */	lwz r0, 0x44(r1)
/* 80040918 0003C578  83 E1 00 3C */	lwz r31, 0x3c(r1)
/* 8004091C 0003C57C  7C 08 03 A6 */	mtlr r0
/* 80040920 0003C580  38 21 00 40 */	addi r1, r1, 0x40
/* 80040924 0003C584  4E 80 00 20 */	blr

.global func_80040928
func_80040928:
/* 80040928 0003C588  80 03 00 04 */	lwz r0, 4(r3)
/* 8004092C 0003C58C  C0 44 00 00 */	lfs f2, 0(r4)
/* 80040930 0003C590  C0 24 00 04 */	lfs f1, 4(r4)
/* 80040934 0003C594  60 00 00 01 */	ori r0, r0, 1
/* 80040938 0003C598  C0 04 00 08 */	lfs f0, 8(r4)
/* 8004093C 0003C59C  D0 43 00 20 */	stfs f2, 0x20(r3)
/* 80040940 0003C5A0  D0 23 00 24 */	stfs f1, 0x24(r3)
/* 80040944 0003C5A4  D0 03 00 28 */	stfs f0, 0x28(r3)
/* 80040948 0003C5A8  90 03 00 04 */	stw r0, 4(r3)
/* 8004094C 0003C5AC  4E 80 00 20 */	blr

.global dGeomEnable
dGeomEnable:
/* 80040950 0003C5B0  80 03 00 04 */	lwz r0, 4(r3)
/* 80040954 0003C5B4  60 00 00 02 */	ori r0, r0, 2
/* 80040958 0003C5B8  90 03 00 04 */	stw r0, 4(r3)
/* 8004095C 0003C5BC  4E 80 00 20 */	blr

.global func_80040960
func_80040960:
/* 80040960 0003C5C0  94 21 FF A0 */	stwu r1, -0x60(r1)
/* 80040964 0003C5C4  7C 08 02 A6 */	mflr r0
/* 80040968 0003C5C8  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 8004096C 0003C5CC  90 01 00 64 */	stw r0, 0x64(r1)
/* 80040970 0003C5D0  93 E1 00 5C */	stw r31, 0x5c(r1)
/* 80040974 0003C5D4  7C BF 2B 78 */	mr r31, r5
/* 80040978 0003C5D8  93 C1 00 58 */	stw r30, 0x58(r1)
/* 8004097C 0003C5DC  7C 9E 23 78 */	mr r30, r4
/* 80040980 0003C5E0  93 A1 00 54 */	stw r29, 0x54(r1)
/* 80040984 0003C5E4  7C 7D 1B 78 */	mr r29, r3
/* 80040988 0003C5E8  C0 23 00 50 */	lfs f1, 0x50(r3)
/* 8004098C 0003C5EC  80 63 00 54 */	lwz r3, 0x54(r3)
/* 80040990 0003C5F0  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80040994 0003C5F4  80 03 06 CC */	lwz r0, 0x6cc(r3)
/* 80040998 0003C5F8  4C 40 13 82 */	cror 2, 0, 2
/* 8004099C 0003C5FC  41 82 00 0C */	beq lbl_800409A8
/* 800409A0 0003C600  2C 00 00 00 */	cmpwi r0, 0
/* 800409A4 0003C604  40 82 00 0C */	bne lbl_800409B0
lbl_800409A8:
/* 800409A8 0003C608  38 60 00 01 */	li r3, 1
/* 800409AC 0003C60C  48 00 01 18 */	b lbl_80040AC4
lbl_800409B0:
/* 800409B0 0003C610  7F E4 FB 78 */	mr r4, r31
/* 800409B4 0003C614  38 A1 00 28 */	addi r5, r1, 0x28
/* 800409B8 0003C618  48 00 3B 9D */	bl func_80044554
/* 800409BC 0003C61C  2C 03 00 00 */	cmpwi r3, 0
/* 800409C0 0003C620  40 82 00 0C */	bne lbl_800409CC
/* 800409C4 0003C624  38 60 00 01 */	li r3, 1
/* 800409C8 0003C628  48 00 00 FC */	b lbl_80040AC4
lbl_800409CC:
/* 800409CC 0003C62C  80 AD A3 D8 */	lwz r5, render_context_ptr-_SDA_BASE_(r13)
/* 800409D0 0003C630  3C 60 43 30 */	lis r3, 0x4330
/* 800409D4 0003C634  C0 E2 82 B0 */	lfs f7, lbl_806408B0-_SDA2_BASE_(r2)
/* 800409D8 0003C638  A0 85 00 04 */	lhz r4, 4(r5)
/* 800409DC 0003C63C  A0 05 00 06 */	lhz r0, 6(r5)
/* 800409E0 0003C640  90 81 00 3C */	stw r4, 0x3c(r1)
/* 800409E4 0003C644  C8 A2 82 C0 */	lfd f5, lbl_806408C0-_SDA2_BASE_(r2)
/* 800409E8 0003C648  90 61 00 38 */	stw r3, 0x38(r1)
/* 800409EC 0003C64C  C0 42 82 B8 */	lfs f2, lbl_806408B8-_SDA2_BASE_(r2)
/* 800409F0 0003C650  C8 01 00 38 */	lfd f0, 0x38(r1)
/* 800409F4 0003C654  90 01 00 44 */	stw r0, 0x44(r1)
/* 800409F8 0003C658  EC C0 28 28 */	fsubs f6, f0, f5
/* 800409FC 0003C65C  C0 21 00 28 */	lfs f1, 0x28(r1)
/* 80040A00 0003C660  90 61 00 40 */	stw r3, 0x40(r1)
/* 80040A04 0003C664  C0 01 00 2C */	lfs f0, 0x2c(r1)
/* 80040A08 0003C668  EC 66 00 B2 */	fmuls f3, f6, f2
/* 80040A0C 0003C66C  C8 81 00 40 */	lfd f4, 0x40(r1)
/* 80040A10 0003C670  D0 E1 00 18 */	stfs f7, 0x18(r1)
/* 80040A14 0003C674  EC 84 28 28 */	fsubs f4, f4, f5
/* 80040A18 0003C678  EC 21 18 28 */	fsubs f1, f1, f3
/* 80040A1C 0003C67C  D0 E1 00 1C */	stfs f7, 0x1c(r1)
/* 80040A20 0003C680  EC 44 00 B2 */	fmuls f2, f4, f2
/* 80040A24 0003C684  D0 C1 00 20 */	stfs f6, 0x20(r1)
/* 80040A28 0003C688  EC 21 00 72 */	fmuls f1, f1, f1
/* 80040A2C 0003C68C  D0 81 00 24 */	stfs f4, 0x24(r1)
/* 80040A30 0003C690  EC 00 10 28 */	fsubs f0, f0, f2
/* 80040A34 0003C694  D0 61 00 08 */	stfs f3, 8(r1)
/* 80040A38 0003C698  EC 00 00 32 */	fmuls f0, f0, f0
/* 80040A3C 0003C69C  D0 41 00 0C */	stfs f2, 0xc(r1)
/* 80040A40 0003C6A0  EC 21 00 2A */	fadds f1, f1, f0
/* 80040A44 0003C6A4  FC 01 38 40 */	fcmpo cr0, f1, f7
/* 80040A48 0003C6A8  4C 40 13 82 */	cror 2, 0, 2
/* 80040A4C 0003C6AC  40 82 00 08 */	bne lbl_80040A54
/* 80040A50 0003C6B0  48 00 00 0C */	b lbl_80040A5C
lbl_80040A54:
/* 80040A54 0003C6B4  48 19 3D E1 */	bl sqrt
/* 80040A58 0003C6B8  FC E0 08 18 */	frsp f7, f1
lbl_80040A5C:
/* 80040A5C 0003C6BC  C0 5D 00 50 */	lfs f2, 0x50(r29)
/* 80040A60 0003C6C0  FC 02 38 40 */	fcmpo cr0, f2, f7
/* 80040A64 0003C6C4  40 81 00 0C */	ble lbl_80040A70
/* 80040A68 0003C6C8  38 60 00 00 */	li r3, 0
/* 80040A6C 0003C6CC  48 00 00 58 */	b lbl_80040AC4
lbl_80040A70:
/* 80040A70 0003C6D0  C0 21 00 0C */	lfs f1, 0xc(r1)
/* 80040A74 0003C6D4  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80040A78 0003C6D8  EC 61 10 28 */	fsubs f3, f1, f2
/* 80040A7C 0003C6DC  FC 03 00 40 */	fcmpo cr0, f3, f0
/* 80040A80 0003C6E0  4C 40 13 82 */	cror 2, 0, 2
/* 80040A84 0003C6E4  40 82 00 0C */	bne lbl_80040A90
/* 80040A88 0003C6E8  38 60 00 00 */	li r3, 0
/* 80040A8C 0003C6EC  48 00 00 38 */	b lbl_80040AC4
lbl_80040A90:
/* 80040A90 0003C6F0  EC 27 10 28 */	fsubs f1, f7, f2
/* 80040A94 0003C6F4  C0 02 82 BC */	lfs f0, lbl_806408BC-_SDA2_BASE_(r2)
/* 80040A98 0003C6F8  EC 21 18 24 */	fdivs f1, f1, f3
/* 80040A9C 0003C6FC  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80040AA0 0003C700  40 81 00 08 */	ble lbl_80040AA8
/* 80040AA4 0003C704  FC 20 00 90 */	fmr f1, f0
lbl_80040AA8:
/* 80040AA8 0003C708  C0 02 82 B4 */	lfs f0, lbl_806408B4-_SDA2_BASE_(r2)
/* 80040AAC 0003C70C  7F C3 F3 78 */	mr r3, r30
/* 80040AB0 0003C710  7F E5 FB 78 */	mr r5, r31
/* 80040AB4 0003C714  38 9D 00 14 */	addi r4, r29, 0x14
/* 80040AB8 0003C718  EC 21 00 32 */	fmuls f1, f1, f0
/* 80040ABC 0003C71C  4B FF F6 2D */	bl func_800400E8
/* 80040AC0 0003C720  38 60 00 02 */	li r3, 2
lbl_80040AC4:
/* 80040AC4 0003C724  80 01 00 64 */	lwz r0, 0x64(r1)
/* 80040AC8 0003C728  83 E1 00 5C */	lwz r31, 0x5c(r1)
/* 80040ACC 0003C72C  83 C1 00 58 */	lwz r30, 0x58(r1)
/* 80040AD0 0003C730  83 A1 00 54 */	lwz r29, 0x54(r1)
/* 80040AD4 0003C734  7C 08 03 A6 */	mtlr r0
/* 80040AD8 0003C738  38 21 00 60 */	addi r1, r1, 0x60
/* 80040ADC 0003C73C  4E 80 00 20 */	blr

.global func_80040AE0
func_80040AE0:
/* 80040AE0 0003C740  C0 46 00 00 */	lfs f2, 0(r6)
/* 80040AE4 0003C744  38 00 00 01 */	li r0, 1
/* 80040AE8 0003C748  C0 26 00 04 */	lfs f1, 4(r6)
/* 80040AEC 0003C74C  C0 06 00 08 */	lfs f0, 8(r6)
/* 80040AF0 0003C750  90 83 00 58 */	stw r4, 0x58(r3)
/* 80040AF4 0003C754  38 80 00 01 */	li r4, 1
/* 80040AF8 0003C758  D0 43 00 44 */	stfs f2, 0x44(r3)
/* 80040AFC 0003C75C  D0 23 00 48 */	stfs f1, 0x48(r3)
/* 80040B00 0003C760  D0 03 00 4C */	stfs f0, 0x4c(r3)
/* 80040B04 0003C764  90 A3 00 5C */	stw r5, 0x5c(r3)
/* 80040B08 0003C768  90 03 00 10 */	stw r0, 0x10(r3)
/* 80040B0C 0003C76C  4B FF FA 7C */	b func_80040588

.global func_80040B10
func_80040B10:
/* 80040B10 0003C770  C0 44 00 00 */	lfs f2, 0(r4)
/* 80040B14 0003C774  38 00 00 04 */	li r0, 4
/* 80040B18 0003C778  C0 24 00 04 */	lfs f1, 4(r4)
/* 80040B1C 0003C77C  C0 04 00 08 */	lfs f0, 8(r4)
/* 80040B20 0003C780  38 80 00 01 */	li r4, 1
/* 80040B24 0003C784  D0 43 00 44 */	stfs f2, 0x44(r3)
/* 80040B28 0003C788  D0 23 00 48 */	stfs f1, 0x48(r3)
/* 80040B2C 0003C78C  D0 03 00 4C */	stfs f0, 0x4c(r3)
/* 80040B30 0003C790  90 03 00 10 */	stw r0, 0x10(r3)
/* 80040B34 0003C794  4B FF FA 54 */	b func_80040588

.global func_80040B38
func_80040B38:
/* 80040B38 0003C798  2C 04 00 00 */	cmpwi r4, 0
/* 80040B3C 0003C79C  41 82 00 0C */	beq lbl_80040B48
/* 80040B40 0003C7A0  38 00 00 02 */	li r0, 2
/* 80040B44 0003C7A4  90 03 00 10 */	stw r0, 0x10(r3)
lbl_80040B48:
/* 80040B48 0003C7A8  90 83 00 58 */	stw r4, 0x58(r3)
/* 80040B4C 0003C7AC  38 80 00 01 */	li r4, 1
/* 80040B50 0003C7B0  90 A3 00 5C */	stw r5, 0x5c(r3)
/* 80040B54 0003C7B4  90 C3 00 60 */	stw r6, 0x60(r3)
/* 80040B58 0003C7B8  90 E3 00 64 */	stw r7, 0x64(r3)
/* 80040B5C 0003C7BC  D0 23 00 50 */	stfs f1, 0x50(r3)
/* 80040B60 0003C7C0  C0 08 00 00 */	lfs f0, 0(r8)
/* 80040B64 0003C7C4  D0 03 00 44 */	stfs f0, 0x44(r3)
/* 80040B68 0003C7C8  C0 08 00 04 */	lfs f0, 4(r8)
/* 80040B6C 0003C7CC  D0 03 00 48 */	stfs f0, 0x48(r3)
/* 80040B70 0003C7D0  C0 08 00 08 */	lfs f0, 8(r8)
/* 80040B74 0003C7D4  D0 03 00 4C */	stfs f0, 0x4c(r3)
/* 80040B78 0003C7D8  4B FF FA 10 */	b func_80040588

.global func_80040B7C
func_80040B7C:
/* 80040B7C 0003C7DC  2C 04 00 00 */	cmpwi r4, 0
/* 80040B80 0003C7E0  41 80 00 1C */	blt lbl_80040B9C
/* 80040B84 0003C7E4  2C 04 00 04 */	cmpwi r4, 4
/* 80040B88 0003C7E8  40 80 00 14 */	bge lbl_80040B9C
/* 80040B8C 0003C7EC  54 80 18 38 */	slwi r0, r4, 3
/* 80040B90 0003C7F0  7C 63 02 14 */	add r3, r3, r0
/* 80040B94 0003C7F4  80 63 00 58 */	lwz r3, 0x58(r3)
/* 80040B98 0003C7F8  4E 80 00 20 */	blr
lbl_80040B9C:
/* 80040B9C 0003C7FC  38 60 00 00 */	li r3, 0
/* 80040BA0 0003C800  4E 80 00 20 */	blr

.global func_80040BA4
func_80040BA4:
/* 80040BA4 0003C804  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80040BA8 0003C808  7C 08 02 A6 */	mflr r0
/* 80040BAC 0003C80C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80040BB0 0003C810  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80040BB4 0003C814  7C 9F 23 78 */	mr r31, r4
/* 80040BB8 0003C818  38 80 00 01 */	li r4, 1
/* 80040BBC 0003C81C  93 C1 00 08 */	stw r30, 8(r1)
/* 80040BC0 0003C820  7C 7E 1B 78 */	mr r30, r3
/* 80040BC4 0003C824  4B FF F9 C5 */	bl func_80040588
/* 80040BC8 0003C828  93 FE 00 10 */	stw r31, 0x10(r30)
/* 80040BCC 0003C82C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80040BD0 0003C830  83 C1 00 08 */	lwz r30, 8(r1)
/* 80040BD4 0003C834  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80040BD8 0003C838  7C 08 03 A6 */	mtlr r0
/* 80040BDC 0003C83C  38 21 00 10 */	addi r1, r1, 0x10
/* 80040BE0 0003C840  4E 80 00 20 */	blr

.global func_80040BE4
func_80040BE4:
/* 80040BE4 0003C844  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80040BE8 0003C848  7C 08 02 A6 */	mflr r0
/* 80040BEC 0003C84C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80040BF0 0003C850  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80040BF4 0003C854  7C 9F 23 78 */	mr r31, r4
/* 80040BF8 0003C858  38 80 00 00 */	li r4, 0
/* 80040BFC 0003C85C  93 C1 00 08 */	stw r30, 8(r1)
/* 80040C00 0003C860  7C 7E 1B 78 */	mr r30, r3
/* 80040C04 0003C864  4B FF FF A1 */	bl func_80040BA4
/* 80040C08 0003C868  C0 5F 00 00 */	lfs f2, 0(r31)
/* 80040C0C 0003C86C  C0 3F 00 04 */	lfs f1, 4(r31)
/* 80040C10 0003C870  C0 1F 00 08 */	lfs f0, 8(r31)
/* 80040C14 0003C874  D0 5E 00 14 */	stfs f2, 0x14(r30)
/* 80040C18 0003C878  D0 3E 00 18 */	stfs f1, 0x18(r30)
/* 80040C1C 0003C87C  D0 1E 00 1C */	stfs f0, 0x1c(r30)
/* 80040C20 0003C880  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80040C24 0003C884  83 C1 00 08 */	lwz r30, 8(r1)
/* 80040C28 0003C888  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80040C2C 0003C88C  7C 08 03 A6 */	mtlr r0
/* 80040C30 0003C890  38 21 00 10 */	addi r1, r1, 0x10
/* 80040C34 0003C894  4E 80 00 20 */	blr

.global func_80040C38
func_80040C38:
/* 80040C38 0003C898  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80040C3C 0003C89C  7C 08 02 A6 */	mflr r0
/* 80040C40 0003C8A0  90 01 00 24 */	stw r0, 0x24(r1)
/* 80040C44 0003C8A4  88 03 00 00 */	lbz r0, 0(r3)
/* 80040C48 0003C8A8  2C 00 00 00 */	cmpwi r0, 0
/* 80040C4C 0003C8AC  41 82 00 0C */	beq lbl_80040C58
/* 80040C50 0003C8B0  C0 23 00 08 */	lfs f1, 8(r3)
/* 80040C54 0003C8B4  48 00 00 48 */	b lbl_80040C9C
lbl_80040C58:
/* 80040C58 0003C8B8  80 03 00 58 */	lwz r0, 0x58(r3)
/* 80040C5C 0003C8BC  38 80 00 00 */	li r4, 0
/* 80040C60 0003C8C0  2C 00 00 00 */	cmpwi r0, 0
/* 80040C64 0003C8C4  41 82 00 0C */	beq lbl_80040C70
/* 80040C68 0003C8C8  7C 04 03 78 */	mr r4, r0
/* 80040C6C 0003C8CC  48 00 00 14 */	b lbl_80040C80
lbl_80040C70:
/* 80040C70 0003C8D0  80 03 00 60 */	lwz r0, 0x60(r3)
/* 80040C74 0003C8D4  2C 00 00 00 */	cmpwi r0, 0
/* 80040C78 0003C8D8  41 82 00 08 */	beq lbl_80040C80
/* 80040C7C 0003C8DC  7C 04 03 78 */	mr r4, r0
lbl_80040C80:
/* 80040C80 0003C8E0  2C 04 00 00 */	cmpwi r4, 0
/* 80040C84 0003C8E4  41 82 00 14 */	beq lbl_80040C98
/* 80040C88 0003C8E8  38 61 00 08 */	addi r3, r1, 8
/* 80040C8C 0003C8EC  4B FF 7E 09 */	bl func_80038A94
/* 80040C90 0003C8F0  C0 21 00 0C */	lfs f1, 0xc(r1)
/* 80040C94 0003C8F4  48 00 00 08 */	b lbl_80040C9C
lbl_80040C98:
/* 80040C98 0003C8F8  C0 22 82 B0 */	lfs f1, lbl_806408B0-_SDA2_BASE_(r2)
lbl_80040C9C:
/* 80040C9C 0003C8FC  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80040CA0 0003C900  7C 08 03 A6 */	mtlr r0
/* 80040CA4 0003C904  38 21 00 20 */	addi r1, r1, 0x20
/* 80040CA8 0003C908  4E 80 00 20 */	blr

.global func_80040CAC
func_80040CAC:
/* 80040CAC 0003C90C  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 80040CB0 0003C910  7C 08 02 A6 */	mflr r0
/* 80040CB4 0003C914  90 01 00 44 */	stw r0, 0x44(r1)
/* 80040CB8 0003C918  DB E1 00 30 */	stfd f31, 0x30(r1)
/* 80040CBC 0003C91C  F3 E1 00 38 */	psq_st f31, 56(r1), 0, qr0
/* 80040CC0 0003C920  DB C1 00 20 */	stfd f30, 0x20(r1)
/* 80040CC4 0003C924  F3 C1 00 28 */	psq_st f30, 40(r1), 0, qr0
/* 80040CC8 0003C928  38 00 00 01 */	li r0, 1
/* 80040CCC 0003C92C  FF C0 08 90 */	fmr f30, f1
/* 80040CD0 0003C930  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80040CD4 0003C934  7C BF 2B 78 */	mr r31, r5
/* 80040CD8 0003C938  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80040CDC 0003C93C  7C 9E 23 78 */	mr r30, r4
/* 80040CE0 0003C940  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80040CE4 0003C944  7C 7D 1B 78 */	mr r29, r3
/* 80040CE8 0003C948  80 C4 00 10 */	lwz r6, 0x10(r4)
/* 80040CEC 0003C94C  90 C3 00 10 */	stw r6, 0x10(r3)
/* 80040CF0 0003C950  98 03 00 00 */	stb r0, 0(r3)
/* 80040CF4 0003C954  80 05 00 04 */	lwz r0, 4(r5)
/* 80040CF8 0003C958  54 00 07 FF */	clrlwi. r0, r0, 0x1f
/* 80040CFC 0003C95C  41 82 00 18 */	beq lbl_80040D14
/* 80040D00 0003C960  38 85 00 20 */	addi r4, r5, 0x20
/* 80040D04 0003C964  38 63 00 14 */	addi r3, r3, 0x14
/* 80040D08 0003C968  38 A5 00 14 */	addi r5, r5, 0x14
/* 80040D0C 0003C96C  4B FF F3 DD */	bl func_800400E8
/* 80040D10 0003C970  48 00 00 14 */	b lbl_80040D24
lbl_80040D14:
/* 80040D14 0003C974  38 63 00 14 */	addi r3, r3, 0x14
/* 80040D18 0003C978  38 84 00 14 */	addi r4, r4, 0x14
/* 80040D1C 0003C97C  38 A5 00 14 */	addi r5, r5, 0x14
/* 80040D20 0003C980  4B FF F3 C9 */	bl func_800400E8
lbl_80040D24:
/* 80040D24 0003C984  FC 20 F0 90 */	fmr f1, f30
/* 80040D28 0003C988  38 7D 00 2C */	addi r3, r29, 0x2c
/* 80040D2C 0003C98C  38 9E 00 2C */	addi r4, r30, 0x2c
/* 80040D30 0003C990  38 BF 00 2C */	addi r5, r31, 0x2c
/* 80040D34 0003C994  4B FF F3 B5 */	bl func_800400E8
/* 80040D38 0003C998  FC 20 F0 90 */	fmr f1, f30
/* 80040D3C 0003C99C  38 7D 00 38 */	addi r3, r29, 0x38
/* 80040D40 0003C9A0  38 9E 00 38 */	addi r4, r30, 0x38
/* 80040D44 0003C9A4  38 BF 00 38 */	addi r5, r31, 0x38
/* 80040D48 0003C9A8  4B FF F3 A1 */	bl func_800400E8
/* 80040D4C 0003C9AC  FC 20 F0 90 */	fmr f1, f30
/* 80040D50 0003C9B0  38 7D 00 44 */	addi r3, r29, 0x44
/* 80040D54 0003C9B4  38 9E 00 44 */	addi r4, r30, 0x44
/* 80040D58 0003C9B8  38 BF 00 44 */	addi r5, r31, 0x44
/* 80040D5C 0003C9BC  4B FF F3 8D */	bl func_800400E8
/* 80040D60 0003C9C0  C0 1F 00 50 */	lfs f0, 0x50(r31)
/* 80040D64 0003C9C4  C0 3E 00 50 */	lfs f1, 0x50(r30)
/* 80040D68 0003C9C8  EC 00 08 28 */	fsubs f0, f0, f1
/* 80040D6C 0003C9CC  EC 1E 00 32 */	fmuls f0, f30, f0
/* 80040D70 0003C9D0  EC 01 00 2A */	fadds f0, f1, f0
/* 80040D74 0003C9D4  D0 1D 00 50 */	stfs f0, 0x50(r29)
/* 80040D78 0003C9D8  80 1E 00 58 */	lwz r0, 0x58(r30)
/* 80040D7C 0003C9DC  90 1D 00 58 */	stw r0, 0x58(r29)
/* 80040D80 0003C9E0  80 1E 00 5C */	lwz r0, 0x5c(r30)
/* 80040D84 0003C9E4  90 1D 00 5C */	stw r0, 0x5c(r29)
/* 80040D88 0003C9E8  80 1E 00 60 */	lwz r0, 0x60(r30)
/* 80040D8C 0003C9EC  90 1D 00 60 */	stw r0, 0x60(r29)
/* 80040D90 0003C9F0  80 1E 00 64 */	lwz r0, 0x64(r30)
/* 80040D94 0003C9F4  90 1D 00 64 */	stw r0, 0x64(r29)
/* 80040D98 0003C9F8  80 1E 00 68 */	lwz r0, 0x68(r30)
/* 80040D9C 0003C9FC  90 1D 00 68 */	stw r0, 0x68(r29)
/* 80040DA0 0003CA00  80 1E 00 6C */	lwz r0, 0x6c(r30)
/* 80040DA4 0003CA04  90 1D 00 6C */	stw r0, 0x6c(r29)
/* 80040DA8 0003CA08  80 1E 00 70 */	lwz r0, 0x70(r30)
/* 80040DAC 0003CA0C  90 1D 00 70 */	stw r0, 0x70(r29)
/* 80040DB0 0003CA10  80 1E 00 74 */	lwz r0, 0x74(r30)
/* 80040DB4 0003CA14  90 1D 00 74 */	stw r0, 0x74(r29)
/* 80040DB8 0003CA18  80 1F 00 04 */	lwz r0, 4(r31)
/* 80040DBC 0003CA1C  54 00 07 BD */	rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80040DC0 0003CA20  41 82 00 14 */	beq lbl_80040DD4
/* 80040DC4 0003CA24  7F E3 FB 78 */	mr r3, r31
/* 80040DC8 0003CA28  4B FF FE 71 */	bl func_80040C38
/* 80040DCC 0003CA2C  D0 3D 00 08 */	stfs f1, 8(r29)
/* 80040DD0 0003CA30  48 00 00 28 */	b lbl_80040DF8
lbl_80040DD4:
/* 80040DD4 0003CA34  7F C3 F3 78 */	mr r3, r30
/* 80040DD8 0003CA38  4B FF FE 61 */	bl func_80040C38
/* 80040DDC 0003CA3C  FF E0 08 90 */	fmr f31, f1
/* 80040DE0 0003CA40  7F E3 FB 78 */	mr r3, r31
/* 80040DE4 0003CA44  4B FF FE 55 */	bl func_80040C38
/* 80040DE8 0003CA48  EC 01 F8 28 */	fsubs f0, f1, f31
/* 80040DEC 0003CA4C  EC 1E 00 32 */	fmuls f0, f30, f0
/* 80040DF0 0003CA50  EC 1F 00 2A */	fadds f0, f31, f0
/* 80040DF4 0003CA54  D0 1D 00 08 */	stfs f0, 8(r29)
lbl_80040DF8:
/* 80040DF8 0003CA58  7F C3 F3 78 */	mr r3, r30
/* 80040DFC 0003CA5C  4B FF F9 B5 */	bl func_800407B0
/* 80040E00 0003CA60  FF E0 08 90 */	fmr f31, f1
/* 80040E04 0003CA64  7F E3 FB 78 */	mr r3, r31
/* 80040E08 0003CA68  4B FF F9 A9 */	bl func_800407B0
/* 80040E0C 0003CA6C  EC 01 F8 28 */	fsubs f0, f1, f31
/* 80040E10 0003CA70  EC 1E 00 32 */	fmuls f0, f30, f0
/* 80040E14 0003CA74  EC 1F 00 2A */	fadds f0, f31, f0
/* 80040E18 0003CA78  D0 1D 00 0C */	stfs f0, 0xc(r29)
/* 80040E1C 0003CA7C  E3 E1 00 38 */	psq_l f31, 56(r1), 0, qr0
/* 80040E20 0003CA80  CB E1 00 30 */	lfd f31, 0x30(r1)
/* 80040E24 0003CA84  E3 C1 00 28 */	psq_l f30, 40(r1), 0, qr0
/* 80040E28 0003CA88  CB C1 00 20 */	lfd f30, 0x20(r1)
/* 80040E2C 0003CA8C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80040E30 0003CA90  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80040E34 0003CA94  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80040E38 0003CA98  80 01 00 44 */	lwz r0, 0x44(r1)
/* 80040E3C 0003CA9C  7C 08 03 A6 */	mtlr r0
/* 80040E40 0003CAA0  38 21 00 40 */	addi r1, r1, 0x40
/* 80040E44 0003CAA4  4E 80 00 20 */	blr

.global func_80040E48
func_80040E48:
/* 80040E48 0003CAA8  80 A3 00 58 */	lwz r5, 0x58(r3)
/* 80040E4C 0003CAAC  38 00 00 00 */	li r0, 0
/* 80040E50 0003CAB0  7C 05 20 40 */	cmplw r5, r4
/* 80040E54 0003CAB4  40 82 00 0C */	bne lbl_80040E60
/* 80040E58 0003CAB8  90 03 00 58 */	stw r0, 0x58(r3)
/* 80040E5C 0003CABC  90 03 00 5C */	stw r0, 0x5c(r3)
lbl_80040E60:
/* 80040E60 0003CAC0  80 A3 00 60 */	lwz r5, 0x60(r3)
/* 80040E64 0003CAC4  7C 05 20 40 */	cmplw r5, r4
/* 80040E68 0003CAC8  40 82 00 0C */	bne lbl_80040E74
/* 80040E6C 0003CACC  90 03 00 60 */	stw r0, 0x60(r3)
/* 80040E70 0003CAD0  90 03 00 64 */	stw r0, 0x64(r3)
lbl_80040E74:
/* 80040E74 0003CAD4  38 63 00 10 */	addi r3, r3, 0x10
/* 80040E78 0003CAD8  80 A3 00 58 */	lwz r5, 0x58(r3)
/* 80040E7C 0003CADC  7C 05 20 40 */	cmplw r5, r4
/* 80040E80 0003CAE0  40 82 00 0C */	bne lbl_80040E8C
/* 80040E84 0003CAE4  90 03 00 58 */	stw r0, 0x58(r3)
/* 80040E88 0003CAE8  90 03 00 5C */	stw r0, 0x5c(r3)
lbl_80040E8C:
/* 80040E8C 0003CAEC  80 A3 00 60 */	lwz r5, 0x60(r3)
/* 80040E90 0003CAF0  7C 05 20 40 */	cmplw r5, r4
/* 80040E94 0003CAF4  4C 82 00 20 */	bnelr
/* 80040E98 0003CAF8  90 03 00 60 */	stw r0, 0x60(r3)
/* 80040E9C 0003CAFC  90 03 00 64 */	stw r0, 0x64(r3)
/* 80040EA0 0003CB00  4E 80 00 20 */	blr

.global func_80040EA4
func_80040EA4:
/* 80040EA4 0003CB04  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80040EA8 0003CB08  7C 08 02 A6 */	mflr r0
/* 80040EAC 0003CB0C  90 01 00 24 */	stw r0, 0x24(r1)
/* 80040EB0 0003CB10  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80040EB4 0003CB14  3B E3 00 04 */	addi r31, r3, 4
/* 80040EB8 0003CB18  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80040EBC 0003CB1C  3B C3 01 B4 */	addi r30, r3, 0x1b4
/* 80040EC0 0003CB20  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80040EC4 0003CB24  7C 7D 1B 78 */	mr r29, r3
lbl_80040EC8:
/* 80040EC8 0003CB28  7F E3 FB 78 */	mr r3, r31
/* 80040ECC 0003CB2C  48 00 F4 59 */	bl func_80050324
/* 80040ED0 0003CB30  3B FF 00 24 */	addi r31, r31, 0x24
/* 80040ED4 0003CB34  7C 1F F0 40 */	cmplw r31, r30
/* 80040ED8 0003CB38  41 80 FF F0 */	blt lbl_80040EC8
/* 80040EDC 0003CB3C  3B FD 03 94 */	addi r31, r29, 0x394
lbl_80040EE0:
/* 80040EE0 0003CB40  7F C3 F3 78 */	mr r3, r30
/* 80040EE4 0003CB44  48 00 FF 55 */	bl func_80050E38
/* 80040EE8 0003CB48  3B DE 00 60 */	addi r30, r30, 0x60
/* 80040EEC 0003CB4C  7C 1E F8 40 */	cmplw r30, r31
/* 80040EF0 0003CB50  41 80 FF F0 */	blt lbl_80040EE0
/* 80040EF4 0003CB54  7F E3 FB 78 */	mr r3, r31
/* 80040EF8 0003CB58  48 00 FF 41 */	bl func_80050E38
/* 80040EFC 0003CB5C  38 7D 03 F4 */	addi r3, r29, 0x3f4
/* 80040F00 0003CB60  48 00 FF 39 */	bl func_80050E38
/* 80040F04 0003CB64  38 7D 04 54 */	addi r3, r29, 0x454
/* 80040F08 0003CB68  48 00 FF 31 */	bl func_80050E38
/* 80040F0C 0003CB6C  7F A4 EB 78 */	mr r4, r29
/* 80040F10 0003CB70  38 7D 04 E8 */	addi r3, r29, 0x4e8
/* 80040F14 0003CB74  4B FF F5 95 */	bl func_800404A8
/* 80040F18 0003CB78  7F A4 EB 78 */	mr r4, r29
/* 80040F1C 0003CB7C  38 7D 05 60 */	addi r3, r29, 0x560
/* 80040F20 0003CB80  4B FF F5 89 */	bl func_800404A8
/* 80040F24 0003CB84  7F A4 EB 78 */	mr r4, r29
/* 80040F28 0003CB88  38 7D 05 D8 */	addi r3, r29, 0x5d8
/* 80040F2C 0003CB8C  4B FF F5 7D */	bl func_800404A8
/* 80040F30 0003CB90  7F A4 EB 78 */	mr r4, r29
/* 80040F34 0003CB94  38 7D 06 50 */	addi r3, r29, 0x650
/* 80040F38 0003CB98  4B FF F5 71 */	bl func_800404A8
/* 80040F3C 0003CB9C  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80040F40 0003CBA0  38 00 00 00 */	li r0, 0
/* 80040F44 0003CBA4  C0 42 82 BC */	lfs f2, lbl_806408BC-_SDA2_BASE_(r2)
/* 80040F48 0003CBA8  7F A3 EB 78 */	mr r3, r29
/* 80040F4C 0003CBAC  C0 22 82 B4 */	lfs f1, lbl_806408B4-_SDA2_BASE_(r2)
/* 80040F50 0003CBB0  98 1D 00 00 */	stb r0, 0(r29)
/* 80040F54 0003CBB4  90 1D 06 CC */	stw r0, 0x6cc(r29)
/* 80040F58 0003CBB8  98 1D 00 02 */	stb r0, 2(r29)
/* 80040F5C 0003CBBC  90 1D 04 BC */	stw r0, 0x4bc(r29)
/* 80040F60 0003CBC0  D0 5D 04 D0 */	stfs f2, 0x4d0(r29)
/* 80040F64 0003CBC4  D0 3D 04 CC */	stfs f1, 0x4cc(r29)
/* 80040F68 0003CBC8  D0 1D 04 C8 */	stfs f0, 0x4c8(r29)
/* 80040F6C 0003CBCC  D0 1D 06 DC */	stfs f0, 0x6dc(r29)
/* 80040F70 0003CBD0  D0 1D 06 F0 */	stfs f0, 0x6f0(r29)
/* 80040F74 0003CBD4  D0 1D 06 EC */	stfs f0, 0x6ec(r29)
/* 80040F78 0003CBD8  D0 1D 06 E8 */	stfs f0, 0x6e8(r29)
/* 80040F7C 0003CBDC  D0 1D 06 E4 */	stfs f0, 0x6e4(r29)
/* 80040F80 0003CBE0  D0 1D 06 E0 */	stfs f0, 0x6e0(r29)
/* 80040F84 0003CBE4  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80040F88 0003CBE8  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80040F8C 0003CBEC  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80040F90 0003CBF0  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80040F94 0003CBF4  7C 08 03 A6 */	mtlr r0
/* 80040F98 0003CBF8  38 21 00 20 */	addi r1, r1, 0x20
/* 80040F9C 0003CBFC  4E 80 00 20 */	blr

.global func_80040FA0
func_80040FA0:
/* 80040FA0 0003CC00  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 80040FA4 0003CC04  7C 08 02 A6 */	mflr r0
/* 80040FA8 0003CC08  C0 02 82 C8 */	lfs f0, lbl_806408C8-_SDA2_BASE_(r2)
/* 80040FAC 0003CC0C  90 01 00 44 */	stw r0, 0x44(r1)
/* 80040FB0 0003CC10  93 E1 00 3C */	stw r31, 0x3c(r1)
/* 80040FB4 0003CC14  3B E0 00 01 */	li r31, 1
/* 80040FB8 0003CC18  93 C1 00 38 */	stw r30, 0x38(r1)
/* 80040FBC 0003CC1C  7C 7E 1B 78 */	mr r30, r3
/* 80040FC0 0003CC20  9B E3 00 00 */	stb r31, 0(r3)
/* 80040FC4 0003CC24  D0 03 04 E0 */	stfs f0, 0x4e0(r3)
/* 80040FC8 0003CC28  38 63 00 04 */	addi r3, r3, 4
/* 80040FCC 0003CC2C  48 00 F3 BD */	bl func_80050388
/* 80040FD0 0003CC30  9B FE 00 01 */	stb r31, 1(r30)
/* 80040FD4 0003CC34  7F C3 F3 78 */	mr r3, r30
/* 80040FD8 0003CC38  C0 42 82 B0 */	lfs f2, lbl_806408B0-_SDA2_BASE_(r2)
/* 80040FDC 0003CC3C  38 81 00 20 */	addi r4, r1, 0x20
/* 80040FE0 0003CC40  C0 22 82 CC */	lfs f1, lbl_806408CC-_SDA2_BASE_(r2)
/* 80040FE4 0003CC44  C0 02 82 D0 */	lfs f0, lbl_806408D0-_SDA2_BASE_(r2)
/* 80040FE8 0003CC48  D0 41 00 20 */	stfs f2, 0x20(r1)
/* 80040FEC 0003CC4C  D0 21 00 24 */	stfs f1, 0x24(r1)
/* 80040FF0 0003CC50  D0 01 00 28 */	stfs f0, 0x28(r1)
/* 80040FF4 0003CC54  48 00 00 B9 */	bl func_800410AC
/* 80040FF8 0003CC58  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80040FFC 0003CC5C  7F C3 F3 78 */	mr r3, r30
/* 80041000 0003CC60  38 81 00 14 */	addi r4, r1, 0x14
/* 80041004 0003CC64  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 80041008 0003CC68  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 8004100C 0003CC6C  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 80041010 0003CC70  48 00 15 25 */	bl func_80042534
/* 80041014 0003CC74  C0 42 82 B0 */	lfs f2, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041018 0003CC78  38 61 00 08 */	addi r3, r1, 8
/* 8004101C 0003CC7C  C0 22 82 CC */	lfs f1, lbl_806408CC-_SDA2_BASE_(r2)
/* 80041020 0003CC80  C0 02 82 D0 */	lfs f0, lbl_806408D0-_SDA2_BASE_(r2)
/* 80041024 0003CC84  D0 41 00 08 */	stfs f2, 8(r1)
/* 80041028 0003CC88  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 8004102C 0003CC8C  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 80041030 0003CC90  48 23 BD 55 */	bl PSVECMag
/* 80041034 0003CC94  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041038 0003CC98  38 00 00 00 */	li r0, 0
/* 8004103C 0003CC9C  D0 3E 06 C8 */	stfs f1, 0x6c8(r30)
/* 80041040 0003CCA0  D0 1E 06 F4 */	stfs f0, 0x6f4(r30)
/* 80041044 0003CCA4  98 1E 06 F8 */	stb r0, 0x6f8(r30)
/* 80041048 0003CCA8  9B FE 00 01 */	stb r31, 1(r30)
/* 8004104C 0003CCAC  83 E1 00 3C */	lwz r31, 0x3c(r1)
/* 80041050 0003CCB0  83 C1 00 38 */	lwz r30, 0x38(r1)
/* 80041054 0003CCB4  80 01 00 44 */	lwz r0, 0x44(r1)
/* 80041058 0003CCB8  7C 08 03 A6 */	mtlr r0
/* 8004105C 0003CCBC  38 21 00 40 */	addi r1, r1, 0x40
/* 80041060 0003CCC0  4E 80 00 20 */	blr

.global func_80041064
func_80041064:
/* 80041064 0003CCC4  38 00 00 00 */	li r0, 0
/* 80041068 0003CCC8  98 03 00 00 */	stb r0, 0(r3)
/* 8004106C 0003CCCC  4E 80 00 20 */	blr

.global func_80041070
func_80041070:
/* 80041070 0003CCD0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80041074 0003CCD4  7C 08 02 A6 */	mflr r0
/* 80041078 0003CCD8  7C 87 23 78 */	mr r7, r4
/* 8004107C 0003CCDC  38 83 04 E0 */	addi r4, r3, 0x4e0
/* 80041080 0003CCE0  90 01 00 14 */	stw r0, 0x14(r1)
/* 80041084 0003CCE4  7C 86 23 78 */	mr r6, r4
/* 80041088 0003CCE8  38 A1 00 08 */	addi r5, r1, 8
/* 8004108C 0003CCEC  38 63 00 04 */	addi r3, r3, 4
/* 80041090 0003CCF0  D0 21 00 08 */	stfs f1, 8(r1)
/* 80041094 0003CCF4  FC 20 10 90 */	fmr f1, f2
/* 80041098 0003CCF8  48 00 F2 A5 */	bl func_8005033C
/* 8004109C 0003CCFC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 800410A0 0003CD00  7C 08 03 A6 */	mtlr r0
/* 800410A4 0003CD04  38 21 00 10 */	addi r1, r1, 0x10
/* 800410A8 0003CD08  4E 80 00 20 */	blr

.global func_800410AC
func_800410AC:
/* 800410AC 0003CD0C  38 00 00 00 */	li r0, 0
/* 800410B0 0003CD10  90 03 04 BC */	stw r0, 0x4bc(r3)
/* 800410B4 0003CD14  98 03 00 02 */	stb r0, 2(r3)
/* 800410B8 0003CD18  48 00 00 04 */	b func_800410BC

.global func_800410BC
func_800410BC:
/* 800410BC 0003CD1C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 800410C0 0003CD20  7C 08 02 A6 */	mflr r0
/* 800410C4 0003CD24  90 01 00 14 */	stw r0, 0x14(r1)
/* 800410C8 0003CD28  93 E1 00 0C */	stw r31, 0xc(r1)
/* 800410CC 0003CD2C  7C 7F 1B 78 */	mr r31, r3
/* 800410D0 0003CD30  38 63 04 E8 */	addi r3, r3, 0x4e8
/* 800410D4 0003CD34  4B FF FB 11 */	bl func_80040BE4
/* 800410D8 0003CD38  38 7F 00 4C */	addi r3, r31, 0x4c
/* 800410DC 0003CD3C  48 00 F2 AD */	bl func_80050388
/* 800410E0 0003CD40  38 7F 00 70 */	addi r3, r31, 0x70
/* 800410E4 0003CD44  48 00 F2 A5 */	bl func_80050388
/* 800410E8 0003CD48  38 7F 00 94 */	addi r3, r31, 0x94
/* 800410EC 0003CD4C  48 00 F2 9D */	bl func_80050388
/* 800410F0 0003CD50  38 7F 01 24 */	addi r3, r31, 0x124
/* 800410F4 0003CD54  48 00 F2 95 */	bl func_80050388
/* 800410F8 0003CD58  38 7F 01 48 */	addi r3, r31, 0x148
/* 800410FC 0003CD5C  48 00 F2 8D */	bl func_80050388
/* 80041100 0003CD60  38 00 00 01 */	li r0, 1
/* 80041104 0003CD64  98 1F 00 01 */	stb r0, 1(r31)
/* 80041108 0003CD68  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 8004110C 0003CD6C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80041110 0003CD70  7C 08 03 A6 */	mtlr r0
/* 80041114 0003CD74  38 21 00 10 */	addi r1, r1, 0x10
/* 80041118 0003CD78  4E 80 00 20 */	blr

.global func_8004111C
func_8004111C:
/* 8004111C 0003CD7C  94 21 FF 90 */	stwu r1, -0x70(r1)
/* 80041120 0003CD80  7C 08 02 A6 */	mflr r0
/* 80041124 0003CD84  90 01 00 74 */	stw r0, 0x74(r1)
/* 80041128 0003CD88  DB E1 00 60 */	stfd f31, 0x60(r1)
/* 8004112C 0003CD8C  F3 E1 00 68 */	psq_st f31, 104(r1), 0, qr0
/* 80041130 0003CD90  FC 40 10 50 */	fneg f2, f2
/* 80041134 0003CD94  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041138 0003CD98  FF E0 18 90 */	fmr f31, f3
/* 8004113C 0003CD9C  93 E1 00 5C */	stw r31, 0x5c(r1)
/* 80041140 0003CDA0  7C 7F 1B 78 */	mr r31, r3
/* 80041144 0003CDA4  38 61 00 38 */	addi r3, r1, 0x38
/* 80041148 0003CDA8  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 8004114C 0003CDAC  38 81 00 08 */	addi r4, r1, 8
/* 80041150 0003CDB0  D0 41 00 08 */	stfs f2, 8(r1)
/* 80041154 0003CDB4  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 80041158 0003CDB8  48 1E 25 69 */	bl func_802236C0
/* 8004115C 0003CDBC  FC 00 F8 18 */	frsp f0, f31
/* 80041160 0003CDC0  C0 22 82 B0 */	lfs f1, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041164 0003CDC4  D3 E1 00 34 */	stfs f31, 0x34(r1)
/* 80041168 0003CDC8  38 61 00 14 */	addi r3, r1, 0x14
/* 8004116C 0003CDCC  38 81 00 38 */	addi r4, r1, 0x38
/* 80041170 0003CDD0  D0 21 00 2C */	stfs f1, 0x2c(r1)
/* 80041174 0003CDD4  D0 21 00 30 */	stfs f1, 0x30(r1)
/* 80041178 0003CDD8  D0 21 00 14 */	stfs f1, 0x14(r1)
/* 8004117C 0003CDDC  D0 21 00 18 */	stfs f1, 0x18(r1)
/* 80041180 0003CDE0  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 80041184 0003CDE4  48 1E 28 89 */	bl func_80223A0C
/* 80041188 0003CDE8  38 7F 05 74 */	addi r3, r31, 0x574
/* 8004118C 0003CDEC  38 81 00 14 */	addi r4, r1, 0x14
/* 80041190 0003CDF0  38 A1 00 20 */	addi r5, r1, 0x20
/* 80041194 0003CDF4  48 23 BB 31 */	bl PSVECAdd
/* 80041198 0003CDF8  C0 41 00 20 */	lfs f2, 0x20(r1)
/* 8004119C 0003CDFC  38 7F 04 E8 */	addi r3, r31, 0x4e8
/* 800411A0 0003CE00  C0 21 00 24 */	lfs f1, 0x24(r1)
/* 800411A4 0003CE04  38 81 00 48 */	addi r4, r1, 0x48
/* 800411A8 0003CE08  C0 01 00 28 */	lfs f0, 0x28(r1)
/* 800411AC 0003CE0C  D0 41 00 48 */	stfs f2, 0x48(r1)
/* 800411B0 0003CE10  D0 21 00 4C */	stfs f1, 0x4c(r1)
/* 800411B4 0003CE14  D0 01 00 50 */	stfs f0, 0x50(r1)
/* 800411B8 0003CE18  4B FF FA 2D */	bl func_80040BE4
/* 800411BC 0003CE1C  38 00 00 00 */	li r0, 0
/* 800411C0 0003CE20  38 7F 00 4C */	addi r3, r31, 0x4c
/* 800411C4 0003CE24  90 1F 04 BC */	stw r0, 0x4bc(r31)
/* 800411C8 0003CE28  98 1F 00 02 */	stb r0, 2(r31)
/* 800411CC 0003CE2C  48 00 F1 BD */	bl func_80050388
/* 800411D0 0003CE30  38 7F 00 70 */	addi r3, r31, 0x70
/* 800411D4 0003CE34  48 00 F1 B5 */	bl func_80050388
/* 800411D8 0003CE38  38 7F 00 94 */	addi r3, r31, 0x94
/* 800411DC 0003CE3C  48 00 F1 AD */	bl func_80050388
/* 800411E0 0003CE40  38 00 00 01 */	li r0, 1
/* 800411E4 0003CE44  98 1F 00 01 */	stb r0, 1(r31)
/* 800411E8 0003CE48  E3 E1 00 68 */	psq_l f31, 104(r1), 0, qr0
/* 800411EC 0003CE4C  CB E1 00 60 */	lfd f31, 0x60(r1)
/* 800411F0 0003CE50  83 E1 00 5C */	lwz r31, 0x5c(r1)
/* 800411F4 0003CE54  80 01 00 74 */	lwz r0, 0x74(r1)
/* 800411F8 0003CE58  7C 08 03 A6 */	mtlr r0
/* 800411FC 0003CE5C  38 21 00 70 */	addi r1, r1, 0x70
/* 80041200 0003CE60  4E 80 00 20 */	blr

.global func_80041204
func_80041204:
/* 80041204 0003CE64  38 63 04 FC */	addi r3, r3, 0x4fc
/* 80041208 0003CE68  4E 80 00 20 */	blr

.global func_8004120C
func_8004120C:
/* 8004120C 0003CE6C  38 00 00 01 */	li r0, 1
/* 80041210 0003CE70  D0 23 06 F4 */	stfs f1, 0x6f4(r3)
/* 80041214 0003CE74  98 03 06 F8 */	stb r0, 0x6f8(r3)
/* 80041218 0003CE78  4E 80 00 20 */	blr

.global func_8004121C
func_8004121C:
/* 8004121C 0003CE7C  38 00 00 00 */	li r0, 0
/* 80041220 0003CE80  98 03 06 F8 */	stb r0, 0x6f8(r3)
/* 80041224 0003CE84  4E 80 00 20 */	blr

.global func_80041228
func_80041228:
/* 80041228 0003CE88  94 21 FF 60 */	stwu r1, -0xa0(r1)
/* 8004122C 0003CE8C  7C 08 02 A6 */	mflr r0
/* 80041230 0003CE90  90 01 00 A4 */	stw r0, 0xa4(r1)
/* 80041234 0003CE94  DB E1 00 90 */	stfd f31, 0x90(r1)
/* 80041238 0003CE98  F3 E1 00 98 */	psq_st f31, 152(r1), 0, qr0
/* 8004123C 0003CE9C  DB C1 00 80 */	stfd f30, 0x80(r1)
/* 80041240 0003CEA0  F3 C1 00 88 */	psq_st f30, 136(r1), 0, qr0
/* 80041244 0003CEA4  DB A1 00 70 */	stfd f29, 0x70(r1)
/* 80041248 0003CEA8  F3 A1 00 78 */	psq_st f29, 120(r1), 0, qr0
/* 8004124C 0003CEAC  38 A1 00 54 */	addi r5, r1, 0x54
/* 80041250 0003CEB0  93 E1 00 6C */	stw r31, 0x6c(r1)
/* 80041254 0003CEB4  3B E4 00 14 */	addi r31, r4, 0x14
/* 80041258 0003CEB8  93 C1 00 68 */	stw r30, 0x68(r1)
/* 8004125C 0003CEBC  7C 9E 23 78 */	mr r30, r4
/* 80041260 0003CEC0  7F E4 FB 78 */	mr r4, r31
/* 80041264 0003CEC4  93 A1 00 64 */	stw r29, 0x64(r1)
/* 80041268 0003CEC8  7C 7D 1B 78 */	mr r29, r3
/* 8004126C 0003CECC  38 63 04 FC */	addi r3, r3, 0x4fc
/* 80041270 0003CED0  48 23 BA 79 */	bl PSVECSubtract
/* 80041274 0003CED4  7F C3 F3 78 */	mr r3, r30
/* 80041278 0003CED8  4B FF F9 C1 */	bl func_80040C38
/* 8004127C 0003CEDC  80 1D 04 BC */	lwz r0, 0x4bc(r29)
/* 80041280 0003CEE0  FF C0 08 90 */	fmr f30, f1
/* 80041284 0003CEE4  54 00 06 B5 */	rlwinm. r0, r0, 0, 0x1a, 0x1a
/* 80041288 0003CEE8  41 82 00 40 */	beq lbl_800412C8
/* 8004128C 0003CEEC  7F C3 F3 78 */	mr r3, r30
/* 80041290 0003CEF0  4B FF F5 21 */	bl func_800407B0
/* 80041294 0003CEF4  FF E0 08 90 */	fmr f31, f1
/* 80041298 0003CEF8  7F A3 EB 78 */	mr r3, r29
/* 8004129C 0003CEFC  7F C4 F3 78 */	mr r4, r30
/* 800412A0 0003CF00  48 00 02 85 */	bl func_80041524
/* 800412A4 0003CF04  EC 01 F8 28 */	fsubs f0, f1, f31
/* 800412A8 0003CF08  7F C3 F3 78 */	mr r3, r30
/* 800412AC 0003CF0C  D0 1D 06 C8 */	stfs f0, 0x6c8(r29)
/* 800412B0 0003CF10  4B FF F5 01 */	bl func_800407B0
/* 800412B4 0003CF14  C0 5D 06 C8 */	lfs f2, 0x6c8(r29)
/* 800412B8 0003CF18  C0 1D 06 E8 */	lfs f0, 0x6e8(r29)
/* 800412BC 0003CF1C  EC 22 08 2A */	fadds f1, f2, f1
/* 800412C0 0003CF20  EF A0 08 2A */	fadds f29, f0, f1
/* 800412C4 0003CF24  48 00 00 1C */	b lbl_800412E0
lbl_800412C8:
/* 800412C8 0003CF28  7F C3 F3 78 */	mr r3, r30
/* 800412CC 0003CF2C  4B FF F4 E5 */	bl func_800407B0
/* 800412D0 0003CF30  C0 5D 06 C8 */	lfs f2, 0x6c8(r29)
/* 800412D4 0003CF34  C0 1D 06 E8 */	lfs f0, 0x6e8(r29)
/* 800412D8 0003CF38  EC 22 08 2A */	fadds f1, f2, f1
/* 800412DC 0003CF3C  EF A0 08 2A */	fadds f29, f0, f1
lbl_800412E0:
/* 800412E0 0003CF40  80 1D 01 24 */	lwz r0, 0x124(r29)
/* 800412E4 0003CF44  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 800412E8 0003CF48  2C 00 00 00 */	cmpwi r0, 0
/* 800412EC 0003CF4C  D3 A1 00 34 */	stfs f29, 0x34(r1)
/* 800412F0 0003CF50  D0 01 00 2C */	stfs f0, 0x2c(r1)
/* 800412F4 0003CF54  D0 01 00 30 */	stfs f0, 0x30(r1)
/* 800412F8 0003CF58  41 82 00 10 */	beq lbl_80041308
/* 800412FC 0003CF5C  C0 1D 04 D8 */	lfs f0, 0x4d8(r29)
/* 80041300 0003CF60  EF E0 F0 2A */	fadds f31, f0, f30
/* 80041304 0003CF64  48 00 00 2C */	b lbl_80041330
lbl_80041308:
/* 80041308 0003CF68  80 1D 04 BC */	lwz r0, 0x4bc(r29)
/* 8004130C 0003CF6C  54 00 06 F7 */	rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 80041310 0003CF70  41 82 00 10 */	beq lbl_80041320
/* 80041314 0003CF74  C0 1D 04 C0 */	lfs f0, 0x4c0(r29)
/* 80041318 0003CF78  EF E0 F0 2A */	fadds f31, f0, f30
/* 8004131C 0003CF7C  48 00 00 14 */	b lbl_80041330
lbl_80041320:
/* 80041320 0003CF80  C0 41 00 5C */	lfs f2, 0x5c(r1)
/* 80041324 0003CF84  C0 21 00 54 */	lfs f1, 0x54(r1)
/* 80041328 0003CF88  48 19 32 B5 */	bl atan2
/* 8004132C 0003CF8C  FF E0 08 18 */	frsp f31, f1
lbl_80041330:
/* 80041330 0003CF90  80 1D 01 48 */	lwz r0, 0x148(r29)
/* 80041334 0003CF94  2C 00 00 00 */	cmpwi r0, 0
/* 80041338 0003CF98  41 82 00 0C */	beq lbl_80041344
/* 8004133C 0003CF9C  C0 5D 04 DC */	lfs f2, 0x4dc(r29)
/* 80041340 0003CFA0  48 00 01 20 */	b lbl_80041460
lbl_80041344:
/* 80041344 0003CFA4  80 7D 04 BC */	lwz r3, 0x4bc(r29)
/* 80041348 0003CFA8  54 60 06 73 */	rlwinm. r0, r3, 0, 0x19, 0x19
/* 8004134C 0003CFAC  41 82 00 80 */	beq lbl_800413CC
/* 80041350 0003CFB0  C0 3D 04 C8 */	lfs f1, 0x4c8(r29)
/* 80041354 0003CFB4  C0 1F 00 04 */	lfs f0, 4(r31)
/* 80041358 0003CFB8  C0 42 82 D4 */	lfs f2, lbl_806408D4-_SDA2_BASE_(r2)
/* 8004135C 0003CFBC  EC 01 00 28 */	fsubs f0, f1, f0
/* 80041360 0003CFC0  EC 20 E8 24 */	fdivs f1, f0, f29
/* 80041364 0003CFC4  FC 00 0A 10 */	fabs f0, f1
/* 80041368 0003CFC8  FC 00 00 18 */	frsp f0, f0
/* 8004136C 0003CFCC  FC 00 10 40 */	fcmpo cr0, f0, f2
/* 80041370 0003CFD0  4C 41 13 82 */	cror 2, 1, 2
/* 80041374 0003CFD4  40 82 00 1C */	bne lbl_80041390
/* 80041378 0003CFD8  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 8004137C 0003CFDC  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80041380 0003CFE0  40 81 00 08 */	ble lbl_80041388
/* 80041384 0003CFE4  48 00 00 DC */	b lbl_80041460
lbl_80041388:
/* 80041388 0003CFE8  C0 42 82 D8 */	lfs f2, lbl_806408D8-_SDA2_BASE_(r2)
/* 8004138C 0003CFEC  48 00 00 D4 */	b lbl_80041460
lbl_80041390:
/* 80041390 0003CFF0  C0 02 82 BC */	lfs f0, lbl_806408BC-_SDA2_BASE_(r2)
/* 80041394 0003CFF4  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80041398 0003CFF8  4C 41 13 82 */	cror 2, 1, 2
/* 8004139C 0003CFFC  40 82 00 0C */	bne lbl_800413A8
/* 800413A0 0003D000  C0 42 82 DC */	lfs f2, lbl_806408DC-_SDA2_BASE_(r2)
/* 800413A4 0003D004  48 00 00 BC */	b lbl_80041460
lbl_800413A8:
/* 800413A8 0003D008  C0 02 82 E0 */	lfs f0, lbl_806408E0-_SDA2_BASE_(r2)
/* 800413AC 0003D00C  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 800413B0 0003D010  4C 40 13 82 */	cror 2, 0, 2
/* 800413B4 0003D014  40 82 00 0C */	bne lbl_800413C0
/* 800413B8 0003D018  C0 42 82 E4 */	lfs f2, lbl_806408E4-_SDA2_BASE_(r2)
/* 800413BC 0003D01C  48 00 00 A4 */	b lbl_80041460
lbl_800413C0:
/* 800413C0 0003D020  48 19 32 19 */	bl asin
/* 800413C4 0003D024  FC 40 08 18 */	frsp f2, f1
/* 800413C8 0003D028  48 00 00 98 */	b lbl_80041460
lbl_800413CC:
/* 800413CC 0003D02C  54 60 07 39 */	rlwinm. r0, r3, 0, 0x1c, 0x1c
/* 800413D0 0003D030  41 82 00 18 */	beq lbl_800413E8
/* 800413D4 0003D034  80 9D 04 C4 */	lwz r4, 0x4c4(r29)
/* 800413D8 0003D038  7F A3 EB 78 */	mr r3, r29
/* 800413DC 0003D03C  48 00 27 35 */	bl func_80043B10
/* 800413E0 0003D040  FC 40 08 90 */	fmr f2, f1
/* 800413E4 0003D044  48 00 00 7C */	b lbl_80041460
lbl_800413E8:
/* 800413E8 0003D048  38 61 00 54 */	addi r3, r1, 0x54
/* 800413EC 0003D04C  48 23 B9 99 */	bl PSVECMag
/* 800413F0 0003D050  C0 01 00 58 */	lfs f0, 0x58(r1)
/* 800413F4 0003D054  C0 42 82 D4 */	lfs f2, lbl_806408D4-_SDA2_BASE_(r2)
/* 800413F8 0003D058  EC 20 08 24 */	fdivs f1, f0, f1
/* 800413FC 0003D05C  FC 00 0A 10 */	fabs f0, f1
/* 80041400 0003D060  FC 00 00 18 */	frsp f0, f0
/* 80041404 0003D064  FC 00 10 40 */	fcmpo cr0, f0, f2
/* 80041408 0003D068  4C 41 13 82 */	cror 2, 1, 2
/* 8004140C 0003D06C  40 82 00 1C */	bne lbl_80041428
/* 80041410 0003D070  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041414 0003D074  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80041418 0003D078  40 81 00 08 */	ble lbl_80041420
/* 8004141C 0003D07C  48 00 00 44 */	b lbl_80041460
lbl_80041420:
/* 80041420 0003D080  C0 42 82 D8 */	lfs f2, lbl_806408D8-_SDA2_BASE_(r2)
/* 80041424 0003D084  48 00 00 3C */	b lbl_80041460
lbl_80041428:
/* 80041428 0003D088  C0 02 82 BC */	lfs f0, lbl_806408BC-_SDA2_BASE_(r2)
/* 8004142C 0003D08C  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80041430 0003D090  4C 41 13 82 */	cror 2, 1, 2
/* 80041434 0003D094  40 82 00 0C */	bne lbl_80041440
/* 80041438 0003D098  C0 42 82 DC */	lfs f2, lbl_806408DC-_SDA2_BASE_(r2)
/* 8004143C 0003D09C  48 00 00 24 */	b lbl_80041460
lbl_80041440:
/* 80041440 0003D0A0  C0 02 82 E0 */	lfs f0, lbl_806408E0-_SDA2_BASE_(r2)
/* 80041444 0003D0A4  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80041448 0003D0A8  4C 40 13 82 */	cror 2, 0, 2
/* 8004144C 0003D0AC  40 82 00 0C */	bne lbl_80041458
/* 80041450 0003D0B0  C0 42 82 E4 */	lfs f2, lbl_806408E4-_SDA2_BASE_(r2)
/* 80041454 0003D0B4  48 00 00 0C */	b lbl_80041460
lbl_80041458:
/* 80041458 0003D0B8  48 19 31 81 */	bl asin
/* 8004145C 0003D0BC  FC 40 08 18 */	frsp f2, f1
lbl_80041460:
/* 80041460 0003D0C0  FC 40 10 50 */	fneg f2, f2
/* 80041464 0003D0C4  C0 1D 06 EC */	lfs f0, 0x6ec(r29)
/* 80041468 0003D0C8  C0 3D 06 F0 */	lfs f1, 0x6f0(r29)
/* 8004146C 0003D0CC  38 61 00 38 */	addi r3, r1, 0x38
/* 80041470 0003D0D0  EC 7F 00 2A */	fadds f3, f31, f0
/* 80041474 0003D0D4  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041478 0003D0D8  EC 22 08 28 */	fsubs f1, f2, f1
/* 8004147C 0003D0DC  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 80041480 0003D0E0  38 81 00 08 */	addi r4, r1, 8
/* 80041484 0003D0E4  D0 61 00 0C */	stfs f3, 0xc(r1)
/* 80041488 0003D0E8  D0 21 00 08 */	stfs f1, 8(r1)
/* 8004148C 0003D0EC  48 1E 22 35 */	bl func_802236C0
/* 80041490 0003D0F0  C0 41 00 2C */	lfs f2, 0x2c(r1)
/* 80041494 0003D0F4  38 61 00 14 */	addi r3, r1, 0x14
/* 80041498 0003D0F8  C0 21 00 30 */	lfs f1, 0x30(r1)
/* 8004149C 0003D0FC  38 81 00 38 */	addi r4, r1, 0x38
/* 800414A0 0003D100  C0 01 00 34 */	lfs f0, 0x34(r1)
/* 800414A4 0003D104  D0 41 00 14 */	stfs f2, 0x14(r1)
/* 800414A8 0003D108  D0 21 00 18 */	stfs f1, 0x18(r1)
/* 800414AC 0003D10C  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 800414B0 0003D110  48 1E 25 5D */	bl func_80223A0C
/* 800414B4 0003D114  7F E3 FB 78 */	mr r3, r31
/* 800414B8 0003D118  38 81 00 14 */	addi r4, r1, 0x14
/* 800414BC 0003D11C  38 A1 00 20 */	addi r5, r1, 0x20
/* 800414C0 0003D120  48 23 B8 05 */	bl PSVECAdd
/* 800414C4 0003D124  C0 41 00 20 */	lfs f2, 0x20(r1)
/* 800414C8 0003D128  38 7D 04 E8 */	addi r3, r29, 0x4e8
/* 800414CC 0003D12C  C0 21 00 24 */	lfs f1, 0x24(r1)
/* 800414D0 0003D130  38 81 00 48 */	addi r4, r1, 0x48
/* 800414D4 0003D134  C0 01 00 28 */	lfs f0, 0x28(r1)
/* 800414D8 0003D138  D0 41 00 48 */	stfs f2, 0x48(r1)
/* 800414DC 0003D13C  D0 21 00 4C */	stfs f1, 0x4c(r1)
/* 800414E0 0003D140  D0 01 00 50 */	stfs f0, 0x50(r1)
/* 800414E4 0003D144  4B FF F7 01 */	bl func_80040BE4
/* 800414E8 0003D148  38 00 00 01 */	li r0, 1
/* 800414EC 0003D14C  98 1D 00 01 */	stb r0, 1(r29)
/* 800414F0 0003D150  E3 E1 00 98 */	psq_l f31, 152(r1), 0, qr0
/* 800414F4 0003D154  CB E1 00 90 */	lfd f31, 0x90(r1)
/* 800414F8 0003D158  E3 C1 00 88 */	psq_l f30, 136(r1), 0, qr0
/* 800414FC 0003D15C  CB C1 00 80 */	lfd f30, 0x80(r1)
/* 80041500 0003D160  E3 A1 00 78 */	psq_l f29, 120(r1), 0, qr0
/* 80041504 0003D164  CB A1 00 70 */	lfd f29, 0x70(r1)
/* 80041508 0003D168  83 E1 00 6C */	lwz r31, 0x6c(r1)
/* 8004150C 0003D16C  83 C1 00 68 */	lwz r30, 0x68(r1)
/* 80041510 0003D170  83 A1 00 64 */	lwz r29, 0x64(r1)
/* 80041514 0003D174  80 01 00 A4 */	lwz r0, 0xa4(r1)
/* 80041518 0003D178  7C 08 03 A6 */	mtlr r0
/* 8004151C 0003D17C  38 21 00 A0 */	addi r1, r1, 0xa0
/* 80041520 0003D180  4E 80 00 20 */	blr

.global func_80041524
func_80041524:
/* 80041524 0003D184  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80041528 0003D188  7C 08 02 A6 */	mflr r0
/* 8004152C 0003D18C  90 01 00 34 */	stw r0, 0x34(r1)
/* 80041530 0003D190  DB E1 00 20 */	stfd f31, 0x20(r1)
/* 80041534 0003D194  F3 E1 00 28 */	psq_st f31, 40(r1), 0, qr0
/* 80041538 0003D198  80 04 00 10 */	lwz r0, 0x10(r4)
/* 8004153C 0003D19C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80041540 0003D1A0  2C 00 00 02 */	cmpwi r0, 2
/* 80041544 0003D1A4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80041548 0003D1A8  7C 9E 23 78 */	mr r30, r4
/* 8004154C 0003D1AC  93 A1 00 14 */	stw r29, 0x14(r1)
/* 80041550 0003D1B0  7C 7D 1B 78 */	mr r29, r3
/* 80041554 0003D1B4  41 82 00 50 */	beq lbl_800415A4
/* 80041558 0003D1B8  40 80 01 10 */	bge lbl_80041668
/* 8004155C 0003D1BC  2C 00 00 01 */	cmpwi r0, 1
/* 80041560 0003D1C0  40 80 00 08 */	bge lbl_80041568
/* 80041564 0003D1C4  48 00 01 04 */	b lbl_80041668
lbl_80041568:
/* 80041568 0003D1C8  7F C3 F3 78 */	mr r3, r30
/* 8004156C 0003D1CC  38 80 00 00 */	li r4, 0
/* 80041570 0003D1D0  4B FF F6 0D */	bl func_80040B7C
/* 80041574 0003D1D4  2C 03 00 00 */	cmpwi r3, 0
/* 80041578 0003D1D8  41 82 00 24 */	beq lbl_8004159C
/* 8004157C 0003D1DC  7F C3 F3 78 */	mr r3, r30
/* 80041580 0003D1E0  38 80 00 00 */	li r4, 0
/* 80041584 0003D1E4  4B FF F5 F9 */	bl func_80040B7C
/* 80041588 0003D1E8  80 BD 04 D4 */	lwz r5, 0x4d4(r29)
/* 8004158C 0003D1EC  7C 64 1B 78 */	mr r4, r3
/* 80041590 0003D1F0  7F A3 EB 78 */	mr r3, r29
/* 80041594 0003D1F4  48 00 24 59 */	bl func_800439EC
/* 80041598 0003D1F8  48 00 00 D4 */	b lbl_8004166C
lbl_8004159C:
/* 8004159C 0003D1FC  C0 3D 06 C8 */	lfs f1, 0x6c8(r29)
/* 800415A0 0003D200  48 00 00 CC */	b lbl_8004166C
lbl_800415A4:
/* 800415A4 0003D204  7F C3 F3 78 */	mr r3, r30
/* 800415A8 0003D208  38 80 00 00 */	li r4, 0
/* 800415AC 0003D20C  4B FF F5 D1 */	bl func_80040B7C
/* 800415B0 0003D210  2C 03 00 00 */	cmpwi r3, 0
/* 800415B4 0003D214  41 82 00 AC */	beq lbl_80041660
/* 800415B8 0003D218  7F C3 F3 78 */	mr r3, r30
/* 800415BC 0003D21C  38 80 00 01 */	li r4, 1
/* 800415C0 0003D220  4B FF F5 BD */	bl func_80040B7C
/* 800415C4 0003D224  2C 03 00 00 */	cmpwi r3, 0
/* 800415C8 0003D228  40 82 00 24 */	bne lbl_800415EC
/* 800415CC 0003D22C  7F C3 F3 78 */	mr r3, r30
/* 800415D0 0003D230  38 80 00 00 */	li r4, 0
/* 800415D4 0003D234  4B FF F5 A9 */	bl func_80040B7C
/* 800415D8 0003D238  80 BD 04 D4 */	lwz r5, 0x4d4(r29)
/* 800415DC 0003D23C  7C 64 1B 78 */	mr r4, r3
/* 800415E0 0003D240  7F A3 EB 78 */	mr r3, r29
/* 800415E4 0003D244  48 00 24 09 */	bl func_800439EC
/* 800415E8 0003D248  48 00 00 84 */	b lbl_8004166C
lbl_800415EC:
/* 800415EC 0003D24C  7F C3 F3 78 */	mr r3, r30
/* 800415F0 0003D250  38 80 00 01 */	li r4, 1
/* 800415F4 0003D254  4B FF F5 89 */	bl func_80040B7C
/* 800415F8 0003D258  7C 7F 1B 78 */	mr r31, r3
/* 800415FC 0003D25C  7F C3 F3 78 */	mr r3, r30
/* 80041600 0003D260  38 80 00 00 */	li r4, 0
/* 80041604 0003D264  4B FF F5 79 */	bl func_80040B7C
/* 80041608 0003D268  7C 03 F8 40 */	cmplw r3, r31
/* 8004160C 0003D26C  40 82 00 24 */	bne lbl_80041630
/* 80041610 0003D270  7F C3 F3 78 */	mr r3, r30
/* 80041614 0003D274  38 80 00 00 */	li r4, 0
/* 80041618 0003D278  4B FF F5 65 */	bl func_80040B7C
/* 8004161C 0003D27C  80 BD 04 D4 */	lwz r5, 0x4d4(r29)
/* 80041620 0003D280  7C 64 1B 78 */	mr r4, r3
/* 80041624 0003D284  7F A3 EB 78 */	mr r3, r29
/* 80041628 0003D288  48 00 23 C5 */	bl func_800439EC
/* 8004162C 0003D28C  48 00 00 40 */	b lbl_8004166C
lbl_80041630:
/* 80041630 0003D290  7F C3 F3 78 */	mr r3, r30
/* 80041634 0003D294  4B FF F1 7D */	bl func_800407B0
/* 80041638 0003D298  FF E0 08 90 */	fmr f31, f1
/* 8004163C 0003D29C  7F C3 F3 78 */	mr r3, r30
/* 80041640 0003D2A0  38 80 00 00 */	li r4, 0
/* 80041644 0003D2A4  4B FF F5 39 */	bl func_80040B7C
/* 80041648 0003D2A8  80 BD 04 D4 */	lwz r5, 0x4d4(r29)
/* 8004164C 0003D2AC  7C 64 1B 78 */	mr r4, r3
/* 80041650 0003D2B0  7F A3 EB 78 */	mr r3, r29
/* 80041654 0003D2B4  48 00 23 99 */	bl func_800439EC
/* 80041658 0003D2B8  EC 21 F8 2A */	fadds f1, f1, f31
/* 8004165C 0003D2BC  48 00 00 10 */	b lbl_8004166C
lbl_80041660:
/* 80041660 0003D2C0  C0 3D 06 C8 */	lfs f1, 0x6c8(r29)
/* 80041664 0003D2C4  48 00 00 08 */	b lbl_8004166C
lbl_80041668:
/* 80041668 0003D2C8  C0 23 06 C8 */	lfs f1, 0x6c8(r3)
lbl_8004166C:
/* 8004166C 0003D2CC  E3 E1 00 28 */	psq_l f31, 40(r1), 0, qr0
/* 80041670 0003D2D0  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80041674 0003D2D4  CB E1 00 20 */	lfd f31, 0x20(r1)
/* 80041678 0003D2D8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8004167C 0003D2DC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80041680 0003D2E0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80041684 0003D2E4  7C 08 03 A6 */	mtlr r0
/* 80041688 0003D2E8  38 21 00 30 */	addi r1, r1, 0x30
/* 8004168C 0003D2EC  4E 80 00 20 */	blr

.global func_80041690
func_80041690:
/* 80041690 0003D2F0  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041694 0003D2F4  FC 03 00 40 */	fcmpo cr0, f3, f0
/* 80041698 0003D2F8  40 80 00 08 */	bge lbl_800416A0
/* 8004169C 0003D2FC  FC 60 00 90 */	fmr f3, f0
lbl_800416A0:
/* 800416A0 0003D300  C0 02 82 BC */	lfs f0, lbl_806408BC-_SDA2_BASE_(r2)
/* 800416A4 0003D304  FC 03 00 40 */	fcmpo cr0, f3, f0
/* 800416A8 0003D308  40 81 00 08 */	ble lbl_800416B0
/* 800416AC 0003D30C  FC 60 00 90 */	fmr f3, f0
lbl_800416B0:
/* 800416B0 0003D310  C0 02 82 E8 */	lfs f0, lbl_806408E8-_SDA2_BASE_(r2)
/* 800416B4 0003D314  38 00 00 3F */	li r0, 0x3f
/* 800416B8 0003D318  D0 23 04 C0 */	stfs f1, 0x4c0(r3)
/* 800416BC 0003D31C  FC 03 00 40 */	fcmpo cr0, f3, f0
/* 800416C0 0003D320  90 83 04 C4 */	stw r4, 0x4c4(r3)
/* 800416C4 0003D324  D0 63 04 CC */	stfs f3, 0x4cc(r3)
/* 800416C8 0003D328  D0 43 04 D0 */	stfs f2, 0x4d0(r3)
/* 800416CC 0003D32C  90 A3 04 D4 */	stw r5, 0x4d4(r3)
/* 800416D0 0003D330  90 03 04 BC */	stw r0, 0x4bc(r3)
/* 800416D4 0003D334  4C 41 13 82 */	cror 2, 1, 2
/* 800416D8 0003D338  4C 82 00 20 */	bnelr
/* 800416DC 0003D33C  38 83 05 60 */	addi r4, r3, 0x560
/* 800416E0 0003D340  4B FF FB 48 */	b func_80041228
/* 800416E4 0003D344  4E 80 00 20 */	blr

.global func_800416E8
func_800416E8:
/* 800416E8 0003D348  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 800416EC 0003D34C  FC 03 00 40 */	fcmpo cr0, f3, f0
/* 800416F0 0003D350  40 80 00 08 */	bge lbl_800416F8
/* 800416F4 0003D354  FC 60 00 90 */	fmr f3, f0
lbl_800416F8:
/* 800416F8 0003D358  C0 02 82 BC */	lfs f0, lbl_806408BC-_SDA2_BASE_(r2)
/* 800416FC 0003D35C  FC 03 00 40 */	fcmpo cr0, f3, f0
/* 80041700 0003D360  40 81 00 08 */	ble lbl_80041708
/* 80041704 0003D364  FC 60 00 90 */	fmr f3, f0
lbl_80041708:
/* 80041708 0003D368  C0 02 82 E8 */	lfs f0, lbl_806408E8-_SDA2_BASE_(r2)
/* 8004170C 0003D36C  80 03 04 BC */	lwz r0, 0x4bc(r3)
/* 80041710 0003D370  FC 03 00 40 */	fcmpo cr0, f3, f0
/* 80041714 0003D374  D0 23 04 C0 */	stfs f1, 0x4c0(r3)
/* 80041718 0003D378  60 00 00 17 */	ori r0, r0, 0x17
/* 8004171C 0003D37C  90 03 04 BC */	stw r0, 0x4bc(r3)
/* 80041720 0003D380  D0 63 04 CC */	stfs f3, 0x4cc(r3)
/* 80041724 0003D384  D0 43 04 D0 */	stfs f2, 0x4d0(r3)
/* 80041728 0003D388  4C 41 13 82 */	cror 2, 1, 2
/* 8004172C 0003D38C  4C 82 00 20 */	bnelr
/* 80041730 0003D390  38 83 05 60 */	addi r4, r3, 0x560
/* 80041734 0003D394  4B FF FA F4 */	b func_80041228
/* 80041738 0003D398  4E 80 00 20 */	blr

.global func_8004173C
func_8004173C:
/* 8004173C 0003D39C  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041740 0003D3A0  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 80041744 0003D3A4  40 80 00 08 */	bge lbl_8004174C
/* 80041748 0003D3A8  FC 40 00 90 */	fmr f2, f0
lbl_8004174C:
/* 8004174C 0003D3AC  C0 02 82 BC */	lfs f0, lbl_806408BC-_SDA2_BASE_(r2)
/* 80041750 0003D3B0  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 80041754 0003D3B4  40 81 00 08 */	ble lbl_8004175C
/* 80041758 0003D3B8  FC 40 00 90 */	fmr f2, f0
lbl_8004175C:
/* 8004175C 0003D3BC  80 03 04 BC */	lwz r0, 0x4bc(r3)
/* 80041760 0003D3C0  C0 02 82 E8 */	lfs f0, lbl_806408E8-_SDA2_BASE_(r2)
/* 80041764 0003D3C4  60 00 00 0F */	ori r0, r0, 0xf
/* 80041768 0003D3C8  90 83 04 C4 */	stw r4, 0x4c4(r3)
/* 8004176C 0003D3CC  54 00 06 B0 */	rlwinm r0, r0, 0, 0x1a, 0x18
/* 80041770 0003D3D0  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 80041774 0003D3D4  90 03 04 BC */	stw r0, 0x4bc(r3)
/* 80041778 0003D3D8  D0 43 04 CC */	stfs f2, 0x4cc(r3)
/* 8004177C 0003D3DC  D0 23 04 D0 */	stfs f1, 0x4d0(r3)
/* 80041780 0003D3E0  4C 41 13 82 */	cror 2, 1, 2
/* 80041784 0003D3E4  4C 82 00 20 */	bnelr
/* 80041788 0003D3E8  38 83 05 60 */	addi r4, r3, 0x560
/* 8004178C 0003D3EC  4B FF FA 9C */	b func_80041228
/* 80041790 0003D3F0  4E 80 00 20 */	blr

.global func_80041794
func_80041794:
/* 80041794 0003D3F4  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041798 0003D3F8  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 8004179C 0003D3FC  40 80 00 08 */	bge lbl_800417A4
/* 800417A0 0003D400  FC 40 00 90 */	fmr f2, f0
lbl_800417A4:
/* 800417A4 0003D404  C0 02 82 BC */	lfs f0, lbl_806408BC-_SDA2_BASE_(r2)
/* 800417A8 0003D408  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 800417AC 0003D40C  40 81 00 08 */	ble lbl_800417B4
/* 800417B0 0003D410  FC 40 00 90 */	fmr f2, f0
lbl_800417B4:
/* 800417B4 0003D414  C0 02 82 E8 */	lfs f0, lbl_806408E8-_SDA2_BASE_(r2)
/* 800417B8 0003D418  80 03 04 BC */	lwz r0, 0x4bc(r3)
/* 800417BC 0003D41C  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 800417C0 0003D420  90 83 04 D4 */	stw r4, 0x4d4(r3)
/* 800417C4 0003D424  60 00 00 27 */	ori r0, r0, 0x27
/* 800417C8 0003D428  90 03 04 BC */	stw r0, 0x4bc(r3)
/* 800417CC 0003D42C  D0 43 04 CC */	stfs f2, 0x4cc(r3)
/* 800417D0 0003D430  D0 23 04 D0 */	stfs f1, 0x4d0(r3)
/* 800417D4 0003D434  4C 41 13 82 */	cror 2, 1, 2
/* 800417D8 0003D438  4C 82 00 20 */	bnelr
/* 800417DC 0003D43C  38 83 05 60 */	addi r4, r3, 0x560
/* 800417E0 0003D440  4B FF FA 48 */	b func_80041228
/* 800417E4 0003D444  4E 80 00 20 */	blr

.global func_800417E8
func_800417E8:
/* 800417E8 0003D448  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 800417EC 0003D44C  7C 08 02 A6 */	mflr r0
/* 800417F0 0003D450  90 01 00 44 */	stw r0, 0x44(r1)
/* 800417F4 0003D454  DB E1 00 30 */	stfd f31, 0x30(r1)
/* 800417F8 0003D458  F3 E1 00 38 */	psq_st f31, 56(r1), 0, qr0
/* 800417FC 0003D45C  DB C1 00 20 */	stfd f30, 0x20(r1)
/* 80041800 0003D460  F3 C1 00 28 */	psq_st f30, 40(r1), 0, qr0
/* 80041804 0003D464  DB A1 00 10 */	stfd f29, 0x10(r1)
/* 80041808 0003D468  F3 A1 00 18 */	psq_st f29, 24(r1), 0, qr0
/* 8004180C 0003D46C  FF A0 08 90 */	fmr f29, f1
/* 80041810 0003D470  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041814 0003D474  FF C0 10 90 */	fmr f30, f2
/* 80041818 0003D478  FF E0 18 90 */	fmr f31, f3
/* 8004181C 0003D47C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80041820 0003D480  FC 03 00 40 */	fcmpo cr0, f3, f0
/* 80041824 0003D484  7C 7F 1B 78 */	mr r31, r3
/* 80041828 0003D488  40 80 00 08 */	bge lbl_80041830
/* 8004182C 0003D48C  FF E0 00 90 */	fmr f31, f0
lbl_80041830:
/* 80041830 0003D490  C0 02 82 BC */	lfs f0, lbl_806408BC-_SDA2_BASE_(r2)
/* 80041834 0003D494  FC 1F 00 40 */	fcmpo cr0, f31, f0
/* 80041838 0003D498  40 81 00 08 */	ble lbl_80041840
/* 8004183C 0003D49C  FF E0 00 90 */	fmr f31, f0
lbl_80041840:
/* 80041840 0003D4A0  80 03 04 BC */	lwz r0, 0x4bc(r3)
/* 80041844 0003D4A4  60 00 00 47 */	ori r0, r0, 0x47
/* 80041848 0003D4A8  54 00 07 76 */	rlwinm r0, r0, 0, 0x1d, 0x1b
/* 8004184C 0003D4AC  90 03 04 BC */	stw r0, 0x4bc(r3)
/* 80041850 0003D4B0  38 63 01 48 */	addi r3, r3, 0x148
/* 80041854 0003D4B4  48 00 EB 35 */	bl func_80050388
/* 80041858 0003D4B8  C0 02 82 E8 */	lfs f0, lbl_806408E8-_SDA2_BASE_(r2)
/* 8004185C 0003D4BC  D3 BF 04 C8 */	stfs f29, 0x4c8(r31)
/* 80041860 0003D4C0  FC 1F 00 40 */	fcmpo cr0, f31, f0
/* 80041864 0003D4C4  D3 FF 04 CC */	stfs f31, 0x4cc(r31)
/* 80041868 0003D4C8  D3 DF 04 D0 */	stfs f30, 0x4d0(r31)
/* 8004186C 0003D4CC  4C 41 13 82 */	cror 2, 1, 2
/* 80041870 0003D4D0  40 82 00 10 */	bne lbl_80041880
/* 80041874 0003D4D4  7F E3 FB 78 */	mr r3, r31
/* 80041878 0003D4D8  38 9F 05 60 */	addi r4, r31, 0x560
/* 8004187C 0003D4DC  4B FF F9 AD */	bl func_80041228
lbl_80041880:
/* 80041880 0003D4E0  E3 E1 00 38 */	psq_l f31, 56(r1), 0, qr0
/* 80041884 0003D4E4  CB E1 00 30 */	lfd f31, 0x30(r1)
/* 80041888 0003D4E8  E3 C1 00 28 */	psq_l f30, 40(r1), 0, qr0
/* 8004188C 0003D4EC  CB C1 00 20 */	lfd f30, 0x20(r1)
/* 80041890 0003D4F0  E3 A1 00 18 */	psq_l f29, 24(r1), 0, qr0
/* 80041894 0003D4F4  CB A1 00 10 */	lfd f29, 0x10(r1)
/* 80041898 0003D4F8  80 01 00 44 */	lwz r0, 0x44(r1)
/* 8004189C 0003D4FC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 800418A0 0003D500  7C 08 03 A6 */	mtlr r0
/* 800418A4 0003D504  38 21 00 40 */	addi r1, r1, 0x40
/* 800418A8 0003D508  4E 80 00 20 */	blr

.global func_800418AC
func_800418AC:
/* 800418AC 0003D50C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 800418B0 0003D510  7C 08 02 A6 */	mflr r0
/* 800418B4 0003D514  90 01 00 14 */	stw r0, 0x14(r1)
/* 800418B8 0003D518  54 80 07 FF */	clrlwi. r0, r4, 0x1f
/* 800418BC 0003D51C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 800418C0 0003D520  93 C1 00 08 */	stw r30, 8(r1)
/* 800418C4 0003D524  7C 7E 1B 78 */	mr r30, r3
/* 800418C8 0003D528  41 82 00 20 */	beq lbl_800418E8
/* 800418CC 0003D52C  3B E0 00 00 */	li r31, 0
/* 800418D0 0003D530  38 80 00 00 */	li r4, 0
/* 800418D4 0003D534  93 E3 04 BC */	stw r31, 0x4bc(r3)
/* 800418D8 0003D538  38 63 04 E8 */	addi r3, r3, 0x4e8
/* 800418DC 0003D53C  4B FF F2 C9 */	bl func_80040BA4
/* 800418E0 0003D540  9B FE 00 02 */	stb r31, 2(r30)
/* 800418E4 0003D544  48 00 00 54 */	b lbl_80041938
lbl_800418E8:
/* 800418E8 0003D548  54 80 07 7B */	rlwinm. r0, r4, 0, 0x1d, 0x1d
/* 800418EC 0003D54C  41 82 00 10 */	beq lbl_800418FC
/* 800418F0 0003D550  80 03 04 BC */	lwz r0, 0x4bc(r3)
/* 800418F4 0003D554  54 00 07 76 */	rlwinm r0, r0, 0, 0x1d, 0x1b
/* 800418F8 0003D558  90 03 04 BC */	stw r0, 0x4bc(r3)
lbl_800418FC:
/* 800418FC 0003D55C  54 80 07 BD */	rlwinm. r0, r4, 0, 0x1e, 0x1e
/* 80041900 0003D560  41 82 00 10 */	beq lbl_80041910
/* 80041904 0003D564  80 03 04 BC */	lwz r0, 0x4bc(r3)
/* 80041908 0003D568  54 00 07 34 */	rlwinm r0, r0, 0, 0x1c, 0x1a
/* 8004190C 0003D56C  90 03 04 BC */	stw r0, 0x4bc(r3)
lbl_80041910:
/* 80041910 0003D570  54 80 07 39 */	rlwinm. r0, r4, 0, 0x1c, 0x1c
/* 80041914 0003D574  41 82 00 10 */	beq lbl_80041924
/* 80041918 0003D578  80 03 04 BC */	lwz r0, 0x4bc(r3)
/* 8004191C 0003D57C  54 00 06 F2 */	rlwinm r0, r0, 0, 0x1b, 0x19
/* 80041920 0003D580  90 03 04 BC */	stw r0, 0x4bc(r3)
lbl_80041924:
/* 80041924 0003D584  54 80 06 F7 */	rlwinm. r0, r4, 0, 0x1b, 0x1b
/* 80041928 0003D588  41 82 00 10 */	beq lbl_80041938
/* 8004192C 0003D58C  80 03 04 BC */	lwz r0, 0x4bc(r3)
/* 80041930 0003D590  54 00 06 B0 */	rlwinm r0, r0, 0, 0x1a, 0x18
/* 80041934 0003D594  90 03 04 BC */	stw r0, 0x4bc(r3)
lbl_80041938:
/* 80041938 0003D598  80 01 00 14 */	lwz r0, 0x14(r1)
/* 8004193C 0003D59C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80041940 0003D5A0  83 C1 00 08 */	lwz r30, 8(r1)
/* 80041944 0003D5A4  7C 08 03 A6 */	mtlr r0
/* 80041948 0003D5A8  38 21 00 10 */	addi r1, r1, 0x10
/* 8004194C 0003D5AC  4E 80 00 20 */	blr

.global func_80041950
func_80041950:
/* 80041950 0003D5B0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80041954 0003D5B4  7C 08 02 A6 */	mflr r0
/* 80041958 0003D5B8  7C 87 23 78 */	mr r7, r4
/* 8004195C 0003D5BC  38 83 04 C8 */	addi r4, r3, 0x4c8
/* 80041960 0003D5C0  90 01 00 14 */	stw r0, 0x14(r1)
/* 80041964 0003D5C4  7C 86 23 78 */	mr r6, r4
/* 80041968 0003D5C8  38 A1 00 08 */	addi r5, r1, 8
/* 8004196C 0003D5CC  38 63 01 90 */	addi r3, r3, 0x190
/* 80041970 0003D5D0  D0 21 00 08 */	stfs f1, 8(r1)
/* 80041974 0003D5D4  FC 20 10 90 */	fmr f1, f2
/* 80041978 0003D5D8  48 00 E9 C5 */	bl func_8005033C
/* 8004197C 0003D5DC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80041980 0003D5E0  7C 08 03 A6 */	mtlr r0
/* 80041984 0003D5E4  38 21 00 10 */	addi r1, r1, 0x10
/* 80041988 0003D5E8  4E 80 00 20 */	blr

.global func_8004198C
func_8004198C:
/* 8004198C 0003D5EC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80041990 0003D5F0  7C 08 02 A6 */	mflr r0
/* 80041994 0003D5F4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80041998 0003D5F8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8004199C 0003D5FC  7C 7F 1B 78 */	mr r31, r3
/* 800419A0 0003D600  38 63 04 E8 */	addi r3, r3, 0x4e8
/* 800419A4 0003D604  4B FF F1 3D */	bl func_80040AE0
/* 800419A8 0003D608  38 00 00 00 */	li r0, 0
/* 800419AC 0003D60C  38 7F 00 4C */	addi r3, r31, 0x4c
/* 800419B0 0003D610  90 1F 04 BC */	stw r0, 0x4bc(r31)
/* 800419B4 0003D614  48 00 E9 D5 */	bl func_80050388
/* 800419B8 0003D618  38 7F 00 70 */	addi r3, r31, 0x70
/* 800419BC 0003D61C  48 00 E9 CD */	bl func_80050388
/* 800419C0 0003D620  38 7F 00 94 */	addi r3, r31, 0x94
/* 800419C4 0003D624  48 00 E9 C5 */	bl func_80050388
/* 800419C8 0003D628  38 00 00 01 */	li r0, 1
/* 800419CC 0003D62C  98 1F 00 01 */	stb r0, 1(r31)
/* 800419D0 0003D630  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 800419D4 0003D634  80 01 00 14 */	lwz r0, 0x14(r1)
/* 800419D8 0003D638  7C 08 03 A6 */	mtlr r0
/* 800419DC 0003D63C  38 21 00 10 */	addi r1, r1, 0x10
/* 800419E0 0003D640  4E 80 00 20 */	blr

.global func_800419E4
func_800419E4:
/* 800419E4 0003D644  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 800419E8 0003D648  7C 08 02 A6 */	mflr r0
/* 800419EC 0003D64C  2C 04 00 00 */	cmpwi r4, 0
/* 800419F0 0003D650  90 01 00 34 */	stw r0, 0x34(r1)
/* 800419F4 0003D654  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 800419F8 0003D658  93 C1 00 28 */	stw r30, 0x28(r1)
/* 800419FC 0003D65C  7C 7E 1B 78 */	mr r30, r3
/* 80041A00 0003D660  40 82 00 3C */	bne lbl_80041A3C
/* 80041A04 0003D664  48 00 0B 8D */	bl func_80042590
/* 80041A08 0003D668  7C 7F 1B 78 */	mr r31, r3
/* 80041A0C 0003D66C  7F C3 F3 78 */	mr r3, r30
/* 80041A10 0003D670  4B FF F7 F5 */	bl func_80041204
/* 80041A14 0003D674  7F E4 FB 78 */	mr r4, r31
/* 80041A18 0003D678  38 A1 00 08 */	addi r5, r1, 8
/* 80041A1C 0003D67C  48 23 B2 CD */	bl PSVECSubtract
/* 80041A20 0003D680  C0 41 00 08 */	lfs f2, 8(r1)
/* 80041A24 0003D684  C0 21 00 0C */	lfs f1, 0xc(r1)
/* 80041A28 0003D688  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 80041A2C 0003D68C  D0 41 00 14 */	stfs f2, 0x14(r1)
/* 80041A30 0003D690  D0 21 00 18 */	stfs f1, 0x18(r1)
/* 80041A34 0003D694  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 80041A38 0003D698  48 00 00 1C */	b lbl_80041A54
lbl_80041A3C:
/* 80041A3C 0003D69C  C0 04 00 00 */	lfs f0, 0(r4)
/* 80041A40 0003D6A0  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 80041A44 0003D6A4  C0 04 00 04 */	lfs f0, 4(r4)
/* 80041A48 0003D6A8  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 80041A4C 0003D6AC  C0 04 00 08 */	lfs f0, 8(r4)
/* 80041A50 0003D6B0  D0 01 00 1C */	stfs f0, 0x1c(r1)
lbl_80041A54:
/* 80041A54 0003D6B4  38 7E 04 E8 */	addi r3, r30, 0x4e8
/* 80041A58 0003D6B8  38 81 00 14 */	addi r4, r1, 0x14
/* 80041A5C 0003D6BC  4B FF F0 B5 */	bl func_80040B10
/* 80041A60 0003D6C0  38 60 00 00 */	li r3, 0
/* 80041A64 0003D6C4  38 00 00 01 */	li r0, 1
/* 80041A68 0003D6C8  90 7E 04 BC */	stw r3, 0x4bc(r30)
/* 80041A6C 0003D6CC  98 1E 00 01 */	stb r0, 1(r30)
/* 80041A70 0003D6D0  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 80041A74 0003D6D4  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 80041A78 0003D6D8  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80041A7C 0003D6DC  7C 08 03 A6 */	mtlr r0
/* 80041A80 0003D6E0  38 21 00 30 */	addi r1, r1, 0x30
/* 80041A84 0003D6E4  4E 80 00 20 */	blr

.global func_80041A88
func_80041A88:
/* 80041A88 0003D6E8  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80041A8C 0003D6EC  7C 08 02 A6 */	mflr r0
/* 80041A90 0003D6F0  90 01 00 34 */	stw r0, 0x34(r1)
/* 80041A94 0003D6F4  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 80041A98 0003D6F8  7C 7F 1B 78 */	mr r31, r3
/* 80041A9C 0003D6FC  38 61 00 08 */	addi r3, r1, 8
/* 80041AA0 0003D700  7F E4 FB 78 */	mr r4, r31
/* 80041AA4 0003D704  48 00 00 B5 */	bl func_80041B58
/* 80041AA8 0003D708  C0 41 00 08 */	lfs f2, 8(r1)
/* 80041AAC 0003D70C  7F E3 FB 78 */	mr r3, r31
/* 80041AB0 0003D710  C0 21 00 0C */	lfs f1, 0xc(r1)
/* 80041AB4 0003D714  38 81 00 14 */	addi r4, r1, 0x14
/* 80041AB8 0003D718  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 80041ABC 0003D71C  D0 41 00 14 */	stfs f2, 0x14(r1)
/* 80041AC0 0003D720  D0 21 00 18 */	stfs f1, 0x18(r1)
/* 80041AC4 0003D724  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 80041AC8 0003D728  4B FF FF 1D */	bl func_800419E4
/* 80041ACC 0003D72C  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80041AD0 0003D730  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 80041AD4 0003D734  7C 08 03 A6 */	mtlr r0
/* 80041AD8 0003D738  38 21 00 30 */	addi r1, r1, 0x30
/* 80041ADC 0003D73C  4E 80 00 20 */	blr

.global func_80041AE0
func_80041AE0:
/* 80041AE0 0003D740  7C A6 2B 78 */	mr r6, r5
/* 80041AE4 0003D744  38 A3 06 E0 */	addi r5, r3, 0x6e0
/* 80041AE8 0003D748  38 E0 00 00 */	li r7, 0
/* 80041AEC 0003D74C  39 00 00 00 */	li r8, 0
/* 80041AF0 0003D750  38 63 01 B4 */	addi r3, r3, 0x1b4
/* 80041AF4 0003D754  48 00 F3 88 */	b func_80050E7C

.global func_80041AF8
func_80041AF8:
/* 80041AF8 0003D758  7C A6 2B 78 */	mr r6, r5
/* 80041AFC 0003D75C  38 A3 06 E4 */	addi r5, r3, 0x6e4
/* 80041B00 0003D760  38 E0 00 00 */	li r7, 0
/* 80041B04 0003D764  39 00 00 00 */	li r8, 0
/* 80041B08 0003D768  38 63 02 14 */	addi r3, r3, 0x214
/* 80041B0C 0003D76C  48 00 F3 70 */	b func_80050E7C

.global func_80041B10
func_80041B10:
/* 80041B10 0003D770  7C A6 2B 78 */	mr r6, r5
/* 80041B14 0003D774  38 A3 06 EC */	addi r5, r3, 0x6ec
/* 80041B18 0003D778  38 E0 00 00 */	li r7, 0
/* 80041B1C 0003D77C  39 00 00 00 */	li r8, 0
/* 80041B20 0003D780  38 63 02 D4 */	addi r3, r3, 0x2d4
/* 80041B24 0003D784  48 00 F3 58 */	b func_80050E7C

.global func_80041B28
func_80041B28:
/* 80041B28 0003D788  7C A6 2B 78 */	mr r6, r5
/* 80041B2C 0003D78C  38 A3 06 F0 */	addi r5, r3, 0x6f0
/* 80041B30 0003D790  38 E0 00 00 */	li r7, 0
/* 80041B34 0003D794  39 00 00 00 */	li r8, 0
/* 80041B38 0003D798  38 63 03 34 */	addi r3, r3, 0x334
/* 80041B3C 0003D79C  48 00 F3 40 */	b func_80050E7C

.global func_80041B40
func_80041B40:
/* 80041B40 0003D7A0  7C A6 2B 78 */	mr r6, r5
/* 80041B44 0003D7A4  38 A3 06 E8 */	addi r5, r3, 0x6e8
/* 80041B48 0003D7A8  38 E0 00 00 */	li r7, 0
/* 80041B4C 0003D7AC  39 00 00 00 */	li r8, 0
/* 80041B50 0003D7B0  38 63 02 74 */	addi r3, r3, 0x274
/* 80041B54 0003D7B4  48 00 F3 28 */	b func_80050E7C

.global func_80041B58
func_80041B58:
/* 80041B58 0003D7B8  94 21 FF 30 */	stwu r1, -0xd0(r1)
/* 80041B5C 0003D7BC  7C 08 02 A6 */	mflr r0
/* 80041B60 0003D7C0  90 01 00 D4 */	stw r0, 0xd4(r1)
/* 80041B64 0003D7C4  DB E1 00 C0 */	stfd f31, 0xc0(r1)
/* 80041B68 0003D7C8  F3 E1 00 C8 */	psq_st f31, 200(r1), 0, qr0
/* 80041B6C 0003D7CC  DB C1 00 B0 */	stfd f30, 0xb0(r1)
/* 80041B70 0003D7D0  F3 C1 00 B8 */	psq_st f30, 184(r1), 0, qr0
/* 80041B74 0003D7D4  DB A1 00 A0 */	stfd f29, 0xa0(r1)
/* 80041B78 0003D7D8  F3 A1 00 A8 */	psq_st f29, 168(r1), 0, qr0
/* 80041B7C 0003D7DC  DB 81 00 90 */	stfd f28, 0x90(r1)
/* 80041B80 0003D7E0  F3 81 00 98 */	psq_st f28, 152(r1), 0, qr0
/* 80041B84 0003D7E4  DB 61 00 80 */	stfd f27, 0x80(r1)
/* 80041B88 0003D7E8  F3 61 00 88 */	psq_st f27, 136(r1), 0, qr0
/* 80041B8C 0003D7EC  FF A0 08 90 */	fmr f29, f1
/* 80041B90 0003D7F0  C0 82 82 B0 */	lfs f4, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041B94 0003D7F4  FF C0 10 90 */	fmr f30, f2
/* 80041B98 0003D7F8  93 E1 00 7C */	stw r31, 0x7c(r1)
/* 80041B9C 0003D7FC  FF E0 18 90 */	fmr f31, f3
/* 80041BA0 0003D800  C0 02 82 BC */	lfs f0, lbl_806408BC-_SDA2_BASE_(r2)
/* 80041BA4 0003D804  93 C1 00 78 */	stw r30, 0x78(r1)
/* 80041BA8 0003D808  93 A1 00 74 */	stw r29, 0x74(r1)
/* 80041BAC 0003D80C  7C 9D 23 78 */	mr r29, r4
/* 80041BB0 0003D810  93 81 00 70 */	stw r28, 0x70(r1)
/* 80041BB4 0003D814  7C 7C 1B 78 */	mr r28, r3
/* 80041BB8 0003D818  D0 81 00 60 */	stfs f4, 0x60(r1)
/* 80041BBC 0003D81C  D0 81 00 64 */	stfs f4, 0x64(r1)
/* 80041BC0 0003D820  D0 01 00 68 */	stfs f0, 0x68(r1)
/* 80041BC4 0003D824  80 04 06 D0 */	lwz r0, 0x6d0(r4)
/* 80041BC8 0003D828  2C 00 00 00 */	cmpwi r0, 0
/* 80041BCC 0003D82C  41 82 00 0C */	beq lbl_80041BD8
/* 80041BD0 0003D830  3B C4 06 50 */	addi r30, r4, 0x650
/* 80041BD4 0003D834  48 00 00 08 */	b lbl_80041BDC
lbl_80041BD8:
/* 80041BD8 0003D838  3B C4 05 60 */	addi r30, r4, 0x560
lbl_80041BDC:
/* 80041BDC 0003D83C  7F C3 F3 78 */	mr r3, r30
/* 80041BE0 0003D840  38 80 00 00 */	li r4, 0
/* 80041BE4 0003D844  4B FF EF 99 */	bl func_80040B7C
/* 80041BE8 0003D848  2C 03 00 00 */	cmpwi r3, 0
/* 80041BEC 0003D84C  7C 7F 1B 78 */	mr r31, r3
/* 80041BF0 0003D850  41 82 00 18 */	beq lbl_80041C08
/* 80041BF4 0003D854  7F E4 FB 78 */	mr r4, r31
/* 80041BF8 0003D858  38 61 00 44 */	addi r3, r1, 0x44
/* 80041BFC 0003D85C  4B FF 6E 99 */	bl func_80038A94
/* 80041C00 0003D860  C3 61 00 48 */	lfs f27, 0x48(r1)
/* 80041C04 0003D864  48 00 00 08 */	b lbl_80041C0C
lbl_80041C08:
/* 80041C08 0003D868  C3 62 82 B0 */	lfs f27, lbl_806408B0-_SDA2_BASE_(r2)
lbl_80041C0C:
/* 80041C0C 0003D86C  FC 20 D8 90 */	fmr f1, f27
/* 80041C10 0003D870  48 18 8A A5 */	bl __fpclassifyf
/* 80041C14 0003D874  2C 03 00 02 */	cmpwi r3, 2
/* 80041C18 0003D878  40 82 00 08 */	bne lbl_80041C20
/* 80041C1C 0003D87C  C3 62 82 B0 */	lfs f27, lbl_806408B0-_SDA2_BASE_(r2)
lbl_80041C20:
/* 80041C20 0003D880  FC 20 D8 90 */	fmr f1, f27
/* 80041C24 0003D884  48 18 8A 91 */	bl __fpclassifyf
/* 80041C28 0003D888  2C 03 00 01 */	cmpwi r3, 1
/* 80041C2C 0003D88C  40 82 00 08 */	bne lbl_80041C34
/* 80041C30 0003D890  C3 62 82 B0 */	lfs f27, lbl_806408B0-_SDA2_BASE_(r2)
lbl_80041C34:
/* 80041C34 0003D894  C0 22 82 EC */	lfs f1, lbl_806408EC-_SDA2_BASE_(r2)
/* 80041C38 0003D898  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041C3C 0003D89C  48 00 00 08 */	b lbl_80041C44
lbl_80041C40:
/* 80041C40 0003D8A0  EF 7B 08 2A */	fadds f27, f27, f1
lbl_80041C44:
/* 80041C44 0003D8A4  FC 1B 00 40 */	fcmpo cr0, f27, f0
/* 80041C48 0003D8A8  41 80 FF F8 */	blt lbl_80041C40
/* 80041C4C 0003D8AC  C0 02 82 EC */	lfs f0, lbl_806408EC-_SDA2_BASE_(r2)
/* 80041C50 0003D8B0  48 00 00 08 */	b lbl_80041C58
lbl_80041C54:
/* 80041C54 0003D8B4  EF 7B 00 28 */	fsubs f27, f27, f0
lbl_80041C58:
/* 80041C58 0003D8B8  FC 1B 00 40 */	fcmpo cr0, f27, f0
/* 80041C5C 0003D8BC  41 81 FF F8 */	bgt lbl_80041C54
/* 80041C60 0003D8C0  C0 02 82 F0 */	lfs f0, lbl_806408F0-_SDA2_BASE_(r2)
/* 80041C64 0003D8C4  FC 1B 00 40 */	fcmpo cr0, f27, f0
/* 80041C68 0003D8C8  4C 40 13 82 */	cror 2, 0, 2
/* 80041C6C 0003D8CC  41 82 00 14 */	beq lbl_80041C80
/* 80041C70 0003D8D0  C0 02 82 F4 */	lfs f0, lbl_806408F4-_SDA2_BASE_(r2)
/* 80041C74 0003D8D4  FC 1B 00 40 */	fcmpo cr0, f27, f0
/* 80041C78 0003D8D8  4C 41 13 82 */	cror 2, 1, 2
/* 80041C7C 0003D8DC  40 82 00 0C */	bne lbl_80041C88
lbl_80041C80:
/* 80041C80 0003D8E0  EF BB E8 28 */	fsubs f29, f27, f29
/* 80041C84 0003D8E4  48 00 00 90 */	b lbl_80041D14
lbl_80041C88:
/* 80041C88 0003D8E8  C0 02 82 F8 */	lfs f0, lbl_806408F8-_SDA2_BASE_(r2)
/* 80041C8C 0003D8EC  FC 00 D8 40 */	fcmpo cr0, f0, f27
/* 80041C90 0003D8F0  4C 40 13 82 */	cror 2, 0, 2
/* 80041C94 0003D8F4  40 82 00 1C */	bne lbl_80041CB0
/* 80041C98 0003D8F8  C0 02 82 FC */	lfs f0, lbl_806408FC-_SDA2_BASE_(r2)
/* 80041C9C 0003D8FC  FC 1B 00 40 */	fcmpo cr0, f27, f0
/* 80041CA0 0003D900  4C 40 13 82 */	cror 2, 0, 2
/* 80041CA4 0003D904  40 82 00 0C */	bne lbl_80041CB0
/* 80041CA8 0003D908  EF BB E8 2A */	fadds f29, f27, f29
/* 80041CAC 0003D90C  48 00 00 68 */	b lbl_80041D14
lbl_80041CB0:
/* 80041CB0 0003D910  C0 02 82 F0 */	lfs f0, lbl_806408F0-_SDA2_BASE_(r2)
/* 80041CB4 0003D914  FC 00 D8 40 */	fcmpo cr0, f0, f27
/* 80041CB8 0003D918  40 80 00 38 */	bge lbl_80041CF0
/* 80041CBC 0003D91C  C0 02 82 F8 */	lfs f0, lbl_806408F8-_SDA2_BASE_(r2)
/* 80041CC0 0003D920  FC 1B 00 40 */	fcmpo cr0, f27, f0
/* 80041CC4 0003D924  40 80 00 2C */	bge lbl_80041CF0
/* 80041CC8 0003D928  7F A3 EB 78 */	mr r3, r29
/* 80041CCC 0003D92C  48 00 08 C5 */	bl func_80042590
/* 80041CD0 0003D930  C0 23 00 08 */	lfs f1, 8(r3)
/* 80041CD4 0003D934  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041CD8 0003D938  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80041CDC 0003D93C  40 80 00 0C */	bge lbl_80041CE8
/* 80041CE0 0003D940  EF BB E8 28 */	fsubs f29, f27, f29
/* 80041CE4 0003D944  48 00 00 30 */	b lbl_80041D14
lbl_80041CE8:
/* 80041CE8 0003D948  EF BB E8 2A */	fadds f29, f27, f29
/* 80041CEC 0003D94C  48 00 00 28 */	b lbl_80041D14
lbl_80041CF0:
/* 80041CF0 0003D950  7F A3 EB 78 */	mr r3, r29
/* 80041CF4 0003D954  48 00 08 9D */	bl func_80042590
/* 80041CF8 0003D958  C0 23 00 08 */	lfs f1, 8(r3)
/* 80041CFC 0003D95C  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041D00 0003D960  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80041D04 0003D964  40 80 00 0C */	bge lbl_80041D10
/* 80041D08 0003D968  EF BB E8 2A */	fadds f29, f27, f29
/* 80041D0C 0003D96C  48 00 00 08 */	b lbl_80041D14
lbl_80041D10:
/* 80041D10 0003D970  EF BB E8 28 */	fsubs f29, f27, f29
lbl_80041D14:
/* 80041D14 0003D974  2C 1F 00 00 */	cmpwi r31, 0
/* 80041D18 0003D978  41 82 01 30 */	beq lbl_80041E48
/* 80041D1C 0003D97C  7F C3 F3 78 */	mr r3, r30
/* 80041D20 0003D980  38 80 00 01 */	li r4, 1
/* 80041D24 0003D984  4B FF EE 59 */	bl func_80040B7C
/* 80041D28 0003D988  2C 03 00 00 */	cmpwi r3, 0
/* 80041D2C 0003D98C  7C 7E 1B 78 */	mr r30, r3
/* 80041D30 0003D990  41 82 00 0C */	beq lbl_80041D3C
/* 80041D34 0003D994  7C 03 F8 40 */	cmplw r3, r31
/* 80041D38 0003D998  40 82 00 6C */	bne lbl_80041DA4
lbl_80041D3C:
/* 80041D3C 0003D99C  7F E3 FB 78 */	mr r3, r31
/* 80041D40 0003D9A0  38 80 00 01 */	li r4, 1
/* 80041D44 0003D9A4  4B FF 88 A9 */	bl func_8003A5EC
/* 80041D48 0003D9A8  C0 02 83 00 */	lfs f0, lbl_80640900-_SDA2_BASE_(r2)
/* 80041D4C 0003D9AC  FF 60 08 90 */	fmr f27, f1
/* 80041D50 0003D9B0  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80041D54 0003D9B4  40 80 00 08 */	bge lbl_80041D5C
/* 80041D58 0003D9B8  FF 60 00 90 */	fmr f27, f0
lbl_80041D5C:
/* 80041D5C 0003D9BC  C8 22 83 08 */	lfd f1, lbl_80640908-_SDA2_BASE_(r2)
/* 80041D60 0003D9C0  48 19 27 FD */	bl tan
/* 80041D64 0003D9C4  FC 00 08 18 */	frsp f0, f1
/* 80041D68 0003D9C8  7F E3 FB 78 */	mr r3, r31
/* 80041D6C 0003D9CC  EF 7B 00 24 */	fdivs f27, f27, f0
/* 80041D70 0003D9D0  4B FF 79 65 */	bl func_800396D4
/* 80041D74 0003D9D4  2C 03 00 01 */	cmpwi r3, 1
/* 80041D78 0003D9D8  41 81 00 14 */	bgt lbl_80041D8C
/* 80041D7C 0003D9DC  C0 02 83 10 */	lfs f0, lbl_80640910-_SDA2_BASE_(r2)
/* 80041D80 0003D9E0  EC 00 06 F2 */	fmuls f0, f0, f27
/* 80041D84 0003D9E4  EF FF 00 32 */	fmuls f31, f31, f0
/* 80041D88 0003D9E8  48 00 00 C8 */	b lbl_80041E50
lbl_80041D8C:
/* 80041D8C 0003D9EC  C0 22 83 18 */	lfs f1, lbl_80640918-_SDA2_BASE_(r2)
/* 80041D90 0003D9F0  C0 02 83 14 */	lfs f0, lbl_80640914-_SDA2_BASE_(r2)
/* 80041D94 0003D9F4  EC 21 06 F2 */	fmuls f1, f1, f27
/* 80041D98 0003D9F8  EC 00 08 2A */	fadds f0, f0, f1
/* 80041D9C 0003D9FC  EF FF 00 32 */	fmuls f31, f31, f0
/* 80041DA0 0003DA00  48 00 00 B0 */	b lbl_80041E50
lbl_80041DA4:
/* 80041DA4 0003DA04  7F C4 F3 78 */	mr r4, r30
/* 80041DA8 0003DA08  38 61 00 2C */	addi r3, r1, 0x2c
/* 80041DAC 0003DA0C  4B FF 6A 35 */	bl func_800387E0
/* 80041DB0 0003DA10  C3 81 00 2C */	lfs f28, 0x2c(r1)
/* 80041DB4 0003DA14  7F E4 FB 78 */	mr r4, r31
/* 80041DB8 0003DA18  38 61 00 38 */	addi r3, r1, 0x38
/* 80041DBC 0003DA1C  4B FF 6A 25 */	bl func_800387E0
/* 80041DC0 0003DA20  C0 01 00 38 */	lfs f0, 0x38(r1)
/* 80041DC4 0003DA24  FC 00 E0 40 */	fcmpo cr0, f0, f28
/* 80041DC8 0003DA28  40 80 00 18 */	bge lbl_80041DE0
/* 80041DCC 0003DA2C  7F E3 FB 78 */	mr r3, r31
/* 80041DD0 0003DA30  38 80 00 01 */	li r4, 1
/* 80041DD4 0003DA34  4B FF 88 19 */	bl func_8003A5EC
/* 80041DD8 0003DA38  FF 80 08 90 */	fmr f28, f1
/* 80041DDC 0003DA3C  48 00 00 14 */	b lbl_80041DF0
lbl_80041DE0:
/* 80041DE0 0003DA40  7F C3 F3 78 */	mr r3, r30
/* 80041DE4 0003DA44  38 80 00 01 */	li r4, 1
/* 80041DE8 0003DA48  4B FF 88 05 */	bl func_8003A5EC
/* 80041DEC 0003DA4C  FF 80 08 90 */	fmr f28, f1
lbl_80041DF0:
/* 80041DF0 0003DA50  C8 22 83 20 */	lfd f1, lbl_80640920-_SDA2_BASE_(r2)
/* 80041DF4 0003DA54  48 19 27 69 */	bl tan
/* 80041DF8 0003DA58  FC 00 08 18 */	frsp f0, f1
/* 80041DFC 0003DA5C  7F C4 F3 78 */	mr r4, r30
/* 80041E00 0003DA60  38 61 00 14 */	addi r3, r1, 0x14
/* 80041E04 0003DA64  EF 7C 00 24 */	fdivs f27, f28, f0
/* 80041E08 0003DA68  4B FF 69 D9 */	bl func_800387E0
/* 80041E0C 0003DA6C  C3 81 00 14 */	lfs f28, 0x14(r1)
/* 80041E10 0003DA70  7F E4 FB 78 */	mr r4, r31
/* 80041E14 0003DA74  38 61 00 20 */	addi r3, r1, 0x20
/* 80041E18 0003DA78  4B FF 69 C9 */	bl func_800387E0
/* 80041E1C 0003DA7C  C0 01 00 20 */	lfs f0, 0x20(r1)
/* 80041E20 0003DA80  C0 22 83 18 */	lfs f1, lbl_80640918-_SDA2_BASE_(r2)
/* 80041E24 0003DA84  EC 40 E0 28 */	fsubs f2, f0, f28
/* 80041E28 0003DA88  C0 02 82 B8 */	lfs f0, lbl_806408B8-_SDA2_BASE_(r2)
/* 80041E2C 0003DA8C  EC 21 06 F2 */	fmuls f1, f1, f27
/* 80041E30 0003DA90  FC 40 12 10 */	fabs f2, f2
/* 80041E34 0003DA94  FC 40 10 18 */	frsp f2, f2
/* 80041E38 0003DA98  EC 00 00 B2 */	fmuls f0, f0, f2
/* 80041E3C 0003DA9C  EC 01 00 2A */	fadds f0, f1, f0
/* 80041E40 0003DAA0  EF FF 00 32 */	fmuls f31, f31, f0
/* 80041E44 0003DAA4  48 00 00 0C */	b lbl_80041E50
lbl_80041E48:
/* 80041E48 0003DAA8  C0 02 83 28 */	lfs f0, lbl_80640928-_SDA2_BASE_(r2)
/* 80041E4C 0003DAAC  EF E0 07 F2 */	fmuls f31, f0, f31
lbl_80041E50:
/* 80041E50 0003DAB0  FC 20 F0 50 */	fneg f1, f30
/* 80041E54 0003DAB4  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041E58 0003DAB8  D3 A1 00 0C */	stfs f29, 0xc(r1)
/* 80041E5C 0003DABC  38 61 00 50 */	addi r3, r1, 0x50
/* 80041E60 0003DAC0  38 81 00 08 */	addi r4, r1, 8
/* 80041E64 0003DAC4  D0 21 00 08 */	stfs f1, 8(r1)
/* 80041E68 0003DAC8  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 80041E6C 0003DACC  48 1E 18 55 */	bl func_802236C0
/* 80041E70 0003DAD0  38 61 00 60 */	addi r3, r1, 0x60
/* 80041E74 0003DAD4  38 81 00 50 */	addi r4, r1, 0x50
/* 80041E78 0003DAD8  48 1E 1B 95 */	bl func_80223A0C
/* 80041E7C 0003DADC  FC 20 F8 90 */	fmr f1, f31
/* 80041E80 0003DAE0  7F 84 E3 78 */	mr r4, r28
/* 80041E84 0003DAE4  38 61 00 60 */	addi r3, r1, 0x60
/* 80041E88 0003DAE8  48 23 AE 85 */	bl PSVECScale
/* 80041E8C 0003DAEC  E3 E1 00 C8 */	psq_l f31, 200(r1), 0, qr0
/* 80041E90 0003DAF0  CB E1 00 C0 */	lfd f31, 0xc0(r1)
/* 80041E94 0003DAF4  E3 C1 00 B8 */	psq_l f30, 184(r1), 0, qr0
/* 80041E98 0003DAF8  CB C1 00 B0 */	lfd f30, 0xb0(r1)
/* 80041E9C 0003DAFC  E3 A1 00 A8 */	psq_l f29, 168(r1), 0, qr0
/* 80041EA0 0003DB00  CB A1 00 A0 */	lfd f29, 0xa0(r1)
/* 80041EA4 0003DB04  E3 81 00 98 */	psq_l f28, 152(r1), 0, qr0
/* 80041EA8 0003DB08  CB 81 00 90 */	lfd f28, 0x90(r1)
/* 80041EAC 0003DB0C  E3 61 00 88 */	psq_l f27, 136(r1), 0, qr0
/* 80041EB0 0003DB10  CB 61 00 80 */	lfd f27, 0x80(r1)
/* 80041EB4 0003DB14  83 E1 00 7C */	lwz r31, 0x7c(r1)
/* 80041EB8 0003DB18  83 C1 00 78 */	lwz r30, 0x78(r1)
/* 80041EBC 0003DB1C  83 A1 00 74 */	lwz r29, 0x74(r1)
/* 80041EC0 0003DB20  80 01 00 D4 */	lwz r0, 0xd4(r1)
/* 80041EC4 0003DB24  83 81 00 70 */	lwz r28, 0x70(r1)
/* 80041EC8 0003DB28  7C 08 03 A6 */	mtlr r0
/* 80041ECC 0003DB2C  38 21 00 D0 */	addi r1, r1, 0xd0
/* 80041ED0 0003DB30  4E 80 00 20 */	blr

.global func_80041ED4
func_80041ED4:
/* 80041ED4 0003DB34  94 21 FF 50 */	stwu r1, -0xb0(r1)
/* 80041ED8 0003DB38  7C 08 02 A6 */	mflr r0
/* 80041EDC 0003DB3C  90 01 00 B4 */	stw r0, 0xb4(r1)
/* 80041EE0 0003DB40  DB E1 00 A0 */	stfd f31, 0xa0(r1)
/* 80041EE4 0003DB44  F3 E1 00 A8 */	psq_st f31, 168(r1), 0, qr0
/* 80041EE8 0003DB48  DB C1 00 90 */	stfd f30, 0x90(r1)
/* 80041EEC 0003DB4C  F3 C1 00 98 */	psq_st f30, 152(r1), 0, qr0
/* 80041EF0 0003DB50  DB A1 00 80 */	stfd f29, 0x80(r1)
/* 80041EF4 0003DB54  F3 A1 00 88 */	psq_st f29, 136(r1), 0, qr0
/* 80041EF8 0003DB58  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041EFC 0003DB5C  93 E1 00 7C */	stw r31, 0x7c(r1)
/* 80041F00 0003DB60  7C 9F 23 78 */	mr r31, r4
/* 80041F04 0003DB64  93 C1 00 78 */	stw r30, 0x78(r1)
/* 80041F08 0003DB68  7C 7E 1B 78 */	mr r30, r3
/* 80041F0C 0003DB6C  C0 23 00 00 */	lfs f1, 0(r3)
/* 80041F10 0003DB70  D0 21 00 68 */	stfs f1, 0x68(r1)
/* 80041F14 0003DB74  C0 23 00 04 */	lfs f1, 4(r3)
/* 80041F18 0003DB78  D0 21 00 6C */	stfs f1, 0x6c(r1)
/* 80041F1C 0003DB7C  C0 23 00 08 */	lfs f1, 8(r3)
/* 80041F20 0003DB80  38 61 00 68 */	addi r3, r1, 0x68
/* 80041F24 0003DB84  D0 21 00 70 */	stfs f1, 0x70(r1)
/* 80041F28 0003DB88  D0 01 00 6C */	stfs f0, 0x6c(r1)
/* 80041F2C 0003DB8C  48 23 AE 59 */	bl PSVECMag
/* 80041F30 0003DB90  C0 02 83 2C */	lfs f0, lbl_8064092C-_SDA2_BASE_(r2)
/* 80041F34 0003DB94  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80041F38 0003DB98  40 81 01 40 */	ble lbl_80042078
/* 80041F3C 0003DB9C  7F E3 FB 78 */	mr r3, r31
/* 80041F40 0003DBA0  38 81 00 68 */	addi r4, r1, 0x68
/* 80041F44 0003DBA4  38 A1 00 50 */	addi r5, r1, 0x50
/* 80041F48 0003DBA8  48 23 AD A1 */	bl PSVECSubtract
/* 80041F4C 0003DBAC  C0 41 00 50 */	lfs f2, 0x50(r1)
/* 80041F50 0003DBB0  38 61 00 5C */	addi r3, r1, 0x5c
/* 80041F54 0003DBB4  C0 21 00 54 */	lfs f1, 0x54(r1)
/* 80041F58 0003DBB8  7C 64 1B 78 */	mr r4, r3
/* 80041F5C 0003DBBC  C0 01 00 58 */	lfs f0, 0x58(r1)
/* 80041F60 0003DBC0  D0 41 00 5C */	stfs f2, 0x5c(r1)
/* 80041F64 0003DBC4  D0 21 00 60 */	stfs f1, 0x60(r1)
/* 80041F68 0003DBC8  D0 01 00 64 */	stfs f0, 0x64(r1)
/* 80041F6C 0003DBCC  48 23 AD BD */	bl PSVECNormalize
/* 80041F70 0003DBD0  38 61 00 5C */	addi r3, r1, 0x5c
/* 80041F74 0003DBD4  38 81 00 68 */	addi r4, r1, 0x68
/* 80041F78 0003DBD8  48 23 AE 51 */	bl PSVECDotProduct
/* 80041F7C 0003DBDC  C8 42 83 30 */	lfd f2, lbl_80640930-_SDA2_BASE_(r2)
/* 80041F80 0003DBE0  48 19 26 65 */	bl pow
/* 80041F84 0003DBE4  FF C0 08 18 */	frsp f30, f1
/* 80041F88 0003DBE8  38 61 00 68 */	addi r3, r1, 0x68
/* 80041F8C 0003DBEC  7C 64 1B 78 */	mr r4, r3
/* 80041F90 0003DBF0  48 23 AE 39 */	bl PSVECDotProduct
/* 80041F94 0003DBF4  FF E0 08 90 */	fmr f31, f1
/* 80041F98 0003DBF8  C8 22 83 38 */	lfd f1, lbl_80640938-_SDA2_BASE_(r2)
/* 80041F9C 0003DBFC  C8 42 83 30 */	lfd f2, lbl_80640930-_SDA2_BASE_(r2)
/* 80041FA0 0003DC00  48 19 26 45 */	bl pow
/* 80041FA4 0003DC04  FC 20 08 18 */	frsp f1, f1
/* 80041FA8 0003DC08  C3 A2 82 B0 */	lfs f29, lbl_806408B0-_SDA2_BASE_(r2)
/* 80041FAC 0003DC0C  EC 1E F8 28 */	fsubs f0, f30, f31
/* 80041FB0 0003DC10  EC 21 00 2A */	fadds f1, f1, f0
/* 80041FB4 0003DC14  FC 01 E8 40 */	fcmpo cr0, f1, f29
/* 80041FB8 0003DC18  4C 40 13 82 */	cror 2, 0, 2
/* 80041FBC 0003DC1C  40 82 00 08 */	bne lbl_80041FC4
/* 80041FC0 0003DC20  48 00 00 0C */	b lbl_80041FCC
lbl_80041FC4:
/* 80041FC4 0003DC24  48 19 28 71 */	bl sqrt
/* 80041FC8 0003DC28  FF A0 08 18 */	frsp f29, f1
lbl_80041FCC:
/* 80041FCC 0003DC2C  38 61 00 5C */	addi r3, r1, 0x5c
/* 80041FD0 0003DC30  38 81 00 68 */	addi r4, r1, 0x68
/* 80041FD4 0003DC34  48 23 AD F5 */	bl PSVECDotProduct
/* 80041FD8 0003DC38  C0 1E 00 00 */	lfs f0, 0(r30)
/* 80041FDC 0003DC3C  FC 20 08 50 */	fneg f1, f1
/* 80041FE0 0003DC40  7F E3 FB 78 */	mr r3, r31
/* 80041FE4 0003DC44  38 81 00 68 */	addi r4, r1, 0x68
/* 80041FE8 0003DC48  D0 01 00 68 */	stfs f0, 0x68(r1)
/* 80041FEC 0003DC4C  38 A1 00 44 */	addi r5, r1, 0x44
/* 80041FF0 0003DC50  EF A1 E8 28 */	fsubs f29, f1, f29
/* 80041FF4 0003DC54  C0 1E 00 04 */	lfs f0, 4(r30)
/* 80041FF8 0003DC58  D0 01 00 6C */	stfs f0, 0x6c(r1)
/* 80041FFC 0003DC5C  C0 1E 00 08 */	lfs f0, 8(r30)
/* 80042000 0003DC60  D0 01 00 70 */	stfs f0, 0x70(r1)
/* 80042004 0003DC64  48 23 AC E5 */	bl PSVECSubtract
/* 80042008 0003DC68  C0 41 00 44 */	lfs f2, 0x44(r1)
/* 8004200C 0003DC6C  38 61 00 5C */	addi r3, r1, 0x5c
/* 80042010 0003DC70  C0 21 00 48 */	lfs f1, 0x48(r1)
/* 80042014 0003DC74  7C 64 1B 78 */	mr r4, r3
/* 80042018 0003DC78  C0 01 00 4C */	lfs f0, 0x4c(r1)
/* 8004201C 0003DC7C  D0 41 00 5C */	stfs f2, 0x5c(r1)
/* 80042020 0003DC80  D0 21 00 60 */	stfs f1, 0x60(r1)
/* 80042024 0003DC84  D0 01 00 64 */	stfs f0, 0x64(r1)
/* 80042028 0003DC88  48 23 AD 01 */	bl PSVECNormalize
/* 8004202C 0003DC8C  FC 20 E8 90 */	fmr f1, f29
/* 80042030 0003DC90  38 61 00 5C */	addi r3, r1, 0x5c
/* 80042034 0003DC94  38 81 00 2C */	addi r4, r1, 0x2c
/* 80042038 0003DC98  48 23 AC D5 */	bl PSVECScale
/* 8004203C 0003DC9C  38 61 00 68 */	addi r3, r1, 0x68
/* 80042040 0003DCA0  38 81 00 2C */	addi r4, r1, 0x2c
/* 80042044 0003DCA4  38 A1 00 38 */	addi r5, r1, 0x38
/* 80042048 0003DCA8  48 23 AC 7D */	bl PSVECAdd
/* 8004204C 0003DCAC  C0 41 00 38 */	lfs f2, 0x38(r1)
/* 80042050 0003DCB0  C0 21 00 3C */	lfs f1, 0x3c(r1)
/* 80042054 0003DCB4  C0 01 00 40 */	lfs f0, 0x40(r1)
/* 80042058 0003DCB8  D0 41 00 68 */	stfs f2, 0x68(r1)
/* 8004205C 0003DCBC  D0 21 00 6C */	stfs f1, 0x6c(r1)
/* 80042060 0003DCC0  D0 01 00 70 */	stfs f0, 0x70(r1)
/* 80042064 0003DCC4  D0 5E 00 00 */	stfs f2, 0(r30)
/* 80042068 0003DCC8  C0 01 00 6C */	lfs f0, 0x6c(r1)
/* 8004206C 0003DCCC  D0 1E 00 04 */	stfs f0, 4(r30)
/* 80042070 0003DCD0  C0 01 00 70 */	lfs f0, 0x70(r1)
/* 80042074 0003DCD4  D0 1E 00 08 */	stfs f0, 8(r30)
lbl_80042078:
/* 80042078 0003DCD8  C0 3E 00 00 */	lfs f1, 0(r30)
/* 8004207C 0003DCDC  C0 02 83 40 */	lfs f0, lbl_80640940-_SDA2_BASE_(r2)
/* 80042080 0003DCE0  D0 21 00 68 */	stfs f1, 0x68(r1)
/* 80042084 0003DCE4  C0 5E 00 04 */	lfs f2, 4(r30)
/* 80042088 0003DCE8  D0 41 00 6C */	stfs f2, 0x6c(r1)
/* 8004208C 0003DCEC  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 80042090 0003DCF0  C0 3E 00 08 */	lfs f1, 8(r30)
/* 80042094 0003DCF4  D0 21 00 70 */	stfs f1, 0x70(r1)
/* 80042098 0003DCF8  40 81 00 94 */	ble lbl_8004212C
/* 8004209C 0003DCFC  EF A0 10 24 */	fdivs f29, f0, f2
/* 800420A0 0003DD00  7F E4 FB 78 */	mr r4, r31
/* 800420A4 0003DD04  38 61 00 68 */	addi r3, r1, 0x68
/* 800420A8 0003DD08  38 A1 00 20 */	addi r5, r1, 0x20
/* 800420AC 0003DD0C  48 23 AC 3D */	bl PSVECSubtract
/* 800420B0 0003DD10  C0 41 00 20 */	lfs f2, 0x20(r1)
/* 800420B4 0003DD14  38 61 00 5C */	addi r3, r1, 0x5c
/* 800420B8 0003DD18  C0 21 00 24 */	lfs f1, 0x24(r1)
/* 800420BC 0003DD1C  C0 01 00 28 */	lfs f0, 0x28(r1)
/* 800420C0 0003DD20  D0 41 00 5C */	stfs f2, 0x5c(r1)
/* 800420C4 0003DD24  D0 21 00 60 */	stfs f1, 0x60(r1)
/* 800420C8 0003DD28  D0 01 00 64 */	stfs f0, 0x64(r1)
/* 800420CC 0003DD2C  48 23 AC B9 */	bl PSVECMag
/* 800420D0 0003DD30  FF E0 08 90 */	fmr f31, f1
/* 800420D4 0003DD34  38 61 00 5C */	addi r3, r1, 0x5c
/* 800420D8 0003DD38  7C 64 1B 78 */	mr r4, r3
/* 800420DC 0003DD3C  48 23 AC 4D */	bl PSVECNormalize
/* 800420E0 0003DD40  EC 3F 07 72 */	fmuls f1, f31, f29
/* 800420E4 0003DD44  38 61 00 5C */	addi r3, r1, 0x5c
/* 800420E8 0003DD48  38 81 00 08 */	addi r4, r1, 8
/* 800420EC 0003DD4C  48 23 AC 21 */	bl PSVECScale
/* 800420F0 0003DD50  7F E3 FB 78 */	mr r3, r31
/* 800420F4 0003DD54  38 81 00 08 */	addi r4, r1, 8
/* 800420F8 0003DD58  38 A1 00 14 */	addi r5, r1, 0x14
/* 800420FC 0003DD5C  48 23 AB C9 */	bl PSVECAdd
/* 80042100 0003DD60  C0 41 00 14 */	lfs f2, 0x14(r1)
/* 80042104 0003DD64  C0 21 00 18 */	lfs f1, 0x18(r1)
/* 80042108 0003DD68  C0 01 00 1C */	lfs f0, 0x1c(r1)
/* 8004210C 0003DD6C  D0 41 00 68 */	stfs f2, 0x68(r1)
/* 80042110 0003DD70  D0 21 00 6C */	stfs f1, 0x6c(r1)
/* 80042114 0003DD74  D0 01 00 70 */	stfs f0, 0x70(r1)
/* 80042118 0003DD78  D0 5E 00 00 */	stfs f2, 0(r30)
/* 8004211C 0003DD7C  C0 01 00 6C */	lfs f0, 0x6c(r1)
/* 80042120 0003DD80  D0 1E 00 04 */	stfs f0, 4(r30)
/* 80042124 0003DD84  C0 01 00 70 */	lfs f0, 0x70(r1)
/* 80042128 0003DD88  D0 1E 00 08 */	stfs f0, 8(r30)
lbl_8004212C:
/* 8004212C 0003DD8C  E3 E1 00 A8 */	psq_l f31, 168(r1), 0, qr0
/* 80042130 0003DD90  CB E1 00 A0 */	lfd f31, 0xa0(r1)
/* 80042134 0003DD94  E3 C1 00 98 */	psq_l f30, 152(r1), 0, qr0
/* 80042138 0003DD98  CB C1 00 90 */	lfd f30, 0x90(r1)
/* 8004213C 0003DD9C  E3 A1 00 88 */	psq_l f29, 136(r1), 0, qr0
/* 80042140 0003DDA0  CB A1 00 80 */	lfd f29, 0x80(r1)
/* 80042144 0003DDA4  83 E1 00 7C */	lwz r31, 0x7c(r1)
/* 80042148 0003DDA8  80 01 00 B4 */	lwz r0, 0xb4(r1)
/* 8004214C 0003DDAC  83 C1 00 78 */	lwz r30, 0x78(r1)
/* 80042150 0003DDB0  7C 08 03 A6 */	mtlr r0
/* 80042154 0003DDB4  38 21 00 B0 */	addi r1, r1, 0xb0
/* 80042158 0003DDB8  4E 80 00 20 */	blr

.global func_8004215C
func_8004215C:
/* 8004215C 0003DDBC  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 80042160 0003DDC0  7C 08 02 A6 */	mflr r0
/* 80042164 0003DDC4  90 01 00 44 */	stw r0, 0x44(r1)
/* 80042168 0003DDC8  93 E1 00 3C */	stw r31, 0x3c(r1)
/* 8004216C 0003DDCC  7C 7F 1B 78 */	mr r31, r3
/* 80042170 0003DDD0  38 61 00 08 */	addi r3, r1, 8
/* 80042174 0003DDD4  7F E4 FB 78 */	mr r4, r31
/* 80042178 0003DDD8  4B FF F9 E1 */	bl func_80041B58
/* 8004217C 0003DDDC  C0 41 00 08 */	lfs f2, 8(r1)
/* 80042180 0003DDE0  7F E3 FB 78 */	mr r3, r31
/* 80042184 0003DDE4  C0 21 00 0C */	lfs f1, 0xc(r1)
/* 80042188 0003DDE8  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 8004218C 0003DDEC  D0 41 00 20 */	stfs f2, 0x20(r1)
/* 80042190 0003DDF0  D0 21 00 24 */	stfs f1, 0x24(r1)
/* 80042194 0003DDF4  D0 01 00 28 */	stfs f0, 0x28(r1)
/* 80042198 0003DDF8  48 00 03 F9 */	bl func_80042590
/* 8004219C 0003DDFC  C0 03 00 00 */	lfs f0, 0(r3)
/* 800421A0 0003DE00  38 81 00 14 */	addi r4, r1, 0x14
/* 800421A4 0003DE04  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 800421A8 0003DE08  C0 03 00 04 */	lfs f0, 4(r3)
/* 800421AC 0003DE0C  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 800421B0 0003DE10  C0 03 00 08 */	lfs f0, 8(r3)
/* 800421B4 0003DE14  38 61 00 20 */	addi r3, r1, 0x20
/* 800421B8 0003DE18  7C 65 1B 78 */	mr r5, r3
/* 800421BC 0003DE1C  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 800421C0 0003DE20  48 23 AB 05 */	bl PSVECAdd
/* 800421C4 0003DE24  38 61 00 20 */	addi r3, r1, 0x20
/* 800421C8 0003DE28  38 81 00 14 */	addi r4, r1, 0x14
/* 800421CC 0003DE2C  4B FF FD 09 */	bl func_80041ED4
/* 800421D0 0003DE30  7F E3 FB 78 */	mr r3, r31
/* 800421D4 0003DE34  38 81 00 20 */	addi r4, r1, 0x20
/* 800421D8 0003DE38  4B FF EE D5 */	bl func_800410AC
/* 800421DC 0003DE3C  80 01 00 44 */	lwz r0, 0x44(r1)
/* 800421E0 0003DE40  83 E1 00 3C */	lwz r31, 0x3c(r1)
/* 800421E4 0003DE44  7C 08 03 A6 */	mtlr r0
/* 800421E8 0003DE48  38 21 00 40 */	addi r1, r1, 0x40
/* 800421EC 0003DE4C  4E 80 00 20 */	blr

.global func_800421F0
func_800421F0:
/* 800421F0 0003DE50  94 21 FF 90 */	stwu r1, -0x70(r1)
/* 800421F4 0003DE54  7C 08 02 A6 */	mflr r0
/* 800421F8 0003DE58  90 01 00 74 */	stw r0, 0x74(r1)
/* 800421FC 0003DE5C  DB E1 00 60 */	stfd f31, 0x60(r1)
/* 80042200 0003DE60  F3 E1 00 68 */	psq_st f31, 104(r1), 0, qr0
/* 80042204 0003DE64  DB C1 00 50 */	stfd f30, 0x50(r1)
/* 80042208 0003DE68  F3 C1 00 58 */	psq_st f30, 88(r1), 0, qr0
/* 8004220C 0003DE6C  DB A1 00 40 */	stfd f29, 0x40(r1)
/* 80042210 0003DE70  F3 A1 00 48 */	psq_st f29, 72(r1), 0, qr0
/* 80042214 0003DE74  FF A0 08 90 */	fmr f29, f1
/* 80042218 0003DE78  FF C0 10 90 */	fmr f30, f2
/* 8004221C 0003DE7C  93 E1 00 3C */	stw r31, 0x3c(r1)
/* 80042220 0003DE80  FF E0 18 90 */	fmr f31, f3
/* 80042224 0003DE84  7C 7F 1B 78 */	mr r31, r3
/* 80042228 0003DE88  80 03 06 D0 */	lwz r0, 0x6d0(r3)
/* 8004222C 0003DE8C  2C 00 00 00 */	cmpwi r0, 0
/* 80042230 0003DE90  41 82 00 0C */	beq lbl_8004223C
/* 80042234 0003DE94  38 63 06 50 */	addi r3, r3, 0x650
/* 80042238 0003DE98  48 00 00 08 */	b lbl_80042240
lbl_8004223C:
/* 8004223C 0003DE9C  38 63 05 60 */	addi r3, r3, 0x560
lbl_80042240:
/* 80042240 0003DEA0  38 80 00 00 */	li r4, 0
/* 80042244 0003DEA4  4B FF E9 39 */	bl func_80040B7C
/* 80042248 0003DEA8  2C 03 00 00 */	cmpwi r3, 0
/* 8004224C 0003DEAC  41 82 00 28 */	beq lbl_80042274
/* 80042250 0003DEB0  80 03 00 00 */	lwz r0, 0(r3)
/* 80042254 0003DEB4  54 00 04 E7 */	rlwinm. r0, r0, 0, 0x13, 0x13
/* 80042258 0003DEB8  41 82 00 1C */	beq lbl_80042274
/* 8004225C 0003DEBC  FC 20 E8 90 */	fmr f1, f29
/* 80042260 0003DEC0  C0 42 83 44 */	lfs f2, lbl_80640944-_SDA2_BASE_(r2)
/* 80042264 0003DEC4  FC 60 F8 90 */	fmr f3, f31
/* 80042268 0003DEC8  7F E3 FB 78 */	mr r3, r31
/* 8004226C 0003DECC  4B FF FE F1 */	bl func_8004215C
/* 80042270 0003DED0  48 00 00 80 */	b lbl_800422F0
lbl_80042274:
/* 80042274 0003DED4  FC 20 E8 90 */	fmr f1, f29
/* 80042278 0003DED8  C0 42 82 B0 */	lfs f2, lbl_806408B0-_SDA2_BASE_(r2)
/* 8004227C 0003DEDC  FC 60 F8 90 */	fmr f3, f31
/* 80042280 0003DEE0  7F E4 FB 78 */	mr r4, r31
/* 80042284 0003DEE4  38 61 00 08 */	addi r3, r1, 8
/* 80042288 0003DEE8  4B FF F8 D1 */	bl func_80041B58
/* 8004228C 0003DEEC  C0 41 00 08 */	lfs f2, 8(r1)
/* 80042290 0003DEF0  7F E3 FB 78 */	mr r3, r31
/* 80042294 0003DEF4  C0 21 00 0C */	lfs f1, 0xc(r1)
/* 80042298 0003DEF8  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 8004229C 0003DEFC  D0 41 00 20 */	stfs f2, 0x20(r1)
/* 800422A0 0003DF00  D0 21 00 24 */	stfs f1, 0x24(r1)
/* 800422A4 0003DF04  D0 01 00 28 */	stfs f0, 0x28(r1)
/* 800422A8 0003DF08  48 00 02 E9 */	bl func_80042590
/* 800422AC 0003DF0C  C0 03 00 00 */	lfs f0, 0(r3)
/* 800422B0 0003DF10  38 81 00 14 */	addi r4, r1, 0x14
/* 800422B4 0003DF14  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 800422B8 0003DF18  C0 03 00 04 */	lfs f0, 4(r3)
/* 800422BC 0003DF1C  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 800422C0 0003DF20  C0 03 00 08 */	lfs f0, 8(r3)
/* 800422C4 0003DF24  38 61 00 20 */	addi r3, r1, 0x20
/* 800422C8 0003DF28  7C 65 1B 78 */	mr r5, r3
/* 800422CC 0003DF2C  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 800422D0 0003DF30  48 23 A9 F5 */	bl PSVECAdd
/* 800422D4 0003DF34  D3 C1 00 24 */	stfs f30, 0x24(r1)
/* 800422D8 0003DF38  38 61 00 20 */	addi r3, r1, 0x20
/* 800422DC 0003DF3C  38 81 00 14 */	addi r4, r1, 0x14
/* 800422E0 0003DF40  4B FF FB F5 */	bl func_80041ED4
/* 800422E4 0003DF44  7F E3 FB 78 */	mr r3, r31
/* 800422E8 0003DF48  38 81 00 20 */	addi r4, r1, 0x20
/* 800422EC 0003DF4C  4B FF ED C1 */	bl func_800410AC
lbl_800422F0:
/* 800422F0 0003DF50  E3 E1 00 68 */	psq_l f31, 104(r1), 0, qr0
/* 800422F4 0003DF54  CB E1 00 60 */	lfd f31, 0x60(r1)
/* 800422F8 0003DF58  E3 C1 00 58 */	psq_l f30, 88(r1), 0, qr0
/* 800422FC 0003DF5C  CB C1 00 50 */	lfd f30, 0x50(r1)
/* 80042300 0003DF60  E3 A1 00 48 */	psq_l f29, 72(r1), 0, qr0
/* 80042304 0003DF64  CB A1 00 40 */	lfd f29, 0x40(r1)
/* 80042308 0003DF68  80 01 00 74 */	lwz r0, 0x74(r1)
/* 8004230C 0003DF6C  83 E1 00 3C */	lwz r31, 0x3c(r1)
/* 80042310 0003DF70  7C 08 03 A6 */	mtlr r0
/* 80042314 0003DF74  38 21 00 70 */	addi r1, r1, 0x70
/* 80042318 0003DF78  4E 80 00 20 */	blr

.global func_8004231C
func_8004231C:
/* 8004231C 0003DF7C  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 80042320 0003DF80  7C 08 02 A6 */	mflr r0
/* 80042324 0003DF84  90 01 00 54 */	stw r0, 0x54(r1)
/* 80042328 0003DF88  DB E1 00 40 */	stfd f31, 0x40(r1)
/* 8004232C 0003DF8C  F3 E1 00 48 */	psq_st f31, 72(r1), 0, qr0
/* 80042330 0003DF90  FF E0 20 90 */	fmr f31, f4
/* 80042334 0003DF94  93 E1 00 3C */	stw r31, 0x3c(r1)
/* 80042338 0003DF98  7C 9F 23 78 */	mr r31, r4
/* 8004233C 0003DF9C  93 C1 00 38 */	stw r30, 0x38(r1)
/* 80042340 0003DFA0  7C 7E 1B 78 */	mr r30, r3
/* 80042344 0003DFA4  38 61 00 08 */	addi r3, r1, 8
/* 80042348 0003DFA8  7F C4 F3 78 */	mr r4, r30
/* 8004234C 0003DFAC  4B FF F8 0D */	bl func_80041B58
/* 80042350 0003DFB0  C0 41 00 08 */	lfs f2, 8(r1)
/* 80042354 0003DFB4  7F C3 F3 78 */	mr r3, r30
/* 80042358 0003DFB8  C0 21 00 0C */	lfs f1, 0xc(r1)
/* 8004235C 0003DFBC  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 80042360 0003DFC0  D0 41 00 20 */	stfs f2, 0x20(r1)
/* 80042364 0003DFC4  D0 21 00 24 */	stfs f1, 0x24(r1)
/* 80042368 0003DFC8  D0 01 00 28 */	stfs f0, 0x28(r1)
/* 8004236C 0003DFCC  48 00 02 25 */	bl func_80042590
/* 80042370 0003DFD0  C0 03 00 00 */	lfs f0, 0(r3)
/* 80042374 0003DFD4  38 81 00 14 */	addi r4, r1, 0x14
/* 80042378 0003DFD8  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 8004237C 0003DFDC  C0 03 00 04 */	lfs f0, 4(r3)
/* 80042380 0003DFE0  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 80042384 0003DFE4  C0 03 00 08 */	lfs f0, 8(r3)
/* 80042388 0003DFE8  38 61 00 20 */	addi r3, r1, 0x20
/* 8004238C 0003DFEC  7C 65 1B 78 */	mr r5, r3
/* 80042390 0003DFF0  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 80042394 0003DFF4  48 23 A9 31 */	bl PSVECAdd
/* 80042398 0003DFF8  38 61 00 20 */	addi r3, r1, 0x20
/* 8004239C 0003DFFC  38 81 00 14 */	addi r4, r1, 0x14
/* 800423A0 0003E000  4B FF FB 35 */	bl func_80041ED4
/* 800423A4 0003E004  FC 20 F8 90 */	fmr f1, f31
/* 800423A8 0003E008  7F C3 F3 78 */	mr r3, r30
/* 800423AC 0003E00C  7F E5 FB 78 */	mr r5, r31
/* 800423B0 0003E010  38 81 00 20 */	addi r4, r1, 0x20
/* 800423B4 0003E014  48 00 04 89 */	bl func_8004283C
/* 800423B8 0003E018  E3 E1 00 48 */	psq_l f31, 72(r1), 0, qr0
/* 800423BC 0003E01C  80 01 00 54 */	lwz r0, 0x54(r1)
/* 800423C0 0003E020  CB E1 00 40 */	lfd f31, 0x40(r1)
/* 800423C4 0003E024  83 E1 00 3C */	lwz r31, 0x3c(r1)
/* 800423C8 0003E028  83 C1 00 38 */	lwz r30, 0x38(r1)
/* 800423CC 0003E02C  7C 08 03 A6 */	mtlr r0
/* 800423D0 0003E030  38 21 00 50 */	addi r1, r1, 0x50
/* 800423D4 0003E034  4E 80 00 20 */	blr

.global func_800423D8
func_800423D8:
/* 800423D8 0003E038  94 21 FF 80 */	stwu r1, -0x80(r1)
/* 800423DC 0003E03C  7C 08 02 A6 */	mflr r0
/* 800423E0 0003E040  90 01 00 84 */	stw r0, 0x84(r1)
/* 800423E4 0003E044  DB E1 00 70 */	stfd f31, 0x70(r1)
/* 800423E8 0003E048  F3 E1 00 78 */	psq_st f31, 120(r1), 0, qr0
/* 800423EC 0003E04C  DB C1 00 60 */	stfd f30, 0x60(r1)
/* 800423F0 0003E050  F3 C1 00 68 */	psq_st f30, 104(r1), 0, qr0
/* 800423F4 0003E054  DB A1 00 50 */	stfd f29, 0x50(r1)
/* 800423F8 0003E058  F3 A1 00 58 */	psq_st f29, 88(r1), 0, qr0
/* 800423FC 0003E05C  DB 81 00 40 */	stfd f28, 0x40(r1)
/* 80042400 0003E060  F3 81 00 48 */	psq_st f28, 72(r1), 0, qr0
/* 80042404 0003E064  FF 80 08 90 */	fmr f28, f1
/* 80042408 0003E068  FF A0 10 90 */	fmr f29, f2
/* 8004240C 0003E06C  93 E1 00 3C */	stw r31, 0x3c(r1)
/* 80042410 0003E070  FF C0 18 90 */	fmr f30, f3
/* 80042414 0003E074  FF E0 20 90 */	fmr f31, f4
/* 80042418 0003E078  7C 9F 23 78 */	mr r31, r4
/* 8004241C 0003E07C  93 C1 00 38 */	stw r30, 0x38(r1)
/* 80042420 0003E080  7C 7E 1B 78 */	mr r30, r3
/* 80042424 0003E084  80 03 06 D0 */	lwz r0, 0x6d0(r3)
/* 80042428 0003E088  2C 00 00 00 */	cmpwi r0, 0
/* 8004242C 0003E08C  41 82 00 0C */	beq lbl_80042438
/* 80042430 0003E090  38 63 06 50 */	addi r3, r3, 0x650
/* 80042434 0003E094  48 00 00 08 */	b lbl_8004243C
lbl_80042438:
/* 80042438 0003E098  38 63 05 60 */	addi r3, r3, 0x560
lbl_8004243C:
/* 8004243C 0003E09C  38 80 00 00 */	li r4, 0
/* 80042440 0003E0A0  4B FF E7 3D */	bl func_80040B7C
/* 80042444 0003E0A4  2C 03 00 00 */	cmpwi r3, 0
/* 80042448 0003E0A8  41 82 00 30 */	beq lbl_80042478
/* 8004244C 0003E0AC  80 03 00 00 */	lwz r0, 0(r3)
/* 80042450 0003E0B0  54 00 04 E7 */	rlwinm. r0, r0, 0, 0x13, 0x13
/* 80042454 0003E0B4  41 82 00 24 */	beq lbl_80042478
/* 80042458 0003E0B8  FC 20 E0 90 */	fmr f1, f28
/* 8004245C 0003E0BC  C0 42 83 44 */	lfs f2, lbl_80640944-_SDA2_BASE_(r2)
/* 80042460 0003E0C0  FC 60 F0 90 */	fmr f3, f30
/* 80042464 0003E0C4  7F C3 F3 78 */	mr r3, r30
/* 80042468 0003E0C8  FC 80 F8 90 */	fmr f4, f31
/* 8004246C 0003E0CC  7F E4 FB 78 */	mr r4, r31
/* 80042470 0003E0D0  4B FF FE AD */	bl func_8004231C
/* 80042474 0003E0D4  48 00 00 88 */	b lbl_800424FC
lbl_80042478:
/* 80042478 0003E0D8  FC 20 E0 90 */	fmr f1, f28
/* 8004247C 0003E0DC  C0 42 82 B0 */	lfs f2, lbl_806408B0-_SDA2_BASE_(r2)
/* 80042480 0003E0E0  FC 60 F0 90 */	fmr f3, f30
/* 80042484 0003E0E4  7F C4 F3 78 */	mr r4, r30
/* 80042488 0003E0E8  38 61 00 08 */	addi r3, r1, 8
/* 8004248C 0003E0EC  4B FF F6 CD */	bl func_80041B58
/* 80042490 0003E0F0  C0 41 00 08 */	lfs f2, 8(r1)
/* 80042494 0003E0F4  7F C3 F3 78 */	mr r3, r30
/* 80042498 0003E0F8  C0 21 00 0C */	lfs f1, 0xc(r1)
/* 8004249C 0003E0FC  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 800424A0 0003E100  D0 41 00 20 */	stfs f2, 0x20(r1)
/* 800424A4 0003E104  D0 21 00 24 */	stfs f1, 0x24(r1)
/* 800424A8 0003E108  D0 01 00 28 */	stfs f0, 0x28(r1)
/* 800424AC 0003E10C  48 00 00 E5 */	bl func_80042590
/* 800424B0 0003E110  C0 03 00 00 */	lfs f0, 0(r3)
/* 800424B4 0003E114  38 81 00 14 */	addi r4, r1, 0x14
/* 800424B8 0003E118  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 800424BC 0003E11C  C0 03 00 04 */	lfs f0, 4(r3)
/* 800424C0 0003E120  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 800424C4 0003E124  C0 03 00 08 */	lfs f0, 8(r3)
/* 800424C8 0003E128  38 61 00 20 */	addi r3, r1, 0x20
/* 800424CC 0003E12C  7C 65 1B 78 */	mr r5, r3
/* 800424D0 0003E130  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 800424D4 0003E134  48 23 A7 F1 */	bl PSVECAdd
/* 800424D8 0003E138  D3 A1 00 24 */	stfs f29, 0x24(r1)
/* 800424DC 0003E13C  38 61 00 20 */	addi r3, r1, 0x20
/* 800424E0 0003E140  38 81 00 14 */	addi r4, r1, 0x14
/* 800424E4 0003E144  4B FF F9 F1 */	bl func_80041ED4
/* 800424E8 0003E148  FC 20 F8 90 */	fmr f1, f31
/* 800424EC 0003E14C  7F C3 F3 78 */	mr r3, r30
/* 800424F0 0003E150  7F E5 FB 78 */	mr r5, r31
/* 800424F4 0003E154  38 81 00 20 */	addi r4, r1, 0x20
/* 800424F8 0003E158  48 00 03 45 */	bl func_8004283C
lbl_800424FC:
/* 800424FC 0003E15C  E3 E1 00 78 */	psq_l f31, 120(r1), 0, qr0
/* 80042500 0003E160  CB E1 00 70 */	lfd f31, 0x70(r1)
/* 80042504 0003E164  E3 C1 00 68 */	psq_l f30, 104(r1), 0, qr0
/* 80042508 0003E168  CB C1 00 60 */	lfd f30, 0x60(r1)
/* 8004250C 0003E16C  E3 A1 00 58 */	psq_l f29, 88(r1), 0, qr0
/* 80042510 0003E170  CB A1 00 50 */	lfd f29, 0x50(r1)
/* 80042514 0003E174  E3 81 00 48 */	psq_l f28, 72(r1), 0, qr0
/* 80042518 0003E178  CB 81 00 40 */	lfd f28, 0x40(r1)
/* 8004251C 0003E17C  83 E1 00 3C */	lwz r31, 0x3c(r1)
/* 80042520 0003E180  80 01 00 84 */	lwz r0, 0x84(r1)
/* 80042524 0003E184  83 C1 00 38 */	lwz r30, 0x38(r1)
/* 80042528 0003E188  7C 08 03 A6 */	mtlr r0
/* 8004252C 0003E18C  38 21 00 80 */	addi r1, r1, 0x80
/* 80042530 0003E190  4E 80 00 20 */	blr

.global func_80042534
func_80042534:
/* 80042534 0003E194  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80042538 0003E198  7C 08 02 A6 */	mflr r0
/* 8004253C 0003E19C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80042540 0003E1A0  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80042544 0003E1A4  7C 7F 1B 78 */	mr r31, r3
/* 80042548 0003E1A8  38 63 05 60 */	addi r3, r3, 0x560
/* 8004254C 0003E1AC  4B FF E6 99 */	bl func_80040BE4
/* 80042550 0003E1B0  38 7F 00 B8 */	addi r3, r31, 0xb8
/* 80042554 0003E1B4  48 00 DE 35 */	bl func_80050388
/* 80042558 0003E1B8  38 7F 00 DC */	addi r3, r31, 0xdc
/* 8004255C 0003E1BC  48 00 DE 2D */	bl func_80050388
/* 80042560 0003E1C0  38 7F 01 00 */	addi r3, r31, 0x100
/* 80042564 0003E1C4  48 00 DE 25 */	bl func_80050388
/* 80042568 0003E1C8  80 7F 06 D0 */	lwz r3, 0x6d0(r31)
/* 8004256C 0003E1CC  38 00 00 01 */	li r0, 1
/* 80042570 0003E1D0  98 1F 00 01 */	stb r0, 1(r31)
/* 80042574 0003E1D4  54 60 00 3A */	rlwinm r0, r3, 0, 0, 0x1d
/* 80042578 0003E1D8  90 1F 06 D0 */	stw r0, 0x6d0(r31)
/* 8004257C 0003E1DC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80042580 0003E1E0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80042584 0003E1E4  7C 08 03 A6 */	mtlr r0
/* 80042588 0003E1E8  38 21 00 10 */	addi r1, r1, 0x10
/* 8004258C 0003E1EC  4E 80 00 20 */	blr

.global func_80042590
func_80042590:
/* 80042590 0003E1F0  80 03 06 D0 */	lwz r0, 0x6d0(r3)
/* 80042594 0003E1F4  2C 00 00 00 */	cmpwi r0, 0
/* 80042598 0003E1F8  41 82 00 0C */	beq lbl_800425A4
/* 8004259C 0003E1FC  38 63 05 EC */	addi r3, r3, 0x5ec
/* 800425A0 0003E200  4E 80 00 20 */	blr
lbl_800425A4:
/* 800425A4 0003E204  38 63 05 74 */	addi r3, r3, 0x574
/* 800425A8 0003E208  4E 80 00 20 */	blr

.global func_800425AC
func_800425AC:
/* 800425AC 0003E20C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 800425B0 0003E210  7C 08 02 A6 */	mflr r0
/* 800425B4 0003E214  90 01 00 14 */	stw r0, 0x14(r1)
/* 800425B8 0003E218  93 E1 00 0C */	stw r31, 0xc(r1)
/* 800425BC 0003E21C  7C 7F 1B 78 */	mr r31, r3
/* 800425C0 0003E220  38 63 05 60 */	addi r3, r3, 0x560
/* 800425C4 0003E224  4B FF E5 1D */	bl func_80040AE0
/* 800425C8 0003E228  38 7F 00 B8 */	addi r3, r31, 0xb8
/* 800425CC 0003E22C  48 00 DD BD */	bl func_80050388
/* 800425D0 0003E230  38 7F 00 DC */	addi r3, r31, 0xdc
/* 800425D4 0003E234  48 00 DD B5 */	bl func_80050388
/* 800425D8 0003E238  38 7F 01 00 */	addi r3, r31, 0x100
/* 800425DC 0003E23C  48 00 DD AD */	bl func_80050388
/* 800425E0 0003E240  38 00 00 01 */	li r0, 1
/* 800425E4 0003E244  98 1F 00 01 */	stb r0, 1(r31)
/* 800425E8 0003E248  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 800425EC 0003E24C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 800425F0 0003E250  7C 08 03 A6 */	mtlr r0
/* 800425F4 0003E254  38 21 00 10 */	addi r1, r1, 0x10
/* 800425F8 0003E258  4E 80 00 20 */	blr

.global func_800425FC
func_800425FC:
/* 800425FC 0003E25C  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 80042600 0003E260  7C 08 02 A6 */	mflr r0
/* 80042604 0003E264  90 01 00 44 */	stw r0, 0x44(r1)
/* 80042608 0003E268  DB E1 00 30 */	stfd f31, 0x30(r1)
/* 8004260C 0003E26C  F3 E1 00 38 */	psq_st f31, 56(r1), 0, qr0
/* 80042610 0003E270  DB C1 00 20 */	stfd f30, 0x20(r1)
/* 80042614 0003E274  F3 C1 00 28 */	psq_st f30, 40(r1), 0, qr0
/* 80042618 0003E278  FF C0 08 90 */	fmr f30, f1
/* 8004261C 0003E27C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80042620 0003E280  7C 7F 1B 78 */	mr r31, r3
/* 80042624 0003E284  38 63 05 60 */	addi r3, r3, 0x560
/* 80042628 0003E288  4B FF E1 89 */	bl func_800407B0
/* 8004262C 0003E28C  FF E0 08 90 */	fmr f31, f1
/* 80042630 0003E290  D3 DF 06 C8 */	stfs f30, 0x6c8(r31)
/* 80042634 0003E294  38 7F 04 E8 */	addi r3, r31, 0x4e8
/* 80042638 0003E298  38 80 00 01 */	li r4, 1
/* 8004263C 0003E29C  4B FF DF 4D */	bl func_80040588
/* 80042640 0003E2A0  C0 1F 04 FC */	lfs f0, 0x4fc(r31)
/* 80042644 0003E2A4  38 61 00 08 */	addi r3, r1, 8
/* 80042648 0003E2A8  7C 65 1B 78 */	mr r5, r3
/* 8004264C 0003E2AC  38 9F 05 74 */	addi r4, r31, 0x574
/* 80042650 0003E2B0  D0 01 00 08 */	stfs f0, 8(r1)
/* 80042654 0003E2B4  C0 1F 05 00 */	lfs f0, 0x500(r31)
/* 80042658 0003E2B8  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 8004265C 0003E2BC  C0 1F 05 04 */	lfs f0, 0x504(r31)
/* 80042660 0003E2C0  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 80042664 0003E2C4  48 23 A6 85 */	bl PSVECSubtract
/* 80042668 0003E2C8  38 61 00 08 */	addi r3, r1, 8
/* 8004266C 0003E2CC  7C 64 1B 78 */	mr r4, r3
/* 80042670 0003E2D0  48 23 A6 B9 */	bl PSVECNormalize
/* 80042674 0003E2D4  EC 3E F8 2A */	fadds f1, f30, f31
/* 80042678 0003E2D8  38 61 00 08 */	addi r3, r1, 8
/* 8004267C 0003E2DC  7C 64 1B 78 */	mr r4, r3
/* 80042680 0003E2E0  48 23 A6 8D */	bl PSVECScale
/* 80042684 0003E2E4  38 61 00 08 */	addi r3, r1, 8
/* 80042688 0003E2E8  38 9F 05 74 */	addi r4, r31, 0x574
/* 8004268C 0003E2EC  7C 65 1B 78 */	mr r5, r3
/* 80042690 0003E2F0  48 23 A6 35 */	bl PSVECAdd
/* 80042694 0003E2F4  38 7F 04 E8 */	addi r3, r31, 0x4e8
/* 80042698 0003E2F8  38 81 00 08 */	addi r4, r1, 8
/* 8004269C 0003E2FC  4B FF E5 49 */	bl func_80040BE4
/* 800426A0 0003E300  38 00 00 01 */	li r0, 1
/* 800426A4 0003E304  98 1F 00 01 */	stb r0, 1(r31)
/* 800426A8 0003E308  E3 E1 00 38 */	psq_l f31, 56(r1), 0, qr0
/* 800426AC 0003E30C  CB E1 00 30 */	lfd f31, 0x30(r1)
/* 800426B0 0003E310  E3 C1 00 28 */	psq_l f30, 40(r1), 0, qr0
/* 800426B4 0003E314  CB C1 00 20 */	lfd f30, 0x20(r1)
/* 800426B8 0003E318  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 800426BC 0003E31C  80 01 00 44 */	lwz r0, 0x44(r1)
/* 800426C0 0003E320  7C 08 03 A6 */	mtlr r0
/* 800426C4 0003E324  38 21 00 40 */	addi r1, r1, 0x40
/* 800426C8 0003E328  4E 80 00 20 */	blr

.global func_800426CC
func_800426CC:
/* 800426CC 0003E32C  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 800426D0 0003E330  7C 08 02 A6 */	mflr r0
/* 800426D4 0003E334  90 01 00 14 */	stw r0, 0x14(r1)
/* 800426D8 0003E338  93 E1 00 0C */	stw r31, 0xc(r1)
/* 800426DC 0003E33C  7C 7F 1B 78 */	mr r31, r3
/* 800426E0 0003E340  D0 23 06 DC */	stfs f1, 0x6dc(r3)
/* 800426E4 0003E344  38 63 01 6C */	addi r3, r3, 0x16c
/* 800426E8 0003E348  48 00 DC A1 */	bl func_80050388
/* 800426EC 0003E34C  38 00 00 01 */	li r0, 1
/* 800426F0 0003E350  98 1F 00 01 */	stb r0, 1(r31)
/* 800426F4 0003E354  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 800426F8 0003E358  80 01 00 14 */	lwz r0, 0x14(r1)
/* 800426FC 0003E35C  7C 08 03 A6 */	mtlr r0
/* 80042700 0003E360  38 21 00 10 */	addi r1, r1, 0x10
/* 80042704 0003E364  4E 80 00 20 */	blr

.global func_80042708
func_80042708:
/* 80042708 0003E368  C0 23 06 DC */	lfs f1, 0x6dc(r3)
/* 8004270C 0003E36C  4E 80 00 20 */	blr

.global func_80042710
func_80042710:
/* 80042710 0003E370  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80042714 0003E374  7C 08 02 A6 */	mflr r0
/* 80042718 0003E378  7C 87 23 78 */	mr r7, r4
/* 8004271C 0003E37C  38 83 06 DC */	addi r4, r3, 0x6dc
/* 80042720 0003E380  90 01 00 14 */	stw r0, 0x14(r1)
/* 80042724 0003E384  7C 86 23 78 */	mr r6, r4
/* 80042728 0003E388  38 A1 00 08 */	addi r5, r1, 8
/* 8004272C 0003E38C  38 63 01 6C */	addi r3, r3, 0x16c
/* 80042730 0003E390  D0 21 00 08 */	stfs f1, 8(r1)
/* 80042734 0003E394  FC 20 10 90 */	fmr f1, f2
/* 80042738 0003E398  48 00 DC 05 */	bl func_8005033C
/* 8004273C 0003E39C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80042740 0003E3A0  7C 08 03 A6 */	mtlr r0
/* 80042744 0003E3A4  38 21 00 10 */	addi r1, r1, 0x10
/* 80042748 0003E3A8  4E 80 00 20 */	blr

.global func_8004274C
func_8004274C:
/* 8004274C 0003E3AC  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80042750 0003E3B0  7C 08 02 A6 */	mflr r0
/* 80042754 0003E3B4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80042758 0003E3B8  93 E1 00 0C */	stw r31, 0xc(r1)
/* 8004275C 0003E3BC  93 C1 00 08 */	stw r30, 8(r1)
/* 80042760 0003E3C0  7C 7E 1B 78 */	mr r30, r3
/* 80042764 0003E3C4  4B FF FE 2D */	bl func_80042590
/* 80042768 0003E3C8  7C 7F 1B 78 */	mr r31, r3
/* 8004276C 0003E3CC  7F C3 F3 78 */	mr r3, r30
/* 80042770 0003E3D0  4B FF EA 95 */	bl func_80041204
/* 80042774 0003E3D4  7F E4 FB 78 */	mr r4, r31
/* 80042778 0003E3D8  48 23 A8 59 */	bl PSVECDistance
/* 8004277C 0003E3DC  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80042780 0003E3E0  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80042784 0003E3E4  83 C1 00 08 */	lwz r30, 8(r1)
/* 80042788 0003E3E8  7C 08 03 A6 */	mtlr r0
/* 8004278C 0003E3EC  38 21 00 10 */	addi r1, r1, 0x10
/* 80042790 0003E3F0  4E 80 00 20 */	blr

.global func_80042794
func_80042794:
/* 80042794 0003E3F4  38 63 05 60 */	addi r3, r3, 0x560
/* 80042798 0003E3F8  4B FF E0 18 */	b func_800407B0

.global func_8004279C
func_8004279C:
/* 8004279C 0003E3FC  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 800427A0 0003E400  7C 08 02 A6 */	mflr r0
/* 800427A4 0003E404  90 01 00 44 */	stw r0, 0x44(r1)
/* 800427A8 0003E408  DB E1 00 30 */	stfd f31, 0x30(r1)
/* 800427AC 0003E40C  F3 E1 00 38 */	psq_st f31, 56(r1), 0, qr0
/* 800427B0 0003E410  DB C1 00 20 */	stfd f30, 0x20(r1)
/* 800427B4 0003E414  F3 C1 00 28 */	psq_st f30, 40(r1), 0, qr0
/* 800427B8 0003E418  FF C0 10 90 */	fmr f30, f2
/* 800427BC 0003E41C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 800427C0 0003E420  7C 9F 23 78 */	mr r31, r4
/* 800427C4 0003E424  93 C1 00 18 */	stw r30, 0x18(r1)
/* 800427C8 0003E428  7C 7E 1B 78 */	mr r30, r3
/* 800427CC 0003E42C  D0 21 00 08 */	stfs f1, 8(r1)
/* 800427D0 0003E430  80 03 04 BC */	lwz r0, 0x4bc(r3)
/* 800427D4 0003E434  54 00 06 F2 */	rlwinm r0, r0, 0, 0x1b, 0x19
/* 800427D8 0003E438  90 03 04 BC */	stw r0, 0x4bc(r3)
/* 800427DC 0003E43C  4B FF FF B9 */	bl func_80042794
/* 800427E0 0003E440  FF E0 08 90 */	fmr f31, f1
/* 800427E4 0003E444  7F C3 F3 78 */	mr r3, r30
/* 800427E8 0003E448  4B FF FF 65 */	bl func_8004274C
/* 800427EC 0003E44C  EC 21 F8 28 */	fsubs f1, f1, f31
/* 800427F0 0003E450  7F C3 F3 78 */	mr r3, r30
/* 800427F4 0003E454  4B FF FE 09 */	bl func_800425FC
/* 800427F8 0003E458  FC 20 F0 90 */	fmr f1, f30
/* 800427FC 0003E45C  38 9E 06 C8 */	addi r4, r30, 0x6c8
/* 80042800 0003E460  7C 86 23 78 */	mr r6, r4
/* 80042804 0003E464  7F E7 FB 78 */	mr r7, r31
/* 80042808 0003E468  38 7E 00 28 */	addi r3, r30, 0x28
/* 8004280C 0003E46C  38 A1 00 08 */	addi r5, r1, 8
/* 80042810 0003E470  48 00 DB 2D */	bl func_8005033C
/* 80042814 0003E474  E3 E1 00 38 */	psq_l f31, 56(r1), 0, qr0
/* 80042818 0003E478  CB E1 00 30 */	lfd f31, 0x30(r1)
/* 8004281C 0003E47C  E3 C1 00 28 */	psq_l f30, 40(r1), 0, qr0
/* 80042820 0003E480  CB C1 00 20 */	lfd f30, 0x20(r1)
/* 80042824 0003E484  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 80042828 0003E488  80 01 00 44 */	lwz r0, 0x44(r1)
/* 8004282C 0003E48C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80042830 0003E490  7C 08 03 A6 */	mtlr r0
/* 80042834 0003E494  38 21 00 40 */	addi r1, r1, 0x40
/* 80042838 0003E498  4E 80 00 20 */	blr

.global func_8004283C
func_8004283C:
/* 8004283C 0003E49C  94 21 FF D0 */	stwu r1, -0x30(r1)
/* 80042840 0003E4A0  7C 08 02 A6 */	mflr r0
/* 80042844 0003E4A4  90 01 00 34 */	stw r0, 0x34(r1)
/* 80042848 0003E4A8  DB E1 00 20 */	stfd f31, 0x20(r1)
/* 8004284C 0003E4AC  F3 E1 00 28 */	psq_st f31, 40(r1), 0, qr0
/* 80042850 0003E4B0  FF E0 08 90 */	fmr f31, f1
/* 80042854 0003E4B4  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 80042858 0003E4B8  7C BF 2B 78 */	mr r31, r5
/* 8004285C 0003E4BC  93 C1 00 18 */	stw r30, 0x18(r1)
/* 80042860 0003E4C0  7C 9E 23 78 */	mr r30, r4
/* 80042864 0003E4C4  38 80 00 00 */	li r4, 0
/* 80042868 0003E4C8  93 A1 00 14 */	stw r29, 0x14(r1)
/* 8004286C 0003E4CC  7C 7D 1B 78 */	mr r29, r3
/* 80042870 0003E4D0  38 63 04 E8 */	addi r3, r3, 0x4e8
/* 80042874 0003E4D4  4B FF E3 31 */	bl func_80040BA4
/* 80042878 0003E4D8  C0 3E 00 04 */	lfs f1, 4(r30)
/* 8004287C 0003E4DC  38 00 00 00 */	li r0, 0
/* 80042880 0003E4E0  C0 1D 06 F4 */	lfs f0, 0x6f4(r29)
/* 80042884 0003E4E4  90 1D 04 BC */	stw r0, 0x4bc(r29)
/* 80042888 0003E4E8  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 8004288C 0003E4EC  40 80 00 18 */	bge lbl_800428A4
/* 80042890 0003E4F0  88 1D 06 F8 */	lbz r0, 0x6f8(r29)
/* 80042894 0003E4F4  2C 00 00 00 */	cmpwi r0, 0
/* 80042898 0003E4F8  41 82 00 0C */	beq lbl_800428A4
/* 8004289C 0003E4FC  D0 01 00 08 */	stfs f0, 8(r1)
/* 800428A0 0003E500  48 00 00 0C */	b lbl_800428AC
lbl_800428A4:
/* 800428A4 0003E504  C0 1E 00 04 */	lfs f0, 4(r30)
/* 800428A8 0003E508  D0 01 00 08 */	stfs f0, 8(r1)
lbl_800428AC:
/* 800428AC 0003E50C  C0 3D 05 00 */	lfs f1, 0x500(r29)
/* 800428B0 0003E510  C0 1D 06 F4 */	lfs f0, 0x6f4(r29)
/* 800428B4 0003E514  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 800428B8 0003E518  40 80 00 18 */	bge lbl_800428D0
/* 800428BC 0003E51C  88 1D 06 F8 */	lbz r0, 0x6f8(r29)
/* 800428C0 0003E520  2C 00 00 00 */	cmpwi r0, 0
/* 800428C4 0003E524  41 82 00 0C */	beq lbl_800428D0
/* 800428C8 0003E528  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 800428CC 0003E52C  48 00 00 0C */	b lbl_800428D8
lbl_800428D0:
/* 800428D0 0003E530  C0 1D 05 00 */	lfs f0, 0x500(r29)
/* 800428D4 0003E534  D0 01 00 0C */	stfs f0, 0xc(r1)
lbl_800428D8:
/* 800428D8 0003E538  FC 20 F8 90 */	fmr f1, f31
/* 800428DC 0003E53C  38 9D 04 FC */	addi r4, r29, 0x4fc
/* 800428E0 0003E540  7F C5 F3 78 */	mr r5, r30
/* 800428E4 0003E544  7F E7 FB 78 */	mr r7, r31
/* 800428E8 0003E548  7C 86 23 78 */	mr r6, r4
/* 800428EC 0003E54C  38 7D 00 4C */	addi r3, r29, 0x4c
/* 800428F0 0003E550  48 00 DA 4D */	bl func_8005033C
/* 800428F4 0003E554  FC 20 F8 90 */	fmr f1, f31
/* 800428F8 0003E558  7F E7 FB 78 */	mr r7, r31
/* 800428FC 0003E55C  38 7D 00 70 */	addi r3, r29, 0x70
/* 80042900 0003E560  38 81 00 0C */	addi r4, r1, 0xc
/* 80042904 0003E564  38 A1 00 08 */	addi r5, r1, 8
/* 80042908 0003E568  38 DD 05 00 */	addi r6, r29, 0x500
/* 8004290C 0003E56C  48 00 DA 31 */	bl func_8005033C
/* 80042910 0003E570  FC 20 F8 90 */	fmr f1, f31
/* 80042914 0003E574  38 9D 05 04 */	addi r4, r29, 0x504
/* 80042918 0003E578  7C 86 23 78 */	mr r6, r4
/* 8004291C 0003E57C  7F E7 FB 78 */	mr r7, r31
/* 80042920 0003E580  38 7D 00 94 */	addi r3, r29, 0x94
/* 80042924 0003E584  38 BE 00 08 */	addi r5, r30, 8
/* 80042928 0003E588  48 00 DA 15 */	bl func_8005033C
/* 8004292C 0003E58C  E3 E1 00 28 */	psq_l f31, 40(r1), 0, qr0
/* 80042930 0003E590  80 01 00 34 */	lwz r0, 0x34(r1)
/* 80042934 0003E594  CB E1 00 20 */	lfd f31, 0x20(r1)
/* 80042938 0003E598  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 8004293C 0003E59C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 80042940 0003E5A0  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 80042944 0003E5A4  7C 08 03 A6 */	mtlr r0
/* 80042948 0003E5A8  38 21 00 30 */	addi r1, r1, 0x30
/* 8004294C 0003E5AC  4E 80 00 20 */	blr

.global func_80042950
func_80042950:
/* 80042950 0003E5B0  C0 82 82 EC */	lfs f4, lbl_806408EC-_SDA2_BASE_(r2)
/* 80042954 0003E5B4  3C 00 43 30 */	lis r0, 0x4330
/* 80042958 0003E5B8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8004295C 0003E5BC  EC 62 20 24 */	fdivs f3, f2, f4
/* 80042960 0003E5C0  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80042964 0003E5C4  90 01 00 08 */	stw r0, 8(r1)
/* 80042968 0003E5C8  90 01 00 10 */	stw r0, 0x10(r1)
/* 8004296C 0003E5CC  FC 60 18 1E */	fctiwz f3, f3
/* 80042970 0003E5D0  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 80042974 0003E5D4  D8 61 00 18 */	stfd f3, 0x18(r1)
/* 80042978 0003E5D8  80 61 00 1C */	lwz r3, 0x1c(r1)
/* 8004297C 0003E5DC  40 80 00 38 */	bge lbl_800429B4
/* 80042980 0003E5E0  38 03 FF FF */	addi r0, r3, -1
/* 80042984 0003E5E4  6C 63 80 00 */	xoris r3, r3, 0x8000
/* 80042988 0003E5E8  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 8004298C 0003E5EC  90 61 00 0C */	stw r3, 0xc(r1)
/* 80042990 0003E5F0  C8 62 83 48 */	lfd f3, lbl_80640948-_SDA2_BASE_(r2)
/* 80042994 0003E5F4  90 01 00 14 */	stw r0, 0x14(r1)
/* 80042998 0003E5F8  C8 41 00 08 */	lfd f2, 8(r1)
/* 8004299C 0003E5FC  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 800429A0 0003E600  EC 42 18 28 */	fsubs f2, f2, f3
/* 800429A4 0003E604  EC 00 18 28 */	fsubs f0, f0, f3
/* 800429A8 0003E608  EC 42 01 32 */	fmuls f2, f2, f4
/* 800429AC 0003E60C  EC 60 01 32 */	fmuls f3, f0, f4
/* 800429B0 0003E610  48 00 00 3C */	b lbl_800429EC
lbl_800429B4:
/* 800429B4 0003E614  38 03 00 01 */	addi r0, r3, 1
/* 800429B8 0003E618  6C 63 80 00 */	xoris r3, r3, 0x8000
/* 800429BC 0003E61C  6C 00 80 00 */	xoris r0, r0, 0x8000
/* 800429C0 0003E620  90 61 00 0C */	stw r3, 0xc(r1)
/* 800429C4 0003E624  C8 62 83 48 */	lfd f3, lbl_80640948-_SDA2_BASE_(r2)
/* 800429C8 0003E628  90 01 00 14 */	stw r0, 0x14(r1)
/* 800429CC 0003E62C  C8 41 00 08 */	lfd f2, 8(r1)
/* 800429D0 0003E630  C8 01 00 10 */	lfd f0, 0x10(r1)
/* 800429D4 0003E634  EC 42 18 28 */	fsubs f2, f2, f3
/* 800429D8 0003E638  EC 00 18 28 */	fsubs f0, f0, f3
/* 800429DC 0003E63C  EC 62 01 32 */	fmuls f3, f2, f4
/* 800429E0 0003E640  EC 40 01 32 */	fmuls f2, f0, f4
/* 800429E4 0003E644  48 00 00 08 */	b lbl_800429EC
lbl_800429E8:
/* 800429E8 0003E648  EC 21 20 2A */	fadds f1, f1, f4
lbl_800429EC:
/* 800429EC 0003E64C  FC 01 18 40 */	fcmpo cr0, f1, f3
/* 800429F0 0003E650  41 80 FF F8 */	blt lbl_800429E8
/* 800429F4 0003E654  48 00 00 08 */	b lbl_800429FC
lbl_800429F8:
/* 800429F8 0003E658  EC 21 20 28 */	fsubs f1, f1, f4
lbl_800429FC:
/* 800429FC 0003E65C  FC 01 10 40 */	fcmpo cr0, f1, f2
/* 80042A00 0003E660  41 81 FF F8 */	bgt lbl_800429F8
/* 80042A04 0003E664  38 21 00 20 */	addi r1, r1, 0x20
/* 80042A08 0003E668  4E 80 00 20 */	blr

.global func_80042A0C
func_80042A0C:
/* 80042A0C 0003E66C  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80042A10 0003E670  7C 08 02 A6 */	mflr r0
/* 80042A14 0003E674  90 01 00 24 */	stw r0, 0x24(r1)
/* 80042A18 0003E678  DB E1 00 18 */	stfd f31, 0x18(r1)
/* 80042A1C 0003E67C  FF E0 10 90 */	fmr f31, f2
/* 80042A20 0003E680  93 E1 00 14 */	stw r31, 0x14(r1)
/* 80042A24 0003E684  7C 9F 23 78 */	mr r31, r4
/* 80042A28 0003E688  38 80 00 00 */	li r4, 0
/* 80042A2C 0003E68C  93 C1 00 10 */	stw r30, 0x10(r1)
/* 80042A30 0003E690  7C 7E 1B 78 */	mr r30, r3
/* 80042A34 0003E694  38 63 04 E8 */	addi r3, r3, 0x4e8
/* 80042A38 0003E698  D0 21 00 08 */	stfs f1, 8(r1)
/* 80042A3C 0003E69C  4B FF E1 69 */	bl func_80040BA4
/* 80042A40 0003E6A0  80 1E 04 BC */	lwz r0, 0x4bc(r30)
/* 80042A44 0003E6A4  38 9E 05 00 */	addi r4, r30, 0x500
/* 80042A48 0003E6A8  FC 20 F8 90 */	fmr f1, f31
/* 80042A4C 0003E6AC  7C 86 23 78 */	mr r6, r4
/* 80042A50 0003E6B0  54 00 07 76 */	rlwinm r0, r0, 0, 0x1d, 0x1b
/* 80042A54 0003E6B4  7F E7 FB 78 */	mr r7, r31
/* 80042A58 0003E6B8  90 1E 04 BC */	stw r0, 0x4bc(r30)
/* 80042A5C 0003E6BC  38 7E 00 70 */	addi r3, r30, 0x70
/* 80042A60 0003E6C0  38 A1 00 08 */	addi r5, r1, 8
/* 80042A64 0003E6C4  48 00 D8 D9 */	bl func_8005033C
/* 80042A68 0003E6C8  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80042A6C 0003E6CC  CB E1 00 18 */	lfd f31, 0x18(r1)
/* 80042A70 0003E6D0  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 80042A74 0003E6D4  83 C1 00 10 */	lwz r30, 0x10(r1)
/* 80042A78 0003E6D8  7C 08 03 A6 */	mtlr r0
/* 80042A7C 0003E6DC  38 21 00 20 */	addi r1, r1, 0x20
/* 80042A80 0003E6E0  4E 80 00 20 */	blr

.global func_80042A84
func_80042A84:
/* 80042A84 0003E6E4  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 80042A88 0003E6E8  7C 08 02 A6 */	mflr r0
/* 80042A8C 0003E6EC  90 01 00 44 */	stw r0, 0x44(r1)
/* 80042A90 0003E6F0  DB E1 00 30 */	stfd f31, 0x30(r1)
/* 80042A94 0003E6F4  F3 E1 00 38 */	psq_st f31, 56(r1), 0, qr0
/* 80042A98 0003E6F8  FF E0 10 90 */	fmr f31, f2
/* 80042A9C 0003E6FC  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 80042AA0 0003E700  7C 9F 23 78 */	mr r31, r4
/* 80042AA4 0003E704  93 C1 00 28 */	stw r30, 0x28(r1)
/* 80042AA8 0003E708  7C 7E 1B 78 */	mr r30, r3
/* 80042AAC 0003E70C  38 9E 05 74 */	addi r4, r30, 0x574
/* 80042AB0 0003E710  D0 21 00 08 */	stfs f1, 8(r1)
/* 80042AB4 0003E714  C0 03 04 FC */	lfs f0, 0x4fc(r3)
/* 80042AB8 0003E718  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 80042ABC 0003E71C  C0 03 05 00 */	lfs f0, 0x500(r3)
/* 80042AC0 0003E720  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 80042AC4 0003E724  C0 03 05 04 */	lfs f0, 0x504(r3)
/* 80042AC8 0003E728  38 61 00 10 */	addi r3, r1, 0x10
/* 80042ACC 0003E72C  7C 65 1B 78 */	mr r5, r3
/* 80042AD0 0003E730  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 80042AD4 0003E734  48 23 A2 15 */	bl PSVECSubtract
/* 80042AD8 0003E738  C0 41 00 18 */	lfs f2, 0x18(r1)
/* 80042ADC 0003E73C  C0 21 00 10 */	lfs f1, 0x10(r1)
/* 80042AE0 0003E740  48 19 1A FD */	bl atan2
/* 80042AE4 0003E744  FC 00 08 18 */	frsp f0, f1
/* 80042AE8 0003E748  7F E7 FB 78 */	mr r7, r31
/* 80042AEC 0003E74C  FC 20 F8 90 */	fmr f1, f31
/* 80042AF0 0003E750  38 7E 01 24 */	addi r3, r30, 0x124
/* 80042AF4 0003E754  38 81 00 0C */	addi r4, r1, 0xc
/* 80042AF8 0003E758  38 A1 00 08 */	addi r5, r1, 8
/* 80042AFC 0003E75C  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 80042B00 0003E760  38 DE 04 D8 */	addi r6, r30, 0x4d8
/* 80042B04 0003E764  80 1E 04 BC */	lwz r0, 0x4bc(r30)
/* 80042B08 0003E768  54 00 07 34 */	rlwinm r0, r0, 0, 0x1c, 0x1a
/* 80042B0C 0003E76C  90 1E 04 BC */	stw r0, 0x4bc(r30)
/* 80042B10 0003E770  48 00 D8 2D */	bl func_8005033C
/* 80042B14 0003E774  E3 E1 00 38 */	psq_l f31, 56(r1), 0, qr0
/* 80042B18 0003E778  80 01 00 44 */	lwz r0, 0x44(r1)
/* 80042B1C 0003E77C  CB E1 00 30 */	lfd f31, 0x30(r1)
/* 80042B20 0003E780  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 80042B24 0003E784  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 80042B28 0003E788  7C 08 03 A6 */	mtlr r0
/* 80042B2C 0003E78C  38 21 00 40 */	addi r1, r1, 0x40
/* 80042B30 0003E790  4E 80 00 20 */	blr

.global func_80042B34
func_80042B34:
/* 80042B34 0003E794  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 80042B38 0003E798  7C 08 02 A6 */	mflr r0
/* 80042B3C 0003E79C  90 01 00 54 */	stw r0, 0x54(r1)
/* 80042B40 0003E7A0  DB E1 00 40 */	stfd f31, 0x40(r1)
/* 80042B44 0003E7A4  F3 E1 00 48 */	psq_st f31, 72(r1), 0, qr0
/* 80042B48 0003E7A8  DB C1 00 30 */	stfd f30, 0x30(r1)
/* 80042B4C 0003E7AC  F3 C1 00 38 */	psq_st f30, 56(r1), 0, qr0
/* 80042B50 0003E7B0  FF C0 18 90 */	fmr f30, f3
/* 80042B54 0003E7B4  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 80042B58 0003E7B8  7C 9F 23 78 */	mr r31, r4
/* 80042B5C 0003E7BC  93 C1 00 28 */	stw r30, 0x28(r1)
/* 80042B60 0003E7C0  7C 7E 1B 78 */	mr r30, r3
/* 80042B64 0003E7C4  38 9E 05 74 */	addi r4, r30, 0x574
/* 80042B68 0003E7C8  D0 21 00 08 */	stfs f1, 8(r1)
/* 80042B6C 0003E7CC  D0 41 00 0C */	stfs f2, 0xc(r1)
/* 80042B70 0003E7D0  C0 03 04 FC */	lfs f0, 0x4fc(r3)
/* 80042B74 0003E7D4  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 80042B78 0003E7D8  C0 03 05 00 */	lfs f0, 0x500(r3)
/* 80042B7C 0003E7DC  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 80042B80 0003E7E0  C0 03 05 04 */	lfs f0, 0x504(r3)
/* 80042B84 0003E7E4  38 61 00 18 */	addi r3, r1, 0x18
/* 80042B88 0003E7E8  7C 65 1B 78 */	mr r5, r3
/* 80042B8C 0003E7EC  D0 01 00 20 */	stfs f0, 0x20(r1)
/* 80042B90 0003E7F0  48 23 A1 59 */	bl PSVECSubtract
/* 80042B94 0003E7F4  80 1E 06 D0 */	lwz r0, 0x6d0(r30)
/* 80042B98 0003E7F8  54 00 07 BD */	rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80042B9C 0003E7FC  41 82 00 28 */	beq lbl_80042BC4
/* 80042BA0 0003E800  C0 41 00 20 */	lfs f2, 0x20(r1)
/* 80042BA4 0003E804  C0 21 00 18 */	lfs f1, 0x18(r1)
/* 80042BA8 0003E808  48 19 1A 35 */	bl atan2
/* 80042BAC 0003E80C  FF E0 08 18 */	frsp f31, f1
/* 80042BB0 0003E810  38 7E 06 50 */	addi r3, r30, 0x650
/* 80042BB4 0003E814  4B FF E0 85 */	bl func_80040C38
/* 80042BB8 0003E818  EC 1F 08 28 */	fsubs f0, f31, f1
/* 80042BBC 0003E81C  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 80042BC0 0003E820  48 00 00 24 */	b lbl_80042BE4
lbl_80042BC4:
/* 80042BC4 0003E824  C0 41 00 20 */	lfs f2, 0x20(r1)
/* 80042BC8 0003E828  C0 21 00 18 */	lfs f1, 0x18(r1)
/* 80042BCC 0003E82C  48 19 1A 11 */	bl atan2
/* 80042BD0 0003E830  FF E0 08 18 */	frsp f31, f1
/* 80042BD4 0003E834  38 7E 05 60 */	addi r3, r30, 0x560
/* 80042BD8 0003E838  4B FF E0 61 */	bl func_80040C38
/* 80042BDC 0003E83C  EC 1F 08 28 */	fsubs f0, f31, f1
/* 80042BE0 0003E840  D0 01 00 14 */	stfs f0, 0x14(r1)
lbl_80042BE4:
/* 80042BE4 0003E844  FC 20 00 18 */	frsp f1, f0
/* 80042BE8 0003E848  C0 41 00 08 */	lfs f2, 8(r1)
/* 80042BEC 0003E84C  7F C3 F3 78 */	mr r3, r30
/* 80042BF0 0003E850  4B FF FD 61 */	bl func_80042950
/* 80042BF4 0003E854  D0 21 00 14 */	stfs f1, 0x14(r1)
/* 80042BF8 0003E858  38 61 00 18 */	addi r3, r1, 0x18
/* 80042BFC 0003E85C  48 23 A1 89 */	bl PSVECMag
/* 80042C00 0003E860  C0 41 00 1C */	lfs f2, 0x1c(r1)
/* 80042C04 0003E864  C0 02 82 BC */	lfs f0, lbl_806408BC-_SDA2_BASE_(r2)
/* 80042C08 0003E868  EC 22 08 24 */	fdivs f1, f2, f1
/* 80042C0C 0003E86C  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80042C10 0003E870  4C 41 13 82 */	cror 2, 1, 2
/* 80042C14 0003E874  40 82 00 0C */	bne lbl_80042C20
/* 80042C18 0003E878  C0 02 82 DC */	lfs f0, lbl_806408DC-_SDA2_BASE_(r2)
/* 80042C1C 0003E87C  48 00 00 24 */	b lbl_80042C40
lbl_80042C20:
/* 80042C20 0003E880  C0 02 82 E0 */	lfs f0, lbl_806408E0-_SDA2_BASE_(r2)
/* 80042C24 0003E884  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80042C28 0003E888  4C 40 13 82 */	cror 2, 0, 2
/* 80042C2C 0003E88C  40 82 00 0C */	bne lbl_80042C38
/* 80042C30 0003E890  C0 02 82 E4 */	lfs f0, lbl_806408E4-_SDA2_BASE_(r2)
/* 80042C34 0003E894  48 00 00 0C */	b lbl_80042C40
lbl_80042C38:
/* 80042C38 0003E898  48 19 19 A1 */	bl asin
/* 80042C3C 0003E89C  FC 00 08 18 */	frsp f0, f1
lbl_80042C40:
/* 80042C40 0003E8A0  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 80042C44 0003E8A4  FC 20 F0 90 */	fmr f1, f30
/* 80042C48 0003E8A8  7F E7 FB 78 */	mr r7, r31
/* 80042C4C 0003E8AC  38 7E 01 24 */	addi r3, r30, 0x124
/* 80042C50 0003E8B0  80 1E 04 BC */	lwz r0, 0x4bc(r30)
/* 80042C54 0003E8B4  38 81 00 14 */	addi r4, r1, 0x14
/* 80042C58 0003E8B8  38 A1 00 08 */	addi r5, r1, 8
/* 80042C5C 0003E8BC  54 00 07 74 */	rlwinm r0, r0, 0, 0x1d, 0x1a
/* 80042C60 0003E8C0  38 DE 04 D8 */	addi r6, r30, 0x4d8
/* 80042C64 0003E8C4  90 1E 04 BC */	stw r0, 0x4bc(r30)
/* 80042C68 0003E8C8  48 00 D6 D5 */	bl func_8005033C
/* 80042C6C 0003E8CC  FC 20 F0 90 */	fmr f1, f30
/* 80042C70 0003E8D0  7F E7 FB 78 */	mr r7, r31
/* 80042C74 0003E8D4  38 7E 01 48 */	addi r3, r30, 0x148
/* 80042C78 0003E8D8  38 81 00 10 */	addi r4, r1, 0x10
/* 80042C7C 0003E8DC  38 A1 00 0C */	addi r5, r1, 0xc
/* 80042C80 0003E8E0  38 DE 04 DC */	addi r6, r30, 0x4dc
/* 80042C84 0003E8E4  48 00 D6 B9 */	bl func_8005033C
/* 80042C88 0003E8E8  E3 E1 00 48 */	psq_l f31, 72(r1), 0, qr0
/* 80042C8C 0003E8EC  CB E1 00 40 */	lfd f31, 0x40(r1)
/* 80042C90 0003E8F0  E3 C1 00 38 */	psq_l f30, 56(r1), 0, qr0
/* 80042C94 0003E8F4  CB C1 00 30 */	lfd f30, 0x30(r1)
/* 80042C98 0003E8F8  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 80042C9C 0003E8FC  80 01 00 54 */	lwz r0, 0x54(r1)
/* 80042CA0 0003E900  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 80042CA4 0003E904  7C 08 03 A6 */	mtlr r0
/* 80042CA8 0003E908  38 21 00 50 */	addi r1, r1, 0x50
/* 80042CAC 0003E90C  4E 80 00 20 */	blr

.global func_80042CB0
func_80042CB0:
/* 80042CB0 0003E910  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 80042CB4 0003E914  7C 08 02 A6 */	mflr r0
/* 80042CB8 0003E918  90 01 00 54 */	stw r0, 0x54(r1)
/* 80042CBC 0003E91C  DB E1 00 40 */	stfd f31, 0x40(r1)
/* 80042CC0 0003E920  F3 E1 00 48 */	psq_st f31, 72(r1), 0, qr0
/* 80042CC4 0003E924  DB C1 00 30 */	stfd f30, 0x30(r1)
/* 80042CC8 0003E928  F3 C1 00 38 */	psq_st f30, 56(r1), 0, qr0
/* 80042CCC 0003E92C  FF C0 10 90 */	fmr f30, f2
/* 80042CD0 0003E930  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 80042CD4 0003E934  7C 9F 23 78 */	mr r31, r4
/* 80042CD8 0003E938  93 C1 00 28 */	stw r30, 0x28(r1)
/* 80042CDC 0003E93C  7C 7E 1B 78 */	mr r30, r3
/* 80042CE0 0003E940  38 9E 05 74 */	addi r4, r30, 0x574
/* 80042CE4 0003E944  D0 21 00 08 */	stfs f1, 8(r1)
/* 80042CE8 0003E948  C0 03 04 FC */	lfs f0, 0x4fc(r3)
/* 80042CEC 0003E94C  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 80042CF0 0003E950  C0 03 05 00 */	lfs f0, 0x500(r3)
/* 80042CF4 0003E954  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 80042CF8 0003E958  C0 03 05 04 */	lfs f0, 0x504(r3)
/* 80042CFC 0003E95C  38 61 00 10 */	addi r3, r1, 0x10
/* 80042D00 0003E960  7C 65 1B 78 */	mr r5, r3
/* 80042D04 0003E964  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 80042D08 0003E968  48 23 9F E1 */	bl PSVECSubtract
/* 80042D0C 0003E96C  80 1E 06 D0 */	lwz r0, 0x6d0(r30)
/* 80042D10 0003E970  54 00 07 BD */	rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80042D14 0003E974  41 82 00 28 */	beq lbl_80042D3C
/* 80042D18 0003E978  C0 41 00 18 */	lfs f2, 0x18(r1)
/* 80042D1C 0003E97C  C0 21 00 10 */	lfs f1, 0x10(r1)
/* 80042D20 0003E980  48 19 18 BD */	bl atan2
/* 80042D24 0003E984  FF E0 08 18 */	frsp f31, f1
/* 80042D28 0003E988  38 7E 06 50 */	addi r3, r30, 0x650
/* 80042D2C 0003E98C  4B FF DF 0D */	bl func_80040C38
/* 80042D30 0003E990  EC 1F 08 28 */	fsubs f0, f31, f1
/* 80042D34 0003E994  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 80042D38 0003E998  48 00 00 24 */	b lbl_80042D5C
lbl_80042D3C:
/* 80042D3C 0003E99C  C0 41 00 18 */	lfs f2, 0x18(r1)
/* 80042D40 0003E9A0  C0 21 00 10 */	lfs f1, 0x10(r1)
/* 80042D44 0003E9A4  48 19 18 99 */	bl atan2
/* 80042D48 0003E9A8  FF E0 08 18 */	frsp f31, f1
/* 80042D4C 0003E9AC  38 7E 05 60 */	addi r3, r30, 0x560
/* 80042D50 0003E9B0  4B FF DE E9 */	bl func_80040C38
/* 80042D54 0003E9B4  EC 1F 08 28 */	fsubs f0, f31, f1
/* 80042D58 0003E9B8  D0 01 00 0C */	stfs f0, 0xc(r1)
lbl_80042D5C:
/* 80042D5C 0003E9BC  FC 20 00 18 */	frsp f1, f0
/* 80042D60 0003E9C0  C0 41 00 08 */	lfs f2, 8(r1)
/* 80042D64 0003E9C4  7F C3 F3 78 */	mr r3, r30
/* 80042D68 0003E9C8  4B FF FB E9 */	bl func_80042950
/* 80042D6C 0003E9CC  D0 21 00 0C */	stfs f1, 0xc(r1)
/* 80042D70 0003E9D0  FC 20 F0 90 */	fmr f1, f30
/* 80042D74 0003E9D4  7F E7 FB 78 */	mr r7, r31
/* 80042D78 0003E9D8  38 7E 01 24 */	addi r3, r30, 0x124
/* 80042D7C 0003E9DC  80 1E 04 BC */	lwz r0, 0x4bc(r30)
/* 80042D80 0003E9E0  38 81 00 0C */	addi r4, r1, 0xc
/* 80042D84 0003E9E4  38 A1 00 08 */	addi r5, r1, 8
/* 80042D88 0003E9E8  54 00 07 34 */	rlwinm r0, r0, 0, 0x1c, 0x1a
/* 80042D8C 0003E9EC  38 DE 04 D8 */	addi r6, r30, 0x4d8
/* 80042D90 0003E9F0  90 1E 04 BC */	stw r0, 0x4bc(r30)
/* 80042D94 0003E9F4  48 00 D5 A9 */	bl func_8005033C
/* 80042D98 0003E9F8  E3 E1 00 48 */	psq_l f31, 72(r1), 0, qr0
/* 80042D9C 0003E9FC  CB E1 00 40 */	lfd f31, 0x40(r1)
/* 80042DA0 0003EA00  E3 C1 00 38 */	psq_l f30, 56(r1), 0, qr0
/* 80042DA4 0003EA04  CB C1 00 30 */	lfd f30, 0x30(r1)
/* 80042DA8 0003EA08  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 80042DAC 0003EA0C  80 01 00 54 */	lwz r0, 0x54(r1)
/* 80042DB0 0003EA10  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 80042DB4 0003EA14  7C 08 03 A6 */	mtlr r0
/* 80042DB8 0003EA18  38 21 00 50 */	addi r1, r1, 0x50
/* 80042DBC 0003EA1C  4E 80 00 20 */	blr

.global func_80042DC0
func_80042DC0:
/* 80042DC0 0003EA20  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 80042DC4 0003EA24  7C 08 02 A6 */	mflr r0
/* 80042DC8 0003EA28  90 01 00 44 */	stw r0, 0x44(r1)
/* 80042DCC 0003EA2C  DB E1 00 30 */	stfd f31, 0x30(r1)
/* 80042DD0 0003EA30  F3 E1 00 38 */	psq_st f31, 56(r1), 0, qr0
/* 80042DD4 0003EA34  FF E0 10 90 */	fmr f31, f2
/* 80042DD8 0003EA38  93 E1 00 2C */	stw r31, 0x2c(r1)
/* 80042DDC 0003EA3C  7C 9F 23 78 */	mr r31, r4
/* 80042DE0 0003EA40  93 C1 00 28 */	stw r30, 0x28(r1)
/* 80042DE4 0003EA44  7C 7E 1B 78 */	mr r30, r3
/* 80042DE8 0003EA48  38 9E 05 74 */	addi r4, r30, 0x574
/* 80042DEC 0003EA4C  D0 21 00 08 */	stfs f1, 8(r1)
/* 80042DF0 0003EA50  C0 03 04 FC */	lfs f0, 0x4fc(r3)
/* 80042DF4 0003EA54  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 80042DF8 0003EA58  C0 03 05 00 */	lfs f0, 0x500(r3)
/* 80042DFC 0003EA5C  D0 01 00 14 */	stfs f0, 0x14(r1)
/* 80042E00 0003EA60  C0 03 05 04 */	lfs f0, 0x504(r3)
/* 80042E04 0003EA64  38 61 00 10 */	addi r3, r1, 0x10
/* 80042E08 0003EA68  7C 65 1B 78 */	mr r5, r3
/* 80042E0C 0003EA6C  D0 01 00 18 */	stfs f0, 0x18(r1)
/* 80042E10 0003EA70  48 23 9E D9 */	bl PSVECSubtract
/* 80042E14 0003EA74  38 61 00 10 */	addi r3, r1, 0x10
/* 80042E18 0003EA78  48 23 9F 6D */	bl PSVECMag
/* 80042E1C 0003EA7C  C0 41 00 14 */	lfs f2, 0x14(r1)
/* 80042E20 0003EA80  C0 02 82 BC */	lfs f0, lbl_806408BC-_SDA2_BASE_(r2)
/* 80042E24 0003EA84  EC 22 08 24 */	fdivs f1, f2, f1
/* 80042E28 0003EA88  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80042E2C 0003EA8C  4C 41 13 82 */	cror 2, 1, 2
/* 80042E30 0003EA90  40 82 00 0C */	bne lbl_80042E3C
/* 80042E34 0003EA94  C0 02 82 DC */	lfs f0, lbl_806408DC-_SDA2_BASE_(r2)
/* 80042E38 0003EA98  48 00 00 24 */	b lbl_80042E5C
lbl_80042E3C:
/* 80042E3C 0003EA9C  C0 02 82 E0 */	lfs f0, lbl_806408E0-_SDA2_BASE_(r2)
/* 80042E40 0003EAA0  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80042E44 0003EAA4  4C 40 13 82 */	cror 2, 0, 2
/* 80042E48 0003EAA8  40 82 00 0C */	bne lbl_80042E54
/* 80042E4C 0003EAAC  C0 02 82 E4 */	lfs f0, lbl_806408E4-_SDA2_BASE_(r2)
/* 80042E50 0003EAB0  48 00 00 0C */	b lbl_80042E5C
lbl_80042E54:
/* 80042E54 0003EAB4  48 19 17 85 */	bl asin
/* 80042E58 0003EAB8  FC 00 08 18 */	frsp f0, f1
lbl_80042E5C:
/* 80042E5C 0003EABC  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 80042E60 0003EAC0  FC 20 F8 90 */	fmr f1, f31
/* 80042E64 0003EAC4  7F E7 FB 78 */	mr r7, r31
/* 80042E68 0003EAC8  38 7E 01 48 */	addi r3, r30, 0x148
/* 80042E6C 0003EACC  80 1E 04 BC */	lwz r0, 0x4bc(r30)
/* 80042E70 0003EAD0  38 81 00 0C */	addi r4, r1, 0xc
/* 80042E74 0003EAD4  38 A1 00 08 */	addi r5, r1, 8
/* 80042E78 0003EAD8  54 00 07 76 */	rlwinm r0, r0, 0, 0x1d, 0x1b
/* 80042E7C 0003EADC  38 DE 04 DC */	addi r6, r30, 0x4dc
/* 80042E80 0003EAE0  90 1E 04 BC */	stw r0, 0x4bc(r30)
/* 80042E84 0003EAE4  48 00 D4 B9 */	bl func_8005033C
/* 80042E88 0003EAE8  E3 E1 00 38 */	psq_l f31, 56(r1), 0, qr0
/* 80042E8C 0003EAEC  80 01 00 44 */	lwz r0, 0x44(r1)
/* 80042E90 0003EAF0  CB E1 00 30 */	lfd f31, 0x30(r1)
/* 80042E94 0003EAF4  83 E1 00 2C */	lwz r31, 0x2c(r1)
/* 80042E98 0003EAF8  83 C1 00 28 */	lwz r30, 0x28(r1)
/* 80042E9C 0003EAFC  7C 08 03 A6 */	mtlr r0
/* 80042EA0 0003EB00  38 21 00 40 */	addi r1, r1, 0x40
/* 80042EA4 0003EB04  4E 80 00 20 */	blr

.global func_80042EA8
func_80042EA8:
/* 80042EA8 0003EB08  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80042EAC 0003EB0C  7C 08 02 A6 */	mflr r0
/* 80042EB0 0003EB10  90 01 00 24 */	stw r0, 0x24(r1)
/* 80042EB4 0003EB14  DB E1 00 18 */	stfd f31, 0x18(r1)
/* 80042EB8 0003EB18  FF E0 08 90 */	fmr f31, f1
/* 80042EBC 0003EB1C  93 E1 00 14 */	stw r31, 0x14(r1)
/* 80042EC0 0003EB20  3B E3 05 74 */	addi r31, r3, 0x574
/* 80042EC4 0003EB24  93 C1 00 10 */	stw r30, 0x10(r1)
/* 80042EC8 0003EB28  7C BE 2B 78 */	mr r30, r5
/* 80042ECC 0003EB2C  93 A1 00 0C */	stw r29, 0xc(r1)
/* 80042ED0 0003EB30  7C 9D 23 78 */	mr r29, r4
/* 80042ED4 0003EB34  38 80 00 00 */	li r4, 0
/* 80042ED8 0003EB38  93 81 00 08 */	stw r28, 8(r1)
/* 80042EDC 0003EB3C  7C 7C 1B 78 */	mr r28, r3
/* 80042EE0 0003EB40  38 63 05 60 */	addi r3, r3, 0x560
/* 80042EE4 0003EB44  4B FF DC C1 */	bl func_80040BA4
/* 80042EE8 0003EB48  FC 20 F8 90 */	fmr f1, f31
/* 80042EEC 0003EB4C  7F E4 FB 78 */	mr r4, r31
/* 80042EF0 0003EB50  7F A5 EB 78 */	mr r5, r29
/* 80042EF4 0003EB54  7F E6 FB 78 */	mr r6, r31
/* 80042EF8 0003EB58  7F C7 F3 78 */	mr r7, r30
/* 80042EFC 0003EB5C  38 7C 00 B8 */	addi r3, r28, 0xb8
/* 80042F00 0003EB60  48 00 D4 3D */	bl func_8005033C
/* 80042F04 0003EB64  FC 20 F8 90 */	fmr f1, f31
/* 80042F08 0003EB68  38 9F 00 04 */	addi r4, r31, 4
/* 80042F0C 0003EB6C  7C 86 23 78 */	mr r6, r4
/* 80042F10 0003EB70  7F C7 F3 78 */	mr r7, r30
/* 80042F14 0003EB74  38 7C 00 DC */	addi r3, r28, 0xdc
/* 80042F18 0003EB78  38 BD 00 04 */	addi r5, r29, 4
/* 80042F1C 0003EB7C  48 00 D4 21 */	bl func_8005033C
/* 80042F20 0003EB80  FC 20 F8 90 */	fmr f1, f31
/* 80042F24 0003EB84  38 9F 00 08 */	addi r4, r31, 8
/* 80042F28 0003EB88  7C 86 23 78 */	mr r6, r4
/* 80042F2C 0003EB8C  7F C7 F3 78 */	mr r7, r30
/* 80042F30 0003EB90  38 7C 01 00 */	addi r3, r28, 0x100
/* 80042F34 0003EB94  38 BD 00 08 */	addi r5, r29, 8
/* 80042F38 0003EB98  48 00 D4 05 */	bl func_8005033C
/* 80042F3C 0003EB9C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80042F40 0003EBA0  CB E1 00 18 */	lfd f31, 0x18(r1)
/* 80042F44 0003EBA4  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 80042F48 0003EBA8  83 C1 00 10 */	lwz r30, 0x10(r1)
/* 80042F4C 0003EBAC  83 A1 00 0C */	lwz r29, 0xc(r1)
/* 80042F50 0003EBB0  83 81 00 08 */	lwz r28, 8(r1)
/* 80042F54 0003EBB4  7C 08 03 A6 */	mtlr r0
/* 80042F58 0003EBB8  38 21 00 20 */	addi r1, r1, 0x20
/* 80042F5C 0003EBBC  4E 80 00 20 */	blr

.global func_80042F60
func_80042F60:
/* 80042F60 0003EBC0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80042F64 0003EBC4  7C 08 02 A6 */	mflr r0
/* 80042F68 0003EBC8  90 01 00 24 */	stw r0, 0x24(r1)
/* 80042F6C 0003EBCC  DB E1 00 18 */	stfd f31, 0x18(r1)
/* 80042F70 0003EBD0  FF E0 10 90 */	fmr f31, f2
/* 80042F74 0003EBD4  93 E1 00 14 */	stw r31, 0x14(r1)
/* 80042F78 0003EBD8  7C 9F 23 78 */	mr r31, r4
/* 80042F7C 0003EBDC  38 80 00 00 */	li r4, 0
/* 80042F80 0003EBE0  93 C1 00 10 */	stw r30, 0x10(r1)
/* 80042F84 0003EBE4  7C 7E 1B 78 */	mr r30, r3
/* 80042F88 0003EBE8  38 63 05 60 */	addi r3, r3, 0x560
/* 80042F8C 0003EBEC  D0 21 00 08 */	stfs f1, 8(r1)
/* 80042F90 0003EBF0  4B FF DC 15 */	bl func_80040BA4
/* 80042F94 0003EBF4  FC 20 F8 90 */	fmr f1, f31
/* 80042F98 0003EBF8  38 9E 05 78 */	addi r4, r30, 0x578
/* 80042F9C 0003EBFC  7C 86 23 78 */	mr r6, r4
/* 80042FA0 0003EC00  7F E7 FB 78 */	mr r7, r31
/* 80042FA4 0003EC04  38 7E 00 DC */	addi r3, r30, 0xdc
/* 80042FA8 0003EC08  38 A1 00 08 */	addi r5, r1, 8
/* 80042FAC 0003EC0C  48 00 D3 91 */	bl func_8005033C
/* 80042FB0 0003EC10  80 01 00 24 */	lwz r0, 0x24(r1)
/* 80042FB4 0003EC14  CB E1 00 18 */	lfd f31, 0x18(r1)
/* 80042FB8 0003EC18  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 80042FBC 0003EC1C  83 C1 00 10 */	lwz r30, 0x10(r1)
/* 80042FC0 0003EC20  7C 08 03 A6 */	mtlr r0
/* 80042FC4 0003EC24  38 21 00 20 */	addi r1, r1, 0x20
/* 80042FC8 0003EC28  4E 80 00 20 */	blr

.global func_80042FCC
func_80042FCC:
/* 80042FCC 0003EC2C  94 21 FF 70 */	stwu r1, -0x90(r1)
/* 80042FD0 0003EC30  7C 08 02 A6 */	mflr r0
/* 80042FD4 0003EC34  90 01 00 94 */	stw r0, 0x94(r1)
/* 80042FD8 0003EC38  DB E1 00 80 */	stfd f31, 0x80(r1)
/* 80042FDC 0003EC3C  F3 E1 00 88 */	psq_st f31, 136(r1), 0, qr0
/* 80042FE0 0003EC40  DB C1 00 70 */	stfd f30, 0x70(r1)
/* 80042FE4 0003EC44  F3 C1 00 78 */	psq_st f30, 120(r1), 0, qr0
/* 80042FE8 0003EC48  DB A1 00 60 */	stfd f29, 0x60(r1)
/* 80042FEC 0003EC4C  F3 A1 00 68 */	psq_st f29, 104(r1), 0, qr0
/* 80042FF0 0003EC50  DB 81 00 50 */	stfd f28, 0x50(r1)
/* 80042FF4 0003EC54  F3 81 00 58 */	psq_st f28, 88(r1), 0, qr0
/* 80042FF8 0003EC58  DB 61 00 40 */	stfd f27, 0x40(r1)
/* 80042FFC 0003EC5C  F3 61 00 48 */	psq_st f27, 72(r1), 0, qr0
/* 80043000 0003EC60  DB 41 00 30 */	stfd f26, 0x30(r1)
/* 80043004 0003EC64  F3 41 00 38 */	psq_st f26, 56(r1), 0, qr0
/* 80043008 0003EC68  39 61 00 30 */	addi r11, r1, 0x30
/* 8004300C 0003EC6C  48 18 41 19 */	bl _savegpr_26
/* 80043010 0003EC70  C0 02 83 50 */	lfs f0, lbl_80640950-_SDA2_BASE_(r2)
/* 80043014 0003EC74  FF E0 10 90 */	fmr f31, f2
/* 80043018 0003EC78  7C 7F 1B 78 */	mr r31, r3
/* 8004301C 0003EC7C  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 80043020 0003EC80  4C 40 13 82 */	cror 2, 0, 2
/* 80043024 0003EC84  40 82 00 28 */	bne lbl_8004304C
/* 80043028 0003EC88  7C C8 33 78 */	mr r8, r6
/* 8004302C 0003EC8C  38 C0 00 00 */	li r6, 0
/* 80043030 0003EC90  38 E0 00 00 */	li r7, 0
/* 80043034 0003EC94  38 63 05 60 */	addi r3, r3, 0x560
/* 80043038 0003EC98  4B FF DB 01 */	bl func_80040B38
/* 8004303C 0003EC9C  80 1F 06 D0 */	lwz r0, 0x6d0(r31)
/* 80043040 0003ECA0  54 00 00 3A */	rlwinm r0, r0, 0, 0, 0x1d
/* 80043044 0003ECA4  90 1F 06 D0 */	stw r0, 0x6d0(r31)
/* 80043048 0003ECA8  48 00 02 44 */	b lbl_8004328C
lbl_8004304C:
/* 8004304C 0003ECAC  80 03 06 D0 */	lwz r0, 0x6d0(r3)
/* 80043050 0003ECB0  2C 00 00 00 */	cmpwi r0, 0
/* 80043054 0003ECB4  41 82 00 F8 */	beq lbl_8004314C
/* 80043058 0003ECB8  8B C3 05 D8 */	lbz r30, 0x5d8(r3)
/* 8004305C 0003ECBC  83 A3 05 DC */	lwz r29, 0x5dc(r3)
/* 80043060 0003ECC0  C3 C3 05 E0 */	lfs f30, 0x5e0(r3)
/* 80043064 0003ECC4  C3 A3 05 E4 */	lfs f29, 0x5e4(r3)
/* 80043068 0003ECC8  83 83 05 E8 */	lwz r28, 0x5e8(r3)
/* 8004306C 0003ECCC  C3 83 05 EC */	lfs f28, 0x5ec(r3)
/* 80043070 0003ECD0  C3 63 05 F0 */	lfs f27, 0x5f0(r3)
/* 80043074 0003ECD4  C3 43 05 F4 */	lfs f26, 0x5f4(r3)
/* 80043078 0003ECD8  C1 A3 05 F8 */	lfs f13, 0x5f8(r3)
/* 8004307C 0003ECDC  C1 83 05 FC */	lfs f12, 0x5fc(r3)
/* 80043080 0003ECE0  C1 63 06 00 */	lfs f11, 0x600(r3)
/* 80043084 0003ECE4  C1 43 06 04 */	lfs f10, 0x604(r3)
/* 80043088 0003ECE8  C1 23 06 08 */	lfs f9, 0x608(r3)
/* 8004308C 0003ECEC  C1 03 06 0C */	lfs f8, 0x60c(r3)
/* 80043090 0003ECF0  C0 E3 06 10 */	lfs f7, 0x610(r3)
/* 80043094 0003ECF4  C0 C3 06 14 */	lfs f6, 0x614(r3)
/* 80043098 0003ECF8  C0 A3 06 18 */	lfs f5, 0x618(r3)
/* 8004309C 0003ECFC  C0 83 06 1C */	lfs f4, 0x61c(r3)
/* 800430A0 0003ED00  C0 63 06 20 */	lfs f3, 0x620(r3)
/* 800430A4 0003ED04  C0 43 06 24 */	lfs f2, 0x624(r3)
/* 800430A8 0003ED08  C0 03 06 28 */	lfs f0, 0x628(r3)
/* 800430AC 0003ED0C  83 63 06 2C */	lwz r27, 0x62c(r3)
/* 800430B0 0003ED10  83 43 06 30 */	lwz r26, 0x630(r3)
/* 800430B4 0003ED14  81 83 06 34 */	lwz r12, 0x634(r3)
/* 800430B8 0003ED18  81 63 06 38 */	lwz r11, 0x638(r3)
/* 800430BC 0003ED1C  81 43 06 3C */	lwz r10, 0x63c(r3)
/* 800430C0 0003ED20  81 23 06 40 */	lwz r9, 0x640(r3)
/* 800430C4 0003ED24  81 03 06 44 */	lwz r8, 0x644(r3)
/* 800430C8 0003ED28  80 E3 06 48 */	lwz r7, 0x648(r3)
/* 800430CC 0003ED2C  80 03 06 4C */	lwz r0, 0x64c(r3)
/* 800430D0 0003ED30  9B C3 05 60 */	stb r30, 0x560(r3)
/* 800430D4 0003ED34  93 A3 05 64 */	stw r29, 0x564(r3)
/* 800430D8 0003ED38  D3 C3 05 68 */	stfs f30, 0x568(r3)
/* 800430DC 0003ED3C  D3 A3 05 6C */	stfs f29, 0x56c(r3)
/* 800430E0 0003ED40  93 83 05 70 */	stw r28, 0x570(r3)
/* 800430E4 0003ED44  D3 83 05 74 */	stfs f28, 0x574(r3)
/* 800430E8 0003ED48  D3 63 05 78 */	stfs f27, 0x578(r3)
/* 800430EC 0003ED4C  D3 43 05 7C */	stfs f26, 0x57c(r3)
/* 800430F0 0003ED50  D1 A3 05 80 */	stfs f13, 0x580(r3)
/* 800430F4 0003ED54  D1 83 05 84 */	stfs f12, 0x584(r3)
/* 800430F8 0003ED58  D1 63 05 88 */	stfs f11, 0x588(r3)
/* 800430FC 0003ED5C  D1 43 05 8C */	stfs f10, 0x58c(r3)
/* 80043100 0003ED60  D1 23 05 90 */	stfs f9, 0x590(r3)
/* 80043104 0003ED64  D1 03 05 94 */	stfs f8, 0x594(r3)
/* 80043108 0003ED68  D0 E3 05 98 */	stfs f7, 0x598(r3)
/* 8004310C 0003ED6C  D0 C3 05 9C */	stfs f6, 0x59c(r3)
/* 80043110 0003ED70  D0 A3 05 A0 */	stfs f5, 0x5a0(r3)
/* 80043114 0003ED74  D0 83 05 A4 */	stfs f4, 0x5a4(r3)
/* 80043118 0003ED78  D0 63 05 A8 */	stfs f3, 0x5a8(r3)
/* 8004311C 0003ED7C  D0 43 05 AC */	stfs f2, 0x5ac(r3)
/* 80043120 0003ED80  D0 03 05 B0 */	stfs f0, 0x5b0(r3)
/* 80043124 0003ED84  93 63 05 B4 */	stw r27, 0x5b4(r3)
/* 80043128 0003ED88  93 43 05 B8 */	stw r26, 0x5b8(r3)
/* 8004312C 0003ED8C  91 83 05 BC */	stw r12, 0x5bc(r3)
/* 80043130 0003ED90  91 63 05 C0 */	stw r11, 0x5c0(r3)
/* 80043134 0003ED94  91 43 05 C4 */	stw r10, 0x5c4(r3)
/* 80043138 0003ED98  91 23 05 C8 */	stw r9, 0x5c8(r3)
/* 8004313C 0003ED9C  91 03 05 CC */	stw r8, 0x5cc(r3)
/* 80043140 0003EDA0  90 E3 05 D0 */	stw r7, 0x5d0(r3)
/* 80043144 0003EDA4  90 03 05 D4 */	stw r0, 0x5d4(r3)
/* 80043148 0003EDA8  48 00 00 F4 */	b lbl_8004323C
lbl_8004314C:
/* 8004314C 0003EDAC  8B 43 05 60 */	lbz r26, 0x560(r3)
/* 80043150 0003EDB0  83 63 05 64 */	lwz r27, 0x564(r3)
/* 80043154 0003EDB4  C3 43 05 68 */	lfs f26, 0x568(r3)
/* 80043158 0003EDB8  C3 63 05 6C */	lfs f27, 0x56c(r3)
/* 8004315C 0003EDBC  83 83 05 70 */	lwz r28, 0x570(r3)
/* 80043160 0003EDC0  C3 83 05 74 */	lfs f28, 0x574(r3)
/* 80043164 0003EDC4  C3 A3 05 78 */	lfs f29, 0x578(r3)
/* 80043168 0003EDC8  C3 C3 05 7C */	lfs f30, 0x57c(r3)
/* 8004316C 0003EDCC  C1 A3 05 80 */	lfs f13, 0x580(r3)
/* 80043170 0003EDD0  C1 83 05 84 */	lfs f12, 0x584(r3)
/* 80043174 0003EDD4  C1 63 05 88 */	lfs f11, 0x588(r3)
/* 80043178 0003EDD8  C1 43 05 8C */	lfs f10, 0x58c(r3)
/* 8004317C 0003EDDC  C1 23 05 90 */	lfs f9, 0x590(r3)
/* 80043180 0003EDE0  C1 03 05 94 */	lfs f8, 0x594(r3)
/* 80043184 0003EDE4  C0 E3 05 98 */	lfs f7, 0x598(r3)
/* 80043188 0003EDE8  C0 C3 05 9C */	lfs f6, 0x59c(r3)
/* 8004318C 0003EDEC  C0 A3 05 A0 */	lfs f5, 0x5a0(r3)
/* 80043190 0003EDF0  C0 83 05 A4 */	lfs f4, 0x5a4(r3)
/* 80043194 0003EDF4  C0 63 05 A8 */	lfs f3, 0x5a8(r3)
/* 80043198 0003EDF8  C0 43 05 AC */	lfs f2, 0x5ac(r3)
/* 8004319C 0003EDFC  C0 03 05 B0 */	lfs f0, 0x5b0(r3)
/* 800431A0 0003EE00  83 A3 05 B4 */	lwz r29, 0x5b4(r3)
/* 800431A4 0003EE04  83 C3 05 B8 */	lwz r30, 0x5b8(r3)
/* 800431A8 0003EE08  81 83 05 BC */	lwz r12, 0x5bc(r3)
/* 800431AC 0003EE0C  81 63 05 C0 */	lwz r11, 0x5c0(r3)
/* 800431B0 0003EE10  81 43 05 C4 */	lwz r10, 0x5c4(r3)
/* 800431B4 0003EE14  81 23 05 C8 */	lwz r9, 0x5c8(r3)
/* 800431B8 0003EE18  81 03 05 CC */	lwz r8, 0x5cc(r3)
/* 800431BC 0003EE1C  80 E3 05 D0 */	lwz r7, 0x5d0(r3)
/* 800431C0 0003EE20  80 03 05 D4 */	lwz r0, 0x5d4(r3)
/* 800431C4 0003EE24  9B 43 05 D8 */	stb r26, 0x5d8(r3)
/* 800431C8 0003EE28  93 63 05 DC */	stw r27, 0x5dc(r3)
/* 800431CC 0003EE2C  D3 43 05 E0 */	stfs f26, 0x5e0(r3)
/* 800431D0 0003EE30  D3 63 05 E4 */	stfs f27, 0x5e4(r3)
/* 800431D4 0003EE34  93 83 05 E8 */	stw r28, 0x5e8(r3)
/* 800431D8 0003EE38  D3 83 05 EC */	stfs f28, 0x5ec(r3)
/* 800431DC 0003EE3C  D3 A3 05 F0 */	stfs f29, 0x5f0(r3)
/* 800431E0 0003EE40  D3 C3 05 F4 */	stfs f30, 0x5f4(r3)
/* 800431E4 0003EE44  D1 A3 05 F8 */	stfs f13, 0x5f8(r3)
/* 800431E8 0003EE48  D1 83 05 FC */	stfs f12, 0x5fc(r3)
/* 800431EC 0003EE4C  D1 63 06 00 */	stfs f11, 0x600(r3)
/* 800431F0 0003EE50  D1 43 06 04 */	stfs f10, 0x604(r3)
/* 800431F4 0003EE54  D1 23 06 08 */	stfs f9, 0x608(r3)
/* 800431F8 0003EE58  D1 03 06 0C */	stfs f8, 0x60c(r3)
/* 800431FC 0003EE5C  D0 E3 06 10 */	stfs f7, 0x610(r3)
/* 80043200 0003EE60  D0 C3 06 14 */	stfs f6, 0x614(r3)
/* 80043204 0003EE64  D0 A3 06 18 */	stfs f5, 0x618(r3)
/* 80043208 0003EE68  D0 83 06 1C */	stfs f4, 0x61c(r3)
/* 8004320C 0003EE6C  D0 63 06 20 */	stfs f3, 0x620(r3)
/* 80043210 0003EE70  D0 43 06 24 */	stfs f2, 0x624(r3)
/* 80043214 0003EE74  D0 03 06 28 */	stfs f0, 0x628(r3)
/* 80043218 0003EE78  93 A3 06 2C */	stw r29, 0x62c(r3)
/* 8004321C 0003EE7C  93 C3 06 30 */	stw r30, 0x630(r3)
/* 80043220 0003EE80  91 83 06 34 */	stw r12, 0x634(r3)
/* 80043224 0003EE84  91 63 06 38 */	stw r11, 0x638(r3)
/* 80043228 0003EE88  91 43 06 3C */	stw r10, 0x63c(r3)
/* 8004322C 0003EE8C  91 23 06 40 */	stw r9, 0x640(r3)
/* 80043230 0003EE90  91 03 06 44 */	stw r8, 0x644(r3)
/* 80043234 0003EE94  90 E3 06 48 */	stw r7, 0x648(r3)
/* 80043238 0003EE98  90 03 06 4C */	stw r0, 0x64c(r3)
lbl_8004323C:
/* 8004323C 0003EE9C  7C C8 33 78 */	mr r8, r6
/* 80043240 0003EEA0  38 C0 00 00 */	li r6, 0
/* 80043244 0003EEA4  38 E0 00 00 */	li r7, 0
/* 80043248 0003EEA8  38 63 06 50 */	addi r3, r3, 0x650
/* 8004324C 0003EEAC  4B FF D8 ED */	bl func_80040B38
/* 80043250 0003EEB0  80 1F 06 D0 */	lwz r0, 0x6d0(r31)
/* 80043254 0003EEB4  38 7F 06 50 */	addi r3, r31, 0x650
/* 80043258 0003EEB8  C0 22 82 B0 */	lfs f1, lbl_806408B0-_SDA2_BASE_(r2)
/* 8004325C 0003EEBC  38 81 00 08 */	addi r4, r1, 8
/* 80043260 0003EEC0  60 00 00 01 */	ori r0, r0, 1
/* 80043264 0003EEC4  D3 FF 06 D4 */	stfs f31, 0x6d4(r31)
/* 80043268 0003EEC8  C0 1F 05 74 */	lfs f0, 0x574(r31)
/* 8004326C 0003EECC  90 1F 06 D0 */	stw r0, 0x6d0(r31)
/* 80043270 0003EED0  D0 3F 06 D8 */	stfs f1, 0x6d8(r31)
/* 80043274 0003EED4  D0 01 00 08 */	stfs f0, 8(r1)
/* 80043278 0003EED8  C0 1F 05 78 */	lfs f0, 0x578(r31)
/* 8004327C 0003EEDC  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 80043280 0003EEE0  C0 1F 05 7C */	lfs f0, 0x57c(r31)
/* 80043284 0003EEE4  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 80043288 0003EEE8  4B FF D6 A1 */	bl func_80040928
lbl_8004328C:
/* 8004328C 0003EEEC  80 7F 04 BC */	lwz r3, 0x4bc(r31)
/* 80043290 0003EEF0  38 00 00 01 */	li r0, 1
/* 80043294 0003EEF4  98 1F 00 02 */	stb r0, 2(r31)
/* 80043298 0003EEF8  54 60 07 FF */	clrlwi. r0, r3, 0x1f
/* 8004329C 0003EEFC  41 82 00 0C */	beq lbl_800432A8
/* 800432A0 0003EF00  60 60 00 04 */	ori r0, r3, 4
/* 800432A4 0003EF04  90 1F 04 BC */	stw r0, 0x4bc(r31)
lbl_800432A8:
/* 800432A8 0003EF08  38 7F 00 B8 */	addi r3, r31, 0xb8
/* 800432AC 0003EF0C  48 00 D0 DD */	bl func_80050388
/* 800432B0 0003EF10  38 7F 00 DC */	addi r3, r31, 0xdc
/* 800432B4 0003EF14  48 00 D0 D5 */	bl func_80050388
/* 800432B8 0003EF18  38 7F 01 00 */	addi r3, r31, 0x100
/* 800432BC 0003EF1C  48 00 D0 CD */	bl func_80050388
/* 800432C0 0003EF20  38 00 00 01 */	li r0, 1
/* 800432C4 0003EF24  98 1F 00 01 */	stb r0, 1(r31)
/* 800432C8 0003EF28  E3 E1 00 88 */	psq_l f31, 136(r1), 0, qr0
/* 800432CC 0003EF2C  CB E1 00 80 */	lfd f31, 0x80(r1)
/* 800432D0 0003EF30  E3 C1 00 78 */	psq_l f30, 120(r1), 0, qr0
/* 800432D4 0003EF34  CB C1 00 70 */	lfd f30, 0x70(r1)
/* 800432D8 0003EF38  E3 A1 00 68 */	psq_l f29, 104(r1), 0, qr0
/* 800432DC 0003EF3C  CB A1 00 60 */	lfd f29, 0x60(r1)
/* 800432E0 0003EF40  E3 81 00 58 */	psq_l f28, 88(r1), 0, qr0
/* 800432E4 0003EF44  CB 81 00 50 */	lfd f28, 0x50(r1)
/* 800432E8 0003EF48  E3 61 00 48 */	psq_l f27, 72(r1), 0, qr0
/* 800432EC 0003EF4C  CB 61 00 40 */	lfd f27, 0x40(r1)
/* 800432F0 0003EF50  E3 41 00 38 */	psq_l f26, 56(r1), 0, qr0
/* 800432F4 0003EF54  CB 41 00 30 */	lfd f26, 0x30(r1)
/* 800432F8 0003EF58  39 61 00 30 */	addi r11, r1, 0x30
/* 800432FC 0003EF5C  48 18 3E 75 */	bl _restgpr_26
/* 80043300 0003EF60  80 01 00 94 */	lwz r0, 0x94(r1)
/* 80043304 0003EF64  7C 08 03 A6 */	mtlr r0
/* 80043308 0003EF68  38 21 00 90 */	addi r1, r1, 0x90
/* 8004330C 0003EF6C  4E 80 00 20 */	blr

.global func_80043310
func_80043310:
/* 80043310 0003EF70  94 21 FF 60 */	stwu r1, -0xa0(r1)
/* 80043314 0003EF74  7C 08 02 A6 */	mflr r0
/* 80043318 0003EF78  90 01 00 A4 */	stw r0, 0xa4(r1)
/* 8004331C 0003EF7C  DB E1 00 90 */	stfd f31, 0x90(r1)
/* 80043320 0003EF80  F3 E1 00 98 */	psq_st f31, 152(r1), 0, qr0
/* 80043324 0003EF84  DB C1 00 80 */	stfd f30, 0x80(r1)
/* 80043328 0003EF88  F3 C1 00 88 */	psq_st f30, 136(r1), 0, qr0
/* 8004332C 0003EF8C  DB A1 00 70 */	stfd f29, 0x70(r1)
/* 80043330 0003EF90  F3 A1 00 78 */	psq_st f29, 120(r1), 0, qr0
/* 80043334 0003EF94  DB 81 00 60 */	stfd f28, 0x60(r1)
/* 80043338 0003EF98  F3 81 00 68 */	psq_st f28, 104(r1), 0, qr0
/* 8004333C 0003EF9C  DB 61 00 50 */	stfd f27, 0x50(r1)
/* 80043340 0003EFA0  F3 61 00 58 */	psq_st f27, 88(r1), 0, qr0
/* 80043344 0003EFA4  DB 41 00 40 */	stfd f26, 0x40(r1)
/* 80043348 0003EFA8  F3 41 00 48 */	psq_st f26, 72(r1), 0, qr0
/* 8004334C 0003EFAC  39 61 00 40 */	addi r11, r1, 0x40
/* 80043350 0003EFB0  48 18 3D CD */	bl _savegpr_24
/* 80043354 0003EFB4  C0 02 83 50 */	lfs f0, lbl_80640950-_SDA2_BASE_(r2)
/* 80043358 0003EFB8  FF E0 10 90 */	fmr f31, f2
/* 8004335C 0003EFBC  7C 7F 1B 78 */	mr r31, r3
/* 80043360 0003EFC0  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 80043364 0003EFC4  4C 40 13 82 */	cror 2, 0, 2
/* 80043368 0003EFC8  40 82 00 1C */	bne lbl_80043384
/* 8004336C 0003EFCC  38 63 05 60 */	addi r3, r3, 0x560
/* 80043370 0003EFD0  4B FF D7 C9 */	bl func_80040B38
/* 80043374 0003EFD4  80 1F 06 D0 */	lwz r0, 0x6d0(r31)
/* 80043378 0003EFD8  54 00 00 3A */	rlwinm r0, r0, 0, 0, 0x1d
/* 8004337C 0003EFDC  90 1F 06 D0 */	stw r0, 0x6d0(r31)
/* 80043380 0003EFE0  48 00 02 38 */	b lbl_800435B8
lbl_80043384:
/* 80043384 0003EFE4  80 03 06 D0 */	lwz r0, 0x6d0(r3)
/* 80043388 0003EFE8  2C 00 00 00 */	cmpwi r0, 0
/* 8004338C 0003EFEC  41 82 00 F8 */	beq lbl_80043484
/* 80043390 0003EFF0  8B C3 05 D8 */	lbz r30, 0x5d8(r3)
/* 80043394 0003EFF4  83 A3 05 DC */	lwz r29, 0x5dc(r3)
/* 80043398 0003EFF8  C3 C3 05 E0 */	lfs f30, 0x5e0(r3)
/* 8004339C 0003EFFC  C3 A3 05 E4 */	lfs f29, 0x5e4(r3)
/* 800433A0 0003F000  83 83 05 E8 */	lwz r28, 0x5e8(r3)
/* 800433A4 0003F004  C3 83 05 EC */	lfs f28, 0x5ec(r3)
/* 800433A8 0003F008  C3 63 05 F0 */	lfs f27, 0x5f0(r3)
/* 800433AC 0003F00C  C3 43 05 F4 */	lfs f26, 0x5f4(r3)
/* 800433B0 0003F010  C1 A3 05 F8 */	lfs f13, 0x5f8(r3)
/* 800433B4 0003F014  C1 83 05 FC */	lfs f12, 0x5fc(r3)
/* 800433B8 0003F018  C1 63 06 00 */	lfs f11, 0x600(r3)
/* 800433BC 0003F01C  C1 43 06 04 */	lfs f10, 0x604(r3)
/* 800433C0 0003F020  C1 23 06 08 */	lfs f9, 0x608(r3)
/* 800433C4 0003F024  C1 03 06 0C */	lfs f8, 0x60c(r3)
/* 800433C8 0003F028  C0 E3 06 10 */	lfs f7, 0x610(r3)
/* 800433CC 0003F02C  C0 C3 06 14 */	lfs f6, 0x614(r3)
/* 800433D0 0003F030  C0 A3 06 18 */	lfs f5, 0x618(r3)
/* 800433D4 0003F034  C0 83 06 1C */	lfs f4, 0x61c(r3)
/* 800433D8 0003F038  C0 63 06 20 */	lfs f3, 0x620(r3)
/* 800433DC 0003F03C  C0 43 06 24 */	lfs f2, 0x624(r3)
/* 800433E0 0003F040  C0 03 06 28 */	lfs f0, 0x628(r3)
/* 800433E4 0003F044  83 63 06 2C */	lwz r27, 0x62c(r3)
/* 800433E8 0003F048  83 43 06 30 */	lwz r26, 0x630(r3)
/* 800433EC 0003F04C  83 23 06 34 */	lwz r25, 0x634(r3)
/* 800433F0 0003F050  83 03 06 38 */	lwz r24, 0x638(r3)
/* 800433F4 0003F054  81 83 06 3C */	lwz r12, 0x63c(r3)
/* 800433F8 0003F058  81 63 06 40 */	lwz r11, 0x640(r3)
/* 800433FC 0003F05C  81 43 06 44 */	lwz r10, 0x644(r3)
/* 80043400 0003F060  81 23 06 48 */	lwz r9, 0x648(r3)
/* 80043404 0003F064  80 03 06 4C */	lwz r0, 0x64c(r3)
/* 80043408 0003F068  9B C3 05 60 */	stb r30, 0x560(r3)
/* 8004340C 0003F06C  93 A3 05 64 */	stw r29, 0x564(r3)
/* 80043410 0003F070  D3 C3 05 68 */	stfs f30, 0x568(r3)
/* 80043414 0003F074  D3 A3 05 6C */	stfs f29, 0x56c(r3)
/* 80043418 0003F078  93 83 05 70 */	stw r28, 0x570(r3)
/* 8004341C 0003F07C  D3 83 05 74 */	stfs f28, 0x574(r3)
/* 80043420 0003F080  D3 63 05 78 */	stfs f27, 0x578(r3)
/* 80043424 0003F084  D3 43 05 7C */	stfs f26, 0x57c(r3)
/* 80043428 0003F088  D1 A3 05 80 */	stfs f13, 0x580(r3)
/* 8004342C 0003F08C  D1 83 05 84 */	stfs f12, 0x584(r3)
/* 80043430 0003F090  D1 63 05 88 */	stfs f11, 0x588(r3)
/* 80043434 0003F094  D1 43 05 8C */	stfs f10, 0x58c(r3)
/* 80043438 0003F098  D1 23 05 90 */	stfs f9, 0x590(r3)
/* 8004343C 0003F09C  D1 03 05 94 */	stfs f8, 0x594(r3)
/* 80043440 0003F0A0  D0 E3 05 98 */	stfs f7, 0x598(r3)
/* 80043444 0003F0A4  D0 C3 05 9C */	stfs f6, 0x59c(r3)
/* 80043448 0003F0A8  D0 A3 05 A0 */	stfs f5, 0x5a0(r3)
/* 8004344C 0003F0AC  D0 83 05 A4 */	stfs f4, 0x5a4(r3)
/* 80043450 0003F0B0  D0 63 05 A8 */	stfs f3, 0x5a8(r3)
/* 80043454 0003F0B4  D0 43 05 AC */	stfs f2, 0x5ac(r3)
/* 80043458 0003F0B8  D0 03 05 B0 */	stfs f0, 0x5b0(r3)
/* 8004345C 0003F0BC  93 63 05 B4 */	stw r27, 0x5b4(r3)
/* 80043460 0003F0C0  93 43 05 B8 */	stw r26, 0x5b8(r3)
/* 80043464 0003F0C4  93 23 05 BC */	stw r25, 0x5bc(r3)
/* 80043468 0003F0C8  93 03 05 C0 */	stw r24, 0x5c0(r3)
/* 8004346C 0003F0CC  91 83 05 C4 */	stw r12, 0x5c4(r3)
/* 80043470 0003F0D0  91 63 05 C8 */	stw r11, 0x5c8(r3)
/* 80043474 0003F0D4  91 43 05 CC */	stw r10, 0x5cc(r3)
/* 80043478 0003F0D8  91 23 05 D0 */	stw r9, 0x5d0(r3)
/* 8004347C 0003F0DC  90 03 05 D4 */	stw r0, 0x5d4(r3)
/* 80043480 0003F0E0  48 00 00 F4 */	b lbl_80043574
lbl_80043484:
/* 80043484 0003F0E4  8B 03 05 60 */	lbz r24, 0x560(r3)
/* 80043488 0003F0E8  83 23 05 64 */	lwz r25, 0x564(r3)
/* 8004348C 0003F0EC  C3 43 05 68 */	lfs f26, 0x568(r3)
/* 80043490 0003F0F0  C3 63 05 6C */	lfs f27, 0x56c(r3)
/* 80043494 0003F0F4  83 43 05 70 */	lwz r26, 0x570(r3)
/* 80043498 0003F0F8  C3 83 05 74 */	lfs f28, 0x574(r3)
/* 8004349C 0003F0FC  C3 A3 05 78 */	lfs f29, 0x578(r3)
/* 800434A0 0003F100  C3 C3 05 7C */	lfs f30, 0x57c(r3)
/* 800434A4 0003F104  C1 A3 05 80 */	lfs f13, 0x580(r3)
/* 800434A8 0003F108  C1 83 05 84 */	lfs f12, 0x584(r3)
/* 800434AC 0003F10C  C1 63 05 88 */	lfs f11, 0x588(r3)
/* 800434B0 0003F110  C1 43 05 8C */	lfs f10, 0x58c(r3)
/* 800434B4 0003F114  C1 23 05 90 */	lfs f9, 0x590(r3)
/* 800434B8 0003F118  C1 03 05 94 */	lfs f8, 0x594(r3)
/* 800434BC 0003F11C  C0 E3 05 98 */	lfs f7, 0x598(r3)
/* 800434C0 0003F120  C0 C3 05 9C */	lfs f6, 0x59c(r3)
/* 800434C4 0003F124  C0 A3 05 A0 */	lfs f5, 0x5a0(r3)
/* 800434C8 0003F128  C0 83 05 A4 */	lfs f4, 0x5a4(r3)
/* 800434CC 0003F12C  C0 63 05 A8 */	lfs f3, 0x5a8(r3)
/* 800434D0 0003F130  C0 43 05 AC */	lfs f2, 0x5ac(r3)
/* 800434D4 0003F134  C0 03 05 B0 */	lfs f0, 0x5b0(r3)
/* 800434D8 0003F138  83 63 05 B4 */	lwz r27, 0x5b4(r3)
/* 800434DC 0003F13C  83 83 05 B8 */	lwz r28, 0x5b8(r3)
/* 800434E0 0003F140  83 A3 05 BC */	lwz r29, 0x5bc(r3)
/* 800434E4 0003F144  83 C3 05 C0 */	lwz r30, 0x5c0(r3)
/* 800434E8 0003F148  81 83 05 C4 */	lwz r12, 0x5c4(r3)
/* 800434EC 0003F14C  81 63 05 C8 */	lwz r11, 0x5c8(r3)
/* 800434F0 0003F150  81 43 05 CC */	lwz r10, 0x5cc(r3)
/* 800434F4 0003F154  81 23 05 D0 */	lwz r9, 0x5d0(r3)
/* 800434F8 0003F158  80 03 05 D4 */	lwz r0, 0x5d4(r3)
/* 800434FC 0003F15C  9B 03 05 D8 */	stb r24, 0x5d8(r3)
/* 80043500 0003F160  93 23 05 DC */	stw r25, 0x5dc(r3)
/* 80043504 0003F164  D3 43 05 E0 */	stfs f26, 0x5e0(r3)
/* 80043508 0003F168  D3 63 05 E4 */	stfs f27, 0x5e4(r3)
/* 8004350C 0003F16C  93 43 05 E8 */	stw r26, 0x5e8(r3)
/* 80043510 0003F170  D3 83 05 EC */	stfs f28, 0x5ec(r3)
/* 80043514 0003F174  D3 A3 05 F0 */	stfs f29, 0x5f0(r3)
/* 80043518 0003F178  D3 C3 05 F4 */	stfs f30, 0x5f4(r3)
/* 8004351C 0003F17C  D1 A3 05 F8 */	stfs f13, 0x5f8(r3)
/* 80043520 0003F180  D1 83 05 FC */	stfs f12, 0x5fc(r3)
/* 80043524 0003F184  D1 63 06 00 */	stfs f11, 0x600(r3)
/* 80043528 0003F188  D1 43 06 04 */	stfs f10, 0x604(r3)
/* 8004352C 0003F18C  D1 23 06 08 */	stfs f9, 0x608(r3)
/* 80043530 0003F190  D1 03 06 0C */	stfs f8, 0x60c(r3)
/* 80043534 0003F194  D0 E3 06 10 */	stfs f7, 0x610(r3)
/* 80043538 0003F198  D0 C3 06 14 */	stfs f6, 0x614(r3)
/* 8004353C 0003F19C  D0 A3 06 18 */	stfs f5, 0x618(r3)
/* 80043540 0003F1A0  D0 83 06 1C */	stfs f4, 0x61c(r3)
/* 80043544 0003F1A4  D0 63 06 20 */	stfs f3, 0x620(r3)
/* 80043548 0003F1A8  D0 43 06 24 */	stfs f2, 0x624(r3)
/* 8004354C 0003F1AC  D0 03 06 28 */	stfs f0, 0x628(r3)
/* 80043550 0003F1B0  93 63 06 2C */	stw r27, 0x62c(r3)
/* 80043554 0003F1B4  93 83 06 30 */	stw r28, 0x630(r3)
/* 80043558 0003F1B8  93 A3 06 34 */	stw r29, 0x634(r3)
/* 8004355C 0003F1BC  93 C3 06 38 */	stw r30, 0x638(r3)
/* 80043560 0003F1C0  91 83 06 3C */	stw r12, 0x63c(r3)
/* 80043564 0003F1C4  91 63 06 40 */	stw r11, 0x640(r3)
/* 80043568 0003F1C8  91 43 06 44 */	stw r10, 0x644(r3)
/* 8004356C 0003F1CC  91 23 06 48 */	stw r9, 0x648(r3)
/* 80043570 0003F1D0  90 03 06 4C */	stw r0, 0x64c(r3)
lbl_80043574:
/* 80043574 0003F1D4  38 63 06 50 */	addi r3, r3, 0x650
/* 80043578 0003F1D8  4B FF D5 C1 */	bl func_80040B38
/* 8004357C 0003F1DC  80 1F 06 D0 */	lwz r0, 0x6d0(r31)
/* 80043580 0003F1E0  38 7F 06 50 */	addi r3, r31, 0x650
/* 80043584 0003F1E4  C0 22 82 B0 */	lfs f1, lbl_806408B0-_SDA2_BASE_(r2)
/* 80043588 0003F1E8  38 81 00 08 */	addi r4, r1, 8
/* 8004358C 0003F1EC  60 00 00 01 */	ori r0, r0, 1
/* 80043590 0003F1F0  D3 FF 06 D4 */	stfs f31, 0x6d4(r31)
/* 80043594 0003F1F4  C0 1F 05 74 */	lfs f0, 0x574(r31)
/* 80043598 0003F1F8  90 1F 06 D0 */	stw r0, 0x6d0(r31)
/* 8004359C 0003F1FC  D0 3F 06 D8 */	stfs f1, 0x6d8(r31)
/* 800435A0 0003F200  D0 01 00 08 */	stfs f0, 8(r1)
/* 800435A4 0003F204  C0 1F 05 78 */	lfs f0, 0x578(r31)
/* 800435A8 0003F208  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 800435AC 0003F20C  C0 1F 05 7C */	lfs f0, 0x57c(r31)
/* 800435B0 0003F210  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 800435B4 0003F214  4B FF D3 75 */	bl func_80040928
lbl_800435B8:
/* 800435B8 0003F218  80 7F 04 BC */	lwz r3, 0x4bc(r31)
/* 800435BC 0003F21C  38 00 00 01 */	li r0, 1
/* 800435C0 0003F220  98 1F 00 02 */	stb r0, 2(r31)
/* 800435C4 0003F224  54 60 07 FF */	clrlwi. r0, r3, 0x1f
/* 800435C8 0003F228  41 82 00 0C */	beq lbl_800435D4
/* 800435CC 0003F22C  60 60 00 04 */	ori r0, r3, 4
/* 800435D0 0003F230  90 1F 04 BC */	stw r0, 0x4bc(r31)
lbl_800435D4:
/* 800435D4 0003F234  38 7F 00 B8 */	addi r3, r31, 0xb8
/* 800435D8 0003F238  48 00 CD B1 */	bl func_80050388
/* 800435DC 0003F23C  38 7F 00 DC */	addi r3, r31, 0xdc
/* 800435E0 0003F240  48 00 CD A9 */	bl func_80050388
/* 800435E4 0003F244  38 7F 01 00 */	addi r3, r31, 0x100
/* 800435E8 0003F248  48 00 CD A1 */	bl func_80050388
/* 800435EC 0003F24C  38 00 00 01 */	li r0, 1
/* 800435F0 0003F250  98 1F 00 01 */	stb r0, 1(r31)
/* 800435F4 0003F254  E3 E1 00 98 */	psq_l f31, 152(r1), 0, qr0
/* 800435F8 0003F258  CB E1 00 90 */	lfd f31, 0x90(r1)
/* 800435FC 0003F25C  E3 C1 00 88 */	psq_l f30, 136(r1), 0, qr0
/* 80043600 0003F260  CB C1 00 80 */	lfd f30, 0x80(r1)
/* 80043604 0003F264  E3 A1 00 78 */	psq_l f29, 120(r1), 0, qr0
/* 80043608 0003F268  CB A1 00 70 */	lfd f29, 0x70(r1)
/* 8004360C 0003F26C  E3 81 00 68 */	psq_l f28, 104(r1), 0, qr0
/* 80043610 0003F270  CB 81 00 60 */	lfd f28, 0x60(r1)
/* 80043614 0003F274  E3 61 00 58 */	psq_l f27, 88(r1), 0, qr0
/* 80043618 0003F278  CB 61 00 50 */	lfd f27, 0x50(r1)
/* 8004361C 0003F27C  E3 41 00 48 */	psq_l f26, 72(r1), 0, qr0
/* 80043620 0003F280  CB 41 00 40 */	lfd f26, 0x40(r1)
/* 80043624 0003F284  39 61 00 40 */	addi r11, r1, 0x40
/* 80043628 0003F288  48 18 3B 41 */	bl _restgpr_24
/* 8004362C 0003F28C  80 01 00 A4 */	lwz r0, 0xa4(r1)
/* 80043630 0003F290  7C 08 03 A6 */	mtlr r0
/* 80043634 0003F294  38 21 00 A0 */	addi r1, r1, 0xa0
/* 80043638 0003F298  4E 80 00 20 */	blr

.global func_8004363C
func_8004363C:
/* 8004363C 0003F29C  94 21 FF 70 */	stwu r1, -0x90(r1)
/* 80043640 0003F2A0  7C 08 02 A6 */	mflr r0
/* 80043644 0003F2A4  90 01 00 94 */	stw r0, 0x94(r1)
/* 80043648 0003F2A8  DB E1 00 80 */	stfd f31, 0x80(r1)
/* 8004364C 0003F2AC  F3 E1 00 88 */	psq_st f31, 136(r1), 0, qr0
/* 80043650 0003F2B0  DB C1 00 70 */	stfd f30, 0x70(r1)
/* 80043654 0003F2B4  F3 C1 00 78 */	psq_st f30, 120(r1), 0, qr0
/* 80043658 0003F2B8  DB A1 00 60 */	stfd f29, 0x60(r1)
/* 8004365C 0003F2BC  F3 A1 00 68 */	psq_st f29, 104(r1), 0, qr0
/* 80043660 0003F2C0  DB 81 00 50 */	stfd f28, 0x50(r1)
/* 80043664 0003F2C4  F3 81 00 58 */	psq_st f28, 88(r1), 0, qr0
/* 80043668 0003F2C8  DB 61 00 40 */	stfd f27, 0x40(r1)
/* 8004366C 0003F2CC  F3 61 00 48 */	psq_st f27, 72(r1), 0, qr0
/* 80043670 0003F2D0  DB 41 00 30 */	stfd f26, 0x30(r1)
/* 80043674 0003F2D4  F3 41 00 38 */	psq_st f26, 56(r1), 0, qr0
/* 80043678 0003F2D8  39 61 00 30 */	addi r11, r1, 0x30
/* 8004367C 0003F2DC  48 18 3A A9 */	bl _savegpr_26
/* 80043680 0003F2E0  C0 02 83 50 */	lfs f0, lbl_80640950-_SDA2_BASE_(r2)
/* 80043684 0003F2E4  FF E0 10 90 */	fmr f31, f2
/* 80043688 0003F2E8  7C 7F 1B 78 */	mr r31, r3
/* 8004368C 0003F2EC  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 80043690 0003F2F0  4C 40 13 82 */	cror 2, 0, 2
/* 80043694 0003F2F4  40 82 00 28 */	bne lbl_800436BC
/* 80043698 0003F2F8  7C C8 33 78 */	mr r8, r6
/* 8004369C 0003F2FC  38 C0 00 00 */	li r6, 0
/* 800436A0 0003F300  38 E0 00 00 */	li r7, 0
/* 800436A4 0003F304  38 63 05 60 */	addi r3, r3, 0x560
/* 800436A8 0003F308  4B FF D4 91 */	bl func_80040B38
/* 800436AC 0003F30C  80 1F 06 D0 */	lwz r0, 0x6d0(r31)
/* 800436B0 0003F310  54 00 00 3A */	rlwinm r0, r0, 0, 0, 0x1d
/* 800436B4 0003F314  90 1F 06 D0 */	stw r0, 0x6d0(r31)
/* 800436B8 0003F318  48 00 02 4C */	b lbl_80043904
lbl_800436BC:
/* 800436BC 0003F31C  80 03 06 D0 */	lwz r0, 0x6d0(r3)
/* 800436C0 0003F320  2C 00 00 00 */	cmpwi r0, 0
/* 800436C4 0003F324  41 82 00 F8 */	beq lbl_800437BC
/* 800436C8 0003F328  8B C3 05 D8 */	lbz r30, 0x5d8(r3)
/* 800436CC 0003F32C  83 A3 05 DC */	lwz r29, 0x5dc(r3)
/* 800436D0 0003F330  C3 C3 05 E0 */	lfs f30, 0x5e0(r3)
/* 800436D4 0003F334  C3 A3 05 E4 */	lfs f29, 0x5e4(r3)
/* 800436D8 0003F338  83 83 05 E8 */	lwz r28, 0x5e8(r3)
/* 800436DC 0003F33C  C3 83 05 EC */	lfs f28, 0x5ec(r3)
/* 800436E0 0003F340  C3 63 05 F0 */	lfs f27, 0x5f0(r3)
/* 800436E4 0003F344  C3 43 05 F4 */	lfs f26, 0x5f4(r3)
/* 800436E8 0003F348  C1 A3 05 F8 */	lfs f13, 0x5f8(r3)
/* 800436EC 0003F34C  C1 83 05 FC */	lfs f12, 0x5fc(r3)
/* 800436F0 0003F350  C1 63 06 00 */	lfs f11, 0x600(r3)
/* 800436F4 0003F354  C1 43 06 04 */	lfs f10, 0x604(r3)
/* 800436F8 0003F358  C1 23 06 08 */	lfs f9, 0x608(r3)
/* 800436FC 0003F35C  C1 03 06 0C */	lfs f8, 0x60c(r3)
/* 80043700 0003F360  C0 E3 06 10 */	lfs f7, 0x610(r3)
/* 80043704 0003F364  C0 C3 06 14 */	lfs f6, 0x614(r3)
/* 80043708 0003F368  C0 A3 06 18 */	lfs f5, 0x618(r3)
/* 8004370C 0003F36C  C0 83 06 1C */	lfs f4, 0x61c(r3)
/* 80043710 0003F370  C0 63 06 20 */	lfs f3, 0x620(r3)
/* 80043714 0003F374  C0 43 06 24 */	lfs f2, 0x624(r3)
/* 80043718 0003F378  C0 03 06 28 */	lfs f0, 0x628(r3)
/* 8004371C 0003F37C  83 63 06 2C */	lwz r27, 0x62c(r3)
/* 80043720 0003F380  83 43 06 30 */	lwz r26, 0x630(r3)
/* 80043724 0003F384  81 83 06 34 */	lwz r12, 0x634(r3)
/* 80043728 0003F388  81 63 06 38 */	lwz r11, 0x638(r3)
/* 8004372C 0003F38C  81 43 06 3C */	lwz r10, 0x63c(r3)
/* 80043730 0003F390  81 23 06 40 */	lwz r9, 0x640(r3)
/* 80043734 0003F394  81 03 06 44 */	lwz r8, 0x644(r3)
/* 80043738 0003F398  80 E3 06 48 */	lwz r7, 0x648(r3)
/* 8004373C 0003F39C  80 03 06 4C */	lwz r0, 0x64c(r3)
/* 80043740 0003F3A0  9B C3 05 60 */	stb r30, 0x560(r3)
/* 80043744 0003F3A4  93 A3 05 64 */	stw r29, 0x564(r3)
/* 80043748 0003F3A8  D3 C3 05 68 */	stfs f30, 0x568(r3)
/* 8004374C 0003F3AC  D3 A3 05 6C */	stfs f29, 0x56c(r3)
/* 80043750 0003F3B0  93 83 05 70 */	stw r28, 0x570(r3)
/* 80043754 0003F3B4  D3 83 05 74 */	stfs f28, 0x574(r3)
/* 80043758 0003F3B8  D3 63 05 78 */	stfs f27, 0x578(r3)
/* 8004375C 0003F3BC  D3 43 05 7C */	stfs f26, 0x57c(r3)
/* 80043760 0003F3C0  D1 A3 05 80 */	stfs f13, 0x580(r3)
/* 80043764 0003F3C4  D1 83 05 84 */	stfs f12, 0x584(r3)
/* 80043768 0003F3C8  D1 63 05 88 */	stfs f11, 0x588(r3)
/* 8004376C 0003F3CC  D1 43 05 8C */	stfs f10, 0x58c(r3)
/* 80043770 0003F3D0  D1 23 05 90 */	stfs f9, 0x590(r3)
/* 80043774 0003F3D4  D1 03 05 94 */	stfs f8, 0x594(r3)
/* 80043778 0003F3D8  D0 E3 05 98 */	stfs f7, 0x598(r3)
/* 8004377C 0003F3DC  D0 C3 05 9C */	stfs f6, 0x59c(r3)
/* 80043780 0003F3E0  D0 A3 05 A0 */	stfs f5, 0x5a0(r3)
/* 80043784 0003F3E4  D0 83 05 A4 */	stfs f4, 0x5a4(r3)
/* 80043788 0003F3E8  D0 63 05 A8 */	stfs f3, 0x5a8(r3)
/* 8004378C 0003F3EC  D0 43 05 AC */	stfs f2, 0x5ac(r3)
/* 80043790 0003F3F0  D0 03 05 B0 */	stfs f0, 0x5b0(r3)
/* 80043794 0003F3F4  93 63 05 B4 */	stw r27, 0x5b4(r3)
/* 80043798 0003F3F8  93 43 05 B8 */	stw r26, 0x5b8(r3)
/* 8004379C 0003F3FC  91 83 05 BC */	stw r12, 0x5bc(r3)
/* 800437A0 0003F400  91 63 05 C0 */	stw r11, 0x5c0(r3)
/* 800437A4 0003F404  91 43 05 C4 */	stw r10, 0x5c4(r3)
/* 800437A8 0003F408  91 23 05 C8 */	stw r9, 0x5c8(r3)
/* 800437AC 0003F40C  91 03 05 CC */	stw r8, 0x5cc(r3)
/* 800437B0 0003F410  90 E3 05 D0 */	stw r7, 0x5d0(r3)
/* 800437B4 0003F414  90 03 05 D4 */	stw r0, 0x5d4(r3)
/* 800437B8 0003F418  48 00 00 F4 */	b lbl_800438AC
lbl_800437BC:
/* 800437BC 0003F41C  8B 43 05 60 */	lbz r26, 0x560(r3)
/* 800437C0 0003F420  83 63 05 64 */	lwz r27, 0x564(r3)
/* 800437C4 0003F424  C3 43 05 68 */	lfs f26, 0x568(r3)
/* 800437C8 0003F428  C3 63 05 6C */	lfs f27, 0x56c(r3)
/* 800437CC 0003F42C  83 83 05 70 */	lwz r28, 0x570(r3)
/* 800437D0 0003F430  C3 83 05 74 */	lfs f28, 0x574(r3)
/* 800437D4 0003F434  C3 A3 05 78 */	lfs f29, 0x578(r3)
/* 800437D8 0003F438  C3 C3 05 7C */	lfs f30, 0x57c(r3)
/* 800437DC 0003F43C  C1 A3 05 80 */	lfs f13, 0x580(r3)
/* 800437E0 0003F440  C1 83 05 84 */	lfs f12, 0x584(r3)
/* 800437E4 0003F444  C1 63 05 88 */	lfs f11, 0x588(r3)
/* 800437E8 0003F448  C1 43 05 8C */	lfs f10, 0x58c(r3)
/* 800437EC 0003F44C  C1 23 05 90 */	lfs f9, 0x590(r3)
/* 800437F0 0003F450  C1 03 05 94 */	lfs f8, 0x594(r3)
/* 800437F4 0003F454  C0 E3 05 98 */	lfs f7, 0x598(r3)
/* 800437F8 0003F458  C0 C3 05 9C */	lfs f6, 0x59c(r3)
/* 800437FC 0003F45C  C0 A3 05 A0 */	lfs f5, 0x5a0(r3)
/* 80043800 0003F460  C0 83 05 A4 */	lfs f4, 0x5a4(r3)
/* 80043804 0003F464  C0 63 05 A8 */	lfs f3, 0x5a8(r3)
/* 80043808 0003F468  C0 43 05 AC */	lfs f2, 0x5ac(r3)
/* 8004380C 0003F46C  C0 03 05 B0 */	lfs f0, 0x5b0(r3)
/* 80043810 0003F470  83 A3 05 B4 */	lwz r29, 0x5b4(r3)
/* 80043814 0003F474  83 C3 05 B8 */	lwz r30, 0x5b8(r3)
/* 80043818 0003F478  81 83 05 BC */	lwz r12, 0x5bc(r3)
/* 8004381C 0003F47C  81 63 05 C0 */	lwz r11, 0x5c0(r3)
/* 80043820 0003F480  81 43 05 C4 */	lwz r10, 0x5c4(r3)
/* 80043824 0003F484  81 23 05 C8 */	lwz r9, 0x5c8(r3)
/* 80043828 0003F488  81 03 05 CC */	lwz r8, 0x5cc(r3)
/* 8004382C 0003F48C  80 E3 05 D0 */	lwz r7, 0x5d0(r3)
/* 80043830 0003F490  80 03 05 D4 */	lwz r0, 0x5d4(r3)
/* 80043834 0003F494  9B 43 05 D8 */	stb r26, 0x5d8(r3)
/* 80043838 0003F498  93 63 05 DC */	stw r27, 0x5dc(r3)
/* 8004383C 0003F49C  D3 43 05 E0 */	stfs f26, 0x5e0(r3)
/* 80043840 0003F4A0  D3 63 05 E4 */	stfs f27, 0x5e4(r3)
/* 80043844 0003F4A4  93 83 05 E8 */	stw r28, 0x5e8(r3)
/* 80043848 0003F4A8  D3 83 05 EC */	stfs f28, 0x5ec(r3)
/* 8004384C 0003F4AC  D3 A3 05 F0 */	stfs f29, 0x5f0(r3)
/* 80043850 0003F4B0  D3 C3 05 F4 */	stfs f30, 0x5f4(r3)
/* 80043854 0003F4B4  D1 A3 05 F8 */	stfs f13, 0x5f8(r3)
/* 80043858 0003F4B8  D1 83 05 FC */	stfs f12, 0x5fc(r3)
/* 8004385C 0003F4BC  D1 63 06 00 */	stfs f11, 0x600(r3)
/* 80043860 0003F4C0  D1 43 06 04 */	stfs f10, 0x604(r3)
/* 80043864 0003F4C4  D1 23 06 08 */	stfs f9, 0x608(r3)
/* 80043868 0003F4C8  D1 03 06 0C */	stfs f8, 0x60c(r3)
/* 8004386C 0003F4CC  D0 E3 06 10 */	stfs f7, 0x610(r3)
/* 80043870 0003F4D0  D0 C3 06 14 */	stfs f6, 0x614(r3)
/* 80043874 0003F4D4  D0 A3 06 18 */	stfs f5, 0x618(r3)
/* 80043878 0003F4D8  D0 83 06 1C */	stfs f4, 0x61c(r3)
/* 8004387C 0003F4DC  D0 63 06 20 */	stfs f3, 0x620(r3)
/* 80043880 0003F4E0  D0 43 06 24 */	stfs f2, 0x624(r3)
/* 80043884 0003F4E4  D0 03 06 28 */	stfs f0, 0x628(r3)
/* 80043888 0003F4E8  93 A3 06 2C */	stw r29, 0x62c(r3)
/* 8004388C 0003F4EC  93 C3 06 30 */	stw r30, 0x630(r3)
/* 80043890 0003F4F0  91 83 06 34 */	stw r12, 0x634(r3)
/* 80043894 0003F4F4  91 63 06 38 */	stw r11, 0x638(r3)
/* 80043898 0003F4F8  91 43 06 3C */	stw r10, 0x63c(r3)
/* 8004389C 0003F4FC  91 23 06 40 */	stw r9, 0x640(r3)
/* 800438A0 0003F500  91 03 06 44 */	stw r8, 0x644(r3)
/* 800438A4 0003F504  90 E3 06 48 */	stw r7, 0x648(r3)
/* 800438A8 0003F508  90 03 06 4C */	stw r0, 0x64c(r3)
lbl_800438AC:
/* 800438AC 0003F50C  7C C8 33 78 */	mr r8, r6
/* 800438B0 0003F510  38 C0 00 00 */	li r6, 0
/* 800438B4 0003F514  38 E0 00 00 */	li r7, 0
/* 800438B8 0003F518  38 63 06 50 */	addi r3, r3, 0x650
/* 800438BC 0003F51C  4B FF D2 7D */	bl func_80040B38
/* 800438C0 0003F520  80 1F 06 D0 */	lwz r0, 0x6d0(r31)
/* 800438C4 0003F524  38 7F 06 50 */	addi r3, r31, 0x650
/* 800438C8 0003F528  C0 22 82 B0 */	lfs f1, lbl_806408B0-_SDA2_BASE_(r2)
/* 800438CC 0003F52C  38 81 00 08 */	addi r4, r1, 8
/* 800438D0 0003F530  60 00 00 02 */	ori r0, r0, 2
/* 800438D4 0003F534  D3 FF 06 D4 */	stfs f31, 0x6d4(r31)
/* 800438D8 0003F538  C0 1F 05 74 */	lfs f0, 0x574(r31)
/* 800438DC 0003F53C  90 1F 06 D0 */	stw r0, 0x6d0(r31)
/* 800438E0 0003F540  D0 3F 06 D8 */	stfs f1, 0x6d8(r31)
/* 800438E4 0003F544  D0 01 00 08 */	stfs f0, 8(r1)
/* 800438E8 0003F548  C0 1F 05 78 */	lfs f0, 0x578(r31)
/* 800438EC 0003F54C  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 800438F0 0003F550  C0 1F 05 7C */	lfs f0, 0x57c(r31)
/* 800438F4 0003F554  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 800438F8 0003F558  4B FF D0 31 */	bl func_80040928
/* 800438FC 0003F55C  38 7F 06 50 */	addi r3, r31, 0x650
/* 80043900 0003F560  4B FF D0 51 */	bl dGeomEnable
lbl_80043904:
/* 80043904 0003F564  80 7F 04 BC */	lwz r3, 0x4bc(r31)
/* 80043908 0003F568  38 00 00 01 */	li r0, 1
/* 8004390C 0003F56C  98 1F 00 02 */	stb r0, 2(r31)
/* 80043910 0003F570  54 60 07 FF */	clrlwi. r0, r3, 0x1f
/* 80043914 0003F574  41 82 00 0C */	beq lbl_80043920
/* 80043918 0003F578  60 60 00 04 */	ori r0, r3, 4
/* 8004391C 0003F57C  90 1F 04 BC */	stw r0, 0x4bc(r31)
lbl_80043920:
/* 80043920 0003F580  38 7F 00 B8 */	addi r3, r31, 0xb8
/* 80043924 0003F584  48 00 CA 65 */	bl func_80050388
/* 80043928 0003F588  38 7F 00 DC */	addi r3, r31, 0xdc
/* 8004392C 0003F58C  48 00 CA 5D */	bl func_80050388
/* 80043930 0003F590  38 7F 01 00 */	addi r3, r31, 0x100
/* 80043934 0003F594  48 00 CA 55 */	bl func_80050388
/* 80043938 0003F598  38 00 00 01 */	li r0, 1
/* 8004393C 0003F59C  98 1F 00 01 */	stb r0, 1(r31)
/* 80043940 0003F5A0  E3 E1 00 88 */	psq_l f31, 136(r1), 0, qr0
/* 80043944 0003F5A4  CB E1 00 80 */	lfd f31, 0x80(r1)
/* 80043948 0003F5A8  E3 C1 00 78 */	psq_l f30, 120(r1), 0, qr0
/* 8004394C 0003F5AC  CB C1 00 70 */	lfd f30, 0x70(r1)
/* 80043950 0003F5B0  E3 A1 00 68 */	psq_l f29, 104(r1), 0, qr0
/* 80043954 0003F5B4  CB A1 00 60 */	lfd f29, 0x60(r1)
/* 80043958 0003F5B8  E3 81 00 58 */	psq_l f28, 88(r1), 0, qr0
/* 8004395C 0003F5BC  CB 81 00 50 */	lfd f28, 0x50(r1)
/* 80043960 0003F5C0  E3 61 00 48 */	psq_l f27, 72(r1), 0, qr0
/* 80043964 0003F5C4  CB 61 00 40 */	lfd f27, 0x40(r1)
/* 80043968 0003F5C8  E3 41 00 38 */	psq_l f26, 56(r1), 0, qr0
/* 8004396C 0003F5CC  CB 41 00 30 */	lfd f26, 0x30(r1)
/* 80043970 0003F5D0  39 61 00 30 */	addi r11, r1, 0x30
/* 80043974 0003F5D4  48 18 37 FD */	bl _restgpr_26
/* 80043978 0003F5D8  80 01 00 94 */	lwz r0, 0x94(r1)
/* 8004397C 0003F5DC  7C 08 03 A6 */	mtlr r0
/* 80043980 0003F5E0  38 21 00 90 */	addi r1, r1, 0x90
/* 80043984 0003F5E4  4E 80 00 20 */	blr

.global func_80043988
func_80043988:
/* 80043988 0003F5E8  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 8004398C 0003F5EC  7C 08 02 A6 */	mflr r0
/* 80043990 0003F5F0  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 80043994 0003F5F4  38 80 00 00 */	li r4, 0
/* 80043998 0003F5F8  90 01 00 24 */	stw r0, 0x24(r1)
/* 8004399C 0003F5FC  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 800439A0 0003F600  7C 7F 1B 78 */	mr r31, r3
/* 800439A4 0003F604  38 63 05 60 */	addi r3, r3, 0x560
/* 800439A8 0003F608  D0 01 00 08 */	stfs f0, 8(r1)
/* 800439AC 0003F60C  D0 01 00 0C */	stfs f0, 0xc(r1)
/* 800439B0 0003F610  D0 01 00 10 */	stfs f0, 0x10(r1)
/* 800439B4 0003F614  4B FF D1 F1 */	bl func_80040BA4
/* 800439B8 0003F618  C0 22 82 B0 */	lfs f1, lbl_806408B0-_SDA2_BASE_(r2)
/* 800439BC 0003F61C  38 7F 05 60 */	addi r3, r31, 0x560
/* 800439C0 0003F620  39 01 00 08 */	addi r8, r1, 8
/* 800439C4 0003F624  38 80 00 00 */	li r4, 0
/* 800439C8 0003F628  38 A0 00 00 */	li r5, 0
/* 800439CC 0003F62C  38 C0 00 00 */	li r6, 0
/* 800439D0 0003F630  38 E0 00 00 */	li r7, 0
/* 800439D4 0003F634  4B FF D1 65 */	bl func_80040B38
/* 800439D8 0003F638  80 01 00 24 */	lwz r0, 0x24(r1)
/* 800439DC 0003F63C  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 800439E0 0003F640  7C 08 03 A6 */	mtlr r0
/* 800439E4 0003F644  38 21 00 20 */	addi r1, r1, 0x20
/* 800439E8 0003F648  4E 80 00 20 */	blr

.global func_800439EC
func_800439EC:
/* 800439EC 0003F64C  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 800439F0 0003F650  7C 08 02 A6 */	mflr r0
/* 800439F4 0003F654  90 01 00 44 */	stw r0, 0x44(r1)
/* 800439F8 0003F658  DB E1 00 30 */	stfd f31, 0x30(r1)
/* 800439FC 0003F65C  F3 E1 00 38 */	psq_st f31, 56(r1), 0, qr0
/* 80043A00 0003F660  DB C1 00 20 */	stfd f30, 0x20(r1)
/* 80043A04 0003F664  F3 C1 00 28 */	psq_st f30, 40(r1), 0, qr0
/* 80043A08 0003F668  DB A1 00 10 */	stfd f29, 0x10(r1)
/* 80043A0C 0003F66C  F3 A1 00 18 */	psq_st f29, 24(r1), 0, qr0
/* 80043A10 0003F670  2C 04 00 00 */	cmpwi r4, 0
/* 80043A14 0003F674  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80043A18 0003F678  7C 7F 1B 78 */	mr r31, r3
/* 80043A1C 0003F67C  40 82 00 0C */	bne lbl_80043A28
/* 80043A20 0003F680  C0 23 06 C8 */	lfs f1, 0x6c8(r3)
/* 80043A24 0003F684  48 00 00 C0 */	b lbl_80043AE4
lbl_80043A28:
/* 80043A28 0003F688  2C 05 00 02 */	cmpwi r5, 2
/* 80043A2C 0003F68C  41 82 00 4C */	beq lbl_80043A78
/* 80043A30 0003F690  40 80 00 14 */	bge lbl_80043A44
/* 80043A34 0003F694  2C 05 00 00 */	cmpwi r5, 0
/* 80043A38 0003F698  41 82 00 18 */	beq lbl_80043A50
/* 80043A3C 0003F69C  40 80 00 28 */	bge lbl_80043A64
/* 80043A40 0003F6A0  48 00 00 58 */	b lbl_80043A98
lbl_80043A44:
/* 80043A44 0003F6A4  2C 05 00 04 */	cmpwi r5, 4
/* 80043A48 0003F6A8  40 80 00 50 */	bge lbl_80043A98
/* 80043A4C 0003F6AC  48 00 00 44 */	b lbl_80043A90
lbl_80043A50:
/* 80043A50 0003F6B0  7C 83 23 78 */	mr r3, r4
/* 80043A54 0003F6B4  38 80 00 00 */	li r4, 0
/* 80043A58 0003F6B8  4B FF 6B 95 */	bl func_8003A5EC
/* 80043A5C 0003F6BC  FF C0 08 90 */	fmr f30, f1
/* 80043A60 0003F6C0  48 00 00 38 */	b lbl_80043A98
lbl_80043A64:
/* 80043A64 0003F6C4  7C 83 23 78 */	mr r3, r4
/* 80043A68 0003F6C8  38 80 00 01 */	li r4, 1
/* 80043A6C 0003F6CC  4B FF 6B 81 */	bl func_8003A5EC
/* 80043A70 0003F6D0  FF C0 08 90 */	fmr f30, f1
/* 80043A74 0003F6D4  48 00 00 24 */	b lbl_80043A98
lbl_80043A78:
/* 80043A78 0003F6D8  7C 83 23 78 */	mr r3, r4
/* 80043A7C 0003F6DC  38 80 00 01 */	li r4, 1
/* 80043A80 0003F6E0  4B FF 6B 6D */	bl func_8003A5EC
/* 80043A84 0003F6E4  C0 02 83 54 */	lfs f0, lbl_80640954-_SDA2_BASE_(r2)
/* 80043A88 0003F6E8  EF C0 00 72 */	fmuls f30, f0, f1
/* 80043A8C 0003F6EC  48 00 00 0C */	b lbl_80043A98
lbl_80043A90:
/* 80043A90 0003F6F0  C0 23 06 C8 */	lfs f1, 0x6c8(r3)
/* 80043A94 0003F6F4  48 00 00 50 */	b lbl_80043AE4
lbl_80043A98:
/* 80043A98 0003F6F8  C0 02 83 50 */	lfs f0, lbl_80640950-_SDA2_BASE_(r2)
/* 80043A9C 0003F6FC  FC 1E 00 40 */	fcmpo cr0, f30, f0
/* 80043AA0 0003F700  4C 40 13 82 */	cror 2, 0, 2
/* 80043AA4 0003F704  40 82 00 08 */	bne lbl_80043AAC
/* 80043AA8 0003F708  C3 C2 83 58 */	lfs f30, lbl_80640958-_SDA2_BASE_(r2)
lbl_80043AAC:
/* 80043AAC 0003F70C  C0 5F 04 E0 */	lfs f2, 0x4e0(r31)
/* 80043AB0 0003F710  C0 02 82 B8 */	lfs f0, lbl_806408B8-_SDA2_BASE_(r2)
/* 80043AB4 0003F714  C0 22 83 5C */	lfs f1, lbl_8064095C-_SDA2_BASE_(r2)
/* 80043AB8 0003F718  EC 40 00 B2 */	fmuls f2, f0, f2
/* 80043ABC 0003F71C  C0 02 82 DC */	lfs f0, lbl_806408DC-_SDA2_BASE_(r2)
/* 80043AC0 0003F720  EC 21 00 B2 */	fmuls f1, f1, f2
/* 80043AC4 0003F724  EF A0 08 28 */	fsubs f29, f0, f1
/* 80043AC8 0003F728  48 19 09 BD */	bl sin
/* 80043ACC 0003F72C  FF E0 08 18 */	frsp f31, f1
/* 80043AD0 0003F730  FC 20 E8 90 */	fmr f1, f29
/* 80043AD4 0003F734  48 19 09 B1 */	bl sin
/* 80043AD8 0003F738  FC 00 08 18 */	frsp f0, f1
/* 80043ADC 0003F73C  EC 1E 00 32 */	fmuls f0, f30, f0
/* 80043AE0 0003F740  EC 20 F8 24 */	fdivs f1, f0, f31
lbl_80043AE4:
/* 80043AE4 0003F744  E3 E1 00 38 */	psq_l f31, 56(r1), 0, qr0
/* 80043AE8 0003F748  CB E1 00 30 */	lfd f31, 0x30(r1)
/* 80043AEC 0003F74C  E3 C1 00 28 */	psq_l f30, 40(r1), 0, qr0
/* 80043AF0 0003F750  CB C1 00 20 */	lfd f30, 0x20(r1)
/* 80043AF4 0003F754  E3 A1 00 18 */	psq_l f29, 24(r1), 0, qr0
/* 80043AF8 0003F758  CB A1 00 10 */	lfd f29, 0x10(r1)
/* 80043AFC 0003F75C  80 01 00 44 */	lwz r0, 0x44(r1)
/* 80043B00 0003F760  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80043B04 0003F764  7C 08 03 A6 */	mtlr r0
/* 80043B08 0003F768  38 21 00 40 */	addi r1, r1, 0x40
/* 80043B0C 0003F76C  4E 80 00 20 */	blr

.global func_80043B10
func_80043B10:
/* 80043B10 0003F770  2C 04 00 02 */	cmpwi r4, 2
/* 80043B14 0003F774  41 82 00 34 */	beq lbl_80043B48
/* 80043B18 0003F778  40 80 00 14 */	bge lbl_80043B2C
/* 80043B1C 0003F77C  2C 04 00 00 */	cmpwi r4, 0
/* 80043B20 0003F780  41 82 00 18 */	beq lbl_80043B38
/* 80043B24 0003F784  40 80 00 1C */	bge lbl_80043B40
/* 80043B28 0003F788  48 00 00 30 */	b lbl_80043B58
lbl_80043B2C:
/* 80043B2C 0003F78C  2C 04 00 04 */	cmpwi r4, 4
/* 80043B30 0003F790  40 80 00 28 */	bge lbl_80043B58
/* 80043B34 0003F794  48 00 00 1C */	b lbl_80043B50
lbl_80043B38:
/* 80043B38 0003F798  C0 22 83 60 */	lfs f1, lbl_80640960-_SDA2_BASE_(r2)
/* 80043B3C 0003F79C  4E 80 00 20 */	blr
lbl_80043B40:
/* 80043B40 0003F7A0  C0 22 82 B0 */	lfs f1, lbl_806408B0-_SDA2_BASE_(r2)
/* 80043B44 0003F7A4  4E 80 00 20 */	blr
lbl_80043B48:
/* 80043B48 0003F7A8  C0 22 83 64 */	lfs f1, lbl_80640964-_SDA2_BASE_(r2)
/* 80043B4C 0003F7AC  4E 80 00 20 */	blr
lbl_80043B50:
/* 80043B50 0003F7B0  C0 22 83 68 */	lfs f1, lbl_80640968-_SDA2_BASE_(r2)
/* 80043B54 0003F7B4  4E 80 00 20 */	blr
lbl_80043B58:
/* 80043B58 0003F7B8  C0 22 82 B0 */	lfs f1, lbl_806408B0-_SDA2_BASE_(r2)
/* 80043B5C 0003F7BC  4E 80 00 20 */	blr

.global func_80043B60
func_80043B60:
/* 80043B60 0003F7C0  D0 23 04 E4 */	stfs f1, 0x4e4(r3)
/* 80043B64 0003F7C4  4E 80 00 20 */	blr

.global func_80043B68
func_80043B68:
/* 80043B68 0003F7C8  94 21 FE 60 */	stwu r1, -0x1a0(r1)
/* 80043B6C 0003F7CC  7C 08 02 A6 */	mflr r0
/* 80043B70 0003F7D0  90 01 01 A4 */	stw r0, 0x1a4(r1)
/* 80043B74 0003F7D4  DB E1 01 90 */	stfd f31, 0x190(r1)
/* 80043B78 0003F7D8  F3 E1 01 98 */	psq_st f31, 408(r1), 0, qr0
/* 80043B7C 0003F7DC  DB C1 01 80 */	stfd f30, 0x180(r1)
/* 80043B80 0003F7E0  F3 C1 01 88 */	psq_st f30, 392(r1), 0, qr0
/* 80043B84 0003F7E4  DB A1 01 70 */	stfd f29, 0x170(r1)
/* 80043B88 0003F7E8  F3 A1 01 78 */	psq_st f29, 376(r1), 0, qr0
/* 80043B8C 0003F7EC  DB 81 01 60 */	stfd f28, 0x160(r1)
/* 80043B90 0003F7F0  F3 81 01 68 */	psq_st f28, 360(r1), 0, qr0
/* 80043B94 0003F7F4  DB 61 01 50 */	stfd f27, 0x150(r1)
/* 80043B98 0003F7F8  F3 61 01 58 */	psq_st f27, 344(r1), 0, qr0
/* 80043B9C 0003F7FC  FF E0 08 90 */	fmr f31, f1
/* 80043BA0 0003F800  93 E1 01 4C */	stw r31, 0x14c(r1)
/* 80043BA4 0003F804  93 C1 01 48 */	stw r30, 0x148(r1)
/* 80043BA8 0003F808  7C 7E 1B 78 */	mr r30, r3
/* 80043BAC 0003F80C  7F C4 F3 78 */	mr r4, r30
/* 80043BB0 0003F810  38 61 00 C8 */	addi r3, r1, 0xc8
/* 80043BB4 0003F814  93 A1 01 44 */	stw r29, 0x144(r1)
/* 80043BB8 0003F818  93 81 01 40 */	stw r28, 0x140(r1)
/* 80043BBC 0003F81C  4B FF C8 ED */	bl func_800404A8
/* 80043BC0 0003F820  88 1E 00 00 */	lbz r0, 0(r30)
/* 80043BC4 0003F824  2C 00 00 00 */	cmpwi r0, 0
/* 80043BC8 0003F828  41 82 08 8C */	beq lbl_80044454
/* 80043BCC 0003F82C  38 7E 05 60 */	addi r3, r30, 0x560
/* 80043BD0 0003F830  4B FF C9 B1 */	bl func_80040580
/* 80043BD4 0003F834  80 1E 06 D0 */	lwz r0, 0x6d0(r30)
/* 80043BD8 0003F838  2C 00 00 00 */	cmpwi r0, 0
/* 80043BDC 0003F83C  41 82 02 44 */	beq lbl_80043E20
/* 80043BE0 0003F840  38 7E 06 50 */	addi r3, r30, 0x650
/* 80043BE4 0003F844  4B FF C9 9D */	bl func_80040580
/* 80043BE8 0003F848  C0 3E 06 D8 */	lfs f1, 0x6d8(r30)
/* 80043BEC 0003F84C  C0 1E 06 D4 */	lfs f0, 0x6d4(r30)
/* 80043BF0 0003F850  EC 21 F8 2A */	fadds f1, f1, f31
/* 80043BF4 0003F854  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80043BF8 0003F858  D0 3E 06 D8 */	stfs f1, 0x6d8(r30)
/* 80043BFC 0003F85C  4C 41 13 82 */	cror 2, 1, 2
/* 80043C00 0003F860  40 82 00 10 */	bne lbl_80043C10
/* 80043C04 0003F864  38 00 00 00 */	li r0, 0
/* 80043C08 0003F868  D0 1E 06 D8 */	stfs f0, 0x6d8(r30)
/* 80043C0C 0003F86C  90 1E 06 D0 */	stw r0, 0x6d0(r30)
lbl_80043C10:
/* 80043C10 0003F870  C0 3E 06 D8 */	lfs f1, 0x6d8(r30)
/* 80043C14 0003F874  38 61 00 C8 */	addi r3, r1, 0xc8
/* 80043C18 0003F878  C0 1E 06 D4 */	lfs f0, 0x6d4(r30)
/* 80043C1C 0003F87C  38 9E 05 60 */	addi r4, r30, 0x560
/* 80043C20 0003F880  38 BE 06 50 */	addi r5, r30, 0x650
/* 80043C24 0003F884  EC 21 00 24 */	fdivs f1, f1, f0
/* 80043C28 0003F888  4B FF D0 85 */	bl func_80040CAC
/* 80043C2C 0003F88C  80 1E 06 D0 */	lwz r0, 0x6d0(r30)
/* 80043C30 0003F890  2C 00 00 00 */	cmpwi r0, 0
/* 80043C34 0003F894  40 82 00 F4 */	bne lbl_80043D28
/* 80043C38 0003F898  8B FE 06 50 */	lbz r31, 0x650(r30)
/* 80043C3C 0003F89C  81 9E 06 54 */	lwz r12, 0x654(r30)
/* 80043C40 0003F8A0  C3 7E 06 58 */	lfs f27, 0x658(r30)
/* 80043C44 0003F8A4  C3 9E 06 5C */	lfs f28, 0x65c(r30)
/* 80043C48 0003F8A8  81 7E 06 60 */	lwz r11, 0x660(r30)
/* 80043C4C 0003F8AC  C3 BE 06 64 */	lfs f29, 0x664(r30)
/* 80043C50 0003F8B0  C3 DE 06 68 */	lfs f30, 0x668(r30)
/* 80043C54 0003F8B4  C1 BE 06 6C */	lfs f13, 0x66c(r30)
/* 80043C58 0003F8B8  C1 9E 06 70 */	lfs f12, 0x670(r30)
/* 80043C5C 0003F8BC  C1 7E 06 74 */	lfs f11, 0x674(r30)
/* 80043C60 0003F8C0  C1 5E 06 78 */	lfs f10, 0x678(r30)
/* 80043C64 0003F8C4  C1 3E 06 7C */	lfs f9, 0x67c(r30)
/* 80043C68 0003F8C8  C1 1E 06 80 */	lfs f8, 0x680(r30)
/* 80043C6C 0003F8CC  C0 FE 06 84 */	lfs f7, 0x684(r30)
/* 80043C70 0003F8D0  C0 DE 06 88 */	lfs f6, 0x688(r30)
/* 80043C74 0003F8D4  C0 BE 06 8C */	lfs f5, 0x68c(r30)
/* 80043C78 0003F8D8  C0 9E 06 90 */	lfs f4, 0x690(r30)
/* 80043C7C 0003F8DC  C0 7E 06 94 */	lfs f3, 0x694(r30)
/* 80043C80 0003F8E0  C0 5E 06 98 */	lfs f2, 0x698(r30)
/* 80043C84 0003F8E4  C0 3E 06 9C */	lfs f1, 0x69c(r30)
/* 80043C88 0003F8E8  C0 1E 06 A0 */	lfs f0, 0x6a0(r30)
/* 80043C8C 0003F8EC  81 5E 06 A4 */	lwz r10, 0x6a4(r30)
/* 80043C90 0003F8F0  81 3E 06 A8 */	lwz r9, 0x6a8(r30)
/* 80043C94 0003F8F4  81 1E 06 AC */	lwz r8, 0x6ac(r30)
/* 80043C98 0003F8F8  80 FE 06 B0 */	lwz r7, 0x6b0(r30)
/* 80043C9C 0003F8FC  80 DE 06 B4 */	lwz r6, 0x6b4(r30)
/* 80043CA0 0003F900  80 BE 06 B8 */	lwz r5, 0x6b8(r30)
/* 80043CA4 0003F904  80 9E 06 BC */	lwz r4, 0x6bc(r30)
/* 80043CA8 0003F908  80 7E 06 C0 */	lwz r3, 0x6c0(r30)
/* 80043CAC 0003F90C  80 1E 06 C4 */	lwz r0, 0x6c4(r30)
/* 80043CB0 0003F910  9B FE 05 60 */	stb r31, 0x560(r30)
/* 80043CB4 0003F914  91 9E 05 64 */	stw r12, 0x564(r30)
/* 80043CB8 0003F918  D3 7E 05 68 */	stfs f27, 0x568(r30)
/* 80043CBC 0003F91C  D3 9E 05 6C */	stfs f28, 0x56c(r30)
/* 80043CC0 0003F920  91 7E 05 70 */	stw r11, 0x570(r30)
/* 80043CC4 0003F924  D3 BE 05 74 */	stfs f29, 0x574(r30)
/* 80043CC8 0003F928  D3 DE 05 78 */	stfs f30, 0x578(r30)
/* 80043CCC 0003F92C  D1 BE 05 7C */	stfs f13, 0x57c(r30)
/* 80043CD0 0003F930  D1 9E 05 80 */	stfs f12, 0x580(r30)
/* 80043CD4 0003F934  D1 7E 05 84 */	stfs f11, 0x584(r30)
/* 80043CD8 0003F938  D1 5E 05 88 */	stfs f10, 0x588(r30)
/* 80043CDC 0003F93C  D1 3E 05 8C */	stfs f9, 0x58c(r30)
/* 80043CE0 0003F940  D1 1E 05 90 */	stfs f8, 0x590(r30)
/* 80043CE4 0003F944  D0 FE 05 94 */	stfs f7, 0x594(r30)
/* 80043CE8 0003F948  D0 DE 05 98 */	stfs f6, 0x598(r30)
/* 80043CEC 0003F94C  D0 BE 05 9C */	stfs f5, 0x59c(r30)
/* 80043CF0 0003F950  D0 9E 05 A0 */	stfs f4, 0x5a0(r30)
/* 80043CF4 0003F954  D0 7E 05 A4 */	stfs f3, 0x5a4(r30)
/* 80043CF8 0003F958  D0 5E 05 A8 */	stfs f2, 0x5a8(r30)
/* 80043CFC 0003F95C  D0 3E 05 AC */	stfs f1, 0x5ac(r30)
/* 80043D00 0003F960  D0 1E 05 B0 */	stfs f0, 0x5b0(r30)
/* 80043D04 0003F964  91 5E 05 B4 */	stw r10, 0x5b4(r30)
/* 80043D08 0003F968  91 3E 05 B8 */	stw r9, 0x5b8(r30)
/* 80043D0C 0003F96C  91 1E 05 BC */	stw r8, 0x5bc(r30)
/* 80043D10 0003F970  90 FE 05 C0 */	stw r7, 0x5c0(r30)
/* 80043D14 0003F974  90 DE 05 C4 */	stw r6, 0x5c4(r30)
/* 80043D18 0003F978  90 BE 05 C8 */	stw r5, 0x5c8(r30)
/* 80043D1C 0003F97C  90 9E 05 CC */	stw r4, 0x5cc(r30)
/* 80043D20 0003F980  90 7E 05 D0 */	stw r3, 0x5d0(r30)
/* 80043D24 0003F984  90 1E 05 D4 */	stw r0, 0x5d4(r30)
lbl_80043D28:
/* 80043D28 0003F988  88 01 00 C8 */	lbz r0, 0xc8(r1)
/* 80043D2C 0003F98C  3B E1 00 C8 */	addi r31, r1, 0xc8
/* 80043D30 0003F990  98 1E 05 D8 */	stb r0, 0x5d8(r30)
/* 80043D34 0003F994  80 01 00 CC */	lwz r0, 0xcc(r1)
/* 80043D38 0003F998  90 1E 05 DC */	stw r0, 0x5dc(r30)
/* 80043D3C 0003F99C  C0 01 00 D0 */	lfs f0, 0xd0(r1)
/* 80043D40 0003F9A0  D0 1E 05 E0 */	stfs f0, 0x5e0(r30)
/* 80043D44 0003F9A4  C0 01 00 D4 */	lfs f0, 0xd4(r1)
/* 80043D48 0003F9A8  D0 1E 05 E4 */	stfs f0, 0x5e4(r30)
/* 80043D4C 0003F9AC  80 01 00 D8 */	lwz r0, 0xd8(r1)
/* 80043D50 0003F9B0  90 1E 05 E8 */	stw r0, 0x5e8(r30)
/* 80043D54 0003F9B4  C0 01 00 DC */	lfs f0, 0xdc(r1)
/* 80043D58 0003F9B8  D0 1E 05 EC */	stfs f0, 0x5ec(r30)
/* 80043D5C 0003F9BC  C0 01 00 E0 */	lfs f0, 0xe0(r1)
/* 80043D60 0003F9C0  D0 1E 05 F0 */	stfs f0, 0x5f0(r30)
/* 80043D64 0003F9C4  C0 01 00 E4 */	lfs f0, 0xe4(r1)
/* 80043D68 0003F9C8  D0 1E 05 F4 */	stfs f0, 0x5f4(r30)
/* 80043D6C 0003F9CC  C0 01 00 E8 */	lfs f0, 0xe8(r1)
/* 80043D70 0003F9D0  D0 1E 05 F8 */	stfs f0, 0x5f8(r30)
/* 80043D74 0003F9D4  C0 01 00 EC */	lfs f0, 0xec(r1)
/* 80043D78 0003F9D8  D0 1E 05 FC */	stfs f0, 0x5fc(r30)
/* 80043D7C 0003F9DC  C0 01 00 F0 */	lfs f0, 0xf0(r1)
/* 80043D80 0003F9E0  D0 1E 06 00 */	stfs f0, 0x600(r30)
/* 80043D84 0003F9E4  C0 01 00 F4 */	lfs f0, 0xf4(r1)
/* 80043D88 0003F9E8  D0 1E 06 04 */	stfs f0, 0x604(r30)
/* 80043D8C 0003F9EC  C0 01 00 F8 */	lfs f0, 0xf8(r1)
/* 80043D90 0003F9F0  D0 1E 06 08 */	stfs f0, 0x608(r30)
/* 80043D94 0003F9F4  C0 01 00 FC */	lfs f0, 0xfc(r1)
/* 80043D98 0003F9F8  D0 1E 06 0C */	stfs f0, 0x60c(r30)
/* 80043D9C 0003F9FC  C0 01 01 00 */	lfs f0, 0x100(r1)
/* 80043DA0 0003FA00  D0 1E 06 10 */	stfs f0, 0x610(r30)
/* 80043DA4 0003FA04  C0 01 01 04 */	lfs f0, 0x104(r1)
/* 80043DA8 0003FA08  D0 1E 06 14 */	stfs f0, 0x614(r30)
/* 80043DAC 0003FA0C  C0 01 01 08 */	lfs f0, 0x108(r1)
/* 80043DB0 0003FA10  D0 1E 06 18 */	stfs f0, 0x618(r30)
/* 80043DB4 0003FA14  C0 01 01 0C */	lfs f0, 0x10c(r1)
/* 80043DB8 0003FA18  D0 1E 06 1C */	stfs f0, 0x61c(r30)
/* 80043DBC 0003FA1C  C0 01 01 10 */	lfs f0, 0x110(r1)
/* 80043DC0 0003FA20  D0 1E 06 20 */	stfs f0, 0x620(r30)
/* 80043DC4 0003FA24  C0 01 01 14 */	lfs f0, 0x114(r1)
/* 80043DC8 0003FA28  D0 1E 06 24 */	stfs f0, 0x624(r30)
/* 80043DCC 0003FA2C  C0 01 01 18 */	lfs f0, 0x118(r1)
/* 80043DD0 0003FA30  D0 1E 06 28 */	stfs f0, 0x628(r30)
/* 80043DD4 0003FA34  80 01 01 1C */	lwz r0, 0x11c(r1)
/* 80043DD8 0003FA38  90 1E 06 2C */	stw r0, 0x62c(r30)
/* 80043DDC 0003FA3C  80 61 01 20 */	lwz r3, 0x120(r1)
/* 80043DE0 0003FA40  80 01 01 24 */	lwz r0, 0x124(r1)
/* 80043DE4 0003FA44  90 7E 06 30 */	stw r3, 0x630(r30)
/* 80043DE8 0003FA48  90 1E 06 34 */	stw r0, 0x634(r30)
/* 80043DEC 0003FA4C  80 61 01 28 */	lwz r3, 0x128(r1)
/* 80043DF0 0003FA50  80 01 01 2C */	lwz r0, 0x12c(r1)
/* 80043DF4 0003FA54  90 7E 06 38 */	stw r3, 0x638(r30)
/* 80043DF8 0003FA58  90 1E 06 3C */	stw r0, 0x63c(r30)
/* 80043DFC 0003FA5C  80 61 01 30 */	lwz r3, 0x130(r1)
/* 80043E00 0003FA60  80 01 01 34 */	lwz r0, 0x134(r1)
/* 80043E04 0003FA64  90 7E 06 40 */	stw r3, 0x640(r30)
/* 80043E08 0003FA68  90 1E 06 44 */	stw r0, 0x644(r30)
/* 80043E0C 0003FA6C  80 61 01 38 */	lwz r3, 0x138(r1)
/* 80043E10 0003FA70  80 01 01 3C */	lwz r0, 0x13c(r1)
/* 80043E14 0003FA74  90 7E 06 48 */	stw r3, 0x648(r30)
/* 80043E18 0003FA78  90 1E 06 4C */	stw r0, 0x64c(r30)
/* 80043E1C 0003FA7C  48 00 00 08 */	b lbl_80043E24
lbl_80043E20:
/* 80043E20 0003FA80  3B FE 05 60 */	addi r31, r30, 0x560
lbl_80043E24:
/* 80043E24 0003FA84  38 7E 04 E8 */	addi r3, r30, 0x4e8
/* 80043E28 0003FA88  4B FF C7 59 */	bl func_80040580
/* 80043E2C 0003FA8C  3B BE 00 04 */	addi r29, r30, 4
/* 80043E30 0003FA90  3B 80 00 00 */	li r28, 0
lbl_80043E34:
/* 80043E34 0003FA94  81 9D 00 20 */	lwz r12, 0x20(r29)
/* 80043E38 0003FA98  FC 20 F8 90 */	fmr f1, f31
/* 80043E3C 0003FA9C  7F A3 EB 78 */	mr r3, r29
/* 80043E40 0003FAA0  81 8C 00 08 */	lwz r12, 8(r12)
/* 80043E44 0003FAA4  7D 89 03 A6 */	mtctr r12
/* 80043E48 0003FAA8  4E 80 04 21 */	bctrl
/* 80043E4C 0003FAAC  3B 9C 00 01 */	addi r28, r28, 1
/* 80043E50 0003FAB0  3B BD 00 24 */	addi r29, r29, 0x24
/* 80043E54 0003FAB4  2C 1C 00 0C */	cmpwi r28, 0xc
/* 80043E58 0003FAB8  41 80 FF DC */	blt lbl_80043E34
/* 80043E5C 0003FABC  3B BE 01 B4 */	addi r29, r30, 0x1b4
/* 80043E60 0003FAC0  3B 80 00 00 */	li r28, 0
lbl_80043E64:
/* 80043E64 0003FAC4  81 9D 00 20 */	lwz r12, 0x20(r29)
/* 80043E68 0003FAC8  FC 20 F8 90 */	fmr f1, f31
/* 80043E6C 0003FACC  7F A3 EB 78 */	mr r3, r29
/* 80043E70 0003FAD0  81 8C 00 08 */	lwz r12, 8(r12)
/* 80043E74 0003FAD4  7D 89 03 A6 */	mtctr r12
/* 80043E78 0003FAD8  4E 80 04 21 */	bctrl
/* 80043E7C 0003FADC  3B 9C 00 01 */	addi r28, r28, 1
/* 80043E80 0003FAE0  3B BD 00 60 */	addi r29, r29, 0x60
/* 80043E84 0003FAE4  2C 1C 00 05 */	cmpwi r28, 5
/* 80043E88 0003FAE8  41 80 FF DC */	blt lbl_80043E64
/* 80043E8C 0003FAEC  80 1E 01 24 */	lwz r0, 0x124(r30)
/* 80043E90 0003FAF0  2C 00 00 00 */	cmpwi r0, 0
/* 80043E94 0003FAF4  40 82 00 1C */	bne lbl_80043EB0
/* 80043E98 0003FAF8  80 1E 01 48 */	lwz r0, 0x148(r30)
/* 80043E9C 0003FAFC  2C 00 00 00 */	cmpwi r0, 0
/* 80043EA0 0003FB00  40 82 00 10 */	bne lbl_80043EB0
/* 80043EA4 0003FB04  80 1E 04 BC */	lwz r0, 0x4bc(r30)
/* 80043EA8 0003FB08  2C 00 00 00 */	cmpwi r0, 0
/* 80043EAC 0003FB0C  41 82 00 B0 */	beq lbl_80043F5C
lbl_80043EB0:
/* 80043EB0 0003FB10  7F C3 F3 78 */	mr r3, r30
/* 80043EB4 0003FB14  7F E4 FB 78 */	mr r4, r31
/* 80043EB8 0003FB18  4B FF D3 71 */	bl func_80041228
/* 80043EBC 0003FB1C  C0 1E 04 FC */	lfs f0, 0x4fc(r30)
/* 80043EC0 0003FB20  38 9E 04 FC */	addi r4, r30, 0x4fc
/* 80043EC4 0003FB24  D0 01 00 B8 */	stfs f0, 0xb8(r1)
/* 80043EC8 0003FB28  C0 1E 05 00 */	lfs f0, 0x500(r30)
/* 80043ECC 0003FB2C  D0 01 00 BC */	stfs f0, 0xbc(r1)
/* 80043ED0 0003FB30  C0 1E 05 04 */	lfs f0, 0x504(r30)
/* 80043ED4 0003FB34  D0 01 00 C0 */	stfs f0, 0xc0(r1)
/* 80043ED8 0003FB38  80 1E 04 BC */	lwz r0, 0x4bc(r30)
/* 80043EDC 0003FB3C  2C 00 00 00 */	cmpwi r0, 0
/* 80043EE0 0003FB40  41 82 00 6C */	beq lbl_80043F4C
/* 80043EE4 0003FB44  54 00 07 7B */	rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 80043EE8 0003FB48  40 82 00 48 */	bne lbl_80043F30
/* 80043EEC 0003FB4C  38 61 00 B8 */	addi r3, r1, 0xb8
/* 80043EF0 0003FB50  48 23 90 E1 */	bl PSVECDistance
/* 80043EF4 0003FB54  C0 1E 04 D0 */	lfs f0, 0x4d0(r30)
/* 80043EF8 0003FB58  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80043EFC 0003FB5C  40 81 00 1C */	ble lbl_80043F18
/* 80043F00 0003FB60  38 61 00 B8 */	addi r3, r1, 0xb8
/* 80043F04 0003FB64  C0 3E 04 CC */	lfs f1, 0x4cc(r30)
/* 80043F08 0003FB68  7C 65 1B 78 */	mr r5, r3
/* 80043F0C 0003FB6C  38 9E 04 FC */	addi r4, r30, 0x4fc
/* 80043F10 0003FB70  4B FF C1 D9 */	bl func_800400E8
/* 80043F14 0003FB74  48 00 00 1C */	b lbl_80043F30
lbl_80043F18:
/* 80043F18 0003FB78  C0 1E 04 FC */	lfs f0, 0x4fc(r30)
/* 80043F1C 0003FB7C  D0 01 00 B8 */	stfs f0, 0xb8(r1)
/* 80043F20 0003FB80  C0 1E 05 00 */	lfs f0, 0x500(r30)
/* 80043F24 0003FB84  D0 01 00 BC */	stfs f0, 0xbc(r1)
/* 80043F28 0003FB88  C0 1E 05 04 */	lfs f0, 0x504(r30)
/* 80043F2C 0003FB8C  D0 01 00 C0 */	stfs f0, 0xc0(r1)
lbl_80043F30:
/* 80043F30 0003FB90  38 7E 04 E8 */	addi r3, r30, 0x4e8
/* 80043F34 0003FB94  38 81 00 B8 */	addi r4, r1, 0xb8
/* 80043F38 0003FB98  4B FF CC AD */	bl func_80040BE4
/* 80043F3C 0003FB9C  80 1E 04 BC */	lwz r0, 0x4bc(r30)
/* 80043F40 0003FBA0  54 00 07 F8 */	rlwinm r0, r0, 0, 0x1f, 0x1c
/* 80043F44 0003FBA4  90 1E 04 BC */	stw r0, 0x4bc(r30)
/* 80043F48 0003FBA8  48 00 00 34 */	b lbl_80043F7C
lbl_80043F4C:
/* 80043F4C 0003FBAC  38 7E 04 E8 */	addi r3, r30, 0x4e8
/* 80043F50 0003FBB0  38 81 00 B8 */	addi r4, r1, 0xb8
/* 80043F54 0003FBB4  4B FF CC 91 */	bl func_80040BE4
/* 80043F58 0003FBB8  48 00 00 24 */	b lbl_80043F7C
lbl_80043F5C:
/* 80043F5C 0003FBBC  80 1E 00 28 */	lwz r0, 0x28(r30)
/* 80043F60 0003FBC0  2C 00 00 00 */	cmpwi r0, 0
/* 80043F64 0003FBC4  41 82 00 18 */	beq lbl_80043F7C
/* 80043F68 0003FBC8  C0 3E 06 C8 */	lfs f1, 0x6c8(r30)
/* 80043F6C 0003FBCC  7F C3 F3 78 */	mr r3, r30
/* 80043F70 0003FBD0  C0 1E 06 E8 */	lfs f0, 0x6e8(r30)
/* 80043F74 0003FBD4  EC 21 00 2A */	fadds f1, f1, f0
/* 80043F78 0003FBD8  4B FF E6 85 */	bl func_800425FC
lbl_80043F7C:
/* 80043F7C 0003FBDC  80 1E 06 CC */	lwz r0, 0x6cc(r30)
/* 80043F80 0003FBE0  2C 00 00 00 */	cmpwi r0, 0
/* 80043F84 0003FBE4  41 82 04 D0 */	beq lbl_80044454
/* 80043F88 0003FBE8  38 7F 00 14 */	addi r3, r31, 0x14
/* 80043F8C 0003FBEC  38 9E 04 FC */	addi r4, r30, 0x4fc
/* 80043F90 0003FBF0  38 A1 00 38 */	addi r5, r1, 0x38
/* 80043F94 0003FBF4  48 23 8D 55 */	bl PSVECSubtract
/* 80043F98 0003FBF8  C0 81 00 38 */	lfs f4, 0x38(r1)
/* 80043F9C 0003FBFC  C0 22 83 50 */	lfs f1, lbl_80640950-_SDA2_BASE_(r2)
/* 80043FA0 0003FC00  C0 61 00 3C */	lfs f3, 0x3c(r1)
/* 80043FA4 0003FC04  C0 41 00 40 */	lfs f2, 0x40(r1)
/* 80043FA8 0003FC08  FC 04 08 40 */	fcmpo cr0, f4, f1
/* 80043FAC 0003FC0C  D0 81 00 A0 */	stfs f4, 0xa0(r1)
/* 80043FB0 0003FC10  D0 61 00 A4 */	stfs f3, 0xa4(r1)
/* 80043FB4 0003FC14  D0 41 00 A8 */	stfs f2, 0xa8(r1)
/* 80043FB8 0003FC18  40 80 00 30 */	bge lbl_80043FE8
/* 80043FBC 0003FC1C  C0 02 83 6C */	lfs f0, lbl_8064096C-_SDA2_BASE_(r2)
/* 80043FC0 0003FC20  FC 04 00 40 */	fcmpo cr0, f4, f0
/* 80043FC4 0003FC24  40 81 00 24 */	ble lbl_80043FE8
/* 80043FC8 0003FC28  FC 03 08 40 */	fcmpo cr0, f3, f1
/* 80043FCC 0003FC2C  40 80 00 1C */	bge lbl_80043FE8
/* 80043FD0 0003FC30  FC 03 00 40 */	fcmpo cr0, f3, f0
/* 80043FD4 0003FC34  40 81 00 14 */	ble lbl_80043FE8
/* 80043FD8 0003FC38  FC 02 08 40 */	fcmpo cr0, f2, f1
/* 80043FDC 0003FC3C  40 80 00 0C */	bge lbl_80043FE8
/* 80043FE0 0003FC40  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 80043FE4 0003FC44  41 81 00 0C */	bgt lbl_80043FF0
lbl_80043FE8:
/* 80043FE8 0003FC48  38 00 00 00 */	li r0, 0
/* 80043FEC 0003FC4C  48 00 00 08 */	b lbl_80043FF4
lbl_80043FF0:
/* 80043FF0 0003FC50  38 00 00 01 */	li r0, 1
lbl_80043FF4:
/* 80043FF4 0003FC54  2C 00 00 00 */	cmpwi r0, 0
/* 80043FF8 0003FC58  40 82 00 14 */	bne lbl_8004400C
/* 80043FFC 0003FC5C  38 61 00 A0 */	addi r3, r1, 0xa0
/* 80044000 0003FC60  7C 64 1B 78 */	mr r4, r3
/* 80044004 0003FC64  48 23 8D 25 */	bl PSVECNormalize
/* 80044008 0003FC68  48 00 00 18 */	b lbl_80044020
lbl_8004400C:
/* 8004400C 0003FC6C  C0 22 82 B0 */	lfs f1, lbl_806408B0-_SDA2_BASE_(r2)
/* 80044010 0003FC70  C0 02 82 BC */	lfs f0, lbl_806408BC-_SDA2_BASE_(r2)
/* 80044014 0003FC74  D0 21 00 A0 */	stfs f1, 0xa0(r1)
/* 80044018 0003FC78  D0 21 00 A4 */	stfs f1, 0xa4(r1)
/* 8004401C 0003FC7C  D0 01 00 A8 */	stfs f0, 0xa8(r1)
lbl_80044020:
/* 80044020 0003FC80  3C 80 80 49 */	lis r4, lbl_80493614@ha
/* 80044024 0003FC84  38 61 00 A0 */	addi r3, r1, 0xa0
/* 80044028 0003FC88  38 84 36 14 */	addi r4, r4, lbl_80493614@l
/* 8004402C 0003FC8C  38 A1 00 2C */	addi r5, r1, 0x2c
/* 80044030 0003FC90  48 23 8D B9 */	bl PSVECCrossProduct
/* 80044034 0003FC94  C0 81 00 2C */	lfs f4, 0x2c(r1)
/* 80044038 0003FC98  C0 22 83 50 */	lfs f1, lbl_80640950-_SDA2_BASE_(r2)
/* 8004403C 0003FC9C  C0 61 00 34 */	lfs f3, 0x34(r1)
/* 80044040 0003FCA0  C0 42 82 B0 */	lfs f2, lbl_806408B0-_SDA2_BASE_(r2)
/* 80044044 0003FCA4  FC 04 08 40 */	fcmpo cr0, f4, f1
/* 80044048 0003FCA8  D0 81 00 94 */	stfs f4, 0x94(r1)
/* 8004404C 0003FCAC  D0 61 00 9C */	stfs f3, 0x9c(r1)
/* 80044050 0003FCB0  D0 41 00 98 */	stfs f2, 0x98(r1)
/* 80044054 0003FCB4  40 80 00 30 */	bge lbl_80044084
/* 80044058 0003FCB8  C0 02 83 6C */	lfs f0, lbl_8064096C-_SDA2_BASE_(r2)
/* 8004405C 0003FCBC  FC 04 00 40 */	fcmpo cr0, f4, f0
/* 80044060 0003FCC0  40 81 00 24 */	ble lbl_80044084
/* 80044064 0003FCC4  FC 02 08 40 */	fcmpo cr0, f2, f1
/* 80044068 0003FCC8  40 80 00 1C */	bge lbl_80044084
/* 8004406C 0003FCCC  FC 02 00 40 */	fcmpo cr0, f2, f0
/* 80044070 0003FCD0  40 81 00 14 */	ble lbl_80044084
/* 80044074 0003FCD4  FC 03 08 40 */	fcmpo cr0, f3, f1
/* 80044078 0003FCD8  40 80 00 0C */	bge lbl_80044084
/* 8004407C 0003FCDC  FC 03 00 40 */	fcmpo cr0, f3, f0
/* 80044080 0003FCE0  41 81 00 0C */	bgt lbl_8004408C
lbl_80044084:
/* 80044084 0003FCE4  38 00 00 00 */	li r0, 0
/* 80044088 0003FCE8  48 00 00 08 */	b lbl_80044090
lbl_8004408C:
/* 8004408C 0003FCEC  38 00 00 01 */	li r0, 1
lbl_80044090:
/* 80044090 0003FCF0  2C 00 00 00 */	cmpwi r0, 0
/* 80044094 0003FCF4  40 82 00 44 */	bne lbl_800440D8
/* 80044098 0003FCF8  38 61 00 94 */	addi r3, r1, 0x94
/* 8004409C 0003FCFC  7C 64 1B 78 */	mr r4, r3
/* 800440A0 0003FD00  48 23 8C 89 */	bl PSVECNormalize
/* 800440A4 0003FD04  C0 3E 06 E4 */	lfs f1, 0x6e4(r30)
/* 800440A8 0003FD08  38 61 00 94 */	addi r3, r1, 0x94
/* 800440AC 0003FD0C  38 81 00 20 */	addi r4, r1, 0x20
/* 800440B0 0003FD10  48 23 8C 5D */	bl PSVECScale
/* 800440B4 0003FD14  C0 41 00 20 */	lfs f2, 0x20(r1)
/* 800440B8 0003FD18  C0 21 00 24 */	lfs f1, 0x24(r1)
/* 800440BC 0003FD1C  C0 01 00 28 */	lfs f0, 0x28(r1)
/* 800440C0 0003FD20  D0 41 00 AC */	stfs f2, 0xac(r1)
/* 800440C4 0003FD24  D0 21 00 B0 */	stfs f1, 0xb0(r1)
/* 800440C8 0003FD28  D0 01 00 B4 */	stfs f0, 0xb4(r1)
/* 800440CC 0003FD2C  C0 1E 06 E0 */	lfs f0, 0x6e0(r30)
/* 800440D0 0003FD30  D0 01 00 B0 */	stfs f0, 0xb0(r1)
/* 800440D4 0003FD34  48 00 00 14 */	b lbl_800440E8
lbl_800440D8:
/* 800440D8 0003FD38  C0 02 82 B0 */	lfs f0, lbl_806408B0-_SDA2_BASE_(r2)
/* 800440DC 0003FD3C  D0 01 00 AC */	stfs f0, 0xac(r1)
/* 800440E0 0003FD40  D0 01 00 B0 */	stfs f0, 0xb0(r1)
/* 800440E4 0003FD44  D0 01 00 B4 */	stfs f0, 0xb4(r1)
lbl_800440E8:
/* 800440E8 0003FD48  3C 80 80 49 */	lis r4, lbl_80493614@ha
/* 800440EC 0003FD4C  38 61 00 88 */	addi r3, r1, 0x88
/* 800440F0 0003FD50  38 A4 36 14 */	addi r5, r4, lbl_80493614@l
/* 800440F4 0003FD54  C0 44 36 14 */	lfs f2, 0x3614(r4)
/* 800440F8 0003FD58  C0 25 00 04 */	lfs f1, 4(r5)
/* 800440FC 0003FD5C  38 81 00 A0 */	addi r4, r1, 0xa0
/* 80044100 0003FD60  C0 05 00 08 */	lfs f0, 8(r5)
/* 80044104 0003FD64  38 A1 00 68 */	addi r5, r1, 0x68
/* 80044108 0003FD68  D0 41 00 88 */	stfs f2, 0x88(r1)
/* 8004410C 0003FD6C  D0 21 00 8C */	stfs f1, 0x8c(r1)
/* 80044110 0003FD70  D0 01 00 90 */	stfs f0, 0x90(r1)
/* 80044114 0003FD74  48 23 8C D5 */	bl PSVECCrossProduct
/* 80044118 0003FD78  C0 01 00 68 */	lfs f0, 0x68(r1)
/* 8004411C 0003FD7C  C0 42 83 50 */	lfs f2, lbl_80640950-_SDA2_BASE_(r2)
/* 80044120 0003FD80  FC 00 10 40 */	fcmpo cr0, f0, f2
/* 80044124 0003FD84  40 80 00 38 */	bge lbl_8004415C
/* 80044128 0003FD88  C0 22 83 6C */	lfs f1, lbl_8064096C-_SDA2_BASE_(r2)
/* 8004412C 0003FD8C  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 80044130 0003FD90  40 81 00 2C */	ble lbl_8004415C
/* 80044134 0003FD94  C0 01 00 6C */	lfs f0, 0x6c(r1)
/* 80044138 0003FD98  FC 00 10 40 */	fcmpo cr0, f0, f2
/* 8004413C 0003FD9C  40 80 00 20 */	bge lbl_8004415C
/* 80044140 0003FDA0  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 80044144 0003FDA4  40 81 00 18 */	ble lbl_8004415C
/* 80044148 0003FDA8  C0 01 00 70 */	lfs f0, 0x70(r1)
/* 8004414C 0003FDAC  FC 00 10 40 */	fcmpo cr0, f0, f2
/* 80044150 0003FDB0  40 80 00 0C */	bge lbl_8004415C
/* 80044154 0003FDB4  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 80044158 0003FDB8  41 81 00 0C */	bgt lbl_80044164
lbl_8004415C:
/* 8004415C 0003FDBC  38 00 00 00 */	li r0, 0
/* 80044160 0003FDC0  48 00 00 08 */	b lbl_80044168
lbl_80044164:
/* 80044164 0003FDC4  38 00 00 01 */	li r0, 1
lbl_80044168:
/* 80044168 0003FDC8  2C 00 00 00 */	cmpwi r0, 0
/* 8004416C 0003FDCC  41 82 00 24 */	beq lbl_80044190
/* 80044170 0003FDD0  3C 80 80 49 */	lis r4, lbl_80493608@ha
/* 80044174 0003FDD4  38 64 36 08 */	addi r3, r4, lbl_80493608@l
/* 80044178 0003FDD8  C0 44 36 08 */	lfs f2, 0x3608(r4)
/* 8004417C 0003FDDC  C0 23 00 04 */	lfs f1, 4(r3)
/* 80044180 0003FDE0  C0 03 00 08 */	lfs f0, 8(r3)
/* 80044184 0003FDE4  D0 41 00 88 */	stfs f2, 0x88(r1)
/* 80044188 0003FDE8  D0 21 00 8C */	stfs f1, 0x8c(r1)
/* 8004418C 0003FDEC  D0 01 00 90 */	stfs f0, 0x90(r1)
lbl_80044190:
/* 80044190 0003FDF0  C0 3E 06 DC */	lfs f1, 0x6dc(r30)
/* 80044194 0003FDF4  38 61 00 78 */	addi r3, r1, 0x78
/* 80044198 0003FDF8  38 81 00 A0 */	addi r4, r1, 0xa0
/* 8004419C 0003FDFC  48 23 8F 89 */	bl C_QUATRotAxisRad
/* 800441A0 0003FE00  C0 41 00 88 */	lfs f2, 0x88(r1)
/* 800441A4 0003FE04  38 61 00 14 */	addi r3, r1, 0x14
/* 800441A8 0003FE08  C0 21 00 8C */	lfs f1, 0x8c(r1)
/* 800441AC 0003FE0C  38 81 00 78 */	addi r4, r1, 0x78
/* 800441B0 0003FE10  C0 01 00 90 */	lfs f0, 0x90(r1)
/* 800441B4 0003FE14  D0 41 00 14 */	stfs f2, 0x14(r1)
/* 800441B8 0003FE18  D0 21 00 18 */	stfs f1, 0x18(r1)
/* 800441BC 0003FE1C  D0 01 00 1C */	stfs f0, 0x1c(r1)
/* 800441C0 0003FE20  48 1D F8 4D */	bl func_80223A0C
/* 800441C4 0003FE24  C0 41 00 14 */	lfs f2, 0x14(r1)
/* 800441C8 0003FE28  C0 21 00 18 */	lfs f1, 0x18(r1)
/* 800441CC 0003FE2C  C0 01 00 1C */	lfs f0, 0x1c(r1)
/* 800441D0 0003FE30  D0 41 00 88 */	stfs f2, 0x88(r1)
/* 800441D4 0003FE34  D0 21 00 8C */	stfs f1, 0x8c(r1)
/* 800441D8 0003FE38  D0 01 00 90 */	stfs f0, 0x90(r1)
/* 800441DC 0003FE3C  88 1E 06 F8 */	lbz r0, 0x6f8(r30)
/* 800441E0 0003FE40  2C 00 00 00 */	cmpwi r0, 0
/* 800441E4 0003FE44  41 82 00 38 */	beq lbl_8004421C
/* 800441E8 0003FE48  C0 1E 04 FC */	lfs f0, 0x4fc(r30)
/* 800441EC 0003FE4C  D0 01 00 5C */	stfs f0, 0x5c(r1)
/* 800441F0 0003FE50  C0 3E 05 00 */	lfs f1, 0x500(r30)
/* 800441F4 0003FE54  D0 21 00 60 */	stfs f1, 0x60(r1)
/* 800441F8 0003FE58  C0 1E 05 04 */	lfs f0, 0x504(r30)
/* 800441FC 0003FE5C  D0 01 00 64 */	stfs f0, 0x64(r1)
/* 80044200 0003FE60  C0 1E 06 F4 */	lfs f0, 0x6f4(r30)
/* 80044204 0003FE64  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 80044208 0003FE68  40 80 00 14 */	bge lbl_8004421C
/* 8004420C 0003FE6C  D0 01 00 60 */	stfs f0, 0x60(r1)
/* 80044210 0003FE70  38 7E 04 E8 */	addi r3, r30, 0x4e8
/* 80044214 0003FE74  38 81 00 5C */	addi r4, r1, 0x5c
/* 80044218 0003FE78  4B FF C9 CD */	bl func_80040BE4
lbl_8004421C:
/* 8004421C 0003FE7C  38 7E 04 FC */	addi r3, r30, 0x4fc
/* 80044220 0003FE80  38 81 00 AC */	addi r4, r1, 0xac
/* 80044224 0003FE84  38 A1 00 08 */	addi r5, r1, 8
/* 80044228 0003FE88  48 23 8A 9D */	bl PSVECAdd
/* 8004422C 0003FE8C  C0 21 00 08 */	lfs f1, 8(r1)
/* 80044230 0003FE90  C0 A1 00 0C */	lfs f5, 0xc(r1)
/* 80044234 0003FE94  C0 81 00 10 */	lfs f4, 0x10(r1)
/* 80044238 0003FE98  C0 7F 00 14 */	lfs f3, 0x14(r31)
/* 8004423C 0003FE9C  C0 5F 00 18 */	lfs f2, 0x18(r31)
/* 80044240 0003FEA0  C0 1F 00 1C */	lfs f0, 0x1c(r31)
/* 80044244 0003FEA4  D0 21 00 50 */	stfs f1, 0x50(r1)
/* 80044248 0003FEA8  D0 A1 00 54 */	stfs f5, 0x54(r1)
/* 8004424C 0003FEAC  D0 81 00 58 */	stfs f4, 0x58(r1)
/* 80044250 0003FEB0  D0 61 00 44 */	stfs f3, 0x44(r1)
/* 80044254 0003FEB4  D0 41 00 48 */	stfs f2, 0x48(r1)
/* 80044258 0003FEB8  D0 01 00 4C */	stfs f0, 0x4c(r1)
/* 8004425C 0003FEBC  48 18 64 59 */	bl __fpclassifyf
/* 80044260 0003FEC0  2C 03 00 01 */	cmpwi r3, 1
/* 80044264 0003FEC4  41 82 01 14 */	beq lbl_80044378
/* 80044268 0003FEC8  C0 21 00 50 */	lfs f1, 0x50(r1)
/* 8004426C 0003FECC  48 18 64 49 */	bl __fpclassifyf
/* 80044270 0003FED0  2C 03 00 02 */	cmpwi r3, 2
/* 80044274 0003FED4  41 82 01 04 */	beq lbl_80044378
/* 80044278 0003FED8  C0 21 00 54 */	lfs f1, 0x54(r1)
/* 8004427C 0003FEDC  48 18 64 39 */	bl __fpclassifyf
/* 80044280 0003FEE0  2C 03 00 01 */	cmpwi r3, 1
/* 80044284 0003FEE4  41 82 00 F4 */	beq lbl_80044378
/* 80044288 0003FEE8  C0 21 00 54 */	lfs f1, 0x54(r1)
/* 8004428C 0003FEEC  48 18 64 29 */	bl __fpclassifyf
/* 80044290 0003FEF0  2C 03 00 02 */	cmpwi r3, 2
/* 80044294 0003FEF4  41 82 00 E4 */	beq lbl_80044378
/* 80044298 0003FEF8  C0 21 00 58 */	lfs f1, 0x58(r1)
/* 8004429C 0003FEFC  48 18 64 19 */	bl __fpclassifyf
/* 800442A0 0003FF00  2C 03 00 01 */	cmpwi r3, 1
/* 800442A4 0003FF04  41 82 00 D4 */	beq lbl_80044378
/* 800442A8 0003FF08  C0 21 00 58 */	lfs f1, 0x58(r1)
/* 800442AC 0003FF0C  48 18 64 09 */	bl __fpclassifyf
/* 800442B0 0003FF10  2C 03 00 02 */	cmpwi r3, 2
/* 800442B4 0003FF14  41 82 00 C4 */	beq lbl_80044378
/* 800442B8 0003FF18  C0 21 00 44 */	lfs f1, 0x44(r1)
/* 800442BC 0003FF1C  48 18 63 F9 */	bl __fpclassifyf
/* 800442C0 0003FF20  2C 03 00 01 */	cmpwi r3, 1
/* 800442C4 0003FF24  41 82 00 B4 */	beq lbl_80044378
/* 800442C8 0003FF28  C0 21 00 44 */	lfs f1, 0x44(r1)
/* 800442CC 0003FF2C  48 18 63 E9 */	bl __fpclassifyf
/* 800442D0 0003FF30  2C 03 00 02 */	cmpwi r3, 2
/* 800442D4 0003FF34  41 82 00 A4 */	beq lbl_80044378
/* 800442D8 0003FF38  C0 21 00 48 */	lfs f1, 0x48(r1)
/* 800442DC 0003FF3C  48 18 63 D9 */	bl __fpclassifyf
/* 800442E0 0003FF40  2C 03 00 01 */	cmpwi r3, 1
/* 800442E4 0003FF44  41 82 00 94 */	beq lbl_80044378
/* 800442E8 0003FF48  C0 21 00 48 */	lfs f1, 0x48(r1)
/* 800442EC 0003FF4C  48 18 63 C9 */	bl __fpclassifyf
/* 800442F0 0003FF50  2C 03 00 02 */	cmpwi r3, 2
/* 800442F4 0003FF54  41 82 00 84 */	beq lbl_80044378
/* 800442F8 0003FF58  C0 21 00 4C */	lfs f1, 0x4c(r1)
/* 800442FC 0003FF5C  48 18 63 B9 */	bl __fpclassifyf
/* 80044300 0003FF60  2C 03 00 01 */	cmpwi r3, 1
/* 80044304 0003FF64  41 82 00 74 */	beq lbl_80044378
/* 80044308 0003FF68  C0 21 00 4C */	lfs f1, 0x4c(r1)
/* 8004430C 0003FF6C  48 18 63 A9 */	bl __fpclassifyf
/* 80044310 0003FF70  2C 03 00 02 */	cmpwi r3, 2
/* 80044314 0003FF74  41 82 00 64 */	beq lbl_80044378
/* 80044318 0003FF78  C0 21 00 88 */	lfs f1, 0x88(r1)
/* 8004431C 0003FF7C  48 18 63 99 */	bl __fpclassifyf
/* 80044320 0003FF80  2C 03 00 01 */	cmpwi r3, 1
/* 80044324 0003FF84  41 82 00 54 */	beq lbl_80044378
/* 80044328 0003FF88  C0 21 00 88 */	lfs f1, 0x88(r1)
/* 8004432C 0003FF8C  48 18 63 89 */	bl __fpclassifyf
/* 80044330 0003FF90  2C 03 00 02 */	cmpwi r3, 2
/* 80044334 0003FF94  41 82 00 44 */	beq lbl_80044378
/* 80044338 0003FF98  C0 21 00 8C */	lfs f1, 0x8c(r1)
/* 8004433C 0003FF9C  48 18 63 79 */	bl __fpclassifyf
/* 80044340 0003FFA0  2C 03 00 01 */	cmpwi r3, 1
/* 80044344 0003FFA4  41 82 00 34 */	beq lbl_80044378
/* 80044348 0003FFA8  C0 21 00 8C */	lfs f1, 0x8c(r1)
/* 8004434C 0003FFAC  48 18 63 69 */	bl __fpclassifyf
/* 80044350 0003FFB0  2C 03 00 02 */	cmpwi r3, 2
/* 80044354 0003FFB4  41 82 00 24 */	beq lbl_80044378
/* 80044358 0003FFB8  C0 21 00 90 */	lfs f1, 0x90(r1)
/* 8004435C 0003FFBC  48 18 63 59 */	bl __fpclassifyf
/* 80044360 0003FFC0  2C 03 00 01 */	cmpwi r3, 1
/* 80044364 0003FFC4  41 82 00 14 */	beq lbl_80044378
/* 80044368 0003FFC8  C0 21 00 90 */	lfs f1, 0x90(r1)
/* 8004436C 0003FFCC  48 18 63 49 */	bl __fpclassifyf
/* 80044370 0003FFD0  2C 03 00 02 */	cmpwi r3, 2
/* 80044374 0003FFD4  40 82 00 38 */	bne lbl_800443AC
lbl_80044378:
/* 80044378 0003FFD8  C0 22 82 B0 */	lfs f1, lbl_806408B0-_SDA2_BASE_(r2)
/* 8004437C 0003FFDC  C0 42 82 CC */	lfs f2, lbl_806408CC-_SDA2_BASE_(r2)
/* 80044380 0003FFE0  C0 62 83 70 */	lfs f3, lbl_80640970-_SDA2_BASE_(r2)
/* 80044384 0003FFE4  C0 02 82 BC */	lfs f0, lbl_806408BC-_SDA2_BASE_(r2)
/* 80044388 0003FFE8  D0 61 00 50 */	stfs f3, 0x50(r1)
/* 8004438C 0003FFEC  D0 41 00 54 */	stfs f2, 0x54(r1)
/* 80044390 0003FFF0  D0 21 00 58 */	stfs f1, 0x58(r1)
/* 80044394 0003FFF4  D0 21 00 44 */	stfs f1, 0x44(r1)
/* 80044398 0003FFF8  D0 41 00 48 */	stfs f2, 0x48(r1)
/* 8004439C 0003FFFC  D0 21 00 4C */	stfs f1, 0x4c(r1)
/* 800443A0 00040000  D0 21 00 88 */	stfs f1, 0x88(r1)
/* 800443A4 00040004  D0 01 00 8C */	stfs f0, 0x8c(r1)
/* 800443A8 00040008  D0 21 00 90 */	stfs f1, 0x90(r1)
lbl_800443AC:
/* 800443AC 0004000C  C0 3E 04 E0 */	lfs f1, 0x4e0(r30)
/* 800443B0 00040010  48 18 63 05 */	bl __fpclassifyf
/* 800443B4 00040014  2C 03 00 01 */	cmpwi r3, 1
/* 800443B8 00040018  41 82 00 14 */	beq lbl_800443CC
/* 800443BC 0004001C  C0 3E 04 E0 */	lfs f1, 0x4e0(r30)
/* 800443C0 00040020  48 18 62 F5 */	bl __fpclassifyf
/* 800443C4 00040024  2C 03 00 02 */	cmpwi r3, 2
/* 800443C8 00040028  40 82 00 0C */	bne lbl_800443D4
lbl_800443CC:
/* 800443CC 0004002C  C0 02 82 C8 */	lfs f0, lbl_806408C8-_SDA2_BASE_(r2)
/* 800443D0 00040030  D0 1E 04 E0 */	stfs f0, 0x4e0(r30)
lbl_800443D4:
/* 800443D4 00040034  80 7E 06 CC */	lwz r3, 0x6cc(r30)
/* 800443D8 00040038  C0 01 00 50 */	lfs f0, 0x50(r1)
/* 800443DC 0004003C  C0 21 00 54 */	lfs f1, 0x54(r1)
/* 800443E0 00040040  D0 03 01 AC */	stfs f0, 0x1ac(r3)
/* 800443E4 00040044  C0 01 00 58 */	lfs f0, 0x58(r1)
/* 800443E8 00040048  D0 23 01 B0 */	stfs f1, 0x1b0(r3)
/* 800443EC 0004004C  C0 41 00 44 */	lfs f2, 0x44(r1)
/* 800443F0 00040050  D0 03 01 B4 */	stfs f0, 0x1b4(r3)
/* 800443F4 00040054  C0 21 00 48 */	lfs f1, 0x48(r1)
/* 800443F8 00040058  C0 61 00 88 */	lfs f3, 0x88(r1)
/* 800443FC 0004005C  C0 01 00 4C */	lfs f0, 0x4c(r1)
/* 80044400 00040060  D0 63 01 B8 */	stfs f3, 0x1b8(r3)
/* 80044404 00040064  C0 61 00 8C */	lfs f3, 0x8c(r1)
/* 80044408 00040068  D0 63 01 BC */	stfs f3, 0x1bc(r3)
/* 8004440C 0004006C  C0 61 00 90 */	lfs f3, 0x90(r1)
/* 80044410 00040070  D0 63 01 C0 */	stfs f3, 0x1c0(r3)
/* 80044414 00040074  D0 43 01 C4 */	stfs f2, 0x1c4(r3)
/* 80044418 00040078  D0 23 01 C8 */	stfs f1, 0x1c8(r3)
/* 8004441C 0004007C  D0 03 01 CC */	stfs f0, 0x1cc(r3)
/* 80044420 00040080  80 03 01 04 */	lwz r0, 0x104(r3)
/* 80044424 00040084  60 00 00 30 */	ori r0, r0, 0x30
/* 80044428 00040088  90 03 01 04 */	stw r0, 0x104(r3)
/* 8004442C 0004008C  80 7E 06 CC */	lwz r3, 0x6cc(r30)
/* 80044430 00040090  C0 1E 04 E0 */	lfs f0, 0x4e0(r30)
/* 80044434 00040094  80 03 01 04 */	lwz r0, 0x104(r3)
/* 80044438 00040098  54 00 07 BE */	clrlwi r0, r0, 0x1e
/* 8004443C 0004009C  28 00 00 01 */	cmplwi r0, 1
/* 80044440 000400A0  40 82 00 14 */	bne lbl_80044454
/* 80044444 000400A4  D0 03 01 68 */	stfs f0, 0x168(r3)
/* 80044448 000400A8  80 03 01 04 */	lwz r0, 0x104(r3)
/* 8004444C 000400AC  60 00 00 08 */	ori r0, r0, 8
/* 80044450 000400B0  90 03 01 04 */	stw r0, 0x104(r3)
lbl_80044454:
/* 80044454 000400B4  E3 E1 01 98 */	psq_l f31, 408(r1), 0, qr0
/* 80044458 000400B8  CB E1 01 90 */	lfd f31, 0x190(r1)
/* 8004445C 000400BC  E3 C1 01 88 */	psq_l f30, 392(r1), 0, qr0
/* 80044460 000400C0  CB C1 01 80 */	lfd f30, 0x180(r1)
/* 80044464 000400C4  E3 A1 01 78 */	psq_l f29, 376(r1), 0, qr0
/* 80044468 000400C8  CB A1 01 70 */	lfd f29, 0x170(r1)
/* 8004446C 000400CC  E3 81 01 68 */	psq_l f28, 360(r1), 0, qr0
/* 80044470 000400D0  CB 81 01 60 */	lfd f28, 0x160(r1)
/* 80044474 000400D4  E3 61 01 58 */	psq_l f27, 344(r1), 0, qr0
/* 80044478 000400D8  CB 61 01 50 */	lfd f27, 0x150(r1)
/* 8004447C 000400DC  83 E1 01 4C */	lwz r31, 0x14c(r1)
/* 80044480 000400E0  83 C1 01 48 */	lwz r30, 0x148(r1)
/* 80044484 000400E4  83 A1 01 44 */	lwz r29, 0x144(r1)
/* 80044488 000400E8  80 01 01 A4 */	lwz r0, 0x1a4(r1)
/* 8004448C 000400EC  83 81 01 40 */	lwz r28, 0x140(r1)
/* 80044490 000400F0  7C 08 03 A6 */	mtlr r0
/* 80044494 000400F4  38 21 01 A0 */	addi r1, r1, 0x1a0
/* 80044498 000400F8  4E 80 00 20 */	blr

.global func_8004449C
func_8004449C:
/* 8004449C 000400FC  4E 80 00 20 */	blr

.global func_800444A0
func_800444A0:
/* 800444A0 00040100  38 00 00 02 */	li r0, 2
/* 800444A4 00040104  38 A0 00 00 */	li r5, 0
/* 800444A8 00040108  38 C0 00 00 */	li r6, 0
/* 800444AC 0004010C  38 80 00 01 */	li r4, 1
/* 800444B0 00040110  7C 09 03 A6 */	mtctr r0
lbl_800444B4:
/* 800444B4 00040114  80 03 00 04 */	lwz r0, 4(r3)
/* 800444B8 00040118  2C 00 00 00 */	cmpwi r0, 0
/* 800444BC 0004011C  41 82 00 0C */	beq lbl_800444C8
/* 800444C0 00040120  7C 80 30 30 */	slw r0, r4, r6
/* 800444C4 00040124  7C A5 03 78 */	or r5, r5, r0
lbl_800444C8:
/* 800444C8 00040128  80 03 00 28 */	lwz r0, 0x28(r3)
/* 800444CC 0004012C  38 C6 00 01 */	addi r6, r6, 1
/* 800444D0 00040130  2C 00 00 00 */	cmpwi r0, 0
/* 800444D4 00040134  41 82 00 0C */	beq lbl_800444E0
/* 800444D8 00040138  7C 80 30 30 */	slw r0, r4, r6
/* 800444DC 0004013C  7C A5 03 78 */	or r5, r5, r0
lbl_800444E0:
/* 800444E0 00040140  80 03 00 4C */	lwz r0, 0x4c(r3)
/* 800444E4 00040144  38 C6 00 01 */	addi r6, r6, 1
/* 800444E8 00040148  2C 00 00 00 */	cmpwi r0, 0
/* 800444EC 0004014C  41 82 00 0C */	beq lbl_800444F8
/* 800444F0 00040150  7C 80 30 30 */	slw r0, r4, r6
/* 800444F4 00040154  7C A5 03 78 */	or r5, r5, r0
lbl_800444F8:
/* 800444F8 00040158  80 03 00 70 */	lwz r0, 0x70(r3)
/* 800444FC 0004015C  38 C6 00 01 */	addi r6, r6, 1
/* 80044500 00040160  2C 00 00 00 */	cmpwi r0, 0
/* 80044504 00040164  41 82 00 0C */	beq lbl_80044510
/* 80044508 00040168  7C 80 30 30 */	slw r0, r4, r6
/* 8004450C 0004016C  7C A5 03 78 */	or r5, r5, r0
lbl_80044510:
/* 80044510 00040170  80 03 00 94 */	lwz r0, 0x94(r3)
/* 80044514 00040174  38 C6 00 01 */	addi r6, r6, 1
/* 80044518 00040178  2C 00 00 00 */	cmpwi r0, 0
/* 8004451C 0004017C  41 82 00 0C */	beq lbl_80044528
/* 80044520 00040180  7C 80 30 30 */	slw r0, r4, r6
/* 80044524 00040184  7C A5 03 78 */	or r5, r5, r0
lbl_80044528:
/* 80044528 00040188  80 03 00 B8 */	lwz r0, 0xb8(r3)
/* 8004452C 0004018C  38 C6 00 01 */	addi r6, r6, 1
/* 80044530 00040190  2C 00 00 00 */	cmpwi r0, 0
/* 80044534 00040194  41 82 00 0C */	beq lbl_80044540
/* 80044538 00040198  7C 80 30 30 */	slw r0, r4, r6
/* 8004453C 0004019C  7C A5 03 78 */	or r5, r5, r0
lbl_80044540:
/* 80044540 000401A0  38 63 00 D8 */	addi r3, r3, 0xd8
/* 80044544 000401A4  38 C6 00 01 */	addi r6, r6, 1
/* 80044548 000401A8  42 00 FF 6C */	bdnz lbl_800444B4
/* 8004454C 000401AC  7C A3 2B 78 */	mr r3, r5
/* 80044550 000401B0  4E 80 00 20 */	blr

.global func_80044554
func_80044554:
/* 80044554 000401B4  94 21 FF 60 */	stwu r1, -0xa0(r1)
/* 80044558 000401B8  7C 08 02 A6 */	mflr r0
/* 8004455C 000401BC  90 01 00 A4 */	stw r0, 0xa4(r1)
/* 80044560 000401C0  DB E1 00 90 */	stfd f31, 0x90(r1)
/* 80044564 000401C4  F3 E1 00 98 */	psq_st f31, 152(r1), 0, qr0
/* 80044568 000401C8  93 E1 00 8C */	stw r31, 0x8c(r1)
/* 8004456C 000401CC  93 C1 00 88 */	stw r30, 0x88(r1)
/* 80044570 000401D0  7C 7E 1B 78 */	mr r30, r3
/* 80044574 000401D4  93 A1 00 84 */	stw r29, 0x84(r1)
/* 80044578 000401D8  7C BD 2B 78 */	mr r29, r5
/* 8004457C 000401DC  93 81 00 80 */	stw r28, 0x80(r1)
/* 80044580 000401E0  7C 9C 23 78 */	mr r28, r4
/* 80044584 000401E4  80 03 06 CC */	lwz r0, 0x6cc(r3)
/* 80044588 000401E8  2C 00 00 00 */	cmpwi r0, 0
/* 8004458C 000401EC  40 82 00 0C */	bne lbl_80044598
/* 80044590 000401F0  38 60 00 00 */	li r3, 0
/* 80044594 000401F4  48 00 01 B4 */	b lbl_80044748
lbl_80044598:
/* 80044598 000401F8  4B FE EA F1 */	bl func_80033088
/* 8004459C 000401FC  2C 03 00 00 */	cmpwi r3, 0
/* 800445A0 00040200  40 82 00 0C */	bne lbl_800445AC
/* 800445A4 00040204  38 60 00 00 */	li r3, 0
/* 800445A8 00040208  48 00 01 A0 */	b lbl_80044748
lbl_800445AC:
/* 800445AC 0004020C  80 9E 04 B4 */	lwz r4, 0x4b4(r30)
/* 800445B0 00040210  4B FE F5 E9 */	bl func_80033B98
/* 800445B4 00040214  54 60 04 3E */	clrlwi r0, r3, 0x10
/* 800445B8 00040218  7C 7F 1B 78 */	mr r31, r3
/* 800445BC 0004021C  28 00 FF FF */	cmplwi r0, 0xffff
/* 800445C0 00040220  41 82 00 30 */	beq lbl_800445F0
/* 800445C4 00040224  38 60 00 02 */	li r3, 2
/* 800445C8 00040228  48 1F 6A 91 */	bl func_8023B058
/* 800445CC 0004022C  80 03 00 20 */	lwz r0, 0x20(r3)
/* 800445D0 00040230  2C 00 00 01 */	cmpwi r0, 1
/* 800445D4 00040234  40 82 00 1C */	bne lbl_800445F0
/* 800445D8 00040238  57 E4 04 3E */	clrlwi r4, r31, 0x10
/* 800445DC 0004023C  38 A1 00 50 */	addi r5, r1, 0x50
/* 800445E0 00040240  38 C1 00 54 */	addi r6, r1, 0x54
/* 800445E4 00040244  38 E1 00 58 */	addi r7, r1, 0x58
/* 800445E8 00040248  39 01 00 5C */	addi r8, r1, 0x5c
/* 800445EC 0004024C  48 1F E5 9D */	bl func_80242B88
lbl_800445F0:
/* 800445F0 00040250  C0 62 82 B0 */	lfs f3, lbl_806408B0-_SDA2_BASE_(r2)
/* 800445F4 00040254  3C 00 43 30 */	lis r0, 0x4330
/* 800445F8 00040258  80 ED A3 D8 */	lwz r7, render_context_ptr-_SDA_BASE_(r13)
/* 800445FC 0004025C  7F 84 E3 78 */	mr r4, r28
/* 80044600 00040260  D0 61 00 50 */	stfs f3, 0x50(r1)
/* 80044604 00040264  38 61 00 2C */	addi r3, r1, 0x2c
/* 80044608 00040268  C8 42 82 C0 */	lfd f2, lbl_806408C0-_SDA2_BASE_(r2)
/* 8004460C 0004026C  38 A1 00 08 */	addi r5, r1, 8
/* 80044610 00040270  D0 61 00 54 */	stfs f3, 0x54(r1)
/* 80044614 00040274  C0 02 82 BC */	lfs f0, lbl_806408BC-_SDA2_BASE_(r2)
/* 80044618 00040278  A0 C7 00 04 */	lhz r6, 4(r7)
/* 8004461C 0004027C  90 01 00 68 */	stw r0, 0x68(r1)
/* 80044620 00040280  90 C1 00 6C */	stw r6, 0x6c(r1)
/* 80044624 00040284  C8 21 00 68 */	lfd f1, 0x68(r1)
/* 80044628 00040288  90 01 00 70 */	stw r0, 0x70(r1)
/* 8004462C 0004028C  EC 21 10 28 */	fsubs f1, f1, f2
/* 80044630 00040290  D0 21 00 58 */	stfs f1, 0x58(r1)
/* 80044634 00040294  A0 07 00 06 */	lhz r0, 6(r7)
/* 80044638 00040298  90 01 00 74 */	stw r0, 0x74(r1)
/* 8004463C 0004029C  C8 21 00 70 */	lfd f1, 0x70(r1)
/* 80044640 000402A0  D0 61 00 60 */	stfs f3, 0x60(r1)
/* 80044644 000402A4  EC 21 10 28 */	fsubs f1, f1, f2
/* 80044648 000402A8  D0 01 00 64 */	stfs f0, 0x64(r1)
/* 8004464C 000402AC  D0 21 00 5C */	stfs f1, 0x5c(r1)
/* 80044650 000402B0  80 DE 06 CC */	lwz r6, 0x6cc(r30)
/* 80044654 000402B4  C0 26 02 10 */	lfs f1, 0x210(r6)
/* 80044658 000402B8  3B E6 01 4C */	addi r31, r6, 0x14c
/* 8004465C 000402BC  C0 06 02 20 */	lfs f0, 0x220(r6)
/* 80044660 000402C0  3B C6 01 D4 */	addi r30, r6, 0x1d4
/* 80044664 000402C4  C0 86 02 30 */	lfs f4, 0x230(r6)
/* 80044668 000402C8  D0 21 00 20 */	stfs f1, 0x20(r1)
/* 8004466C 000402CC  D0 21 00 2C */	stfs f1, 0x2c(r1)
/* 80044670 000402D0  D0 01 00 30 */	stfs f0, 0x30(r1)
/* 80044674 000402D4  D0 81 00 34 */	stfs f4, 0x34(r1)
/* 80044678 000402D8  C0 66 02 0C */	lfs f3, 0x20c(r6)
/* 8004467C 000402DC  C0 46 02 1C */	lfs f2, 0x21c(r6)
/* 80044680 000402E0  C0 26 02 2C */	lfs f1, 0x22c(r6)
/* 80044684 000402E4  D0 01 00 24 */	stfs f0, 0x24(r1)
/* 80044688 000402E8  D0 61 00 44 */	stfs f3, 0x44(r1)
/* 8004468C 000402EC  D0 41 00 48 */	stfs f2, 0x48(r1)
/* 80044690 000402F0  D0 21 00 4C */	stfs f1, 0x4c(r1)
/* 80044694 000402F4  C0 06 01 64 */	lfs f0, 0x164(r6)
/* 80044698 000402F8  D0 81 00 28 */	stfs f4, 0x28(r1)
/* 8004469C 000402FC  FF E0 00 50 */	fneg f31, f0
/* 800446A0 00040300  D0 61 00 14 */	stfs f3, 0x14(r1)
/* 800446A4 00040304  D0 41 00 18 */	stfs f2, 0x18(r1)
/* 800446A8 00040308  D0 21 00 1C */	stfs f1, 0x1c(r1)
/* 800446AC 0004030C  48 23 86 3D */	bl PSVECSubtract
/* 800446B0 00040310  C0 41 00 08 */	lfs f2, 8(r1)
/* 800446B4 00040314  38 61 00 44 */	addi r3, r1, 0x44
/* 800446B8 00040318  C0 21 00 0C */	lfs f1, 0xc(r1)
/* 800446BC 0004031C  38 81 00 38 */	addi r4, r1, 0x38
/* 800446C0 00040320  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 800446C4 00040324  D0 41 00 38 */	stfs f2, 0x38(r1)
/* 800446C8 00040328  D0 21 00 3C */	stfs f1, 0x3c(r1)
/* 800446CC 0004032C  D0 01 00 40 */	stfs f0, 0x40(r1)
/* 800446D0 00040330  48 23 86 F9 */	bl PSVECDotProduct
/* 800446D4 00040334  FC 01 F8 40 */	fcmpo cr0, f1, f31
/* 800446D8 00040338  4C 40 13 82 */	cror 2, 0, 2
/* 800446DC 0004033C  40 82 00 40 */	bne lbl_8004471C
/* 800446E0 00040340  C0 21 00 58 */	lfs f1, 0x58(r1)
/* 800446E4 00040344  38 60 00 00 */	li r3, 0
/* 800446E8 00040348  C0 01 00 50 */	lfs f0, 0x50(r1)
/* 800446EC 0004034C  C0 62 82 B8 */	lfs f3, lbl_806408B8-_SDA2_BASE_(r2)
/* 800446F0 00040350  EC 21 00 28 */	fsubs f1, f1, f0
/* 800446F4 00040354  C0 02 82 E0 */	lfs f0, lbl_806408E0-_SDA2_BASE_(r2)
/* 800446F8 00040358  EC 23 00 72 */	fmuls f1, f3, f1
/* 800446FC 0004035C  D0 3D 00 00 */	stfs f1, 0(r29)
/* 80044700 00040360  C0 41 00 5C */	lfs f2, 0x5c(r1)
/* 80044704 00040364  C0 21 00 54 */	lfs f1, 0x54(r1)
/* 80044708 00040368  EC 22 08 28 */	fsubs f1, f2, f1
/* 8004470C 0004036C  D0 1D 00 08 */	stfs f0, 8(r29)
/* 80044710 00040370  EC 03 00 72 */	fmuls f0, f3, f1
/* 80044714 00040374  D0 1D 00 04 */	stfs f0, 4(r29)
/* 80044718 00040378  48 00 00 30 */	b lbl_80044748
lbl_8004471C:
/* 8004471C 0004037C  C0 3C 00 00 */	lfs f1, 0(r28)
/* 80044720 00040380  7F C3 F3 78 */	mr r3, r30
/* 80044724 00040384  C0 5C 00 04 */	lfs f2, 4(r28)
/* 80044728 00040388  7F E4 FB 78 */	mr r4, r31
/* 8004472C 0004038C  C0 7C 00 08 */	lfs f3, 8(r28)
/* 80044730 00040390  7F A6 EB 78 */	mr r6, r29
/* 80044734 00040394  38 A1 00 50 */	addi r5, r1, 0x50
/* 80044738 00040398  38 FD 00 04 */	addi r7, r29, 4
/* 8004473C 0004039C  39 1D 00 08 */	addi r8, r29, 8
/* 80044740 000403A0  48 24 20 CD */	bl GXProject
/* 80044744 000403A4  38 60 00 01 */	li r3, 1
lbl_80044748:
/* 80044748 000403A8  E3 E1 00 98 */	psq_l f31, 152(r1), 0, qr0
/* 8004474C 000403AC  80 01 00 A4 */	lwz r0, 0xa4(r1)
/* 80044750 000403B0  CB E1 00 90 */	lfd f31, 0x90(r1)
/* 80044754 000403B4  83 E1 00 8C */	lwz r31, 0x8c(r1)
/* 80044758 000403B8  83 C1 00 88 */	lwz r30, 0x88(r1)
/* 8004475C 000403BC  83 A1 00 84 */	lwz r29, 0x84(r1)
/* 80044760 000403C0  83 81 00 80 */	lwz r28, 0x80(r1)
/* 80044764 000403C4  7C 08 03 A6 */	mtlr r0
/* 80044768 000403C8  38 21 00 A0 */	addi r1, r1, 0xa0
/* 8004476C 000403CC  4E 80 00 20 */	blr

.global func_80044770
func_80044770:
/* 80044770 000403D0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80044774 000403D4  7C 08 02 A6 */	mflr r0
/* 80044778 000403D8  90 01 00 14 */	stw r0, 0x14(r1)
/* 8004477C 000403DC  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80044780 000403E0  7C 9F 23 78 */	mr r31, r4
/* 80044784 000403E4  93 C1 00 08 */	stw r30, 8(r1)
/* 80044788 000403E8  7C 7E 1B 78 */	mr r30, r3
/* 8004478C 000403EC  38 63 04 E8 */	addi r3, r3, 0x4e8
/* 80044790 000403F0  4B FF C6 B9 */	bl func_80040E48
/* 80044794 000403F4  7F E4 FB 78 */	mr r4, r31
/* 80044798 000403F8  38 7E 05 60 */	addi r3, r30, 0x560
/* 8004479C 000403FC  4B FF C6 AD */	bl func_80040E48
/* 800447A0 00040400  7F E4 FB 78 */	mr r4, r31
/* 800447A4 00040404  38 7E 06 50 */	addi r3, r30, 0x650
/* 800447A8 00040408  4B FF C6 A1 */	bl func_80040E48
/* 800447AC 0004040C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 800447B0 00040410  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 800447B4 00040414  83 C1 00 08 */	lwz r30, 8(r1)
/* 800447B8 00040418  7C 08 03 A6 */	mtlr r0
/* 800447BC 0004041C  38 21 00 10 */	addi r1, r1, 0x10
/* 800447C0 00040420  4E 80 00 20 */	blr

.global func_800447C4
func_800447C4:
/* 800447C4 00040424  38 A0 00 01 */	li r5, 1
/* 800447C8 00040428  38 6D 97 D0 */	addi r3, r13, lbl_8063EA90-_SDA_BASE_
/* 800447CC 0004042C  38 80 00 04 */	li r4, 4
/* 800447D0 00040430  38 00 00 00 */	li r0, 0
/* 800447D4 00040434  98 AD 97 D0 */	stb r5, lbl_8063EA90-_SDA_BASE_(r13)
/* 800447D8 00040438  B0 83 00 02 */	sth r4, 2(r3)
/* 800447DC 0004043C  98 03 00 04 */	stb r0, 4(r3)
/* 800447E0 00040440  4E 80 00 20 */	blr