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
|